{"id":21289109,"url":"https://github.com/shapur1234/webtracer","last_synced_at":"2025-07-11T14:31:53.962Z","repository":{"id":156460479,"uuid":"529612903","full_name":"Shapur1234/Webtracer","owner":"Shapur1234","description":"Pathtracer written in rust - runs in the web and includes an editor.","archived":false,"fork":false,"pushed_at":"2024-01-30T17:05:33.000Z","size":94561,"stargazers_count":9,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-06T04:31:56.758Z","etag":null,"topics":["editor","parrallel-computing","rayon","raytracing","raytracing-in-one-weekend","rust","wasm"],"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/Shapur1234.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}},"created_at":"2022-08-27T14:46:24.000Z","updated_at":"2025-03-20T03:25:19.000Z","dependencies_parsed_at":"2024-01-30T18:50:49.305Z","dependency_job_id":null,"html_url":"https://github.com/Shapur1234/Webtracer","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Shapur1234/Webtracer","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Shapur1234%2FWebtracer","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Shapur1234%2FWebtracer/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Shapur1234%2FWebtracer/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Shapur1234%2FWebtracer/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Shapur1234","download_url":"https://codeload.github.com/Shapur1234/Webtracer/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Shapur1234%2FWebtracer/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":264833276,"owners_count":23670617,"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":["editor","parrallel-computing","rayon","raytracing","raytracing-in-one-weekend","rust","wasm"],"created_at":"2024-11-21T12:34:24.856Z","updated_at":"2025-07-11T14:31:48.948Z","avatar_url":"https://github.com/Shapur1234.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# [Webtracer](https://shapur1234.github.io/Webtracer/ \"Link to live demo (mobile controls not supported)\")\n * A pathtracer written in rust - runs in the web and includes an editor \n * Rendering is parallelized and utilizes all cpu cores\n * You can *easily* edit scenes and move the camera (see [how to use](https://github.com/Shapur1234/Webtracer/tree/main?tab=readme-ov-file#how-to-use))\n * Based on [Ray Tracing in One Weekend](https://raytracing.github.io/books/RayTracingInOneWeekend.html) tutorial series - supports spheres, bricks, lights, image-based textures... \n     * *note: images, due to DOM weirdness, have to be baked into the binary, so if you want to add your custom images, you'll have to rebuild the project (feel free to message me how to do so)*\n * Try out the live demo: [Live Demo](https://shapur1234.github.io/Webtracer/ \"Link to live demo (mobile controls not supported)\")\n## Screenshots\n![Screenshot of the UI](/example_images/screenshot.png?raw=true \"Screenshot of the UI\")\n![Example render 1](/example_images/1.png?raw=true \"Example render 1\")\n![Example render 2](/example_images/2.png?raw=true \"Example render 2\")\nMore images can be found [here](/example_images/ \"Screenshot folder\")\n## How to use\n* Upon loading the webpage, you will be in \"normal mode\", click onto the rendered image to enter \"pointerlock mode\" and move around using the mouse and keyboard\n* Press [F] or [R] to render - the screen will go white, that is normal. Check progress in the console ([F12]). Download the output using [U]. Then press [Y] to re-unlock the screen\n* Press [T] to toggle the settings panel\n* You can also edit objects ([E], [C], [X], in \"pointerlock mode\") and easily mess around with different parameters\n* To save and share the scenes you created, download and upload their the .xml representation (Buttons under settings)\n* #### Controls: \n```\nF           - Full render\nR           - Preview render\nY           - Unlock screen after render\nT           - Toggle settings\n```\n* #### Controls - \"pointerlock mode\": \n```\nW, S, A, D  - Move\nArrow keys  - Move\nJ, K        - Move down, up\nMouse move  - Rotate camera\nQ           - Reset camera to starting position\nE           - Edit the object in the center of the screen\nX           - Delete the object in the center of the screen\nC           - Create a new object in the center of the screen\n```\n\n## How to build\nRun the build [script](/build.sh) - rust and wasm-pack are requiered\nUse a static file server like [sfz](https://github.com/weihanglo/sfz) to host.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fshapur1234%2Fwebtracer","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fshapur1234%2Fwebtracer","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fshapur1234%2Fwebtracer/lists"}