Codync
A free, open-source 1:1 alternative to Grok Bot and Muse. Message Claude Code, Codex, Cursor and 40+ coding agents as persistent bots from your iPhone, Mac or Linux desktop. Group chats, threads, appr
A CPP / CUDA real-time ray-tracer for CS302
Translation pending
Developer toolsGitHub @pmudryOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
Repository information has not been collected yet.
No updates detected yet. GitHub releases will appear here.
The maker's introduction consists of the line above. Read the repository README for more details. Repository README ↗
Loading the full README.
Read the full README ↗Based on the Ray-tracing In One Weekend series, an amazing resource for discovering ray-tracing magic!
This project started as a hand-made reimplementation of the InOneWeekend ray tracer to better understand how it works. It evolved into an interactive, real-time path tracer with progressive sample accumulation. The available rendering backends are:
Note: The original CPU rendering backends (sequential and multi-threaded) have been moved to the
legacy/cpu-rendererbranch.
mkdir -p build
cd build
cmake .. --fresh
make -j
./rayon --help
In interactive mode, the renderer is real-time on the development machine (DGX Spark) with a 100 Hz monitor. Frame rate varies with scene complexity and sample settings, while progressive accumulation keeps the display responsive as samples converge.
It uses stb single-file public domain (or MIT-licensed) C/C++ libraries for loading and saving images, SDL2 for windowing, and immediate-mode GUI controls via Dear ImGui.
Representative renders from different scenes and material setups.
You can load additional examples from resources/scenes/.
cmake to generate compilation files and build using makeCreate manually via
mkdir build
cd build
cmake .. --fresh
make -j
This will generate the appropriate compile_commands.json for clangd so that you get syntax highlighting, code completion etc. in VS Code. Additionally, CMake automatically updates the .clangd file with include paths for all subdirectories under src/, ensuring clangd has the correct -I flags without manual maintenance. You can then run from the build directory
./rayon --help
Or all at once:
make -j && ./rayon -m 2
Rendered frames are written to rendered_images/ with timestamped filenames such as output_2025-11-15_14-22-09.png. Each run produces a new PNG (timestamp uses local time, second precision), so you can sort files chronologically without overwriting previous renders.
The interactive window does not work through ssh -X (SDL needs a local OpenGL context, and its software fallback trips on MIT-SHM over the network). Use a VNC session on the server instead:
sudo apt install tigervnc-standalone-server openbox # once, on the server
scripts/rayon_vnc.sh # 1080p by default, extra args go to rayon
The script starts a headless VNC server sized to the render resolution, runs rayon inside it and prints the vncviewer -via user@host localhost:N command to connect from your machine (TigerVNC viewer tunnels through SSH itself). Ctrl-C stops rayon and the VNC server together.
Install extension clangd from LLVM. To make clangd work, ensure compile_commands.json is present (generated automatically from CMakeLists.txt during the cmake phase above). This project uses .hpp for C++ headers as a convention; keeping that convention helps tooling and includes stay consistent.
The project also integrates clang-tidy for static analysis. If clang-tidy is installed, CMake will enable it automatically during builds to check for code issues, style violations, and potential bugs. A .clang-tidy configuration file is provided to customize the checks.
This is all you need. There are tasks created in the .vscode folder that can be launched with CTRL+Shift+P -> Tasks and then you can build, and run. You can even setup key bindings for that.
If required, the documentation can be built with doxygen, which should be run in the main directory. The results are not saved in the git repository to save space.
PRs are welcome, please feel free to contribute.
libsdl for creating the real-time rendering context. It might work without it in non-interactive mode but this has not been tested. Use at your own risk (or create a PR).