Skip to content

Repository files navigation

Vkxel

An experimental C++20 / Vulkan 1.3 engine prototype for signed-distance fields, dual contouring, and editor-first procedural rendering workflows.

Build status C++20 Vulkan 1.3 Windows macOS MIT License

Downloads · Overview · Build · Controls · Layout · License

Downloads

Windows macOS
Release Release
RelWithDebInfo RelWithDebInfo
Debug Debug

Overview

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 SDFSurface primitives 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.

Build And Run

Prerequisites

  • 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 Vkxel

If you already cloned the repository without submodules:

git submodule update --init --recursive

Build with CMake:

cmake -B build -G Ninja -DCMAKE_BUILD_TYPE=Release
cmake --build build --config Release --target Vkxel

After 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.

Controls

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

Repository Layout

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/.

License

This project is licensed under the MIT License.

About

Vkxel is a Vulkan-based voxel graphics engine that supports real-time geometry modification.

Topics

Resources

Stars

2 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages