Tellusim Core SDK

December 30, 2025 ยท View on GitHub

Tellusim Core SDK is the foundational layer of the Tellusim Engine, providing low-level functionality for high-performance graphics, compute, and application development across multiple platforms and devices. It offers a unified C++ API designed to abstract hardware and OS differences, enabling developers to write portable and scalable applications in graphics, simulation, visualization, and AI.

The SDK includes comprehensive support for meshes, images, user interfaces, and GPU-accelerated algorithms such as radix sort, bounding volume hierarchies (BVH), fast Fourier transforms (FFT), and GPU-driven computational graph framework for machine learning and advanced data processing.

In addition to C++, the SDK provides bindings and interoperability for other languages such as C#, Rust, Swift, Python, Java, and JavaScript, making it suitable for use in native mobile and desktop applications as well as game and graphics engines.

Happy coding, and have fun creating with Tellusim!

Getting Started

Documentation and Support

Platforms

Please choose the correct branch for your platform:

PlatformBranch
Windows x64Windows x64 Branch
Windows arm64Windows arm64 Branch
Linux x64Linux x64 Branch
Linux arm64Linux arm64 Branch
macOS x64macOS x64 Branch
macOS arm64macOS arm64 Branch
AndroidAndroid Branch
iOSiOS Branch
tvOStvOS Branch
WebWeb Branch

Licensing

  • Tellusim Core SDK is free for educational use by students, teachers, and academic institutions.
  • Tellusim Core SDK is free for non-commercial research by individuals or non-profit organizations.
  • Tellusim Core SDK is free for individuals and companies with total annual revenue under USD $200,000.
  • Tellusim Core SDK is free for evaluation, testing, learning, and other non-commercial experimentation.
  • Tellusim Core SDK is free for open-source, non-commercial projects distributed under OSI-approved licenses (MIT, BSD, GPL, LGPL, or Apache 2.0), provided such projects generate no revenue and do not sell, license, or otherwise monetize software built with the Tellusim Core SDK.
  • Tellusim Core SDK may be redistributed unmodified, along with binaries built with it, as part of free or open-source projects, provided the SDK itself is not sold, sublicensed, or rented for a fee.
  • Any other use, including production deployment, commercial projects, or client-facing demonstrations, requires a Tellusim Commercial License.

For full license terms, see the Tellusim Core SDK LICENSE

For inquiries, visit: Tellusim Services

Graphics

Clustered Lights

Forward shading with 16384 dynamic lights. This algorithm is compatible with deferred shading and transparent objects.

Clustered Lights


Meshlet Render

A massive meshlets rendering example with Mesh Shader for hardware and Compute Shader for software rasterization.
'1' activates Instancing mode.
'2' activates Mesh Shader mode.
'3' activates Compute rasterization mode.

Meshlet Render


Mesh RayTracing

Traversal class for the simple raytracing pipeline access. Vulkan or Direct3D12 API is required.

Mesh RayTracing


Mesh RayQuery

Ray Query raytracing of animated scene. Vulkan, Direct3D12, or Metal API is required.
'1' activates Fragment Shader raytracing (if available).

Mesh RayQuery


Hardware RayTracing

Hardware accelerated RayTracing of animated objects.

Hardware RayTracing


Compute RayTracing

Compute Shader RayTracing of animated objects.

Compute RayTracing


Hardware RayTracing

Hardware accelerated RayTracing of high-polygonal objects.

Hardware RayTracing


Compute RayTracing

Compute Shader RayTracing of high-polygonal objects.

Compute RayTracing


Compute Traversal

Compute Shader BVH tree traversal is a key technique in GPU-driven rendering that provides significantly better performance than CPU-based culling.

Compute Traversal


JPEG Decoder

The DecoderJPEG provides GPU-accelerated JPEG decoding functionality.

JPEG Decoder


Cube Filter

The CubeFilter interface performs real-time Cube texture filtration.

Cube Filter


Separable Filter

The SeparableFilter interface helps to create different separable filters like Gaussian, Sobel, Box, and custom weights.

Separable Filter


Indirect Draw

Drawing massive amount of quads using different indirect rendering techniques.

Indirect Draw


Geometry Shader

Rendering massive amount of boxes with Geometry Shaders.
'1' activates Vertex Shader mode.
'2' activates Mesh Shader mode (if available).

Geometry Shader


Tessellation Shader

