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.
Tools changes:
  • 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.
Plugins changes:
  • 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.
New samples:
  • 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.
API changes:
  • 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.
Shader API changes:
  • New set_node_object_payload_index() and set_node_object_num_instances() methods have been added to SceneNodes.shader to control instancing.
Bug fixes:
  • 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.
Internal Clay features:
  • 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.
»