{"id":24936861,"url":"https://github.com/reecelikesramen/rust-raytracer","last_synced_at":"2026-05-01T10:31:20.394Z","repository":{"id":262891326,"uuid":"888688193","full_name":"reecelikesramen/rust-raytracer","owner":"reecelikesramen","description":"Rust raytracing engine from scratch for use with CLI, WASM, or as a library","archived":false,"fork":false,"pushed_at":"2024-12-30T19:44:00.000Z","size":12266,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-28T16:43:47.906Z","etag":null,"topics":["cli","library","raytracer","raytracing","rust","wasm","webassembly"],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/reecelikesramen.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":"2024-11-14T20:41:22.000Z","updated_at":"2025-01-13T22:03:01.000Z","dependencies_parsed_at":"2024-11-14T21:32:34.297Z","dependency_job_id":"bc20654c-4693-4588-9984-660a5610f4d8","html_url":"https://github.com/reecelikesramen/rust-raytracer","commit_stats":null,"previous_names":["reecelikesramen/rust-raytracer"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/reecelikesramen/rust-raytracer","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/reecelikesramen%2Frust-raytracer","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/reecelikesramen%2Frust-raytracer/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/reecelikesramen%2Frust-raytracer/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/reecelikesramen%2Frust-raytracer/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/reecelikesramen","download_url":"https://codeload.github.com/reecelikesramen/rust-raytracer/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/reecelikesramen%2Frust-raytracer/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32494270,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-30T13:12:12.517Z","status":"online","status_checked_at":"2026-05-01T02:00:05.856Z","response_time":64,"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":["cli","library","raytracer","raytracing","rust","wasm","webassembly"],"created_at":"2025-02-02T16:57:36.262Z","updated_at":"2026-05-01T10:31:20.352Z","avatar_url":"https://github.com/reecelikesramen.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# WebTracer: A Rust \u0026 WASM Ray tracing Engine\nCurrently implementing forward ray tracing\n\n## Setting up\n\n### Build CLI for regular use\n`cargo build -p raytracer-cli --release`\n\n### Build the WASM binding (in the web-test branch)\n```sh\ncd raytracer-wasm\nwasm-pack build --target web --out-dir ../web-test/pkg --release\ncd ../web-test\npython -m http.server\n```\nOpen http://localhost:8000\n\n## Main Goals\n- [x] Learn Rust fundamentals by recreating my [raytracer](https://github.com/reecelikesramen/raytracer) project from CS 4212 Computer Graphics in Rust.\n- [x] Separate the CLI and the core library, enable the library to compile to WASM and invoke from the web browser.\n- [ ] Optimize the raytracer by parallelizing math operations to increase exposure to low-level optimization.\n- [ ] Extend the raytracer with more interesting shaders, shapes, and light types.\n\n## Renders\nNote: the following scenes were created by Dr. Pete Willemsen at University of Minnesota Duluth.\n\nCLI args for all renders here: `raytracer-cli --width 1000 --height 1000 --rays-per-pixel 9 --recursion-depth 6`\n\nSimple sphere scene:\n![3 spheres upon a plane with 3 lights casting shadows](renders/simple_sphere_scene.png)\n\nSpheres and triangles:\n![4 spheres and 4 triangles arranged to make an intriguing pattern](renders/spheres_and_triangles.png)\n\nCornell Room:\n![A cube room with a short box and six mirrored spheres inside](renders/cornell_room.png)\n\n1000 spheres:\n![10 x 10 x 10 spheres equally spaced with various shaders and lights](renders/spheres_1K.png)\n\nCityscape:\n![Boxy skyscrapers and spheres made to look like trees make a city](renders/box_sphere_test.png)\n\nStanford bunny:\n![Standard graphics rendering test, 3d model of a bunny](renders/stanford_bunny.png)\n\n## TODO\n - Instanced models [model done]\n - Transforms for instanced models [model done]\n - Textures [model done]\n - Diffuse, specular can be texture or color [model done]\n - ParsedScene doesn't need a shaders map\n - SceneArgs container for disable_shadows, recursion_depth, image_width, image_height, etc...\n - Background structure for either background_color or env_map\n - Impl scene stuff so its not just public members\n - MTL parsing into shaders\n - Vectors that must be normalized can be wrapped in na::Unit","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Freecelikesramen%2Frust-raytracer","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Freecelikesramen%2Frust-raytracer","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Freecelikesramen%2Frust-raytracer/lists"}