Quadrilateral tessellation with Control + Evaluate or Mesh Shaders.
'1' activates Mesh Shader tessellation mode (if available).

Tessellation Shader


Ordered Independent Transparency

Ordered Independent Transparency with atomic buffer operations from the fragment shader.

Ordered Independent Transparency


Hardware Ray Tracing Shadows

Hardware raytracing shadows with simple deferred shading. An API with Ray Query support is required.

Hardware Ray Tracing Shadows


Software Ray Tracing Shadows

Software raytracing shadows with simple deferred shading. Compatible with all APIs.

Software Ray Tracing Shadows


Percentage Closer Filtering Shadow Map

PCF Shadow Maps provides shadow with variable penumbra size based on the distance between the shadow caster and receiver.

Percentage Closer Filtering Shadow Map


Exponential Shadow Maps

Exponential Shadow Maps provides noise-free shadows with a fixed performance cost and constant penumbra size.

Exponential Shadow Maps


Parallax 2D

Parallax occlusion mapping with self-shadowing for the mesh geometry.

Parallax 2D


Parallax Cube

Parallax occlusion mapping with self-shadowing for the analytical sphere.

Parallax Cube


Mesh Tangent Basis

Mesh tangent basis renormalization at the Fragment Shader. Mesh class can re-create normal and tangent vectors.

Mesh Tangent Basis


Mesh Model

MeshModel class creates a rendering model representation for the input Mesh or MeshGeometry with a specified Pipeline layout.
It is possible to inherit MeshModel class and combine multiple meshes into the single Buffer.

Mesh Model


Mesh Morphing

This is a basic morph mesh animation example. AttributeIndex provides a stable mapping between source and optimized vertices. Texel Buffer acts as a workaround for platforms that lack compute shader support.

Mesh Morphing


Mesh Skinning

This is a basic skinned mesh animation example. Mesh classes give comprehensive access to all mesh data, including Nodes, Animations, Materials, Cameras, and Lights.

Mesh Skinning


Multi Window

Rendering scene into multiple borderless windows.

Multi Window


Line Rendering

Simple antialiased line rendering. The Vertex shader creates a screen-aligned billboard, and the fragment shader calculates the distance to the line.

Line Rendering

Platform

Platform Precision

Performance and precision difference between 16-bit, 32-bit, and 64-bit floating formats.
'1' activates 64-bit precision.
'2' activates 16-bit precision.

Platform Precision


Platform Bindless

This example demonstrates bindless Buffer and Texture resources indexed by InstanceIndex. Vulkan, Direct3D12, or Metal API is required.

Platform Bindless


Platform TextureTable

TextureTable is an interface for an unlimited number of bindless textures that can be accessed from any shader by uniform or non-uniform index. Vulkan, Direct3D12, or Metal API is required.

Platform TextureTable


Platform Texel

Texel buffer provides cached buffer access that is compatible with OpenGLES platform. Moreover, it can work faster than the Storage buffer in some scenarios.

Platform Texel


Platform Texture

Dynamic 3D texture created with SIMD CPU instructions.

Platform Texture


Platform Command

Command class for basic rendering. Depth Cube texture for omnidirectional shadow map.

Platform Command


Platform Tracing

Hardware accelerated raytracing shadows. An API with Ray Query support is required.

Platform Tracing


Platform Compute

Compute class for simple compute shader texture generation.

Platform Compute


Platform Fence

Multi-GPU N-body simulation with Fence synchronization. A shared buffer is used for data exchange between GPUs.

Platform Fence


Platform Fence

Multi-GPU synchronization with fences and semaphores.

Platform Fence


Platform Sparse

This example shows how sparse textures allow handling very large textures by allocating only the needed tiles in GPU memory

Platform Sparse


Platform Mapped

This example shows how Vulkan can map files into GPU buffers, allowing the GPU to read from and write to files directly without extra copying.

Platform Mapped


Platform Formats

This example shows how mixed texture formats can reduce video memory consumption. Image format conversion is performed by the Image interface.

Platform Formats


Platform Dynamic

A single-thread dynamic geometry rendering can provide more than 100M triangles per second rate.

Platform Dynamic


Platform Clip Planes

Vertex Shader clip distance output is useful for arbitrary geometry culling.

Platform Clip Planes


Platform Stencil Buffer

