Releases: Genesis-Embodied-AI/genesis-world
Release list
v1.2.3
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.
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
- Fix default morph offset_quat clashing with offset_euler. (@duburcqa) (#3048)
- Fix IPC coupler auto-detecting wrong coup_type for Plane entities. (@liminchen) (#2877)
- Fix mass matrix for attached entities. (@duburcqa) (#3055)
- Fix fastcache support. (@hughperkins) (#3034, #3061)
- FiX USD parsing of geometry properties. (@Milotrince) (#3017)
- Fix USD parsing of textures packed in .usdz archives. (@connorsoohoo) (#3064)
- Fix MJCF parsing of 2D textures. (@thanyu-hub) (#3036)
- Fix MJCF parsing of included files with mesh defaults. (@Fstarnb) (#3068)
- Fix MJCF parsing of joint armatures. (@duburcqa) (#3072)
- Honour system scroll direction in viewer plugins. (@coyaSONG) (#3030)
- Release the offscreen EGL context before destroying it during teardown. (@duburcqa) (#3076)
Miscellaneous
- Speed up non-convex collision detection with vert spatial grid and coarse SDF lower bound. (@duburcqa) (#3026)
- Speed up non-batched CPU-based simulation (up to 30%). (@hughperkins) (#3033)
- Speed up forward kinematics by removing unnecessary atomics. (@gayathiri-venkataraman) (#3066)
- Improve constraint solver float32 convergence and equality constraint stability. (@duburcqa) (#3073)
- Preserve the energy of freely tumbling bodies under implicit integration. (@duburcqa) (#3074)
- Stop requiring 64bit precision in tactile sensors. (@Milotrince, @duburcqa) (#3057, #3058)
- Pack rigid solver data on a per-component basis. (@duburcqa) (#3060)
- Fix broken Apple Metal CI. (@hughperkins) (#3054)
- Add contribution guidelines. (@duburcqa) (#3032, #3049)
v1.2.2
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.
New Features
- Add noise options for tactile sensors: hysteresis, dead taxels, probe gain (@Milotrince) (#2813)
Breaking changes
- Fix contact-pruning bucket merging. (@duburcqa) (#3010)
- Fix performance regression on some backends when sparse option is not specified. (@duburcqa) (#3010)
- Fix data accessors for very large batch sizes (>16k). (@duburcqa) (#3010)
- More robust nonconvex collision detection. (@duburcqa) (#3014, #3020)
- Fix go2_backflip RL training example. (@kshitijgoel007) (#2986)
Miscellaneous
- Speed up per-island noslip solver. (@duburcqa) (#3009)
- Speed up contact-island constraint solve for large batches. (@Milotrince) (#3021)
- Speed up tactile sensors. (@Milotrince) (#2922)
v1.2.1
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.
Breaking changes
New Features
- Add JointTorqueSensor. (@matthieuvigne) (#2989)
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
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
- Support passing sliced env mask to RigidSolver.set_base_links_(pos|quat). (@duburcqa) (#2897)
- Improve interactive scene mode. (@duburcqa) (#2899)
- Use qd.ndrange(axes=) to collapse layout-flip duplications. (@hughperkins) (#2861)
- Switch dedupe contact sort to use Quadrants bitonic sort (@hughperkins) (#2853)
- Move register-tile Cholesky into quadrants. (@hughperkins) (#2860)
v1.2.0
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
New Features
Bug Fixes
- Fix race condition causing ImGui plugin to crash during scene rebuild. (@Kashu7100) (#2936)
- Fix joint-equality when attaching a floating-base entity. (@duburcqa) (#2948)
- Fix offscreen rendering using wrong resolution when interactive viewer is enabled. (@duburcqa) (#2954)
- Fix Windows offscreen rendering. (@duburcqa) (#2951, #2953, #2961)
- Deduplicate BatchRenderer textures without image_path. (@NoahLinckeScout) (#2940)
- Render each heterogeneous variant in its own environment. (@duburcqa) (#2958)
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)
v1.1.2
This minor release introduces morph pose offset to finally provide a viable solution to the long-lasting inconstency of spatial accessors related to non-standard mesh axes conventions (0.3.13) and inertia alignment (0.4.4). Besides, fixed-size buffers are now sized more tightly to significantly reduce the default memory footprint.
Breaking changes
New Features
- Add pruning-aware sizing of contact constraint buffers using 'max_contacts' option. (@duburcqa) (#2928)
Bug Fixes
- Fix island support in rigid body solver. (@duburcqa) (#2930)
- Fix serialized batched simulation on CPU scaling sub-linearly. (@duburcqa) (#2929)
Miscellaneous
v1.1.0
This release focuses on performance improvement and numerical stability of rigid solver. Genesis speed should drop less aggressively as the complexity of the scene increases, notably the number of decomposed convex geoms, floating-base entities, and dofs.
Bug Fixes
- Fix contact tunnelling when enabling grad. (@duburcqa) (#2873)
- Fix raycast sensor for heterogeneous entities. (@duburcqa) (#2876, #2891)
- Fix loading of MJCF mesh normals. (@duburcqa) (#2883)
- Fix biased convex-convex multi-contact causing drift and inefficiency. (@duburcqa) (#2889)
Miscellaneous
- Scale contact arrow radius with object size. (@duburcqa) (#2852)
- Improve ImGui overlay plugin. (@duburcqa) (#2850, #2851, #2859, #2862, #2863, #2866)
- Add interactive scene launcher 'gs launch' to replace now deprecated 'gs view'. (@duburcqa) (#2864)
- Speedup rigid solver for large dofs count (> ~128). (@Kashu7100) (#2869)
- Speedup raycaster sensor by skipping static BVH rebuilds and share BVH across env-identical geometries. (@Kashu7100, @duburcqa) (#2867, #2875)
- Speedup rigid solver using CPU skyline-envelope sparse Cholesky. (@duburcqa) (#2879)
- Speedup raycaster-related sensors using cross-sensor shared context. (@duburcqa) (#2882, #2885)
v1.0.0
This release adds full support of non-convex multi-contact collision detection. Besides, many components of the simulation have been sped up, incl the rigid solver that should now be up to 35% for contact-reach scenes with about 64 dofs.
New Features
- Add robust non-convex mesh repair pipeline. (@duburcqa) (#2816)
- Add robust non-convex multi-contact collision detection. (@duburcqa) (#2812, #2821, #2823, #2825, #2828, #2844)
- Add 'ViewerOptions.enable_gui' option to easily enable ImGui overlay. (@duburcqa) (#2846, #2849)
Bug Fixes
- Always register scene for destroy even in case of build failure. (@duburcqa) (#2807)
- Fix static-contact drift on smooth-vs-polytope contacts. (@duburcqa) (#2801, #2841)
- Fix spurious rotation on flat terrain. (@duburcqa) (#2810)
- Fix elastomer taxel broken on Apple Metal. (@duburcqa) (#2811)
- Fix inconsistency between broadphase and narrowphase. (@duburcqa) (#2838)
- Fix tilted plane rendering. (@duburcqa) (#2824)
Miscellaneous
- Speed up point cloud tactile sensors. (@Milotrince) (#2800)
- Speed up MPM solver. (@Kashu7100) (#2720)
- Speed up rigid constraint solver. (@hughperkins) (#2809, #2817, #2820, #2827, #2837)
- Add contact pruning at link pair level. (@duburcqa, @hughperkins) (#2829, #2831, #2832, #2834, #2835)
v0.4.7
This release introduces a new type of tactile sensors while improving the existing raycasting-based and tactile sensors. Besides, a new opt-in experimental viewer plugin to interact with the simulation is now available.
Breaking changes
New Features
- Add ImGui overlay for interactive joint control and visualization. (@YilingQiao, @duburcqa) (#2541, #2780)
- Add public API to set / get vertex positions of visual rigid geometries. (@duburcqa) (#2776)
- Add support of visual-mesh to camera and raycasting-based sensors. (@Kashu7100, @duburcqa) (#2769, #2783)
- Add
history_lengthto Sensors (@Milotrince) (#2655) - Add new point-cloud-based tactile sensors. (@Milotrince) (#2735)
Bug Fixes
- Fix 'qd_zero_grad' not supporting qd.Tensor. (@duburcqa) (#2753)
- Fix zero-copy race condition on Apple Metal. (@duburcqa) (#2758)
- Fix rigid body Jacobian getter for compound joints. (@vlordier) (#2706)
- Fix ImGui interactive viewer plugin. (@Kashu7100) (#2789)
- Fix safe GJK fallback. (@duburcqa) (#2716, #2717)
- Workaround buggy float modulo on AMDGPU. (@duburcqa) (#2714)
- Reject 'CoacdOptions.pca=True' due to upstream CoACD bug (@voidborne-d) (#2757)
- Make Surface shortcut resolution idempotent. (@Kashu7100) (#2761)
- Robust device handling in slerp utils. (@Kashu7100) (#2754)
Miscellaneous
- Speedup noslip post-processing step used to suppress slip/drift. (@erizmr) (#2671, #2672, #2703)
- Unify linesearch refinement between decomposed and monolith solver paths. (@duburcqa) (#2710)
- Improve stability of CI performance benchmarks. (@hughperkins) (#2722, #2723, #2724, #2731)
- Speedup rigid constraint solver. (@hughperkins) (#2659, #2762)
- Serialize USD bake operations to prevent deadlocks. (@hughperkins) (#2739)
- Migrate to unified Quadrant's tensor abstraction. (@hughperkins) (#2751)
- Add support of autodiff with dynamic loops. (@duburcqa) (#2742, #2743)
- Viewer plugin updates: orthographic cam mode, multi-env mouse control, auto dark mode. (@Milotrince) (#2728)
- Refactor sensor pipeline. (@duburcqa, @Milotrince) (#2770, #2786, #2792)
- Avoid manually sync between torch and quadrants on Metal. (@hughperkins) (#2760)
- Update Dockerfile for Ubuntu 24.04 (@alnI3S) (#2744)
v0.4.6
This release brings recent performance uplifts that were CUDA-only to all GPU backends while relaxing CUDA Toolkit requirement. Besides, all reported CUDA crashes have been fixed.
New Features
- Add public API to Scene for drawing cameras frustum and trajectories. (@Mehak261124) (#2593)
Bug Fixes
- Fix EGL context not properly destroy during scene destruction. (@duburcqa) (#2673)
- Fix loading of GLB meshes missing normals or tex_coord. (@iory) (#2668)
- Fix sparse solve bug when building hessian. (@erizmr) (#2670)
- Fix contact overflow causing unbounded memory access. (@duburcqa) (#2688)
Miscellaneous
- Enable parallel linesearch on all GPU backends. (@duburcqa, @hughperkins) (#2678, #2689, #2692)
- Add public API to update debug markers. (@duburcqa) (#2665)
- Make markers always foreground with XRAY effect. (@duburcqa) (#2666, #2685)
- Speed up rigid constraint solver init. (@erizmr) (#2521)
- More robust GPU detection in test infrastructure. (@Lidang-Jiang) (#2653)

