Skip to navigation

Native Physics API Access

View as Markdown

Native physics APIs are backend-specific escape hatches. They can bypass Isaac Lab’s buffering, validation, ordering, and lifecycle management. Use the unified asset and sensor APIs unless an engine-native capability or a lower-overhead data path is required.

Choose an access level

Use native access only when the unified APIs do not provide a capability or data path that the workload needs. Keep it close to the component that owns the simulation state. For the portable API boundary and backend lifecycle, see Backend architecture.

  1. Use the unified Isaac Lab data and write APIs for portable task code.
  2. Reuse an Isaac Lab-owned native handle when its selection already matches.
  3. Create raw engine access only for a selection or capability that the owning Isaac Lab object does not expose.

Ownership and synchronization

BackendNative entry pointSelection modelData ownershipRead/write modelSynchronizationInvalidation
PhysX~isaaclab_physx.physics.PhysxManager.get_physics_sim_viewTyped views selected by prim globsEngine/view-owned buffersGetter/setter pull/pushExplicit setters and occasional kinematic refreshReacquire after view invalidation, hard reset, or teardown
Newton~isaaclab_newton.physics.NewtonManager.get_model, ~isaaclab_newton.physics.NewtonManager.get_state_0, ~isaaclab_newton.physics.NewtonManager.get_control, and ~isaaclab_newton.physics.NewtonManager.get_contactsGeneric labels and ArticulationViewLive engine-owned Warp arraysDirect pointer or selection reads/writesForward kinematics and model-change notification when applicableReacquire current state across state-buffer swaps and all objects after model rebuild
OvPhysX~isaaclab_ov.physics.OvPhysxManager.get_physx_instance or ~isaaclab_ov.sim.views.OvPhysxViewA tensor type plus pattern/prim listCaller-owned transfer buffers backed by engine bindingsExplicit read()/write() or guarded convenience methodsCaller respects access mode, device, dtype, and shapeReacquire after stage/runtime teardown

Isaac Lab also reads the native state and model for you when feeding renderers and visualizers. See scene_data_providers for that read path.

Backend-specific guides