{"id":20013449,"url":"https://github.com/kaierikniermann/julia-rt","last_synced_at":"2026-06-07T02:31:57.651Z","repository":{"id":179810431,"uuid":"664171063","full_name":"KaiErikNiermann/julia-rt","owner":"KaiErikNiermann","description":"Ray Tracing in Julia: A project exploring the fundamentals of ray tracing, using the Julia programming language.","archived":false,"fork":false,"pushed_at":"2023-08-06T14:04:31.000Z","size":20712,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-01-12T15:11:28.393Z","etag":null,"topics":["julia","raytracing"],"latest_commit_sha":null,"homepage":"","language":"Julia","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/KaiErikNiermann.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}},"created_at":"2023-07-09T05:50:11.000Z","updated_at":"2024-01-14T07:24:10.000Z","dependencies_parsed_at":null,"dependency_job_id":"71ca524e-20e1-4149-aa01-ab721e2fc06c","html_url":"https://github.com/KaiErikNiermann/julia-rt","commit_stats":{"total_commits":33,"total_committers":2,"mean_commits":16.5,"dds":"0.030303030303030276","last_synced_commit":"11b0813624c341e5a6a2d6d1b450dcc4c09b7f65"},"previous_names":["kaierikniermann/julia-rt"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/KaiErikNiermann%2Fjulia-rt","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/KaiErikNiermann%2Fjulia-rt/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/KaiErikNiermann%2Fjulia-rt/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/KaiErikNiermann%2Fjulia-rt/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/KaiErikNiermann","download_url":"https://codeload.github.com/KaiErikNiermann/julia-rt/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":241448345,"owners_count":19964456,"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":["julia","raytracing"],"created_at":"2024-11-13T07:36:39.178Z","updated_at":"2025-03-02T02:24:32.636Z","avatar_url":"https://github.com/KaiErikNiermann.png","language":"Julia","funding_links":[],"categories":[],"sub_categories":[],"readme":"\n# Ray Tracing - Julia\n\n[![Julia v1.9.2](https://img.shields.io/badge/Julia-v1.9.2-blue.svg)](https://julialang.org/downloads/oldreleases/#v192)\n\nThis project is an exploration into ray tracing using the Julia programming language. I included the intermediary steps following the [_Ray Tracing in One Weekend_](https://raytracing.github.io/books/RayTracingInOneWeekend.html) guide in the `scripts` folder, along with some explanation for each of the files to document anything of interest. The final ray tracer resides `src` folder.\n\n## Motivation\n\nThere are various reasons I've wanted to do this.\nFor a while I have been interested in Julia and I thought this project would be a nice way to learn the language.\nAdditionally I thought this would be a nice way to solidify certain concepts in linear algebra and geometry.\nAnd finally there is the obvious aspect of gaining some nice insights into the basics of ray tracing and computer graphics.\n\n## Progression\n\n### Basic sphere\n\nGenerated with `julia scripts/basic_sphere.jl`\n\n![sphere](assets/red_sphere.png)\n\n### Surface normals\n\nGenerated with `julia scripts/basic_normals`\n\n![normals](assets/basic_normals.png)\n\n### Surface normals with AA\n\nGenerated using `scripts/basic_proj` @ commit `257c5cd3cbf507299bcb9677d786cb984bb66bd0`\n\n![normals_w_AA](assets/normals_with_AA.png)\n\n### Lambertian\n\nGenerated using `scripts/basic_proj` @ commit `cee94f5dd9f1c15bfea6616898079167c33d4b8d`\n\n![lambertian](assets/correct_lambertian.png)\n\n### Fuzzed metals\n\nGenerated using `scripts/basic_proj` @ commit `988b814b8a6d8f9ecb5b996979471f70d4fe3523`\n\n![fuzzed_metal](assets/fuzzed_metals.png)\n\n### Refraction\n\nGenerated using `scripts/basic_proj` @ commit `988b814b8a6d8f9ecb5b996979471f70d4fe3523`\n\n![refraction_demo](assets/refraction.png)\n\n## References\n\n- [_Ray Tracing in One Weekend_](https://raytracing.github.io/books/RayTracingInOneWeekend.html)\n- [_Linear Algebra and its Applications_](https://www.pearson.com/en-us/subject-catalog/p/linear-algebra-and-its-applications/P200000006235)\n- [_Julia Documentation_](https://docs.julialang.org/en/v1/)\n- [_Computer Graphics from Scratch_](https://gabrielgambetta.com/computer-graphics-from-scratch/)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkaierikniermann%2Fjulia-rt","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkaierikniermann%2Fjulia-rt","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkaierikniermann%2Fjulia-rt/lists"}