{"id":17528411,"url":"https://github.com/ab-gh/rtsim","last_synced_at":"2025-04-10T21:35:10.628Z","repository":{"id":122867903,"uuid":"431108609","full_name":"ab-gh/rtsim","owner":"ab-gh","description":"ray tracing simulation","archived":false,"fork":false,"pushed_at":"2021-12-13T21:04:07.000Z","size":4546,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-06T08:37:45.562Z","etag":null,"topics":["cpp","raytracing","renderer"],"latest_commit_sha":null,"homepage":"","language":"C++","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/ab-gh.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,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-11-23T13:20:21.000Z","updated_at":"2022-05-02T15:01:25.000Z","dependencies_parsed_at":null,"dependency_job_id":"ae11e3ef-76e2-4734-a565-1564cb4f37ac","html_url":"https://github.com/ab-gh/rtsim","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/ab-gh%2Frtsim","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ab-gh%2Frtsim/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ab-gh%2Frtsim/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ab-gh%2Frtsim/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ab-gh","download_url":"https://codeload.github.com/ab-gh/rtsim/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248303769,"owners_count":21081335,"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":["cpp","raytracing","renderer"],"created_at":"2024-10-20T15:39:00.167Z","updated_at":"2025-04-10T21:35:10.602Z","avatar_url":"https://github.com/ab-gh.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# rtsim\nC++ implementation of a ray tracing simulator\n\n```cpp\n// Initialise a scene and camera\nCamera cam;\nScene scn;\n// Add a floor\nscn.addObject(new InfinitePlane(Vector(0, -2, 0), Vector(0, 1, 0), RGB(0.1, 0.1, 0.6), 0));\n// Add some objects on the floor\nscn.addObject(new Sphere(Vector(-1, -1, -4), 1, RGB(1, 0, 0), 0.2));\nscn.addObject(new Sphere(Vector(0, -1.8, -3.9), 0.2, RGB(0, 1, 0), 0));\nscn.addObject(new Cone(Vector(1, 0.5, -5.3), Vector(1, -2, -5.3), 1.3, RGB(0.3, 0.5, 0.7), 0.7));\n// Add some background walls\nscn.addObject(new InfinitePlane(Vector(-6, -6, -6), Vector(1.5, 0, 1), RGB(0.6, 0.6, 0.6), 0.1));\nscn.addObject(new InfinitePlane(Vector(-10, -10, -10), Vector(0, 0, 1), RGB(0.6, 0.6, 0.6), 0.1));\n// Add some walls behind the camera\nscn.addObject(new InfinitePlane(Vector(25, 25, 25), Vector(-1.5, 0, -  1), RGB(0.3, 0.3, 0.3), 0));\nscn.addObject(new InfinitePlane(Vector(25, 25, 25), Vector(0, 0, -1), RGB(0.3, 0.3, 0.3), 0));\n// Add a shiny disk under the objects\nscn.addObject(new Disc(Vector(0, -1.99, -4.5), Vector(0, 1, 0), 2.4, RGB(0.7, 0.7, 0.7), 0.1));\n// Add a front and key light\nscn.addSource(new Source(Vector(-1, 5, -2.5), 0.8));\nscn.addSource(new Source(Vector(0, 0, 1), 0.01));\n// Render the scene with a maximum reflection depth of 2\nrender(cam, scn, 2);\nreturn 0;\n```\n\n![](https://raw.githubusercontent.com/ab-gh/rtsim/main/docs/demo.png)\n\n## Features\n\n- Objects\n  - Spheres\n  - Cones\n  - Infinite Planes\n  - Discs\n- Materials\n  - Colour\n  - Reflectivity\n- Light sources\n  - Point light \n- Scene illumination types\n  - Ambient (constant)\n  - Diffuse\n  - Specular\n  - Reflection\n\n## Roadmap\n- [ ] More objects\n  - [ ] Cylinders\n  - [ ] Cuboids\n  - [ ] Triangles for meshing\n  - [ ] Shape file import\n- [ ] Rendering\n  - [ ] Specify file name\n  - [ ] Scene file import\n  - [ ] Free camera\n  - [ ] DoF and focal distance\n  - [ ] Anti-aliasing/supersampling\n- [ ] Materials\n  - [ ] Shadows\n  - [ ] Refraction\n  - [ ] Transparent/translucent\n  - [ ] Emissive objects (volume lights)","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fab-gh%2Frtsim","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fab-gh%2Frtsim","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fab-gh%2Frtsim/lists"}