An experimental C++20 / Vulkan 1.3 engine prototype for signed-distance fields, dual contouring, and editor-first procedural rendering workflows.
Downloads · Overview · Build · Controls · Layout · License
| Windows | macOS |
|---|---|
| Release | Release |
| RelWithDebInfo | RelWithDebInfo |
| Debug | Debug |
Vkxel combines a small component-based runtime with an editor-style UI so you can inspect scenes, author procedural content, and iterate on rendering experiments from inside the app.
Today, the project includes:
- A scene graph and component-driven world model
- ImGui-powered editor panels for scene browsing and inspection
- Reflection-backed inspector editing for supported component data
- A Slang shader pipeline that compiles to SPIR-V at runtime
- CPU dual contouring over
SDFSurfaceprimitives and CSG combinations - An experimental GPU dual contouring path driven by Vulkan compute shaders
CI currently builds the project on Windows and macOS across Debug, RelWithDebInfo, and Release.
- Git with submodule support
- CMake
3.25+ - Ninja
- A C++20 compiler
- A working Vulkan environment and compatible GPU driver/runtime
Platform notes:
- Windows: MSVC is required by the CMake configuration.
- macOS: Clang is required, and the project currently targets
arm64.
Clone with recursive submodules:
git clone --recurse-submodules https://github.com/Jiay1C/Vkxel.git
cd VkxelIf you already cloned the repository without submodules:
git submodule update --init --recursiveBuild with CMake:
cmake -B build -G Ninja -DCMAKE_BUILD_TYPE=Release
cmake --build build --config Release --target VkxelAfter the build finishes, launch the executable from the generated output directory:
- Windows:
build/Vkxel/bin/Vkxel.exe - macOS:
build/Vkxel/bin/Vkxel
During the build, the shader/ directory is copied next to the executable. On first use, Slang shaders are compiled to
SPIR-V and cached as .spv files beside their source in the runtime shader directory.
The current camera controller uses the following inputs:
| Input | Action |
|---|---|
W / A / S / D |
Move forward / left / back / right |
Q / E |
Move down / up |
Shift |
Accelerate movement |
| Right mouse drag | Rotate camera |
Vkxel keeps most of its project-specific code under source/, with rendering and shader code split into focused
modules:
| Path | Purpose |
|---|---|
source/engine |
Windowing, input, renderer setup, GUI integration, timing, resources, and compute infrastructure |
source/editor |
Editor-facing panels such as the scene tree and inspector UI |
source/world |
Scene, game object, transform, camera, drawer, mesh, and gameplay-style components |
source/custom |
Procedural surface logic, CPU dual contouring, and experimental GPU dual contouring |
source/entry |
App entrypoint plus the demo scene and model library setup |
shader |
Slang source files for graphics, compute, SDF helpers, and utility math |
The repository also vendors most third-party dependencies through external/.
This project is licensed under the MIT License.