Constructive Solid Geometry with the Stencil Buffer. This algorithm is compatible with procedural geometry.

Platform Stencil Buffer


Platform Fusion

Fusion API allows replicating all commands and resources across multiple physical or logical devices. It dramatically simplifies the development of apps for multi-GPU or multi-channel rendering.

Platform Fusion


Platform Layers

Demonstrates multilayer rendering where the target layer is selected dynamically in the Vertex Shader, Geometry Shader, or Geometry Passthrough Shader.

Platform Layers


Platform Viewports

Demonstrates multi-viewport rendering with dynamic viewport selection in the Vertex Shader, Geometry Shader, or Geometry Passthrough Shader.

Platform Viewports


Platform Samplers

Demonstrates various texture sampler configuration modes.

Platform Samplers


Barycentric Coordinates

Build-in barycentric coordinate input is available in Vulkan, Direct3D12, and Metal APIs.

Barycentric Coordinates


Multi Draw Indirect

This example performs MDI rendering of different objects.

Multi Draw Indirect


Vertex Attribute Divisor

This example demonstrates the use of a vertex attribute divisor to fetch per-draw data.

Vertex Attribute Divisor


MSAA Alpha Test

MSAA-compatible alpha test in comparison to hardware alpha to coverage.

MSAA Alpha Test


Input Blending Color

Blending color parameter defines uniform value for blending operations.

Input Blending Color


Multisample Antialiasing

This example performs AA line rendering into MSAA texture.

Multisample Antialiasing


Platform Preprocessor

This example demonstrates how to use the #include preprocessor directive to declare generic functions.

Platform Preprocessor


Platform Texture Samples

Writing and reading individual multisample texture samples with active Pipeline sample write mask.

Platform Texture Samples


Conservative Rasterization

Hardware conservative rasterization.

Conservative Rasterization


Cooperative Matrix (Tensor Cores)

Cooperative matrix example.

Cooperative Matrix (Tensor Cores)


Matrix Multiplication

Matrix multiplication example.

Matrix Multiplication


Subgroup operations

Shader subgroup operations.

Subgroup operations


Structure references

This test showcases GLSL structure mapping to raw SSBO buffer, enabling storage of data with different layouts within a single SSBO buffer.

Structure references


Shader Printf

A simple preprocessor-based printf() functionality for compute shaders that work with all APIs.

Shader Printf

Interface

Interface Canvas

Different CanvasElement classes, including texture filtration, gradients, contour outlines, and SVG rendering.

Interface Canvas


Interface Controls

Different User Interface Control classes in resolution-independent configuration.

Interface Controls


SVG

This plugin enables SVG images support for Control widgets.
docs.tellusim.com/core/plugins/interface/svg

SVG


Flow

Flow Control is a universal node-based editor designed for a variety of applications, including material and logic editing. It includes base implementations in both GLSL and C++.
docs.tellusim.com/core/plugins/interface/flow

Flow


Color

Color selector control.
docs.tellusim.com/core/plugins/interface/color

Color


Interface Element

A CanvasElement wrapper that allows elements to be rendered and manipulated inside a Controls widgets.
docs.tellusim.com/core/plugins/interface/element

Interface Element


Button

A generic button controller that uses custom Canvas elements as Control button.
docs.tellusim.com/core/plugins/interface/button

Button


Slider

A generic slider controller that uses custom Canvas elements as Control slider.
docs.tellusim.com/core/plugins/interface/slider

Slider


Plotter

A simple line plotter visualization plugin.
docs.tellusim.com/core/plugins/interface/plotter

Plotter


Tooltip

A generic tooltip Control allows the display of help information over other interface controls.
docs.tellusim.com/core/plugins/interface/tooltip

Tooltip


This plugin provides support for dynamic popup windows and contextual menus within the interface.

Popup


Interface Layer

A transparent multilayer Controls with variable background blur.

Interface Layer


Manipulator Plugin

Manipulator is a simple translator and rotator control for the scene editor.
docs.tellusim.com/core/plugins/interface/manipulator

Manipulator Plugin


App

This plugin provides a framework for single-window Control-based applications.
docs.tellusim.com/core/plugins/interface/app

App


Shape

This example renders cubic shape with applied Stroke and Gradient styles.

Shape


SVG Image

Simple SVG image loading and rendering. CanvasShape class accepts SVG path string as input data.

SVG Image


Custom Control

