Skip to content

Releases: Genesis-Embodied-AI/genesis-world

v1.4.0

Choose a tag to compare

@duburcqa duburcqa released this 06 Sep 18:42
0ce793b

This release introduces the capability to export a scene plus a complete trajectory as a standalone archive that can be loaded on any machine while ensuring bit-exact replay using gs replay. The objective is making bug report much easier in the future. Only the rigid solver is supported for now. Beyond that, the static description of entities is now clearly separated from runtime getters to avoid confusion. Finally, a large number of minor bugs have been fixed, most of them related to asset parsing.

New Features

  • [BREAKING] Support applying an external wrench at any local point on a link. (@Milotrince) (#3143)
  • [BREAKING] Apply morph pose offset to velocity/acceleration getters. (@Milotrince) (#3250)
  • [BREAKING] Share a scene as a file that opens without its assets. (@duburcqa) (#3281, #3288, #3294)
  • Save and restore a built scene in memory. (@duburcqa) (#3309, #3303)
  • Record and replay a trajectory to a file that opens without its assets. (@duburcqa) (#3309)

Bug Fixes

  • Always give recorded videos a valid default filename. (@duburcqa) (#3228)
  • Make successive trajectories bit-identical from the reset onwards. (@duburcqa) (#3230)
  • Support FEM vertex constraints and topology queries in multi-entity scenes. (@jeetrex17) (#3239)
  • Support envs_idx mask in FEM vertex constraints. (@jeetrex17) (#3241)
  • Support broadcasting inverse kinematics targets in batched scenes. (@jeetrex17) (#3247)
  • Fix moving debug objects in batched scenes. (@duburcqa) (#3255)
  • Fix parsing URDF for partially specified dynamics attributes. (@catplotlib) (#3262)
  • Fix multidimensional tensor recording as CSV file. (@CoffeeDrivenCoder) (#3266)
  • Fix 'RigidEntity.plan_path' ignoring runtime joint limits. (@duburcqa) (#3278)
  • Preserve URDF mimic joint relations when scaling robots. (@ktyang512) (#3271)
  • Fix buggy hibernation on GPU and correctly report resting force. (@duburcqa) (#3297)
  • Report a zero velocity for a body that fell asleep. (@duburcqa) (#3300)
  • Fix COM frames of fixed links on aligned bodies breaking thrust points. (@jeetrex17) (#3283)
  • Support offscreen rendering with OSMesa. (@duburcqa) (#3302)
  • Apply MeshSet member poses to sampled particles. (@jeetrex17) (#3305)
  • Keep the authored mass and inertia of fixed links on aligned free bodies. (@duburcqa) (#3304)
  • Recover a usable inertia for URDF links stating a zero mass or inertia. (@Milotrince) (#3261)
  • Leave links fixed to the world out of the potential energy. (@duburcqa) (#3311)
  • Fix dynamics of attached entities and resolve assets identically in every precision. (@duburcqa) (#3311)
  • Fix scaling wrongly applied for in-memory URDF file morph. (@jeetrex17) (#3313)
  • Correct a rigid-PBD attachment over the substep interval rather than the whole step. (@duburcqa) (#3237)
  • Honor the textures of URDF materials. (@duburcqa) (#3319)
  • Fix convex collision detection on geom pairs of very different sizes. (@duburcqa) (#3321)

Miscellaneous

  • [BREAKING] Stop offering a checkpoint that restores a fraction of the state. (@duburcqa) (#3228)
  • [BREAKING] Separate the static description of a rigid entity from its runtime state. (@duburcqa) (#3281)
  • [BREAKING] Read gravity, time and mass from the solver that owns them. (@duburcqa) (#3237)
  • [BREAKING] Register a recorder with 'Scene.add_recorder'. (@duburcqa) (#3309)
  • [BREAKING] Drop the rotation of a recorder's file on reset.(@duburcqa) (#3309)
  • Average the joint-space inertia over every degree of freedom of the scene. (@duburcqa) (#3237)
  • Solve the mass matrix for the active trees of a partly hibernated entity. (@duburcqa) (#3237)
  • Support instantiating solver options before Genesis is initialized. (@duburcqa) (#3281)
  • Let a kinematic entity be attached onto another kinematic one. (@duburcqa) (#3228)
  • Remove dockerfiles. (@duburcqa) (#3227)
  • Support negative indices for env and entity index args. (@jeetrex17) (#3165)
  • Support Inverse Kinematics and Jacobians for any entity unconditionally. (@duburcqa) (#3233)
  • Enable cross-platform window-less offscreen rendering. (@duburcqa) (#3238, #3242)
  • More representative rigid benchmarks suite. (@hughperkins) (#3249, #3260)
  • Add sync-free padded layout to get_contacts. (@hughperkins) (#3253)
  • Speed up raycast BVH rebuild by removing atomic contention in the scene-extent reduction. (@Kashu7100) (#3162)
  • Report baking USD materials failures traceback. (@duburcqa) (#3298)

v1.3.3

Choose a tag to compare

@duburcqa duburcqa released this 13 Aug 13:53
76f8f5b

This minor release fixes rigid solver convergence regressions and introduces a new torch-like option 'use_deterministic_algorithms' to ensure bit-exact reproducibility on a given machine. Besides, Mujoco compatibility mode has been improved to now cover native contact patch-based multi-contact (as opposed to the old perturbation-based approach). This experimental feature is now exposed to the user via 'RigidOptions.enable_contact_patch'.

perturbation-based multi-contact native patch-based multi-contact
perturbation contact patch

New Features

  • Add bit-exact deterministic simulation mode on a given machine. (@duburcqa) (#3222)

Bug Fixes

  • Keep the contact manifold and the constraint solve consistent across orientations and scales. (@duburcqa) (#3158)
  • Fix physics discrepancy between generic and GPU-only constraint solver implementations. (@duburcqa) (#3218)
  • Fix dropped and backend-dependent contacts under MuJoCo compatibility. (@duburcqa) (#3223)

Miscellaneous

v1.3.2

Choose a tag to compare

@duburcqa duburcqa released this 07 Aug 16:39
8e70e94

This minor release improves compliance of rigid body simulation wrt the orientation- and scale-based physics invariants, while improving numerical robustness to ill-conditioning for the mass matrix. Besides, the simulation is now fully deterministic on a given machine for both CPU and GPU.

New Features

Bug Fixes

Miscellaneous

v1.3.1

Choose a tag to compare

@duburcqa duburcqa released this 30 Jul 12:52
58099b4

This small release fixes support of the Nyx rendering plugin. Besides, contact normal forces no longer biased by the friction coefficient nor the sliding speed, thanks to the new rigid solver option 'contact_resolution' that bounds friction against the normal force actually developed by the contact.

gs.contact_resolution.convex gs.contact_resolution.signorini (new default)
convex signorini

Breaking

  • [FEATURE] Support decoupling contact normal forces from friction coef and sliding speed. (@duburcqa) (#3126, #3139)

New Features

  • Support raycasting against visual meshes in viewer plugins. (@Milotrince) (#3132)

Miscellaneous

v1.3.0

Choose a tag to compare

@duburcqa duburcqa released this 29 Jul 13:26
084e9a4

This release extends differentiable rigid body simulation, which is no longer considered experimental. Moreover, torsional and rolling friction have been added, as part of a broader ongoing effort to bridge the sim2real gap.

friction_breakaway.py (pyramidal left, elliptic right) torsional_grasp.py rolling_coast.py
friction breakaway torsional grasp rolling coast

Breaking

  • [BUG FIX] Record camera videos of any length at a chosen framerate. (@duburcqa) (#3107, #3120)

New Features

Bug Fixes

  • Fix missing buoyancy on rigid bodies submerged in SPH fluid. (@yeezhouyi) (#2857)
  • Fix rendering assets pairing base color with emissive map. (@duburcqa) (#3088)
  • Fix camera sensor not being refreshed after scene reset. (@thanyu-hub) (#3100)
  • Fix transparency not deterministic in Rasterizer. (@duburcqa) (#3108)
  • Fix per-environment queries of link inertial properties and energies. (@duburcqa) (#3114)
  • Fix wrong mechanical energy and speed up computations. (@duburcqa) (#3121)
  • Fix handling of negative index for rigid accessor filter 'envs_idx'. (@jeetrex17) (#3117)

v1.2.3

Choose a tag to compare

@duburcqa duburcqa released this 18 Jul 13:15
6d2d19e

This release introduces elliptic friction cone with high-impedance option to accurately model static function. In addition, the convergence of the constraint solver under fp32 accuracy has been improved.

elliptic friction

New Features

  • Add high-fidelity static friction model via elliptic friction cone with high-impedance option. (@duburcqa) (#3028, #3035, #3042)
  • Add support of heterogeneous entities in batch renderer. (@Kashu7100) (#2960)
  • Add distances-only mode to raycasting-based sensors. (@Kashu7100) (#2908)
  • Add option to ignore MJCF ground plane. (@coyaSONG) (#3050)

Bug Fixes

Miscellaneous

v1.2.2

Choose a tag to compare

@duburcqa duburcqa released this 11 Jul 07:41
72bdd98

This release introduces a rich family of realistic yet high-throughput tactile sensors that are suitable for training dexterous policy via RL. Besides, non-convex collision detection is now more robust than ever, with comparable performance (speed and accuracy) to convex decomposition. Notably, spurious deep contacts and thin-shell tunneling has been fixed. Finally, enabling 'noslip' post-processing step should now incur less than 20% slowdown for all backends.

many objects non-convex collision

New Features

  • Add noise options for tactile sensors: hysteresis, dead taxels, probe gain (@Milotrince) (#2813)

Breaking changes

Miscellaneous

v1.2.1

Choose a tag to compare

@duburcqa duburcqa released this 03 Jul 07:51
0053ddc

This release dramatically improves scaling to large scenes on CPU by better leveraging sparsity and incremental Hessian update. Scenes with 100 entities / 1000 geometries now run in real-time at 120FPS.

convexify_stress_visual convexify_stress_collision

Breaking changes

  • [BUG FIX] Fix center of mass not properly aligned for composite links. (@duburcqa) (#2993)

New Features

Bug Fixes

  • Fix textures when loading GLB meshes with multiple materials. (@duburcqa) (#2984)
  • More robust watertighten algorithm use for non-convex meshes and inertia estimation. (@duburcqa) (#2994)
  • Fix stale deformable meshes on first rendered frame and wake-up crash during build. (@duburcqa) (#3006)

Miscellaneous

v1.1.1

Choose a tag to compare

@duburcqa duburcqa released this 03 Jul 07:31
v1.1.1
8de7e45

This minor release mainly improves the robustness of rigid collision detection for both convex and non-convex geometries. It is no longer considered experimental to disable convex decomposition when higher fidelity is necessary.

authored_convex_stacking_tower.mov
nonconvex_bolt_nut.mov
nonconvex_bowls.mov

Bug Fixes

  • Deduplicate textures across GLB submeshes sharing a material. (@duburcqa) (#2896)
  • Skip grayscale conversion for colorized segmentation maps. (@ACMLCZH) (#2901)
  • Fix non-deterministic simulation on GPU. (@duburcqa) (#2898, #2907, #2909)
  • Fix non-convex collision detection for concave geometries. (@duburcqa) (#2903)
  • More robust perturbation-based multi-contact convex-convex collision detection. (@duburcqa) (#2917, #2921)

Miscellaneous

v1.2.0

Choose a tag to compare

@duburcqa duburcqa released this 23 Jun 09:54
59a4306

This release dramatically improves scaling to large scenes using islands partitioning, which a now first-class and enabled by default. Besides, the simulation speed is also scaling much better with the number of degrees of freedom per entity.

examples.rigid.hibernation.py.mp4

Breaking changes

  • Parse kinematic trees depth-first instead of breadth-first. (@duburcqa) (#2972)

New Features

Bug Fixes

Miscellaneous

  • Add 'loop_config' kernel names for profiling. (@hughperkins) (#2950)
  • Fix typos and redundant placeholder/value in bug report template. (@yeezhouyi) (#2840)
  • Improve readability of entity and morph repr. (@duburcqa) (#2956)
  • Raise on ambiguous morph access for heterogeneous entities. (@kunni918) (#2798)
  • Speedup rigid body mass matrix cholesky decomposition for large dof count. (@Kashu7100) (#2915)
  • Partition mass matrix per kinematic tree to allow factoring them separately. (@duburcqa) (#2976)
  • Cache mesh processing to speed up adding many identical entities. (@duburcqa) (#2978)
  • Scale hibernation ang vel threshold by DOF swept radius. (@duburcqa) (#2979)