I’m happy to announce that our Preview 2 Release of Isaac Gym is now available to download: Isaac Gym - Preview Release | NVIDIA Developer
The team has worked hard to address many of the issues that folks in the forum have discussed, and we’re looking forward to your feedback!
Here’s a quick peek at some of the changes from the release notes:
API + Command Line Parameter Changes
Command line arguments for simulation API and device selection have changed, and are now aligned between the RL examples and general programming examples:
--physx_gpucommand line option has been removed.
--sim_deviceis used to specify a device for simulation. It can take either
--pipelineis used to explicitly choose either the
gputensor pipeline API.
Command line arguments for setting the experiment name were improved and extended:
--experimentcommand line option replaced
--metadataflag was added. When used with
--experiment <experiment name>additional information about the physics engine, sim device, pipeline and domain randomization is added to the experiment name.
Refactored the API for applying rigid body forces:
- The new body force API allows applying torques and using different coordinate spaces for force, torque, and position vectors.
apply_body_forcefunction was replaced by
apply_body_force_at_pos(see API docs).
apply_rigid_body_force_tensorfunction was replaced by
apply_rigid_body_force_at_pos_tensors(see tensor API docs).
Simulation determinism has been improved:
--seedparameter can be set in RL examples to specify what random seed to use. Explicitly setting a seed should produce deterministic results between runs.
- By default, the seed is set to -1, which will generate a random seed for each run.
--torch_deterministicparameter can now be set to force additional determinism in PyTorch operations, at the expense of performance.
- For more details, please refer to the Reproducibility section on the Reinforcement Learning Examples page.
The base RL task class has been updated to prepare for future multi-gpu training support:
- Any user environment inherited from the RL base task class should be updated as well
Asset root and file paths can now be read in from cfg files.
attach_camera_to_body now takes named enums instead of an integer argument for the camera attachment mode.
Contents in docker image are now placed under
/opt instead of
- Added support for convex decomposition of collision meshes during asset import.
- Now uses Assimp for mesh loading. This means that many different types of meshes can be specified in MJCF or URDF assets (including .dae, .stl, .obj, etc.).
- Added support for loading materials and (embedded and non-embedded) textures from meshes in URDF and MJCF files.
- Added support for overriding normals loaded from meshes with either smooth vertex normals or face normals.
- Added flags for explicitly overriding inertia tensors and center of mass in AssetOptions.
- Added support for visual boxes and material loading from MJCF.
programming/assetsfor additional information
Updated graphical user interface and visualization options
- Added API support for getting mouse position and window size from the viewer
programming/simsetupfor additional information
Updates related to Shadow Hand Environment and RL framework features
- Added adaptive KL scheduling to the default rl-pytorch RL framework. This was previously available only in the rl_games RL framework.
- Added different observation variants in the Shadow Hand environment for a closer match to OpenAI’s Learning Dexterity project: Learning Dexterity
- Added support of asymmetric observations and Shadow Hand training examples using them.
- Added examples of training with LSTM policy and value functions with rl_games.
- Added support of setting control frequency to be lower than a simulation frequency and
controlFrequencyInvparameter to the yaml configs to specify how many simulation steps per one control step should be performed.
- Added correlated noise to Domain Randomization options.
- Added support for custom distributions of actor parameters for domain randomization.
Other Asset and Example updates:
- Added new training environments: ANYmal quadruped robot, Quadcopter and NASA Ingenuity helicopter.
Scalability related containerization updates:
- Added support for Python 3.8.
- Added support for headless rendering in docker with available graphics driver.
- Improved CUDA context handling to prepare for multi-GPU training support
Additional new features:
- Added support for runtime scaling of actors.
- Added support for recomputing the inertia tensors of rigid bodies when their mass is changed.
- Added support for specifying position offset when applying force to bodies.
- Changed the default values of max_depenetration_velocity and bounce_threshold_velocity.
- Added CoordinateSpace enum to specify position offsets in local, env, or global space.
- Fixed issue with observation and action noise.
- Fixed joint limit ranges for CMU and NV humanoids.
- Fixed axes bug for humanoid training.
- Fixed incorrect visualization of collision meshes with PhysX backend.
- Fixed a bug with env spacing in z-up simulations.
- Fixed a bug where meshes, cylinders, or ellipsoids imported from MJCF could have incorrect friction properties.
- Fixed a bug where primitive shapes created procedurally could have incorrect thickness in Flex.
- Fixed a possible crash when getting net contact force tensor on GPU.
- Fixed submitting mixed control tensors in GPU pipeline.
- Fixed issues with z-up camera view matrix calculation, lookAt function, and mouse drag direction.
- Fixed rigid body property getter that was returning erroneous inertia tensors.
- PhysX: Fixed occasional crash with aggregates on GPU.
- PhysX: Fixed possible buffer overflow in convex-capsule collision on GPU.
- PhysX: Fixed stability issues with small meshes.
- PhysX: Improvements to TGS restitution.
- PhysX: Fixed issue with applying body forces in GPU pipeline.
- PhysX: Fixed issue with applying body torques in GPU pipeline.
- PhysX: Fixed various issues causing non-determinism.
- Fixed synchronization issues in GPU pipeline.
- Fixed issue with z-up camera view matrix calculation.
- Fixed issues with setting the rigid shape properties of an actor.
- Improved error checking for input tensors.
- Improved error reporting when CPU-only functions get called during simulation with the GPU pipeline.
- Fixed a bug in computing transform inverse.
- Fixed a Flex crash on startup caused by a driver bug.
- Fixed a bug with ground plane friction in the body_physics_props example.