March 23, 2025

SDK 43


New Engine features:
  • Added support for game controllers (Xbox, DualSense, DualShock, Nintendo Pro Controller, and generic joysticks) across all platforms.
  • Improved physics engine plugin integration.
  • Introduced a debug visualization API for enhanced real-time debugging.
  • Implemented an Internal Color dialog for a more streamlined UI experience.
  • Major improvements to the Explorer.
Tools changes:
  • Explorer has two icon sets for best icons visualization over different monitor DPIs.
  • Executor and Explorer update the Controller class for automatic controller support.
  • Explorer now supports multiple control info callbacks (allowing body info to be displayed within node info).
  • Basic physics visualization (shapes and joints) has been added to Explorer.
  • Inertia tensor information is now available in Explorer.
  • All runtime parameter editors have been refactored to support right-click editing, expanding the range of editable types.
  • Explorer has been migrated to the Internal Color dialog.
  • Scale parameter has been added to the MeshAnimation import Explorer extension.
  • The MeshPrimitive extension now correctly handles internal shapes during object editing.
  • ScriptFlow and MaterialFlow extensions now use the Internal Color dialog.
  • Improved geometry combination performance in the Mesh tool.
Sample changes:
  • Added 12 Hello Controller manual sample.
  • Added tests/system/desktop for the Desktop class.
  • Added tests/system/controller for the Controller class.
  • Added new physics samples for each physics plugin (Box2D, Bullet, Jolt, PhysX), including 6dof, friction, hinge, impulse, restitution, shapes, and slider.
  • Added scripts/script_node_flow_controller, a sample demonstrating flow-based virtual controller animation based on real controller events.
  • Added scripts/script_node_flow_keyboard, a sample showcasing flow-based node control using window keyboard events.
Plugin changes:
  • Introduced a new interface/color plugin for controls-based color dialog support.
  • Box2D now supports capsule and cylinder shapes.
  • The Box2D plugin has been updated to the latest Box2D library.
  • The Jolt plugin has been updated to the latest Jolt library.
  • All physics plugins now support engine-driven parameter updates, including friction, forces, impulses, shapes, and joints.
  • Physics plugins now provide real-time velocity values to the engine.
  • The default number of ControlFlow types has been increased to 512.
  • ControlCallback has been added to ControlFlow to support custom color dialogs.
  • PolyHaven and Sketchfab plugins now reduce preview image brightness when a modal control is present.
  • ScriptFlow now includes guards to prevent assertion failures caused by invalid parameters (e.g., getting a child by index).
  • The ControlFlow node dialog now displays the current node parameter value.
API changes:
  • The number of Tellusim::Function<> template arguments has been increased to 9.
  • ControlRoot now includes a mouse offset parameter, allowing callback handlers to evaluate control offset/scale values when embedded within a ControlArea.
  • Added a ‘disabled modal state’ option to ControlRoot, allowing modal focus without dimming other controls.
  • Introduced new Mesh|BrepNode|Node|ObjectNode|Material::findChild|getChild() methods that accept literal name arguments.
  • Introduced a movable flag for ControlDialog to restrict movement.
  • Added InsideCallback to ControlRect for non-rectangular control shapes.
  • Added MatrixNxM::outer() product operator.
  • Implemented math operations between MatrixNxM types, including addition, subtraction, and scalar multiplication.
  • RenderDraw now supports debug primitives visualization, including lines, quadratics, cubics, arrows, rectangles, quads, circles, boxes, spheres, cylinders, and capsules.
  • Added a bias parameter to RenderDraw, allowing controllable depth overlap during rendering.
  • BodyRigid axes locks are now controlled by BodyRigid flags instead of dedicated methods.
  • Added BodyRigid::FlagKeepAwake that prevents Body from sleeping.
  • Added BodyRigid::addForce(), addTorque(), addLinearImpulse(), and addAngularImpulse().
  • BodyRigid::updateMass() now recalculates body mass and inertia during the next update.
  • Added control over maximum linear and angular velocities for BodyRigid.
  • Each SceneGraph entity now includes is*Updated() flags for better interoperations.
  • Game Controller support has been added for Windows, Linux, macOS, Android, and iOS. On Windows, the system uses GameInput if available, falling back to XInput by default.
Shader API changes:
  • The quat_to_mat4x3() function has been added to SceneMath.shader
  • The get_body_transform() function has been added to SceneBodies.shader
  • The get_num_graph_nodes() and get_graph_base_node() functions have been added to SceneGraphs.shader
  • Introduced the base_scene_body member to the RenderFrame structure for accessing all body parameters.
Internal Clay features:
  • Tangent-space generation performance dramatically increased for meshes with same normals (giant planes).
  • PrefixScan and RadixSort now correctly detect the presence of FlagIndirect for dispatchIndirect() operations.
  • Corrected joint body assignment during all scene clone operations (nodes, bodies, graphs, scenes).
  • Joystick events have been added to the Android activity.
  • Corrected window and DialogMenu icon creation on Windows.
  • Improved retina-aware DialogMenu icon rendering on macOS.
  • New macOS devices have been added to Info class.
SDK 43
»