Custom Controls can be created by simple ControlBase class inheritance. The Control behavior can be completely overridden.

Custom Control

Parallel

Parallel TensorGraph from PyTorch

Simple convolutional autoencoder trained with PyTorch and imported into TensorGraph.

Parallel TensorGraph from PyTorch


Parallel TensorGraph MNIST Digits Recognition

MNIST Digits Recognition using TensorGraph with PyTorch model.

Parallel TensorGraph MNIST Digits Recognition


Parallel Fourier 2D

Image convolution based on Fast Fourier Transformation.

Parallel Fourier 2D


Parallel Fluid 2D

Simple 2D fluid simulation based on Fast Fourier Transformation.

Parallel Fluid 2D


Parallel Radix Sort

Multiple independent sorting algorithms can be dispatched in parallel. There is no overhead in comparision with the single array sort. Additionally, dispatch parameters can be fetched from the indirect buffer.
'1' shows the input data.
'2' activates global sort.

Parallel Radix Sort


Parallel Spatial Grid

Simple physics simulation with collisions based on the SpatialGrid class. It is the fastest way to collide objects of the same size.

Parallel Spatial Grid


Parallel Spatial Tree

Simple physics simulation with collisions based on the SpatialTree class. The SpatialTree allows collision and intersection tests with any primitive inside BVH.

Parallel Spatial Tree

Geometry

Mesh Reduce

MeshReduce is a simple way to simplify input mesh geometry. Simplification preserves all Mesh Attributes, and it is compatible with Skinning Animation.
'1' shows the original geometry.

Mesh Reduce


Mesh Refine

MeshRefine refines geometry mesh using Catmull-Clark (for quadrilaterals) or Loop (for triangles) subdivision algorithms. The Crease Attribute allows additional control over the subdivision process.
'1' shows the original geometry.

Mesh Refine

Plugins

Open Neural Network Exchange

The ONNX plugin allows loading and running ONNX models with TensorGraph on all platforms and APIs.
docs.tellusim.com/core/plugins/parallel/onnx

Open Neural Network Exchange


OpenXR

OpenXR VR/AR plugin. Supports Vulkan, Direct3D12, Direct3D11, OpenGL APIs on PC; Vulkan, OpenGLES on Android. This plugin creates an OpenXR-compatible output window with any number of channels. The input layer provides a simplified API for the OpenXR input system.
docs.tellusim.com/core/plugins/platform/openxr

OpenXR


Native Cuda driver API

Create dynamic geometry with Cuda and render with Vulkan / Direct3D / OpenGL.
docs.tellusim.com/core/plugins/platform/cuda

Native Cuda driver API


Native Vulkan runtime

You can use this plugin to write applications with native Vulkan API. All Tellusim platform classes give access to internal Vulkan handlers and can be used in Vulkan API calls.
docs.tellusim.com/core/plugins/platform/vulkan

Native Vulkan runtime


Native OpenGL runtime

This plugin provides access to all OpenGL core functions. OpenGL API calls can be utilized when necessary.
docs.tellusim.com/core/plugins/platform/opengl

Native OpenGL runtime


Native OpenGLES runtime

This plugin provides access to all OpenGLES core functions. OpenGLES API calls can be utilized when necessary.
docs.tellusim.com/core/plugins/platform/opengles

Native OpenGLES runtime

Languages

C++ API reflection

This plugin enables reflection support for C++ API.
docs.tellusim.com/core/plugins/system/reflection

C++ API reflection


C API binding

The C language API is an intermediary layer between C++ and other languages, such as C#, Rust, and others, that cannot directly import C++ code.
docs.tellusim.com/core/plugins/binding/capi

C API binding


C# API binding

This plugin provides complete C# language access for all classes and functions. C API bridge plugin is required.
docs.tellusim.com/core/plugins/binding/csharp

C# API binding


Python API binding

Python language API binding gives full access to Tellusim SDK from Python language. It is implemented on C Python API and does not require any additional dependencies.
docs.tellusim.com/core/plugins/binding/python

Python API binding


Rust API binding

This plugin provides complete Rust language access for all classes and functions. C API bridge plugin is required.
docs.tellusim.com/core/plugins/binding/rust

Rust API binding


Swift API binding

This plugin provides complete Swift language access for all classes and functions.
docs.tellusim.com/core/plugins/binding/swift

Swift API binding


Java/Kotlin API binding

