{"id":17087924,"url":"https://github.com/geraintluff/js-raytrace-demo","last_synced_at":"2025-03-23T15:16:47.434Z","repository":{"id":66040932,"uuid":"13022845","full_name":"geraintluff/js-raytrace-demo","owner":"geraintluff","description":"A Monte-Carlo raytracing demo in JavaScript","archived":false,"fork":false,"pushed_at":"2013-09-25T07:21:53.000Z","size":884,"stargazers_count":3,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-01-28T21:18:24.996Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/geraintluff.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2013-09-22T23:30:29.000Z","updated_at":"2023-03-03T05:31:57.000Z","dependencies_parsed_at":"2023-02-19T21:35:18.086Z","dependency_job_id":null,"html_url":"https://github.com/geraintluff/js-raytrace-demo","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/geraintluff%2Fjs-raytrace-demo","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/geraintluff%2Fjs-raytrace-demo/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/geraintluff%2Fjs-raytrace-demo/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/geraintluff%2Fjs-raytrace-demo/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/geraintluff","download_url":"https://codeload.github.com/geraintluff/js-raytrace-demo/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245119592,"owners_count":20563763,"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":[],"created_at":"2024-10-14T13:35:25.286Z","updated_at":"2025-03-23T15:16:47.365Z","avatar_url":"https://github.com/geraintluff.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# js-raytrace-demo\n\n### Monte-Carlo raytracing in JavaScript\n\nThe demo scene is two interlocking spheres (with varying scattering behaviour), with tiled floor/ceiling, and two luminescent spheres out-of-shot.\n\n* [`index.html`](http://geraintluff.github.io/js-raytrace-demo/index.html) - single image, 400x240\n* [`stereographic.html`](http://geraintluff.github.io/js-raytrace-demo/stereographic.html) - two-camera setup, 200x120\n\nThe raytracer attempts to estimate the error in the image (based on neighbourhood noise), and selectively renders certain pixels to attempt to get an even level of noise.\n\nThe preview/display *adds* noise to the image to simulate an even level of noise.  The idea is to prevent the viewer from attributing noise to object texture.  [Here](http://geraintluff.github.io/js-raytrace-demo/index-no-noise.html) is what it looks like *without* that noise.\n\nHere's a 800x480 version I left running overnight:\n\n![Large image, run overnight](raytrace-large.png)","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgeraintluff%2Fjs-raytrace-demo","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgeraintluff%2Fjs-raytrace-demo","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgeraintluff%2Fjs-raytrace-demo/lists"}