October 25, 2026
SDK 50
Tools changes:
- A new Chat tool for AI-assistant development has been added. It can read and write files and directories, create images, provide access to Tellusim knowledge base.
- A volumetric light prefab (Volumetric plugin) has been added to Explorer.
- The Graph Batch plugin has been renamed to Graph Transform.
- A Network ChatClient plugin has been added (ChatGPT-compatible client).
- Box2D, Box3D, Jolt, and MuJoCo physics plugins have been updated to the latest versions.
- A Platform Transfer plugin for fast buffer copying and uploading has been added.
- A Render Volumetric plugin for volumetric light effects has been added.
- A System Terminal plugin for cross-platform terminal input and output has been added.
- Streamer plugin now supports archive type specification via an argument.
- MD2, MD3, MD5, and ASE plugins have been added.
- New GeometryFlow samples: object_flow_cut, object_flow_force, object_flow_fracture, object_flow_random.
- tests/render/tracing demonstrates a simple ray-tracing engine initialization.
- Added gl_sdl3_window and vk_sdk3_window native examples.
- Array::append() with 2, 3, and 4 elements has been added.
- Log::Color enums have been added for colored output without timestamps.
- Socket::open() receives an optional address to bind the socket to.
- MeshIndices::toType() performs optional index optimization during to line and to point conversions.
- An ImageParser namespace with simple procedural image generation has been added to include/graphics.
- An ImageRaster namespace with line and circle rasterization has been added to include/graphics.
- ImageParser supports the hsv() color function and provides brick(), sin(), and mix() procedural functions.
- Xml and Json parsers throw an exception on error when the log argument is false. Useful for validation.
- MaterialShading supports a user-defined macro string.
- MeshIndices provides a flipWinding() method for flipping index order.
- pure, inline, and noinline function qualifiers have been added to the shader compiler.
- Better compatibility with the latest Apple MSL compiler (removed an unnecessary thread qualifier for classes).
- The GLSL >> operator for signed integer types performs an arithmetic shift operation.
- Kernel, Pipeline, and Traversal classes assert on layout change after shader compilation (a releaseShaders() method has been added to clear shaders).
- RenderFrame transparent texture has been renamed to transparent texture layer.
- RenderFrame now supports a transparent volume texture with 3D light colors for volumetric effects.
- It is no longer mandatory for RenderFrame transparent textures to be created by RenderManager.
- Corrected UAV 3D texture initialization on D3D12 and D3D11 APIs.
- Fixed incorrect attribute interpolation for geometry with multiple indices in MeshReduce.
- Fixed incorrect material index interpolation with quad primitives in MeshSplit.
- Fixed incorrect volume calculation of quad geometry in MeshFracture.
- CanvasElement align setting no longer affects subsequent elements in batches.
August 9, 2026
SDK 49
Highlights
- GeometryFlow editor for node-based procedural geometry creation and deformation.
- Particle simulation plugin with GPU-based 2D and 3D particle systems.
- Custom scene types can be serialized and stored in scene files.
- RmlUi plugin for HTML/CSS-based interfaces.
- Box3D physics plugin.
- New demo with flow-based Car paint material and logic.
- Added GeometryFlow plugin to Explorer.
- Box3D plugin has been added to Explorer.
- Added SDF Object template to ShadingFlow.
- Explorer has been migrated to internal menus.
- Handle manipulator support has been added to Explorer extensions.
- Object Flags and Material Options are now in a foldable ControlGroup.
- Improved object transformation when objects are dropped into the scene in Explorer.
- Improved material focusing behavior in Explorer.
- Explorer can export all script sources from the scene.
- NodeScriptScattering plugin now automatically updates the environment.
- New Box3D physics plugin.
- New RmlUi plugin for HTML/CSS-based interfaces.
- New GeometryFlow plugin provides a node-based, flow-driven geometry creation system.
- New Particles plugin provides a universal GPU-based 2D and 3D particle simulation system.
- New ControlFlowMath plugin enables runtime evaluation of Flow graphs on CPU.
- New OpenCL plugin provides a lightweight OpenCL loader for rapid prototyping.
- Many usability improvements to the ControlFlow plugin.
- The Popup plugin includes methods for simple menu creation.
- ControlFlow now supports user pointers and data for inputs, outputs, nodes, and protos.
- ControlFlow now supports automatic input node creation.
- ControlFlow now supports disconnecting nodes by dropping connections from inputs.
- ControlFlow scalar input protos now store their range in the node state.
- ControlFlowGLSL adds Box, Sphere, Cylinder, and Extrude SDF operations.
- The “ray_march” and “deferred_metallic” protos have been added to ShadingFlow.
- The “name”, “scatter”, “array”, “cable”, “path”, “split”, “boolean”, and “fracture” protos have been added to GeometryFlow.
- Improved precision of cylinder and tube primitives.
- Transparent radius has been added to the scattering plugin.
- The primitives plugin adds cap tessellation and rotation support for Cylinder and Tube types.
- Cylinder and Tube types support zero tessellation levels to disable caps or sides.
- Rust API enums are now represented as custom structures for better language compatibility.
- geometry/boolean is a new MeshBoolean test.
- geometry/fracture is a new MeshFracture test.
- native/vk_spirv is a new native SPIR-V shader loading example.
- native/sycl_texture, sycl_runtime demonstrate SYCL interop.
- native/ze_texture, ze_runtime demonstrate Level Zero interop.
- scene/node demonstrates custom Node serialization.
- render_forward – forward pass BRDF with access to ambient occlusion.
- object_flow_boolean, object_flow_coplanar, object_flow_difference, object_flow_intersection are new Mesh boolean samples.
- object_flow_array – object instantiation.
- object_flow_cable – cable path between points.
- object_flow_gear – angular wave for gears.
- object_flow_line – line primitive.
- object_flow_path – placing object along the path.
- object_flow_needles – instance scattering over path.
- object_flow_scatter – instance scattering over surface.
- object_flow_split – split plane.
- object_flow_bend bends geometry along an axis.
- object_flow_noise deforms geometry using fractal noise.
- object_flow_scale scales geometry with optional volume preservation.
- object_flow_stairs creates compound geometry from different parts.
- object_flow_sweep instances geometry along a path.
- object_flow_twist twists geometry around an axis.
- object_flow_wave applies wave-based deformation.
- material_flow_fog – fog object.
- material_flow_marching – volume marching.
- material_flow_sdf_cell – sdf cell noise.
- material_flow_sphere demonstrates ray-sphere intersection.
- material_flow_stencil demonstrates two-sided stencil buffer.
- material_flow_sdf demonstrates SDF object tracing.
- material_flow_screen demonstrates render screen texture.
- material_flow_project demonstrates projected decals.
- material_flow_box demonstrates ray-box intersection.
- script_node_flow_location – ObjectNode animation.
- script_material_flow_noise demonstrates fractal noise.
- Device::Feature provides verbose Mesh shader parameters.
- MeshBoolean operations are available in the MeshBoolean namespace.
- MeshFracture namespace provides simple interface for configurable mesh fractures.
- Mesh attribute optimizer receives threshold parameter. Negative value performs bit comparison, zero value performs type-specific threshold, positive value is an explicit threshold value.
- MeshIndices/MeshAttribute::setSize() returns true if allocation was successful. Incremental resizes up to 16 elements use reserve allocation with a 1.5 size multiplier.
- MeshGeometry::optimizeOrder() optimizes attribute and index order within MeshGeometry.
- MeshGeometry::addGeometry() adds geometry with matching layout requirements.
- MeshGeometry::flipWinding() flips index order and inverts normals.
- MeshAttribute transformations now support packed tangent basis.
- Added dedicated MeshAttribute scale-only transformation method.
- The MeshSplit::split() function splits the mesh by plane and produces front, back, and cross meshes.
- The Polygon::inside() function has been added.
- The Quadrilateral::area() function has been added.
- Perlin noise generators now support configurable tiling period.
- PrefixScan now supports strided data via PrefixScan::FlagStride.
- TellusimPolynomial adds solvers for linear through septic equations.
- TellusimSpline adds spline intersection utilities.
- State color has been added to rect and text Controls.
- Custom shadow intersection functions now support color shadows.
- Cube texture mipmap generation methods have been added to CubeFilter.
- MaterialShading now supports two-sided stencil buffering.
- Screen, Occlusion, Occluder, and Feedback rendering events have been added to SceneRenderer.
- A global reflection scale parameter has been added.
- Scene scripts now have a getCompilerSource() method that returns the final source code.
- SceneUpdate interface added for custom update logic.
- Added SceneReader and SceneWriter interfaces for scene serialization.
- Scene type serialization migrated to SceneReader/SceneWriter system.
- GraphBase, NodeBase, and MaterialBase now support user-data serialization in scene files (requires explicit constructor).
- SceneManager::releaseBuffer() method has been added to remove queued data fetches.
- Row and column spacing have been added to ControlGrid.
- Random::Stratified namespace adds Halton, Hammersley, and Vogel sequences.
- Added ArrayStack<> container for allocation-free arrays.
- TS_NO_LOG macro now controls enabling of all TS_LOG macros.
- Added compile-time hash functions to String.
- Added 3D and Cube – 2D Array image conversion in Image. Image::FlagArray controls such conversions.
- Matrix3x2 now supports 2×2 submatrix access.
- Expression::Scope adds support for custom variables and functions in all expressions.
- New set_node_object_payload_index() and set_node_object_num_instances() methods have been added to SceneNodes.shader to control instancing.
- File references to NodeScript and GraphScript can override script parameters.
- Fixed Explorer crash during undo operation for Material hierarchy removal.
- Fixed incorrect bounding box calculation in SpatialTree BVH for small element counts.
- RenderDraw now correctly visualizes NodeObject bounding boxes with instancing.
- Nodes can now create and remove other nodes inside update().
- Corrected GPU ordering in the Info interface on Linux DRM (sorted by screen count).
- GLSL type references now have higher priority than variables.
- 128 and 256-bit integer types have been added.
- Rational type for integer arithmetic has been added.
- MeshReduce performs better quadrilateral to triangle conversion.
- The MATERIAL_DIRECT_LIGHT mode has been added to the light shader. It calculates diffuse direct light at a given point without materials.
- Clearcoat normal and color parameters are available using the MATERIAL_CLEARCOAT_NORMAL and MATERIAL_CLEARCOAT_COLOR macros.
- The metallic texture is available in the forward pass. It can be used to fetch ambient occlusion value.
- The shader compiler ensures the texture fetch argument types.
- Improved upscaler quality and performance.
- Improved separable filter performance.
- Vulkan Texture and Buffer support now enables dedicated allocation mode for cross-API interop resources.
- Improved subpixel jitter distribution for antialiasing.
- Improved Expression evaluation performance.
January 11, 2026
SDK 48
Highlights
- Node-based GraphVarying editor.
- NodeObject instancing for massive object replication.
- MSAA compatibility with D3D12 SM6.7.
- Sparse textures for D3D12 (sparse resource tier 4 is required).
- Indirect top-level tracing builds on Vulkan (only AMD and Intel drivers support it).
- Enhanced dialogs on Linux platforms.
- Editor compatibility with SteamOS.
- graph_flow_normal scene demonstrates two-pass normal map texture generation.
- graph_flow_texture scene demonstrates procedural texture generation.
- graph_flow_perlin scene demonstrates dynamic procedural textures.
- gl_device, gles_device, and gles_runtime native examples have been added.
- native/vk_qt_widget example has no dependency on the Vulkan library.
- platform/divisor example demonstrates the vertex attribute rate parameter for per-batch input.
- platform/cooperative test is compatible with non-square matrices.
- render/limits has an additional instancing-based rendering mode (slower than BVH-based).
- materials/material_alpha scene demonstrates alpha-tested geometry.
- objects/object_skeleton scene demonstrates hierarchical skeletons.
- scripts/script_material_motion scene demonstrates the motion blur effect.
- scripts/script_material_grid scene generates a high-frequency output verification image.
- native/vk|d3d12|d3d11_device sample outputs all platform-specific device features.
- render/multisample demonstrates engine MSAA rendering.
- Boolean uniform type has been added to the GraphVarying type in Explorer.
- GraphFlow editor has been added to Explorer.
- Explorer and Executor support sparse buffers and textures controlled by the “-sparse 1” command line option.
- Executor now supports controller-based camera movement (can be disabled with the “camera/controller” option).
- Executor supports tracing_all and screen_all command line options for fast rendering mode selection.
- Light texture visualization has been added to Explorer.
- Pool texture visualization has been added to Explorer.
- The quality of the selection area has been improved.
- GraphFlow plugin for node-based GraphVarying editing has been added.
- Integer vector types have been added to the ControlFlowGLSL editor.
- Circle, triangle, box, pentagon, hexagon, octagon, and star SDF protos have been added to ControlFlowGLSL.
- Wave, ripple, and twist warp protos have been added to ControlFlowGLSL.
- Checker sampler proto has been added to ControlFlowGLSL.
- Color masks and stencil functions have been added to the MaterialFlow layout proto.
- Clutter and BatchTransform plugins have been moved to the plugin/graphs directory.
- A new interface/popup plugin for popup controls and menus has been added.
- DLSS, FSR3, and XeSS plugins have been updated to the latest versions.
- New FSR1 and FSR4 plugins have been added.
- A new FXAA plugin has been added.
- Noise generation has been moved to the interface/flow plugin from the material/flow plugin.
- Tracing shader source generation has been added to the material flow and MaterialX plugins.
- A direction proto to construct a direction vector from two angles has been added to ControlFlow.
- Enhanced tooltip visualization with delayed disappearance.
- Instance and Payload protos have been added to MaterialFlow.
- Transform input has been added to the Vertex input proto of MaterialFlow.
- Group specification has been added to the Uniform proto of MaterialFlow.
- A Line primitive has been added to the Primitives plugin.
- Primitives correctly provide line geometry for ObjectMesh flags with lines.
- MaterialShading Tracing source has been renamed to Sample source.
- SceneRender interface provides access to temporal render textures.
- The Scene interface now provides the directory where the scene file is located.
- Methods for registering buffers with default offsets and callbacks have been added to SceneBuffer.
- NodeObject methods to control instancing with CPU and GPU counts have been added.
- Payload address and stride parameters have been added to NodeObject.
- Support for motion-buffer per-pixel jitter offsets has been added via the RenderManager|RenderRenderer::FlagJitterBuffer flag.
- LightPoint and LightSpot return the intensity texture index.
- RenderDraw supports multisample texture visualization.
- API-specific Context interfaces receive a device index in the constructor.
- VK|D3D12|D3D11Device classes now provide native device features.
- Access to API layers and extensions in VK|GL|GLESContext and VKDevice has been added.
- The matrix8x16x16f16 matrix type has been added to the Device::Features structure.
- Device::Features structure names have been changed to follow API-name style.
- Device::Features::textureArraySparse field has been added (array textures with a full mipmap chain).
- Device::Features::surfaceMultisample field has been added (compute shader writes to MSAA textures).
- A dedicated ControlRoot::setMousePosition() method has been added.
- ControlText can optionally handle Pressed and Focused callbacks.
- ControlTree accepts right and left buttons for tree expanding/folding.
- Canvas|Controls::raiseChild|lowerChild() methods now accept the target position index.
- Controls::AlignLocal aligns controls using local boundaries only.
- The ObjectMesh::FlagInstancing flag activates optional geometry instancing at the ObjectMesh level.
- SeparableFilter now supports custom filter kernels specified by setKernelSource().
- The number of Function template arguments has been increased to 10.
- System::exec() now returns the process exit code. The check for successful execution is (ret == 0).
- Correct mesh morphing for meshlet-based geometry.
- Corrected ControlDialog mouse movement compensation with fractional rendering scales.
- Corrected literal recognition of mixed formats.
- Linux dialogs have a fallback mode through kdialog and zenity applications.
- Qt6 support has been added to Linux dialogs.
- Support for RWTexture2DMS in HLSL.
- Support for input and output gl_SampleMask on all platforms.
- Constant-based mix operations are now resolved at the compilation stage in the shader compiler.
- Constant-based pow for powers 2, 3, 4, 5, and 8 is replaced by multiplications in the shader compiler.
- Correct handling of tracing masks for tracing shadows and reflections.
- Improved noise sequence generation for reflection and occlusion samples.
- Meshlet and compute rasterization support meshes with morphing.
- Correct tracing generation for meshes with morphing.
- Correct tracing generation for meshes with hierarchical skeleton animations.
- The script system uses try { } blocks for external code execution.
- vbar() and hbar() texture patterns have been added.
- Correct tangent basis generation for mesh line primitives.
November 29, 2025
SDK 47
August 23, 2025
SDK 46
May 31, 2025
New Tellusim Documentation
April 29, 2025
SDK 44
March 23, 2025
SDK 43
February 23, 2025
SDK 42
January 20, 2025
SDK 41
December 23, 2024
The Power of GPU-Driven Scenes
December 8, 2024
11 Hello Bindless
November 11, 2024
GPU texture encoder
November 9, 2024
10 Hello Image
November 8, 2024
SDK 40
September 25, 2024
09 Hello Controls
September 1, 2024
08 Hello Canvas
September 1, 2024
SDK 39
September 18, 2023
07 Hello Splatting
August 28, 2023
06 Hello Traversal
August 13, 2023
05 Hello Tracing
August 12, 2023
04 Hello Raster
July 31, 2023
03 Hello Mesh
July 7, 2023
Scene Import
June 25, 2023
02 Hello Compute
May 15, 2023
01 Hello USDZ
May 14, 2023
00 Hello Triangle
April 24, 2023
WebGPU Update
April 4, 2023
Tellusim Upscaler Demo
February 10, 2023
DLSS 3.1.1 vs DLSS 2.4.0
January 31, 2023
Dispatch, Dispatch, Dispatch
October 28, 2022
Tellusim upscaler
October 14, 2022
Upscale SDK comparison
September 20, 2022
Improved Blue Noise
June 19, 2022
Intel Arc 370M analysis
January 16, 2022
Mesh Shader Emulation
December 16, 2021
Mesh Shader Performance
October 10, 2021
Blue Noise Generator
October 7, 2021
Ray Tracing versus Animation
September 24, 2021
Ray Tracing Performance Comparison
September 13, 2021
Compute versus Hardware
September 9, 2021
MultiDrawIndirect and Metal
September 4, 2021
Mesh Shader versus MultiDrawIndirect
June 30, 2021
Shader Pipeline