Run Scripted State Machines#

Isaac Lab includes hand-written state-machine examples for inspecting an environment’s observations and action interface without training a policy. The state transitions run in parallel across environments as Warp kernels, which keeps the examples efficient at larger environment counts.

Run these commands from the Isaac Lab repository root. Use --num_envs to change the number of parallel environments and --viz to select a visualizer.

Pick and lift a rigid cube#

This example approaches a cube, closes the gripper, and lifts the cube to its goal pose:

uv run python scripts/environments/state_machine/lift_cube_sm.py \
   --num_envs 32 --viz kit

Lift a deformable object#

This example uses the Newton backend to grasp and lift a soft object. The Newton visualizer opens by default:

uv run --extra tetrahedralization python scripts/environments/state_machine/lift_franka_soft.py \
   --num_envs 1

Open a cabinet drawer#

This example approaches the drawer handle, grasps it, pulls the drawer open, and releases it:

uv run python scripts/environments/state_machine/open_cabinet_sm.py \
   --num_envs 32 --viz kit

Each script defines its states, wait times, transition kernel, and action loop in one file. Start with lift_cube_sm.py when adapting the pattern to a new manipulation task.