Add a Physics Backend
Add a physics engine by implementing the backend interfaces below. See Backend architecture for factory dispatch and shared interfaces.
Prerequisites
Before starting, identify the engine’s lifecycle, native data ownership, and the assets and sensors it can support. The backend must provide a PhysicsManager implementation and follow the module layout expected by FactoryBase.
Create the backend package
Create an extension package using the backend name in its package path. For
example, a backend named mybackend uses this layout:
Implement the physics manager
The manager must expose a SceneDataBackend so SceneDataProvider can read the backend’s body transforms in the Warp-native format consumed by renderers and visualizers.
Define the physics configuration
Define a PhysicsCfg subclass that identifies the manager class and holds backend-specific settings:
Register the backend key
FactoryBase does not derive a new backend key from an arbitrary physics
manager class name. Add the manager prefix to the core selector in
isaaclab.utils.backend_utils before factories can resolve assets and
sensors for the backend:
The existing _get_package_name() convention maps the mybackend key to
the isaaclab_mybackend package used above. If the integration uses another
package name, add an explicit case to _get_package_name() as well.
FactoryBase.register() only caches the concrete class after this key and
package mapping has selected and imported the backend module; calling it alone
does not register a new physics-manager prefix.
Implement assets and sensors
Each supported asset or sensor extends the matching base class in
isaaclab. The implementation class name must match the factory’s expected
name. Use lazy_export() in package __init__.py files. Once the core
backend-key mapping is in place, the factory imports these modules by package
and module-path convention and caches their implementation classes.
Validate backend discovery
FactoryBase maps isaaclab.assets.articulation to
isaaclab_mybackend.assets.articulation after the registered
mybackend key is selected from the active physics manager. Verify the
configured discovery path with the following checklist:
- Construct the backend configuration.
- Initialize a minimal simulation with that configuration.
- Instantiate one asset supported by the backend.
- Step the simulation once.
- Close the simulation cleanly.