Releases: Genesis-Embodied-AI/Genesis
v0.3.11
The main focus of this release is to improve scaling of the simulation wrt the complexity of the scene, and better leverage GPU compute for small to moderate batch sizes (0<=n_envs<=8192). As usual, a bunch of minor bugs have been fixed.
New Features
- Support specifying offset transform for camera sensor. (@YilingQiao) (#2126)
- Enable zero-copy for fields on Metal if supported. (@duburcqa) (#2174)
Bug Fixes
- Avoid discontinuities in smooth animations caused by singularities. (@Rush2k) (#2116)
- Fix forward update logics. (@duburcqa) (#2122)
- Fix kernel caching mechanism hindering performance. (@duburcqa) (#2123)
- Fix support of old torch for 'set_dofs_velocity' when velocity=None. (@YilingQiao) (#2160)
- Force rendering systematically when updating camera sensor. (@YilingQiao) (#2162)
- Fix incorrect lighting when offscreen cameras based on rasterizer. (@duburcqa) (#2163)
- Fix rasterizer race conditions when running in background thread. (@duburcqa) (#2169)
- Fix broken exception handling when loading obj files with unsupported face type. (@Kashu7100) (#2170)
- Fix 'pysplashsurf' memory leak causing OOM error. (@duburcqa) (#2173, #2176)
- Diagnose out-of-bound SDF gradient index. (@duburcqa) (#2177)
Miscellaneous
- Stop assessing warmstart vs smooth acc at constraint solver init. (@duburcqa) (#2117)
- Speedup collision detection broad phase on GPU. (@duburcqa) (#2128)
- More comprehensive benchmarks. (@duburcqa) (#2137)
- Accelerate constraint solver first pass using shared memory. (@duburcqa) (#2136, #2140)
- Further optimize cholesky solve using warp reduction and memory padding. (@duburcqa) (#2145, #2146)
- Improve runtime speed by optimize memory layout of constraint solver. (@duburcqa) (#2147)
- Fast mass matrix factorisation on GPU using shared memory. (@duburcqa) (#2154)
- Optimize rigid body dynamics to scale better wrt dofs and entities. (@duburcqa) (#2161)
- Fix spurious deprecated property warnings during introspection. (@duburcqa) (#2168)
- Various solver refactoring to support GsTaichi Main. (@hughperkins, @duburcqa) (#2131, #2135, #2143, #2151)
- Improve single-threaded cpu-based simulation speed by upgrading gstaichi. (@hughperkins) (#2129, #2153)
v0.3.10
v0.3.9
Small release mainly polishing features that were introduced in previous release.
New Features
- [CHANGING] Replace SDF fallback by GJK. (@duburcqa) (#2081)
- [CHANGING] Improve inertial estimation if undefined. (@YilingQiao) (#2100)
- Add support of boolean masking as index. (@duburcqa) (#2087)
- Fix and improve merging of rigid entities. (@duburcqa) (#2098)
Bug Fixes
- Fix increased memory usage due to differentiable simulation. (@duburcqa) (#2074)
- Fix 'envs_idx' in motion planning. (@duburcqa) (#2093)
- Fix 'DroneEntity.set_propellels_rpm'. (@duburcqa) (#2095)
- Fix extended broadcasting. (@duburcqa) (#2096)
- Fix 'RigidEntity.set_dofs_velocity'. (@robin271828) (#2102)
- Fix joint stiffness not taking into account neutral position. (@YilingQiao) (#2105)
- Fix explicit URDF material color being ignored. (@duburcqa) (#2107)
Miscellaneous
v0.3.8
The performance of data accessors have been dramatically improved by leveraging zero-copy memory sharing between GsTaichi and Torch. Beyond that, the robustness of the default contact algorithm has been improved, and differentiable forward dynamics for Rigid Body simulation is not partially available. Last, but not least, GsTaichi dynamic array mode is finally enabled back by default!
New Features
- [CHANGING] More robust MPR+SDF collision detection algorithm. (@duburcqa) (#1983, #1985)
- [CHANGING] Disable box-box by default. (@duburcqa) (#1982)
- Enable back GsTaichi dynamic array mode by default except for MacOS. (@duburcqa) (#1977)
- Add error code to rigid solver. (@duburcqa) (#1979)
- Add option to force batching of fixed vertices. (@duburcqa) (#1998)
- Leverage GsTaichi zero-copy in data accessors. (@duburcqa) (#2011, #2019, #2021, #2023, #2025, #2030, #2037, #2048, #2054)
- Add an option to disable keyboard shortcuts (@YilingQiao) (#2026)
- Add support of 'capsule' primitive in URDF file. (@duburcqa) (#2045)
- Add full support of tensor broadcasting in getters. (@duburcqa) (#2051)
- Add rasterizer, batch renderer, and raytracer as sensor (@YilingQiao) (#2010)
- Differentiable forward dynamics for rigid body sim. (@SonSang) (#1808, #2063, #2068)
Bug Fixes
- Fix sensor IMU accelerometer signal. (@Milotrince) (#1962)
- Fix 'RigidJoint.(get_anchor_pos | get_anchor_axis)' getters. (@alexis779) (#2012)
- Prevent nan to propagate in position and raise exception. (@duburcqa) (#2033)
- Fix camera following entity for 'fix_orientation=True'. (@duburcqa) (#2038)
- Fix support of Hybrid entity with non-fixed base link. (@duburcqa) (#2040)
- Raise exception if trying to load PointCloud as Mesh. (@duburcqa) (#2042)
- Fix boolean mask inversion for PyTorch 2.x (@yoneken) (#2056)
- Fix URDF color overwrite. (@duburcqa) (#2065)
Miscellaneous
- Reduce memory footprint. (@duburcqa) (#2000, #2031)
- Only enable GJK by default if gradient computation is required. (@duburcqa) (#1984)
- Bump GsTaichi Support Nvidia GPU Blackwell. (@johnnynunez) (#2002)
- Add dependency version upper-bound 'tetgen< 0.7.0'. (@YilingQiao) (#2029)
- Bump up min version requirement for Torch after introducing zero-copy. (@duburcqa) (#2034)
- Add 'parse_glb_with_zup' option to all file-based Morph. (@ACMLCZH) (#1938)
- Enable more example scripts in CI. (@duburcqa) (#2057)
- Fix fast cache and zero-copy bugs. (@hughperkins) (#2050)
0.3.7
The performance of GsTaichi dynamic array mode has been greatly improved. Now it should be on par with performance for very large batch size, and up to 30% slower for non-batched simulation. This mode this still considered experimental and must be enabled manually by setting the env var 'GS_ENABLE_NDARRAY=1'. Just try it if you are tired of endlessly waiting for the simulation to compile!
New Features
- Implement position-velocity controller. (@matthieuvigne) (#1948)
Bug Fixes
- Fix missing option
diffuse_texturetoGlasssurface. (@Kashu7100) (#1934) - Fix interactive viewer. (@YilingQiao) (#1931)
- Fix external coupling forces from other solvers not affecting rigid bodies. (@SonSang) (#1941)
- Fix silent process killing issue in MPM simulation by raising an exception. (@SonSang) (#1949)
- Fix 'discrete_obstacles_terrain' being completely flat. (@jgillick) (#1972)
Miscellaneous
- Added warning message about stable timestep for SPH solver. (@SonSang) (#1925)
- Reduce memory usage due to diff constraint solver. (@YilingQiao) (#1930)
- Faster non-batched simulation. (@duburcqa) (#1935)
- Fix or silent dev warnings. (@duburcqa) (#1944)
- Add caching to Rigid Link state getters to improve performance. (@duburcqa) (#1940, #1955)
- Add support of Linux ARM. (@duburcqa) (#1961)
- Add 'GS_PARA_LEVEL' env var to force kernel parallelization level. (@duburcqa) (#1968)
0.3.6
A new experimental interface with the Incremental Potential Contact coupling solver libuipc has been introduced, mainly targetting cloth simulation.
New Features
- Add Rigid ‘get_dofs_frictionloss’ public API method. (@ax-anoop) (#1904)
- Add IPC (Incremental Potential Contact) coupling system. (@Roushelfy) (#1859)
Bug Fixes
- Fix missing dependencies in Docker (@schlagercollin) (#1896)
- Fix sensor recorder Matplotlib plotter on Linux and Windows. (@duburcqa) (#1894)
- Fix particle emitter failure if batch size = num emit particles. (@duburcqa) (#1901)
- Fix MJCF handling of visual groups. (@duburcqa) (#1902)
Miscellaneous
- Disable GsTaichi dynamic arrays by default (again!) (@duburcqa) (#1915)
- Reset control during reset. (@YilingQiao) (#1920)
0.3.5
Minor release mainly aiming at polishing existing features and addressing some major performance regression that was introduced end of august. GsTaichi dynamic array type and fast cache are now enabled by default on Linux and Windows (opt-in on MacOS via env variable 'GS_ENABLE_NDARRAY'), which should help avoiding recompilation in most cases.
New Features
- Make convex decomposition cache scale-invariant. (@SonSang) (#1810)
- Add parsing of joint friction and damping for URDF files. (@duburcqa) (#1833)
- Differentiable constraint solver (@SonSang) (#1733)
- Add support of GsTaichi dynamic array type and fast cache mode. (@YilingQiao, @duburcqa) (#1868, #1873, #1875, #1880)
Bug Fixes
- Fix hybrid entity with rigid. (@duburcqa) (#1819)
- Reduce general memory usage. (@hughperkins) (#1828)
- Improve reliability and performance of plotters. (@duburcqa) (#1836)
- Fix loading MJCF file with includes. (@YilingQiao, @duburcqa) (#1838, #1840)
- Fix DepthCamera sensor. (@Milotrince) (#1842)
- Fix and refactor named terrain. (@duburcqa) (#1845)
- Raise exception in case of invalid set entity pos/quat. (@duburcqa) (#1847, #1869)
- Fix gltf Loading for URDF. (@ACMLCZH) (#1857)
- Fix friction loss causing nan on Apple GPU. (@duburcqa) (#1860)
- Fixed minor bug in differentiable contact detection. (@SonSang) (#1864)
- Fix race condition during concurrent viewer refresh and draw_debug_*. (@duburcqa) (#1883, #1884)
- Enable GPU and fix dt in some example scripts. (@schlagercollin) (#1890)
Miscellaneous
- Reduce memory usage of Raycaster sensor. (@Milotrince) (#1850)
- Add 'get_particles_pos' helper method to SPHEntity. (@YilingQiao) (#1871)
- Enabling gstaichi fast cache by default. (@hughperkins) (#1885)
- Refactor Rigid simulation data management. (@duburcqa) (#1888)
- Do not silent errors during build. (@duburcqa) (#1889)
0.3.4
This minor release mainly introduces first-class sensor support (IMU, Contact Sensor, LiDAR, Depth camera and more), incl. recording and plotting facilities. The rigid-rigid hydroelastic contact model has also been added. As usual, a fair share of bugs have been fixed, with unit test coverage gradually improving.
Behavior Changing
- Support rendering deformable body for batched env. (@YilingQiao) (#1697)
- More sensible defaults for camera far, near. (@duburcqa) (#1678)
- Fix invweight and meaninertia not always considering scale and dofs armature. (@duburcqa) (#1696)
New Features
- Refactor 'FrameImageExporter' to improve performance and support normal & segmentation. (@duburcqa) (#1671)
- Add support of normal & segmentation for Madrona Batch Rendering. (@ACMLCZH) (#1563)
- Add 'noslip' optional post-processing step to suppress slip/drift. (@YilingQiao) (#1669)
- Add first-class data recorders and plotters. (@Milotrince) (#1646, #1718)
- Add rigid-rigid hydroelastic contact model. (@Libero0809) (#1572)
- Add option to display sensor information in the interactive viewer. (@Milotrince) (#1770)
- Add support of differentiable contact detection (Work In Progress). (@SonSang) (#1701)
- Add Raycaster sensor (Lidar and DepthCamera). (@Milotrince, @duburcqa, @jgillick) (#1726, #1772, #1809, #1815)
- Add full support gstaichi ndarray to Rigid Body solver. (@YilingQiao, @SonSang, @duburcqa) (#1674, #1682, #1683, #1690, #1693, #1695)
- Add full support gstaichi fast caching mechanism. (@hughperkins, @YilingQiao) (#1709, #1720, #1730, #1812)
Bug Fixes
- Fix data races in getting contact and equality constraints. (@YilingQiao) (#1676)
- Fix MPM muscle activation. (@YilingQiao) (#1692)
- Fix non-flat terrain support. (@Kashu7100, @YilingQiao, @duburcqa) (#1691, #1777, #1779)
- Disable mesh processing when loading URDF for consistency. (@duburcqa) (#1708)
- Fix segfault at exit when running viewer in background thread with offscreen cameras. (@duburcqa) (#1703)
- Fix all the example scripts. (@YilingQiao, @duburcqa) (#1743, #1773, #1724, #1785, #1787, #1801, #1804)
- Fix logics for duplicating collision geometries as visual in MJCF. (@hokindeng, @duburcqa) (#1732, #1750)
- Randomize uniform terrain along both axes. (@jgillick) (#1747)
- Fix contact sensors always returning zeros. (@Milotrince) (#1761)
- Fix LBVH stuck in infinite loop for small number of AABBs. (@duburcqa) (#1766)
- Fix broken interactive viewer backend fallback mechanism. (@duburcqa) (#1797)
- Fix camera follow entity. (@duburcqa) (#1805)
- Fix compound joints for 'set_dofs_position'. (@duburcqa) (#1678)
- Fix some mesh-related issues (@ACMLCZH) (#1800)
Miscellaneous
- Fix support of 'pyglet<2.0'. (@Kashu7100) (#1670)
- Add vision-based manipulation example (@yun-long) (#1493)
- Reduce max_collision_pairs to save memory (@YilingQiao) (#1672)
- Remove 'gs clean' utility. (@duburcqa) (#1723)
- Rename 'get_aabb' in 'get_AABB' and add deprecation warning. (@duburcqa) (#1778)
- Improve interactive viewer performance. (@duburcqa) (#1784)
- Raise exception in cause of particle sampling failure. (@duburcqa) (#1792)
- Remove 'is_free' that was confusing and partially redundant with 'is_fixed'. (@duburcqa) (#1795)
0.3.3
This minor release fixes a few non-blocking rendering issues for the Rasterizer backend.
Bug Fixes
- [BUG FIX] Fix shadow map not properly rendered for objects far away from floor plane. (@duburcqa) (#1664)
- [BUG FIX] Fix genesis import failure if tkinter is failing at init on MacOS. (@duburcqa) (#1666)
- [BUG FIX] Fix default visualization mode for emitter surface. (@duburcqa) (#1665)
Miscellaneous
0.3.2
This minor release fixes a few additional regressions and initiates migration to our own open-source fork of Taichi, GsTaichi (contributions are welcome!).
Behavior Changing
- Disable decimation if deemed unnecessary and unreliable. Reduce default aggressiveness. (@duburcqa) (#1644)
- Fix primitive and mesh's COM. (@YilingQiao) (#1638)
New Features
- Add 'set_dofs_frictionloss' method for dynamic joint friction control. (@LeonLiu4) (#1614)
- Add initial experimental support of gstaichi fast cache feature. (@hughperkins) (#1631)
- Add 'ref' optional argument to 'get_links_pos'. (@YilingQiao) (#1638)
Bug Fixes
- Fix Inverse Kinematics algorithm. (@Kashu7100, @duburcqa) (#1582, #1586)
- Fix save frame as png image in interactive viewer. (@Kashu7100) (#1606)
- Filter out collision pairs involved in weld equality constraints. (@duburcqa) (#1621)
- Fix viewer backend fallback when running in main thread. (@duburcqa) (#1630)
- Fix 'quat_to_xyz' singularity edge-case. (@duburcqa) (#1628)
- Fix CUDA runtime being initialized by 'get_device'. (@duburcqa) (#1634)
Miscellaneous
- Re-enable world-frame in the 'gs view' standalone viewer. (@Kashu7100) (#1584)
- Migrate from 'taichi' to 'gstaichi'. (@duburcqa, @hughperkins) (#1550, #1618, #1645)
- Update documentation so the doc will be compiled based on the latest main. (@YilingQiao) (#1616)