{"id":16677651,"url":"https://github.com/makischristou/rtxon","last_synced_at":"2026-05-09T06:03:34.722Z","repository":{"id":174365010,"uuid":"492239623","full_name":"MakisChristou/rtxon","owner":"MakisChristou","description":"A Raytracer I made for fun and learning.","archived":false,"fork":false,"pushed_at":"2024-05-06T16:27:34.000Z","size":7456,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"rusty","last_synced_at":"2025-03-06T02:52:30.423Z","etag":null,"topics":["cornell-box","cpp","golang","graphics","nvidia","raytracing","rendering","rtx","rtxon","rust","utah-teapot"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/MakisChristou.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-05-14T14:30:34.000Z","updated_at":"2025-01-03T14:17:46.000Z","dependencies_parsed_at":"2024-06-19T11:18:34.778Z","dependency_job_id":"e18dae16-3f2f-4e10-acad-2efc0565ebed","html_url":"https://github.com/MakisChristou/rtxon","commit_stats":null,"previous_names":["makischristou/rtxon"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MakisChristou%2Frtxon","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MakisChristou%2Frtxon/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MakisChristou%2Frtxon/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MakisChristou%2Frtxon/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/MakisChristou","download_url":"https://codeload.github.com/MakisChristou/rtxon/tar.gz/refs/heads/rusty","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243358017,"owners_count":20277988,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cornell-box","cpp","golang","graphics","nvidia","raytracing","rendering","rtx","rtxon","rust","utah-teapot"],"created_at":"2024-10-12T13:27:08.316Z","updated_at":"2026-05-09T06:03:29.698Z","avatar_url":"https://github.com/MakisChristou.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# rtxon\nYet another Rust raytracer implementation. The goal of this project is to familiarize myself with more intermidiate concepts in Rust such as traits, lifetimes, shared pointers and design patterns as well as learn a bit of Raytracing basics on the side. The source code is my implementation of [Ray Tracing in One Weekend](https://raytracing.github.io/books/RayTracingInOneWeekend.html) by Peter Shirley.\n\n\n## Features\n- Basic Materials (Lambertian, Metal, Dielectric, Emmisive)\n- Shapes (Sphere, Rectangle, Triangle)\n- Positionable Camera\n- Anti Aliasing\n- Depth of Field\n- Motion Blur\n- OBJ Import\n- Cute progress bar when rendering\n\n## Future Features\n- Proper BHV implementation\n- ~~Parallelism~~\n- GUI progress indicator\n- ~~OBJ Import~~\n- HDR background for global illumination\n\n## Rendering default scene\n```bash\ncargo run --release\n```\n\n## Renders\n### 640x360, samples = 128 * 500, depth = 100, f = 0.05, ~22h (Ryzen 5950x)\n\u003cimg src=\"images/render7.png\" alt=\"Cornell Box\" width=\"650\"\u003e\n\n### 1280x720, samples = 1024, depth = 100, f = 0.05, ~10min (M2 Macbook Pro)\n\u003cimg src=\"images/render6.png\" alt=\"Scene 1\" width=\"650\"\u003e\n\n### 640x360, samples = 512, depth = 100, f = 0.05, ~44s (M2 Macbook Pro)\n![Scene 1](images/render1.png)\n\n### 640x360, samples = 512, depth = 100, f = 0.2, ~45s (M2 Macbook Pro)\n![Scene 2](images/render2.png)\n\n### 640x360, samples = 512, depth = 100, f = 1.0, ~65s (M2 Macbook Pro)\n![Scene 3](images/render3.png)\n\n### 640x360, samples = 128, depth = 100, f = 0.05, ~12s (M2 Macbook Pro)\n![Scene 4](images/render4.png)\n\n### 640x360, samples = 512, depth = 100, f = 0.1, ~7min (M2 Macbook Pro)\n![Scene 5](images/render5.png)\n\n\n## Command-line Arguments\n\n```bash\n$ rtxon --help\nA Raytracer In One Weekend implementation\n\nUsage: rtxon [OPTIONS]\n\nOptions:\n  -s, --scene \u003cSCENE\u003e              Scene to render (default Cornell Box) [default: 9]\n  -w, --width \u003cWIDTH\u003e              Size of the tuple in decimal digits [default: 600]\n  -s, --samples \u003cSAMPLES\u003e          Samples per pixel [default: 128]\n  -m, --max-depth \u003cMAX_DEPTH\u003e      Primorial offset [default: 100]\n  -o, --output-path \u003cOUTPUT_PATH\u003e  Desired output location [default: output.png]\n  -t, --threads \u003cTHREADS\u003e          Threads [default: 1]\n  -c, --chunks \u003cCHUNKS\u003e            Threadpool Chunks [default: 1]\n  -h, --help                       Print help\n  -V, --version                    Print version\n```\n\n### Render default scene with 10 threads\n```bash\n$ rtxon --output-path render.png --max-depth 100 --samples 128 --width 600 --threads 10 --chunks 10\n```\n\n### Render checker scene with 10 threads\n```bash\n$ rtxon --output-path render.png --scene 2 --max-depth 100 --samples 128 --width 600 --threads 10 --chunks 10\n```","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmakischristou%2Frtxon","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmakischristou%2Frtxon","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmakischristou%2Frtxon/lists"}