This project is a GPU-accelerated path tracing engine built with CUDA and Vulkan. It is still in the early stages of development, in addition to the core rendering system, it also includes a scene system, a camera system, and a UI system. It is built with the intention of being a learning experience for me, and to serve as a foundation for future projects.
- Real-time path tracing using CUDA
- Physically based rendering (PBR) with Cook-Torrance BRDF
- Support for diffuse and metallic materials with configurable properties:
- Albedo
- Roughness
- Metallic factor
- Fresnel reflection (F0)
- Multiple importance sampling for efficient light sampling
- Cosine weighted hemisphere sampling
- GGX microfacet distribution
- Accumulation buffer for progressive refinement
- Sphere primitive support with configurable:
- Position
- Radius
- Material assignment
- Point light system with:
- Position
- Color
- Intensity
- Interactive camera with:
- WASD movement
- Mouse look
- FOV control
- Near/far clip planes
- Hybrid rendering pipeline using Vulkan for display and CUDA for compute
- Multi-threaded ray direction computation
- ImGui-based UI for real-time parameter tuning
- GLFW windowing system
- GLM math library integration
- Parallel ray tracing on GPU
- Configurable bounce depth
- Frame accumulation for noise reduction
- Real-time FPS counter and render time display
Currently supports Windows 10/11 with Visual Studio 2022 and has been tested on Arch Linux (6.14.4-arch1-1 kernel).
Requires:
- CUDA Toolkit (NVIDIA GPU required)
- Vulkan SDK
- GLFW, GLM, ImGui, stb and nlohmann's json (included as submodules)
-
Clone recursively:
git clone --recursive https://github.com/1neskk/Ataraxia -
Run the dependency installer if needed:
Scripts/dependencies.bat -
Run the build script:
Scripts/build.bat -
Open the resulting solution file:
cd build && start Ataraxia.sln
Warning
This project has better support for X11, but it should work with Wayland as well. If there are any issues with Wayland, you can force X11 by setting the environment variable FORCE_X11 to 1.
-
Clone recursively:
git clone --recursive https://github.com/1neskk/Ataraxia -
Install the dependencies manually through your package manager or use the official websites (Scripts/dependencies.sh is not available yet).
-
Run the build command:
make build -
Open the resulting project file in your preferred IDE or run the executable directly from the build directory.
The engine provides an interactive viewport where you can:
- Move the camera using WASD keys and right mouse button
- Adjust material properties in real-time
- Configure light parameters
- Toggle accumulation for higher quality renders
- Reset frame accumulation when needed
- Monitor performance metrics
This project is licensed under the MIT License - see the LICENSE file for details.
Contributions are welcome! Please feel free to submit a pull request or open an issue if you have suggestions or improvements.


