When To Use
Use this skill when a user needs to choose, configure, compare, or debug Isaac Lab physical backends or renderer-related behavior.
Do not use this skill to duplicate backend reference material. Link to the backend architecture, backend and preset selector, schema cfg docs, and source examples for current configuration details. If the user is converting or validating a specific USD asset for Newton, use isaaclab-preparing-assets-for-newton.
Workflow
- Identify the target backend: PhysX, Newton, OvPhysX, or a task that must support multiple backends through presets.
- Read the physics-backends concept, backend architecture, backend and preset selector, and schema cfg docs before editing backend configs.
- Start with the backend that best matches the source task or current maintained example. Use PhysX first when matching Isaac Gym behavior.
- Add backend presets only after the task runs on one backend.
- Map simulation parameters through public cfg schemas instead of copying old simulator-specific keys. Import universal schema fragments and base cfgs from
isaaclab.sim.schemas, PhysX-specific cfgs fromisaaclab_physx.sim.schemas, and Newton or MuJoCo cfgs fromisaaclab_newton.sim.schemas. - Check backend support for sensors, randomization events, terrain, contacts, and actuators before enabling them.
- Separate backend-specific differences using
PresetCfgor existing preset helpers rather than runtime conditionals scattered through task code. - Use suffixless task names in backend smoke-test and training commands.
- Validate each backend with a small reset/step rollout before training.
- For backend architecture changes, resolve shared native runtimes through
SimulationContext.get_or_create_backend(...)instead of copying state between consumers. - Document intentional behavior differences, especially around contacts, randomization timing, CPU/GPU data paths, and renderer requirements.
Validation
Use this checklist:
- Run a small reset/step smoke test on the primary backend.
- Run the same smoke test on each selected backend before training.
- Compare observation shape, action shape, reset behavior, and contact behavior.
- Check randomization events for backend-specific support and device assumptions.
- Run short training only after each selected backend passes its smoke test.
For skill changes, run:
uv run --no-project python tools/skills/cli.py check
Maintenance
Keep this skill synchronized with docs/source/concepts/physics_backends.rst, docs/source/concepts/backend_architecture.rst, docs/source/concepts/backends_and_presets.rst, docs/source/concepts/schema_cfgs.rst, and backend-aware task examples under source/isaaclab_tasks/isaaclab_tasks/. If backend docs are incomplete, improve the docs rather than expanding this skill into a backend reference.