{"id":18406919,"url":"https://github.com/7sdream/remda","last_synced_at":"2025-04-07T08:32:31.642Z","repository":{"id":85346838,"uuid":"271515235","full_name":"7sDream/remda","owner":"7sDream","description":"Learn Ray Tracing in One Weekend series using Rust.","archived":false,"fork":false,"pushed_at":"2021-03-17T09:30:54.000Z","size":1758,"stargazers_count":64,"open_issues_count":0,"forks_count":8,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-03-19T02:01:55.115Z","etag":null,"topics":["graphics","ray-tracing","rust"],"latest_commit_sha":null,"homepage":"","language":"Rust","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/7sDream.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"COPYING","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":"2020-06-11T10:17:17.000Z","updated_at":"2025-01-09T02:13:08.000Z","dependencies_parsed_at":"2023-03-13T04:56:03.353Z","dependency_job_id":null,"html_url":"https://github.com/7sDream/remda","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/7sDream%2Fremda","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/7sDream%2Fremda/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/7sDream%2Fremda/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/7sDream%2Fremda/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/7sDream","download_url":"https://codeload.github.com/7sDream/remda/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247620508,"owners_count":20968224,"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":["graphics","ray-tracing","rust"],"created_at":"2024-11-06T03:11:21.762Z","updated_at":"2025-04-07T08:32:31.630Z","avatar_url":"https://github.com/7sDream.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Remda\n\nLearn [*Ray Tracing in One Weekend* series][book-series] using Rust.\n\nYet another naive and pure software ray tracing renderer.\n\n## Render Result Examples\n\n![rendered image of RTOW's balls scene][rtow-balls-scene-render-result]\n*example rtow_13_1, 512 sample, 8 depth, 1920x1080, 8m30s*\n\n![rendered image of RTNW's balls motion blur scene][rtnw-balls-scene-motion-blur-render-result]\n*example rtnw_4_3, 1024 sample, 8 depth, 1920x1080, 22min*\n\n![rendered image of RTNW's ball with noise texture scene][rtnw-ball-noise-texture-scene-render-result]\n*example rtnw_7_4_2, 4096 sample, 8 depth, 1500x900, 15min*\n\n![rendered image of RTNW's Cornell scene][rtnw-cornell-rotated-scene-render-result]\n*example rtnw_8_2, 10240 sample, 10 depth, 1000x1000, 1h20m*\n\n![rendered image of RTNW's Cornel smoke scene][rtnw-cornell-smoke-scene-render-result]\n*example rtnw_9_2, 10240 sample, 10 depth, 1000x1000, 1h30m*\n\n![rendered image of RTNW's final scene][rtnw-final-scene-render-result]\n*example rtnw_10, 10240 sample, 10 depth, 1000x1000, 2h30m*\n\n## Current Progress\n\n- [x] [*Ray Tracing in One Weekend*][book-1]\n  - [x] Basic types, Vec, Color, Ray, etc\n  - [x] Background/Sky\n  - [x] Sphere\n  - [x] Lambertian Material\n  - [x] Metal Material with Different Fuzz\n  - [x] Glass Material with Different Refractive\n  - [x] Pinhole Camera\n  - [x] Camera Defocus/Depth Field\n  - [x] (Extra) Parallelism (by using [rayon][rayon-crates-io])\n- [x] [*Ray Tracing: The Next Week*][book-2]\n  - [x] Motion Blur\n  - [x] BVH(Bounding Volume Hierarchies)\n  - [x] Solid Textures\n  - [x] Perlin Noise\n  - [x] Image Textures\n  - [x] Rectangles\n  - [x] Lights\n  - [x] Cornell Box\n  - [x] Box\n  - [x] Instance Translation and Rotation\n  - [x] Volumes/Participating Media\n- [ ] [*Ray Tracing: The Rest of Your Life*][book-3] not started yet\n\n## Run\n\nRemda is a library crate, but you can run built-in examples(from the book series) to try it.\n\nUse `cargo run --example` to get examples list, then choose one to run.\n\nFor example, to get final scene in section 13.1 of *Ray Tracing in One Weekend*, run\n\n```bash\ncargo run --example rtow_13_1 --release\n```\n\nWait about 1s(according to your machine's CPU performance), you will get a `rtow_13_1.ppm` in current dir, that's your result.\n\nIf you want a bigger and clear image, adjust `height()`, `depth` and `samples()` parameter in example source file and re-run.\n\nYou can also try other examples if you want.\n\nPS: Pure software ray tracing takes a long time to render, be patient.\n\n## LICENSE\n\nGPLv3\n\nExcept:\n\n- `example/earth-map.png`, download from [NASA][earth-map-source], fall in public domain.\n\n[book-series]: https://raytracing.github.io/\n[book-1]: https://raytracing.github.io/books/RayTracingInOneWeekend.html\n[book-2]: https://raytracing.github.io/books/RayTracingTheNextWeek.html\n[book-3]: https://raytracing.github.io/books/RayTracingTheRestOfYourLife.html\n[rtow-balls-scene-render-result]: https://rikka.7sdre.am/files/a952c7ca-af57-46a6-959f-237702333ab6.png\n[rtnw-balls-scene-motion-blur-render-result]: https://rikka.7sdre.am/files/a0f8d5bd-9bc5-4361-b1dc-4adabd9c9949.png\n[rtnw-ball-noise-texture-scene-render-result]: https://rikka.7sdre.am/files/e5b459c6-aa8e-47aa-ab20-33d430ba6b2f.png\n[rtnw-cornell-rotated-scene-render-result]: https://rikka.7sdre.am/files/1721b196-b746-4e6d-a4d0-f9c7c2e75c41.png\n[rtnw-cornell-smoke-scene-render-result]: https://rikka.7sdre.am/files/545972fd-d10d-4345-9e8c-3ba16fb50524.png\n[rtnw-final-scene-render-result]: https://rikka.7sdre.am/files/3e1e1849-54bf-4a7b-9e09-b2cc25b5cf6f.png\n[rayon-crates-io]: https://crates.io/crates/rayon\n[earth-map-source]: http://visibleearth.nasa.gov/view.php?id=57752\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2F7sdream%2Fremda","html_url":"https://awesome.ecosyste.ms/projects/github.com%2F7sdream%2Fremda","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2F7sdream%2Fremda/lists"}