{"id":17632979,"url":"https://github.com/nolmoonen/cuda-sdf","last_synced_at":"2026-02-12T22:33:14.641Z","repository":{"id":176099839,"uuid":"456584639","full_name":"nolmoonen/cuda-sdf","owner":"nolmoonen","description":"CUDA-accelerated path traced Menger sponge using ray marching.","archived":false,"fork":false,"pushed_at":"2024-11-03T11:17:49.000Z","size":4938,"stargazers_count":3,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-23T21:11:31.379Z","etag":null,"topics":["cuda","menger","path-tracer","ray-marching","sdf"],"latest_commit_sha":null,"homepage":"","language":"Cuda","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/nolmoonen.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":"2022-02-07T16:24:00.000Z","updated_at":"2025-01-27T06:10:28.000Z","dependencies_parsed_at":null,"dependency_job_id":"952c4367-8f6b-4145-a3f9-1e838b727799","html_url":"https://github.com/nolmoonen/cuda-sdf","commit_stats":null,"previous_names":["nolmoonen/cuda-sdf"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/nolmoonen/cuda-sdf","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nolmoonen%2Fcuda-sdf","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nolmoonen%2Fcuda-sdf/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nolmoonen%2Fcuda-sdf/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nolmoonen%2Fcuda-sdf/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/nolmoonen","download_url":"https://codeload.github.com/nolmoonen/cuda-sdf/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nolmoonen%2Fcuda-sdf/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29383964,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-12T22:07:52.078Z","status":"ssl_error","status_checked_at":"2026-02-12T22:07:49.026Z","response_time":55,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["cuda","menger","path-tracer","ray-marching","sdf"],"created_at":"2024-10-23T01:46:41.243Z","updated_at":"2026-02-12T22:33:14.626Z","avatar_url":"https://github.com/nolmoonen.png","language":"Cuda","funding_links":[],"categories":[],"sub_categories":[],"readme":"`cuda-sdf` performs naive path tracing of a signed distance field (SDF) using\nray marching, accelerated with CUDA. The below one-megapixel image displays the\nMenger sponge, with a thousand samples and up to 80 bounces, generated in about\n150 seconds on an RTX 2070. Note that the RTX ray shooting capabilities cannot\nbe not used, as the geometry is implicitly defined.\n\n![](doc/splash.png)\n\n## Performance\n\nA naive implementation (`generate_pixel_naive`), where each thread is assigned a\npixel and computes all samples for that pixel, computes the above image in about\n150 seconds. An alternative implementation (`generate_pixel_regeneration`)\nspawns a pool of persistent threads that regenerate paths when they terminate,\nreducing the number of idle threads in a warp. This gives an 4.5% decrease in\nruntime and a 2% increase in occupancy, as reported by Nsight Compute.\n\n## System requirements and dependencies\n\nThe following third-party dependencies are included:\n\n* [stb](https://github.com/nothings/stb) for writing PNG files.\n* `sutil` from the [OptiX](https://developer.nvidia.com/optix) SDK samples for\n  random number generation and vector- and matrix math.\n\n## Resources\n\n* _Menger Fractal_  \n  Quillez, I. [[link]](https://iquilezles.org/www/articles/menger/menger.htm)  \n  This article explains how the Menger fractal can be represented by an SDF.\n* _Ray Tracing Gems II: Chapter 14, The Reference Path Tracer_  \n  Boksansky, J. and Marrs,\n  A. [[link]](https://link.springer.com/book/10.1007/978-1-4842-7185-8)  \n  This chapter explains how to create a simple path tracer.\n* _Path Regeneration for Interactive Path Tracing_  \n  Novák J. et\n  al. [[link]](https://diglib.eg.org/handle/10.2312/egsh.20101048.061-064)  \n  Explains the concept of path regeneration.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnolmoonen%2Fcuda-sdf","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnolmoonen%2Fcuda-sdf","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnolmoonen%2Fcuda-sdf/lists"}