Skip to content

Cross-platform C++ SDK for graphics, compute, and simulation. Supports GPU-accelerated algorithms, meshes, images, and UI, with bindings for C#, Rust, Swift, and Python. Prebuilt builds and docs available.

License

Notifications You must be signed in to change notification settings

Tellusim/Tellusim_Core_SDK

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Tellusim Core SDK

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, and Python, 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!

Licensing

  • Core SDK is free for education
  • Core SDK is free for companies with annual revenue < $200K
  • Any other licensing terms are negotiable

For inquiries, visit: Tellusim Services

Documentation & Downloads

Tellusim Core SDK Documentation

Prebuilt SDK Builds for All Platforms

Graphics

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

Clustered Lights


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


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

Mesh RayTracing


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

Mesh RayQuery


Hardware accelerated RayTracing of animated objects.

Hardware RayTracing


Compute Shader RayTracing of animated objects.

Compute RayTracing


Hardware accelerated RayTracing of high-polygonal objects.

Hardware RayTracing


Compute Shader RayTracing of high-polygonal objects.

Compute RayTracing


The DecoderJPEG provides GPU-accelerated JPEG decoding functionality.

JPEG Decoder


The CubeFilter interface performs real-time Cube texture filtration.

Cube Filter


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

Separable Filter


Drawing massive amount of quads using different indirect rendering techniques.

Indirect Draw


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

Geometry Shader


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

Tessellation Shader


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

Ordered Independent Transparency


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

Hardware Ray Tracing Shadows


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

Software Ray Tracing Shadows


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 provides noise-free shadows with a fixed performance cost and constant penumbra size.

Exponential Shadow Maps


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

Parallax 2D


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

Parallax Cube


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

Mesh Tangent Basis


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


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


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


Rendering scene into multiple borderless windows.

Multi Window


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

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


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

Platform Bindless


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


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


Dynamic 3D texture created with SIMD CPU instructions.

Platform Texture


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

Platform Command


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

Platform Tracing


Compute class for simple compute shader texture generation.

Platform Compute


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

Platform Fence


Multi-GPU synchronization with fences and semaphores.

Platform Fence


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

Platform Sparse


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


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

Platform Mapped


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

Platform Dynamic


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

Platform Clip Planes


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

Platform Stencil Buffer


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


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

Platform Layers


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

Platform Viewports


Demonstrates various texture sampler configuration modes.

Platform Samplers


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

Barycentric Coordinates


This example performs MDI rendering of different objects.

Multi Draw Indirect


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

MSAA Alpha Test


Blending color parameter defines uniform value for blending operations.

Input Blending Color


This example performs AA line rendering into MSAA texture.

Multisample Antialiasing


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

Platform Preprocessor


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

Platform Texture Samples


Hardware conservative rasterization.

Conservative Rasterization


Cooperative matrix example.

Cooperative Matrix (Tensor Cores)


Matrix multiplication example.

Matrix Multiplication


Shader subgroup operations.

Subgroup operations


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

Structure references


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

Shader Printf

Interface

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

Interface Canvas


Different User Interface Control classes in resolution-independent configuration.

Interface Controls


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

SVG


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 selector control.
docs.tellusim.com/core/plugins/interface/color

Color


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

Interface Element


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

Button


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

Slider


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

Plotter


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

Tooltip


A transparent multilayer Controls with variable background blur.

Interface Layer


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

Manipulator Plugin


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

App


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

Shape


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

SVG Image


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

Custom Control

Parallel

Simple convolutional autoencoder trained with PyTorch and imported into TensorGraph.

Parallel TensorGraph from PyTorch


MNIST Digits Recognition using TensorGraph with PyTorch model.

Parallel TensorGraph MNIST Digits Recognition


Image convolution based on Fast Fourier Transformation.

Parallel Fourier 2D


Simple 2D fluid simulation based on Fast Fourier Transformation.

Parallel Fluid 2D


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


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


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

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


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

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


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

Native Cuda driver API


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


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


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

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

C++ API reflection


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


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


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


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

Swift 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


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

JavaScript API binding

Native

Drawing geometry using native Direct3D12 API calls.

Native Direct3D12 runtime


Drawing geometry using native Direct3D11 API calls.

Native Direct3D11 runtime


Drawing geometry using native Metal API calls.

Native Metal runtime


Cuda runtime API with buffer interop.

Native Cuda runtime


ROCm runtime API with buffer interop.

Native ROCm runtime


Using native D3D12 textures.

Native D3D12 texture


Cuda runtime API and texture interop.

Native Cuda texture


Creating native Direct3D12 pipeline.

Native Direct3D12 pipeline


Creating native Vulkan pipeline.

Native Vulkan pipeline


Creating native Metal pipeline.

Native Metal pipeline


Embedding into the nativeal Direct3D12 native window application.

Embedding into Direct3D12


Embedding into the nativeal Direct3D11 native window application.

Embedding into Direct3D11


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

Embedding into Metal

Tools

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

Tellusim Shader


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

Tellusim Image


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

Tellusim Mesh


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

Tellusim Blob


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

Tellusim Project


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

Tellusim Noise

Tutorials

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

Hello Interop


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

Hello Controller


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

Hello Bindless


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

Hello Image


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

Hello Controls


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

Hello Canvas


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

Gaussian Splatting


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

Ray Tracing with Traversal


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

Ray Tracing with Ray Queries


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

Compute rasterization


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

Hierarchical LOD Graphs


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

Particles Simuation


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

USDZ Model Loading


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

Hello Triangle

Resources

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

Documentation


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

Developer Forum


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

Local API Reference

About

Cross-platform C++ SDK for graphics, compute, and simulation. Supports GPU-accelerated algorithms, meshes, images, and UI, with bindings for C#, Rust, Swift, and Python. Prebuilt builds and docs available.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published