Loom is a node-based deep compositor.
This section provides technical details on the project structure, dependencies, and instructions for setting up your local environment to contribute.
src/: Core implementation files (.cpp).include/: Public header files (.hpp).external/: Third-party libraries and dependencies (e.g., Dear ImGui).shaders/: GLSL/Vulkan shader source files.build/: Compilation artifacts and binaries.build/bin/: Location of the compiled executable files.
To build and run Loom, you will need:
- Vulkan SDK: Required for graphics rendering.
- C++20 Compiler: Such as GCC 10+, Clang 10+, or MSVC 19.26+.
- CMake: Version 3.14 or newer.
- Git: For dependency management.
Loom requires the Vulkan SDK to be installed and correctly configured on your system.
- Download and Install: Get the latest SDK from LunarG's Vulkan SDK page.
- Environment Variables: Ensure your environment is configured so the application can find the Vulkan drivers and layers.
- macOS/Linux: Source the
setup-env.shscript included in the SDK:Tip: Add this to yoursource /path/to/VulkanSDK/version/setup-env.sh~/.zshrcor~/.bashrcto make it permanent. - Windows: The installer typically sets the
VULKAN_SDKenvironment variable automatically.
- macOS/Linux: Source the
-
Create and enter the build directory:
mkdir build cd build -
Configure the project: You can specify the build type using
-DCMAKE_BUILD_TYPE. Options includeDebug(default),Release, andSanitize(enables Address and Undefined Behavior sanitizers).cmake -DCMAKE_BUILD_TYPE=Debug ..
Note: Dependencies like GLFW and GoogleTest will be automatically downloaded during this step.
-
Build the project:
cmake --build . --parallel -
Run the executable or tests:
./bin/Loom ./bin/LoomTests
If you have CMake 3.21+ installed, you can use presets for a more streamlined workflow:
-
Configure with a preset:
cmake --preset debug # or 'release', 'sanitize' -
Build with a preset:
cmake --build --preset debug
-
Run tests with a preset:
ctest --preset debug
We use clang-format and the pre-commit framework to maintain a consistent code style (based on Google style with 4-space indents).
- Install
pre-commit:- macOS:
brew install pre-commit - Windows/Linux:
pip install pre-commit
- macOS:
- Activate the hooks: Run
pre-commit installin the project root.
Once activated, git commit will automatically format your code. If any files are reformatted, the commit will be stopped; you must git add the changes before attempting the commit again.
GitHub Actions run style checks on every push and pull request. Use the pre-commit hooks locally to ensure your code matches the project's formatting standards and passes CI.
- C++20 & Vulkan 1.3 — Core engine and GPU infrastructure.
- Dear ImGui — Node editor and viewport UI.
- AI Collaboration — Google Gemini and Anthropic Claude Sonnet assisted in architectural review, feature planning, programming, bug fixing, and documentation drafting.