This plugin provides complete Java and Kotlin language access for all classes and functions.
docs.tellusim.com/core/plugins/binding/java

Java/Kotlin API binding


JavaScript API binding

This plugin provides complete JavaScript language access for all classes and functions.
docs.tellusim.com/core/plugins/binding/javascript

JavaScript API binding

Native

Native Direct3D12 runtime

Drawing geometry using native Direct3D12 API calls.

Native Direct3D12 runtime


Native Direct3D11 runtime

Drawing geometry using native Direct3D11 API calls.

Native Direct3D11 runtime


Native Metal runtime

Drawing geometry using native Metal API calls.

Native Metal runtime


Native Cuda runtime

Cuda runtime API with buffer interop.

Native Cuda runtime


Native ROCm runtime

ROCm runtime API with buffer interop.

Native ROCm runtime


Native D3D12 texture

Using native D3D12 textures.

Native D3D12 texture


Native Cuda texture

Cuda runtime API and texture interop.

Native Cuda texture


Native Direct3D12 pipeline

Creating native Direct3D12 pipeline.

Native Direct3D12 pipeline


Native Vulkan pipeline

Creating native Vulkan pipeline.

Native Vulkan pipeline


Native Metal pipeline

Creating native Metal pipeline.

Native Metal pipeline


Embedding into Direct3D12

Embedding into the nativeal Direct3D12 native window application.

Embedding into Direct3D12


Embedding into Direct3D11

Embedding into the nativeal Direct3D11 native window application.

Embedding into Direct3D11


Embedding into Metal

Embedding into the nativeal Metal native window application (MTKView).

Embedding into Metal

Tools

Tellusim Shader

Command-line interface to the Clay shader compiler.
docs.tellusim.com/core/tools/shader

Tellusim Shader


Tellusim Image

Image conversion utility with batch processing support.
docs.tellusim.com/core/tools/image

Tellusim Image


Tellusim Mesh

Mesh conversion utility with batch processing support.
docs.tellusim.com/core/tools/mesh

Tellusim Mesh


Tellusim Blob

Tool for generating embedded binary resources for applications.
docs.tellusim.com/core/tools/blob

Tellusim Blob


Tellusim Project

Utility for generating project templates.
docs.tellusim.com/core/tools/project

Tellusim Project


Tellusim Noise

Blue noise generation tool for stochastic sampling and rendering.
docs.tellusim.com/core/tools/noise

Tellusim Noise

Tutorials

Hello Interop

docs.tellusim.com/core/tutorials/13_hello_interop

Hello Interop


Hello Controller

docs.tellusim.com/core/tutorials/12_hello_controller

Hello Controller


Hello Bindless

docs.tellusim.com/core/tutorials/11_hello_bindless

Hello Bindless


Hello Image

docs.tellusim.com/core/tutorials/10_hello_image/

Hello Image


Hello Controls

docs.tellusim.com/core/tutorials/09_hello_controls/

Hello Controls


Hello Canvas

docs.tellusim.com/core/tutorials/08_hello_canvas

Hello Canvas


Gaussian Splatting

docs.tellusim.com/core/tutorials/07_hello_splatting/

Gaussian Splatting


Ray Tracing with Traversal

docs.tellusim.com/core/tutorials/06_hello_traversal/

Ray Tracing with Traversal


Ray Tracing with Ray Queries

docs.tellusim.com/core/tutorials/05_hello_tracing/

Ray Tracing with Ray Queries


Compute rasterization

docs.tellusim.com/core/tutorials/04_hello_raster/

Compute rasterization


Hierarchical LOD Graphs

docs.tellusim.com/core/tutorials/03_hello_mesh/

Hierarchical LOD Graphs


Particles Simuation

docs.tellusim.com/core/tutorials/02_hello_compute

Particles Simuation


USDZ Model Loading

docs.tellusim.com/core/tutorials/01_hello_usdz

USDZ Model Loading


Hello Triangle

docs.tellusim.com/core/tutorials/00_hello_triangle

Hello Triangle

Resources

Documentation

Access Tellusim Core SDK documentation online.
docs.tellusim.com/core

Documentation


Developer Forum

Join Tellusim Developer Forum to ask questions and explore community discussions.
forum.tellusim.com

Developer Forum


Local API Reference

Browse the offline C++ API reference for the Tellusim Core SDK.

Local API Reference