Massively parallel rigidbody physics simulation on accelerator hardware.
This patch release includes:
This minor release adds a preview of a major overhaul to Brax's API and
functionality. This overhaul (found in the v2/
folder) will eventually become
Brax's first stable (1.0) release.
The new features of Brax v2 include:
This release adds a new module: brax.experimental.tracing
that allows for domain randomization during training. This release also adds support for placing replay buffers on device using pjit
which allows for more configurable parallelism across many devices. Finally this release includes a number of small bug fixes.
This will be the final release before we release a preview of a significant API change, so users may want to pin to this version if API stability is important.
This release includes a refactor of the training code to make it more modular and hackable, with each algorithm now as a separate submodule under brax.training.agents
.
This release also updates references to the deprecated jax.tree* functions to their new home in jax.tree_util, fixes a few bugs in physics/collision code, and adds an initial implementation of box-box collisions.
This release includes a refactor of the training code to make it more modular and hackable, with each algorithm now as a separate submodule under brax.training.agents
.
This release also updates references to the deprecated jax.tree* functions to their new home in jax.tree_util, fixes a few bugs in physics/collision code, and adds an initial implementation of box-box collisions.
This release fixes a few bugs in the collision handling in PBD, and adds support for specifying collider visibility, color, and contact participation.
This release fixes a javascript bug that is preventing the viewer from rendering.
This version introduces a significant overhaul to the physics algorithms. We now support position based dynamics for resolving joint and collision constraints. See this paper for details about PBD.
The most noticeable difference to prior versions of Brax is that joints are now modeled as infinitely stiff, whereas before they were stiff damped spring systems. This new physics is now default, and all environments use PBD-based joints and collisions by default.
If you would like to preserve the behavior used in previous versions of brax, you can either:
Version pin to 0.0.10
– the version right before this upgrade. While you will not get the latest and greatest improvements to Brax, you will have unambiguously consistent behavior.
Add dynamics_mode: "legacy_spring"
to your brax configuration file. This causes brax to navigate the old codepath.
Supply legacy_spring=True,
as a kwarg to env creation (without `s). This causes Brax to load the older config for all the environments currently defined in Brax (see the logic in the init functions of each env for details).
Thank you for using Brax, and feel free to open an Issue if you have any questions!
Please see https://github.com/google/brax/tags for details about this release.
Please see https://github.com/google/brax/tags for details about this release.