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_MESHfor the non-convex triangle mesh;MeshCollisionMode::CONVEX_HULLfor one convex hull;MeshCollisionMode::CONVEXIFYfor 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.