Skip to content

Repository files navigation

Carbon trinity

Rendering engine for the Carbon Game Engine, the technology behind EVE Online and EVE Frontier.

Trinity is a C++ renderer with DirectX 11, DirectX 12 and Metal backends, a shader compiler, and a Python exposure layer through Blue. It is one of the Carbon Engine components.

🛠️ Building

Prerequisites

  • Git, with SSH access to GitHub. The two submodules clone over HTTPS, but the carbon-* packages that vcpkg builds from our registry are fetched over SSH (git@github.com:carbonengine/...).
  • CMake 3.31 or newer (required by CMakePresets.json).
  • Windows: Visual Studio 2026 with the v145 C++ build tools.
  • macOS: Xcode command line tools.
git clone --recurse-submodules https://github.com/carbonengine/trinity.git

Or if already cloned then git submodule update --init --recursive

Dependencies come through vcpkg: vendor/github.com/microsoft/vcpkg plus the Carbon vcpkg registry for the carbon-* components and a few SDKs. The first configure builds them, which takes a while.

Generate a solution

Generate a solution, then you can handle the rest from your IDE for local dev workflows:

cmake --preset x64-windows-internal

This will generate an .slnx at .cmake-build-<preset-name>/. Run cmake --list-presets to see the presets (x64-windows-*, arm64-osx-*, x64-osx-*, each in internal, release, debug and trinitydev flavours).

Or build from the command line:

cmake --build .cmake-build-x64-windows-internal --config Release
  • Open the generated solution, not the repo folder. Opening the folder makes Visual Studio reconfigure the same build directory

Configure fails on a missing /scripts/toolchains/windows.cmake? Set PATH_TO_VCPKG_ROOT in your environment to <repo>/vendor/github.com/microsoft/vcpkg.

Options

All are OFF by default, so a plain build has no renderer backend. Pass them as -D when generating; each one pulls extra vcpkg packages on that configure.

Option Effect
BUILD_DX11 DirectX 11 targets
BUILD_DX12 DirectX 12 targets
BUILD_METAL Metal targets
BUILD_SHADER_COMPILER Build the shader compiler
WITH_GRANNY Granny .gr2 support

Working with Monolith

To install trinity next to the rest of the engine components, add the destination when generating the solution:

cmake --preset x64-windows-internal `
  -DINSTALL_TO_MONOLITH=ON `
  -DCMAKE_INSTALL_PREFIX="<vendor-folder>"

🤝 Contributing

Contributions are welcome. Please read the Carbon Engine contributing guide before opening an issue or pull request. It covers the workflow, the CLA and the pull request template, and applies to every carbonengine repository. Please also follow the Code of Conduct, and report security issues privately as described in the Security Policy rather than in a public issue.

By submitting a pull request or otherwise contributing to this project, you agree to license your contribution under the MIT License, and you confirm that you have the right to do so.

📄 License and Legal Notices

© 2026 Fenris Creations

This software is provided by Fenris Creations. See NOTICE for included 3rd party code.

Trademark Notice: Fenris Creations is a trademark of CCP ehf.

This project is licensed under the MIT License. Nothing in the MIT License grants any rights to Fenris Creations' trademarks or game content.

About

Rendering engine for the Carbon Game Engine

Resources

Code of conduct

Contributing

Security policy

Stars

460 stars

Watchers

2 watching

Forks

Releases

Packages

Used by

Contributors

Languages