{"id":23975812,"url":"https://github.com/therustmonk/lustre-rs","last_synced_at":"2026-02-28T08:36:07.838Z","repository":{"id":77845050,"uuid":"595838230","full_name":"therustmonk/lustre-rs","owner":"therustmonk","description":"Toy RT Renderer","archived":false,"fork":false,"pushed_at":"2023-01-31T01:29:26.000Z","size":43082,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-10-10T09:08:39.482Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":null,"has_issues":false,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":"nbarrios1337/lustre-rs","license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/therustmonk.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}},"created_at":"2023-01-31T22:57:10.000Z","updated_at":"2025-01-19T15:09:24.000Z","dependencies_parsed_at":"2023-07-20T22:51:22.273Z","dependency_job_id":null,"html_url":"https://github.com/therustmonk/lustre-rs","commit_stats":null,"previous_names":["therustmonk/lustre-rs"],"tags_count":5,"template":false,"template_full_name":null,"purl":"pkg:github/therustmonk/lustre-rs","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/therustmonk%2Flustre-rs","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/therustmonk%2Flustre-rs/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/therustmonk%2Flustre-rs/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/therustmonk%2Flustre-rs/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/therustmonk","download_url":"https://codeload.github.com/therustmonk/lustre-rs/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/therustmonk%2Flustre-rs/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29928977,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-27T19:37:42.220Z","status":"online","status_checked_at":"2026-02-28T02:00:07.010Z","response_time":90,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":[],"created_at":"2025-01-07T06:51:26.039Z","updated_at":"2026-02-28T08:36:07.808Z","avatar_url":"https://github.com/therustmonk.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"# lustre-rs: Toy RT Renderer\n\n[![Rust CI](https://github.com/nbarrios1337/lustre-rs/actions/workflows/rust.yml/badge.svg)](https://github.com/nbarrios1337/lustre-rs/actions/workflows/rust.yml)\n\nLearning Rust via [Peter Shirley's Ray Tracing in One Weekend](https://raytracing.github.io/) Book series and other sources.\n\n## Usage\n\n1. If you don't have Rust installed, take a look at [Rust's Getting Started page](https://www.rust-lang.org/learn/get-started).\n2. Clone this repository:\n\n    ```shell\n    git clone git@github.com:nbarrios1337/lustre-rs.git\n    ```\n\n3. Build `lustre` by running:\n\n    ```shell\n    cargo build --release\n    ```\n\n4. Run `lustre` by specifying a scene to render:\n\n   ```shell\n   ./target/release/lustre -s cover-photo\n   ```\n\n   See `lustre --help` for more options.\n\n## Progress\n\n- [x] Implementing Book 1: [Ray Tracing in One Weekend](https://raytracing.github.io/books/RayTracingInOneWeekend.html) - 100%\n- [x] Documenting Book 1 implementation - 100%\n- [x] Implementing Book 2: [Ray Tracing: The Next Week](https://raytracing.github.io/books/RayTracingTheNextWeek.html) - 100%\n- [x] Documenting Book 2 implementation - 100%\n- [ ] Implementing Book 3: [Ray Tracing: The Rest of Your Life](https://raytracing.github.io/books/RayTracingTheRestOfYourLife.html)\n- [ ] Documenting Book 3 implementation\n- [ ] Look into other ways to expand this renderer. Possibilties:\n  - Integration with shaders\n  - Integration with graphics APIs\n  - Rendering in realtime\n  - ...\n\n## Additional Sources\n\n- [Peter Shirley's \"In One Weekend\" Blog](https://in1weekend.blogspot.com/), serving as addendums to his aforementioned book series.\n- [Pharr's, Jakob's, and Humphrey's \"Physically Based Rendering: From Theory to Implementation\"](https://pbr-book.org/): incorporated some of the acceleration structure ideas for the Tree module.\n- [Tavian Barnes' blog posts on branchless ray-bbox intersections](https://tavianator.com/2022/ray_box_boundary.html): Used the branchless implementation in the bounding box module. Made those hit checks a lot faster.\n- [Inigo Quilez's article on bilinear interpolation](https://iquilezles.org/articles/ibilinear/): Used the shadertoy examples in the Quad module, which is a generic quadrilaterial primitive.\n\n## Examples\n\nBelow are some resulting images from lustre:\n\nThe Cornell Box, rendered at 2k x 2k with 10k samples per pixel:\n![A render of the famous Cornell Box scene, rendered at 10,000 samples at a 2160 by 2160 resolution](images/cornell.png)\n\nA modified (in the dark with lights!) version of the RT in One Weekend cover photo, rendered at 4k with 5k samples per pixel:\n![A render of a modified RT in One Weekend cover photo, rendered at 5000 samples at a 4k resolution](images/lights.png)\n\nA slightly altered version of the final scene from [Book 2 of RT in One Weekend](https://raytracing.github.io/books/RayTracingTheNextWeek.html), rendered at 4k with 10k samples per pixel (this took ~27 hours to render!):\n![A render of the final scene in Ray Tracing: The Next Week, rendered at 10000 samples at a 4k resolution](images/final-scene.png)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftherustmonk%2Flustre-rs","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftherustmonk%2Flustre-rs","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftherustmonk%2Flustre-rs/lists"}