Kaleido3D is a cross-platform graphics library, which provides:
- Next-Gen Graphics API Agnostic Layer (NGFX) for
Metal,VulkanandDX12- Multi-Threaded Rendering
- GLTF as Internal Mesh Format
- Experimental Real Time Ray-tracing Support (DXR/RTXVK)
NOTE: This project is heavily under development currently.
- Iris Build System
- Python 2.7 (x64)
- Visual Studio 2017+
- iOS Build Environment (Build iOS App on Windows)
- NDK 14+
- Xcode 8+
- Unity3D ShaderLab parser located in
src/NGFX/Private/ShaderLab - D3D12 & Vulkan graphics backend for NGFX (new)
src/NGFX/D3D12&src/NGFX/Vulkan - Ray tracing
- Old-style RHI with vulkan backend in
src/RHI
.github/: GitHub workflows and repository automation..vscode/: Workspace settings for local development.build/: Generated build trees, intermediate files, and platform-specific outputs.dev/: Developer-facing tools, editors, project generators, and experimental utilities.docs/: Design notes, API difference documents, screenshots, diagrams, and static site assets.scripts/: Shared helper scripts, mainly CMake modules and build utilities.src/: Main source tree for the engine, rendering stack, platform code, and supporting modules.
src/Core/: Foundational runtime layer, including containers, math, threading, reflection/runtime helpers, networking utilities, and cross-platform abstractions.src/Engine/: High-level engine systems such as scenes, cameras, materials, asset loading, render resource management, and gameplay-facing engine context.src/Entity/: Scene/entity definitions for lights, terrain, sky, vehicles, water, and other world objects.src/Launcher/: Application entry point used to bootstrap the engine/runtime.src/Log/: Logging interfaces and implementation.src/Metal/: Metal-related tooling and translation code, including shader conversion (metal binary ir to vulkan spirv) and backend support utilities.src/Network/: Networking and HTTP module implementations with unit tests.src/NGFX/: The newer graphics abstraction layer, including public headers, backend implementations, generated IDL interfaces, tests, and samples.src/NGFX_rust/: Rust experiments and bindings around NGFX concepts.src/Physics/: Physics integration and vehicle-related helpers.src/Platform/: Platform-specific application, window, and input code for Android, Apple platforms, Linux, and Microsoft platforms.src/Render/: Experimental software-rendering components.src/Renderer/: Higher-level renderer implementation built on top of the rendering abstractions.src/RHI/: Older rendering hardware interface and backend-specific implementations such as D3D12, Vulkan, OpenGL, and Metal.src/Script/: V8-based scripting integration and script-side test applications.src/ShaderCompiler/: Shader compilation and cross-compilation pipeline for multiple graphics APIs.src/UI/: UI canvas, layout, text layout, and device-facing UI helpers.
dev/Android/: Scripts for generating Android project and Gradle scaffolding.dev/ArtServer/: Asset-processing utilities related to shaders and textures.dev/CppReflector/: Reflection/code-generation tooling for C++ types.dev/Editor/: Editor applications and node/material editing tools.dev/IrisBuild/: Bundled Iris Build executables and helper scripts used by legacy build/code-generation workflows.dev/MayaDCC/: Autodesk Maya integration and plugin sources.dev/mixdevice/: Rust-based device communication tooling for Android/iOS workflows.dev/Mobile/: Mobile device bridge and performance-monitoring utilities.dev/ResourceCompiler/: Resource conversion and compilation tools.dev/VSVisualizer/: Visual Studio debugger visualizer assets.dev/WebConsole/: Browser-based web console/debug UI assets.
docs/images/: Screenshots, icons, and visual assets referenced by documentation.docs/book/: Longer-form book-style documentation sources.docs/javascripts/anddocs/stylesheets/: Static site assets for the generated documentation pages.
Note: the repository contains both newer NGFX-based rendering code and older RHI-era modules. Some directories are experimental or preserved for legacy tooling and platform support.
Currently, NGFX headers and sources are generated by an C++11-like IDL compiler (inside iris build toolbox)
See the differences of NGFX implementation across graphics backends here.
If you have any suggestion, please contact me via email or join the QQ Group/Discord to discuss on this project. Framework development discussions and thorough bug reports are collected on Issues.
ThirdParty Libraries:
- ZLib (Core)
- Robin-Map
- VOLK (Meta loader for Vulkan API )
- Vulkan Memory Allocator (NGFX)
- Glslang (ShaderCompiler)
- SPIRV-CROSS (ShaderCompiler)
- SPIRV-TOOLS (ShaderCompiler)
- LLVM (Reflection)
- Clang (Reflection)
- GoogleV8 (Script)
- GoogleTest (Unit Test)
- imobiledevice (MobileDevice)


