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.