Science Score: 44.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
✓CITATION.cff file
Found CITATION.cff file -
✓codemeta.json file
Found codemeta.json file -
✓.zenodo.json file
Found .zenodo.json file -
○DOI references
-
○Academic publication links
-
○Academic email domains
-
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (15.2%) to scientific vocabulary
Repository
Basic Info
- Host: GitHub
- Owner: gprt-org
- License: mit
- Language: C++
- Default Branch: master
- Size: 13.9 MB
Statistics
- Stars: 30
- Watchers: 5
- Forks: 6
- Open Issues: 18
- Releases: 1
Metadata Files
README.md
GPRT (General Purpose Raytracing Toolkit)
GPRT is a ray tracing API that wraps the Vulkan ray tracing interface.

Project Overview
The repository is organized into several key directories:
gprt/– the core library. Host APIs are implemented ingprt_host.h/gprt.cppwhile device-side shaders live ingprt.slang. Math helpers are undergprt/math/.samples/– tutorial-style examples showing how to build ray tracing applications with GPRT.tests/– host-side tests for buffers and acceleration structures.docs/– Sphinx documentation sources.3rdParty/– external dependencies pulled in as submodules.
GPRT uses CMake to compile the host code and the Slang/HLSL toolchain
for device shaders. After buffers and programs are set up, the shader
binding table is built with gprtBuildShaderBindingTable before
launching work on the GPU.
Dependencies
- CMake
- C++17
- Vulkan SDK (>= 1.4.309.0)
Documentation
GPRT's documentation can be found here.
Cloning
This repository contains submodules for external dependencies, so when doing a fresh clone you need to clone recursively:
git clone --recursive git@github.com:gprt-org/GPRT.git
Existing repositories can be updated manually:
git submodule init
git submodule update
Build Instructions
Install the Vulkan SDK for your platform (version 1.4.309.0 or greater).
GPRT uses CMake for configuration. For an empty directory, build, in the top
directory of this repository, the project can be configured with
shell
cmake ..
and built with
shell
cmake --build .
Ubuntu Dependencies
The following apt-packages should be installed:
shell
sudo apt install xorg-dev libxinerama-dev libglu1-mesa-dev freeglut3-dev mesa-common-dev libglfw3
along with the Vulkan SDK.
Note: if using Ubuntu 22 with Wayland (or other distros for that matter), the above x11 dev packages still work via xwayland.
Learning More
The documentation lists every host
and device API call. The samples are arranged as a progression of small
programs starting from samples/s0-rayGenPrograms; reading them is the
best way to become familiar with the API. The tests under tests/
provide additional usage examples for buffer and acceleration structure
operations.
Owner
- Name: General Purpose Raytracing Toolkit
- Login: gprt-org
- Kind: organization
- Email: natemorrical@gmail.com
- Repositories: 4
- Profile: https://github.com/gprt-org
Citation (CITATION.cff)
cff-version: 1.2.0
title: General Purpose Raytracing Tookit
message: >-
If you use this software, please cite it using the
metadata from this file.
type: software
authors:
- given-names: Nate
family-names: Morrical
email: natemorrical@gmail.com
affiliation: University of Utah
orcid: 'https://orcid.org/0000-0002-2262-6974'
- given-names: Patrick
family-names: Shriwise
email: pshriwise@anl.gov
affiliation: Argonne National Laboratory
orcid: 'https://orcid.org/0000-0002-3979-7665'
identifiers:
- type: doi
value: 10.5281/zenodo.8019116
description: Zenodo DOI of GPRT 1.0.0
repository-code: 'https://github.com/gprt-org/GPRT'
url: 'https://gprt-org.github.io/GPRT/'
abstract: >-
GPRT is an open source raytracing library that allows
developers to quickly prototype ideas involving
high-performance ray tracing. By providing a comprehensive
set of abstractions over Khronos's Vulkan API, GPRT
empowers developers to explore and push the boundaries of
ray tracing technology, enabling the creation of visually
stunning, informative and immersive visualizations and
simulations.
license: MIT
GitHub Events
Total
- Issues event: 3
- Watch event: 6
- Delete event: 2
- Issue comment event: 4
- Push event: 99
- Pull request event: 6
- Fork event: 3
- Create event: 10
Last Year
- Issues event: 3
- Watch event: 6
- Delete event: 2
- Issue comment event: 4
- Push event: 99
- Pull request event: 6
- Fork event: 3
- Create event: 10
Dependencies
- actions/checkout v2 composite
- humbletim/install-vulkan-sdk v1.1.1 composite
- humbletim/setup-vulkan-sdk v1.2.0 composite
- actions/checkout v3 composite
- actions/configure-pages v2 composite
- actions/deploy-pages v1 composite
- actions/setup-python v4 composite
- actions/upload-pages-artifact v1 composite
- humbletim/install-vulkan-sdk v1.1.1 composite
- breathe *
- sphinx *
- sphinx_rtd_theme *