Project Overview#
BeschleunigerBallett is a renderer and graphics-engine playground for Vulkan, a companion Rust WebGPU renderer, modern CMake, testing, packaging and Rust integration. These pages cover the build and maintenance workflow around the engine, not only its rendering features.
What is in Scope?#
Vulkan renderer (C++23 modules) with forward + deferred rasterization, ray tracing, path tracing, PBR, cascaded shadow maps (consumed by both lighting paths), skybox, volumetric clouds, OBJ and glTF 2.0/GLB loading, and mip mapping
VMA-backed memory, fence-synced uploads with a persistent staging buffer, a persisted
VkPipelineCache, and fail-fast Vulkan error handling (exceptions are disabled project-wide)Companion Rust WebGPU renderer (
third_party/OxidANT/crates/webgpu_renderer): glTF 2.0/GLB, PBR + IBL, CSM, SSAO, bloom, skinning, animations, LOD — runs natively and in the browser; shares Slang shader sources with the C++ Vulkan renderer (seeshader-sharing.md)Tooling: CMake presets, CI, code coverage, benchmarking, fuzzing (targets for OBJ and glTF parsing, texture decoding, the shader-file reader and the scene config), packaging, Sphinx, Doxygen, Graphviz
Linux and Windows as the primary development targets
Repository Map#
Path |
Purpose |
|---|---|
|
Engine and renderer source code |
|
Shaders, textures, test models, and |
|
This project’s CMake policy on top of ANTfrastructure’s modules |
|
Linux build, test, coverage, analysis, and docs helpers |
|
Windows build, run and validation helpers |
|
Planner/executor loop config, runners and prompt overlays |
|
Tests |
|
This site: the guides, roadmaps, audits and pipeline notes; the Docs table in |
|
The Linux desktop entry and AppStream file the packages install |
|
Generated PDF and other reference artifacts |
|
Third-party dependencies and submodules |
Supported Environments#
C++23 and C17 toolchains
CMake 4.1 or newer
Vulkan SDK 1.4 compatible environment for Vulkan builds
A Rust toolchain: every build links OxidANT’s cxx bridge through Corrosion
Roadmap#
Keep the renderer and tooling healthy on Linux and Windows; expand test, fuzz and performance coverage; keep documenting the build, packaging and API workflows; keep generated reference material easy to reproduce locally.
All open work is in BACKLOG.md:
sized commitments first, then unsized ideas and recurring chores (perf tests, periodic
profile/TSan/sync-validation runs).
Where to Go Next#
Getting Started: clone, configure, build, run
Documentation Workflow: Sphinx, Doxygen, Graphviz
Literature: the tutorials and papers behind the renderer
Graphviz Include Graphs (
graphviz_files.rst): the stable entry page for generated diagramsAPI Reference (
api/library_root.rst): the C++ API landing page; once Doxygen XML has been generated, the generated Exhale output replaces it
The last two pages are written by the docs build (graphviz_generator.py, and exhale or
the placeholder conf.py writes when no Doxygen XML is present), so they exist in a built
tree, not in the checkout. index.rst links them there; this page only names them.