{"id":44242430,"url":"https://github.com/miarolfe/accelerated-raytracing-testbed","last_synced_at":"2026-02-10T11:41:33.058Z","repository":{"id":332101916,"uuid":"1125994890","full_name":"miarolfe/accelerated-raytracing-testbed","owner":"miarolfe","description":"A test platform for comparison of ray-tracing acceleration structures","archived":false,"fork":false,"pushed_at":"2026-01-20T22:48:34.000Z","size":5887,"stargazers_count":2,"open_issues_count":1,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-01-21T08:38:17.869Z","etag":null,"topics":["acceleration-structure","cpp","cpp17","ray-tracing"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":false,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/miarolfe.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-12-31T20:29:33.000Z","updated_at":"2026-01-20T22:48:38.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/miarolfe/accelerated-raytracing-testbed","commit_stats":null,"previous_names":["miarolfe/accelerated-raytracing-testbed"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/miarolfe/accelerated-raytracing-testbed","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/miarolfe%2Faccelerated-raytracing-testbed","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/miarolfe%2Faccelerated-raytracing-testbed/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/miarolfe%2Faccelerated-raytracing-testbed/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/miarolfe%2Faccelerated-raytracing-testbed/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/miarolfe","download_url":"https://codeload.github.com/miarolfe/accelerated-raytracing-testbed/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/miarolfe%2Faccelerated-raytracing-testbed/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29298507,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-10T10:40:02.018Z","status":"ssl_error","status_checked_at":"2026-02-10T10:38:28.459Z","response_time":65,"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":["acceleration-structure","cpp","cpp17","ray-tracing"],"created_at":"2026-02-10T11:41:32.405Z","updated_at":"2026-02-10T11:41:33.053Z","avatar_url":"https://github.com/miarolfe.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# ART (Accelerated Raytracing Testbed)\n\n\u003cimg width=\"1920\" height=\"1080\" alt=\"A 10x10x10 3D grid of spheres spaced out\" src=\"https://github.com/user-attachments/assets/ebd9bc40-8a74-40fc-85b7-01dea756f84c\" /\u003e\n\nART is a ray tracing testbed designed to benchmark and compare different spatial acceleration structures used in CPU ray tracing.\n\n\u003cimg src=\"https://github.com/user-attachments/assets/64af592d-fe99-4d9a-8c86-1aa5b140bfdb\"\u003e\n\nIt features a full GUI for ease of use.\n\n## Key features\n\n- [x] Path tracing renderer\n- [x] Uniform grid acceleration structure\n- [x] Hierarchical uniform grid acceleration structure\n- [X] Octree acceleration structure\n- [X] BSP tree acceleration structure\n- [X] k-d tree acceleration structure\n- [x] Bounding volume hierarchy (BVH) acceleration structure\n- [x] Basic time-based performance benchmarking\n\n## Future work\n\n- [ ] Comprehensive performance benchmarking\n- [ ] Wide range of varied test scenarios\n\n## System requirements\n\nLinux and Windows are actively supported. This is a C++17 project; it is untested with older C++ standards and may not compile.\n\n### Dependencies\n\nMost dependencies are bundled in the `external/` directory:\n- **Catch2** - Header-only C++ testing framework\n- **imgui** - Immediate mode GUI library (GUI builds only)\n- **SDL3** - Cross-platform multimedia library (GUI builds only)\n  - Windows: Bundled in `external/SDL3/`\n  - Linux: Install via package manager (e.g., `sudo apt install libsdl3-dev` or equivalent)\n- **stb_image, stb_image_write** - Single-header image I/O libraries\n\n## Building\n\n### Build configurations\n\nThe project supports three build modes:\n- **GUI** - Interactive graphical interface using SDL3 and imgui\n- **Headless** - Command-line only, no GUI dependencies required\n- **Test** - Command-line only, unit test suite\n\n### Linux\n\n```bash\n./build.sh                      # Debug Headless build (default)\n./build.sh debug                # Debug Headless build\n./build.sh debug_gui            # Debug GUI build\n./build.sh release              # Release Headless build\n./build.sh release_gui          # Release GUI build\n./build.sh test                 # Build test suite\n```\n\n### Windows\n```\n./generate_vs2022_solution.bat\n```\nThen open the generated solution and select the desired configuration:\n- `Debug_GUI`\n- `Debug_Headless`\n- `Release_GUI`\n- `Release_Headless`\n- `Test`\n\n### Output locations\n\n- `bin/Debug_Headless/ART` - Debug headless executable\n- `bin/Debug_GUI/ART` - Debug GUI executable\n- `bin/Release_Headless/ART` - Optimized headless executable\n- `bin/Release_GUI/ART` - Optimized GUI executable\n- `bin/Test/ART` - Test suite executable\n\n### Runtime dependencies (Linux)\n\nOn Linux, GUI executables require the SDL3 shared library to be installed. Install it via your package manager before running GUI builds:\n\n- **Ubuntu/Debian**: `sudo apt install libsdl3`\n- **Fedora**: `sudo dnf install SDL3`\n\n## Quick start\n\n```bash\ngit clone https://github.com/miarolfe/accelerated-raytracing-testbed\ncd accelerated-raytracing-testbed\n./build.sh release      # Linux - use \"generate_vs2022_solution.bat\" on Windows\n./bin/Release_Headless/ART\n```\n\n## Testing\n\n### Running tests\n\n```bash\n./build.sh test         # Build test configuration\n./bin/Test/ART          # Run test suite\n```\n\n### Continuous integration\n\nGitHub Actions automatically runs tests on every push and pull request to the `main` branch. Tests execute on `ubuntu-latest` and `windows-latest`. Check the Actions tab for build logs and test results.\n\n## License\n\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.\n\n### Third-party licenses\n\n- **Catch2** - Boost Software License 1.0 (see `external/Catch2/`)\n- **imgui** - MIT License (see `external/imgui/`)\n- **SDL3** - zlib License (see `external/SDL3/`)\n- **stb_image, stb_image_write** - Public domain / MIT (see headers in `external/stb/`)\n\n## Acknowledgments\n\n- **Catch2** - [C++ testing framework](https://github.com/catchorg/Catch2)\n- **imgui** - [Immediate mode graphical user interface](https://github.com/ocornut/imgui)\n- **SDL3** - [Platform abstraction layer](https://github.com/libsdl-org/SDL)\n- **stb_image, stb_image_write** - [Public domain image single-header libraries (stb_image, stb_image_write)](https://github.com/nothings/stb)\n- This project, and my interest in ray tracing, were heavily inspired by the [\"Ray Tracing in One Weekend\" series](https://raytracing.github.io/). Check them out!\n\n---\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmiarolfe%2Faccelerated-raytracing-testbed","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmiarolfe%2Faccelerated-raytracing-testbed","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmiarolfe%2Faccelerated-raytracing-testbed/lists"}