{"id":18894530,"url":"https://github.com/developerpaul123/rayray","last_synced_at":"2025-06-26T20:02:38.584Z","repository":{"id":45726980,"uuid":"134331651","full_name":"DeveloperPaul123/rayray","owner":"DeveloperPaul123","description":"Rayray is a baby ray tracer written in C++.","archived":false,"fork":false,"pushed_at":"2019-08-29T02:25:38.000Z","size":78,"stargazers_count":18,"open_issues_count":1,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-04-22T01:48:21.406Z","etag":null,"topics":["c-plus-plus","cpp","cpp11","cpp17","graphics","raytracer","raytracing","raytracing-engine","raytracing-one-weekend","standard-template-library","stl"],"latest_commit_sha":null,"homepage":null,"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/DeveloperPaul123.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":"2018-05-21T22:28:22.000Z","updated_at":"2023-08-17T07:12:09.000Z","dependencies_parsed_at":"2022-08-23T18:10:43.279Z","dependency_job_id":null,"html_url":"https://github.com/DeveloperPaul123/rayray","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/DeveloperPaul123/rayray","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DeveloperPaul123%2Frayray","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DeveloperPaul123%2Frayray/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DeveloperPaul123%2Frayray/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DeveloperPaul123%2Frayray/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/DeveloperPaul123","download_url":"https://codeload.github.com/DeveloperPaul123/rayray/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DeveloperPaul123%2Frayray/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":262136912,"owners_count":23264661,"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":["c-plus-plus","cpp","cpp11","cpp17","graphics","raytracer","raytracing","raytracing-engine","raytracing-one-weekend","standard-template-library","stl"],"created_at":"2024-11-08T08:22:50.690Z","updated_at":"2025-06-26T20:02:38.526Z","avatar_url":"https://github.com/DeveloperPaul123.png","language":"C++","readme":"# rayray\n\n[![Build Status](https://travis-ci.org/DeveloperPaul123/rayray.svg?branch=master)](https://travis-ci.org/DeveloperPaul123/rayray)\n[![Build status](https://ci.appveyor.com/api/projects/status/d3yx9e3kj2ktexgr/branch/master?svg=true)](https://ci.appveyor.com/project/DeveloperPaul123/rayray/branch/master)\n[![Codacy Badge](https://api.codacy.com/project/badge/Grade/7432fb223efc4b0cb92c84dbeb84e717)](https://www.codacy.com/app/developerpaul123/rayray?utm_source=github.com\u0026amp;utm_medium=referral\u0026amp;utm_content=DeveloperPaul123/rayray\u0026amp;utm_campaign=Badge_Grade)\n[![CodeFactor](https://www.codefactor.io/repository/github/developerpaul123/rayray/badge)](https://www.codefactor.io/repository/github/developerpaul123/rayray)\n[![HitCount](http://hits.dwyl.io/DeveloperPaul123/rayray.svg)](http://hits.dwyl.io/DeveloperPaul123/rayray)\n[![](https://tokei.rs/b1/github/DeveloperPaul123/rayray)](https://github.com/DeveloperPaul123/rayray)\n\nrayray is a baby raytracer I've been working on in my spare time. The goal is to create a decent raytracer in pure C++ 17. The current API is under heavy development but check back soon for updates!\n\nCurrently, the API looks something like this:\n\n````cpp\nint main(int argc, char* argv[])\n{\n\tusing vec3 = rayray::vector\u003cdouble, 3\u003e;\n\tusing uchar = unsigned char;\n\n    rayray::pinhole_camera camera;\n    camera.set_eye(0, 0, 500);\n    camera.set_lookat(0, 0, 0);\n    camera.set_view_plane_distance(500);\n    camera.compute_uvw();\n\n    rayray::sphere sp1({ -45.0, 45.0, 40.0 }, 50.0);\n    sp1.set_color(rayray::red());\n\n    rayray::scene basic_scene;\n    basic_scene.add_object(\u0026sp1);\n    basic_scene.set_background_color({ 0.0, 0.0, 1.0 });\n\n    rayray::view_plane view_plane(300, 300, 1.0, 1.0);\n\n    // initialize the sampler and generate the samples\n    rayray::multijittered_sampler sampler(25); \n    sampler.generate_samples();\n\n    view_plane.set_sampler(\u0026sampler);\n    basic_scene.set_view_plane(view_plane);\n\n    rayray::multi_object_tracer multi_object_tracer(\u0026basic_scene);\n    basic_scene.set_tracer(\u0026multi_object_tracer);\n\n    auto output_image = camera.render_scene(basic_scene);\n\n\tconst auto ok = rayray::io::write_ppm_image(output_image, \"output.ppm\");\n\n\tif(!ok)\n\t{\n\t\tstd::cout \u003c\u003c \"Could not output image.\" \u003c\u003c std::endl;\n        return -1;\n\t}\n\n\treturn 0;\n}\n````\n\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdeveloperpaul123%2Frayray","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdeveloperpaul123%2Frayray","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdeveloperpaul123%2Frayray/lists"}