Changelog: v2.4.3

v2.4.3 is a binary package release for raisim2Lib users. The workspace downloads RaiSim and rayrai as binary packages; it does not contain the RaiSim engine source tree. Build and benchmark instructions in this documentation are therefore written for package examples and downstream applications. The full engine benchmark runner mentioned below is used by RaiSim maintainers in the separate source repository during release validation.

Binary package update

The expected RaiSim package version is now 2.4.3. Configure raisim2Lib with a fresh CMake cache or with -DRAISIM_VERSION=2.4.3 if you override the version manually. If the local package prefix contains an older RaiSim or rayrai package, the top-level CMake workflow downloads the matching binary release again.

What changed in the engine package

This release includes speed and clarity work in RaiSim internals, especially around math/Eigen interoperability, articulated-system hot paths, mesh/contact queries, granular diagnostics, and asset import benchmarks. These changes are inside the downloaded binary package; package users consume them by linking against the v2.4.3 headers and libraries.

The math layer was cleaned up around RaiSim-owned dynamic storage and Eigen map interoperability. When writing downstream code that mixes RaiSim and Eigen types, use .e() to pass RaiSim storage to Eigen APIs, and use .e().noalias() for non-aliasing assignments where the left-hand side and right-hand side do not overlap. This makes the intended linear algebra visible and avoids unnecessary Eigen temporaries.

Mesh collision-mode naming

The public single-body mesh collision enum is:

  • MeshCollisionMode::ORIGINAL_MESH for the non-convex triangle mesh;

  • MeshCollisionMode::CONVEX_HULL for one convex hull;

  • MeshCollisionMode::CONVEXIFY for CoACD convex decomposition.

CONVEX_APPROXIMATION is not a public enum in v2.4.3. Use CONVEXIFY when you want CoACD convex decomposition through World::addMesh. For URDF-loaded articulated systems, use ArticulatedSystemOption::convexifyCollisionMeshes to request convex contact geometry for mesh collision elements.

Benchmark and diagnostics context

RaiSim maintainers validated this release with a source-tree benchmark runner that records repeated measurements and compares JSON/CSV/Markdown reports. That runner is not shipped in raisim2Lib because the RaiSim source code is not part of this workspace.

Package users should measure their workloads with the installed examples and timing-oriented example targets described in Build, Test, and Benchmark and Performance. Run each timing example one process at a time, set BLAS and OpenMP thread counts to one, repeat the same command several times, and compare the median/min/max values for the exact package, compiler, CPU, and scene arguments in use.

Granular and deformable diagnostics

The engine work behind this release expanded granular and deformable diagnostic coverage. Source validation tracked granular candidate pairs, active histories, emitted/removed particles, mesh-triangle candidates, rigid-contact counts, and deformable particle grid/candidate/contact counters. In package workflows, use the public granular statistics APIs and collision counters documented in Granular Media and Collision Detection and Colliders when tuning comparable scenes.

OpenUSD and asset pipeline

OpenUSD and model-asset pipeline validation now separates import/setup cost from simulation cost in the release process. For package users, the relevant workflow remains the public World("scene.usd") and World::addMesh APIs documented in OpenUSD Loading and Single-Body Objects. Keep visual assets and collision assets separate when a render-quality USD/glTF mesh is too detailed for contact simulation.