Developer docsCompute · Arena · API

Isaac Sim and Isaac Lab workflow

Prepare a headless Isaac workload and verify its requirements before the first run.

Isaac Lab and robot integration engineers · 12 min · Updated
Markdown

Current status

The first hosted check

HIM qualifies each Isaac runtime with a small headless smoke workload before enabling larger jobs. The check loads the real repository command, runs a bounded number of environments and iterations, writes declared outputs, and stops. Its purpose is to verify the execution path—not to train a useful policy.

The next internal check uses the official 29-DOF Unitree G1 model in a fixed-base table-tennis scene. Builders iterate in MuJoCo, then HIM reruns selected candidates in Isaac Lab. The results stay in separate lanes because the physics engines are not interchangeable.

  1. Add the generated .him folder to the repository and keep the project's existing headless Isaac command.
  2. Add a package test for every required asset or motion file. If a converter expects numeric rows, verify the input has the expected column order and no header.
  3. Run him doctor, him validate, and him test --local before spending GPU credits.
  4. Launch a bounded SSH GPU machine with him compute only after approving the budget, then run the repository's native command there.
  5. Inspect the output video, metrics, and logs. Scale iterations or environments only after the smoke run passes, then publish with him upload if desired.

Facts required before the first real run

  • Exact Isaac Sim and Isaac Lab versions required by the repository. HIM pins and certifies the hosted image; builders do not need to publish one.
  • NVIDIA driver, GPU model/VRAM, headless RTX/Vulkan/PhysX/camera/video probes, disk, timeout, and expected cost class.
  • Recorded NVIDIA EULA acceptance and source/asset/output/media publication rights.
  • Exact robot asset/world load, observation/action ordering and units, control rate/decimation, reset/seed, and termination mapping.
  • Native train, play/evaluate, export, and render commands that the upstream repository already uses.
  • An isolated evaluator plus trajectory and factual media outputs. Reward or LLM summaries are never authoritative metrics.

Validate the environment before the first job

  1. Run him init . --template isaac-lab in the existing repository.
  2. Set the native headless command the project already uses in .him/him.yaml.
  3. Declare the robot assets, signal mapping, reset behavior, evaluator, and expected outputs.
  4. Commit the source and run him doctor, him validate, and him test --local. Use him push when you want to register the immutable package.
  5. Start with the smallest private scenario and verify its artifacts before scaling up.

The required episode pipeline

  1. Simulate: load the exact world/robot/brain and write candidate trajectory, summary, environment, and bounded logs.
  2. Freeze: make candidate output immutable for the attempt.
  3. Evaluate: read frozen candidate state and emit authoritative=true plus numeric metrics from a versioned evaluator.
  4. Render: derive diagnostic, 16:9, 9:16, and poster media only from recorded state and evaluator output.
  5. Attest: bind run spec, package, evaluator, environment, manifest, provider job, and Ed25519 signature.
  6. Ingest privately: verify exact bytes and identities before any owner or Arena view can use the result.

If the first hosted run fails

Common Isaac setup failures
What you seeWhat to do
The .him folder is missingRun him init . --template isaac-lab from the repository root, then set the generated entrypoint to the command the project already uses.
Runtime family must be a short portable identifierUse isaac_lab. Do not enter an image tag, version, provider name, or shell command as the runtime.
No module named 'isaaclab'Launch native Isaac scripts with /isaac-sim/python.sh instead of generic Python. Keep setup scripts that do not import Isaac in your normal Python environment.
The repository is dirtyReview and commit the intended source first. HIM runs an exact clean commit so the hosted result can be reproduced.
A required repository path is missingRun the same .him entrypoint locally. Fix the path relative to the repository root; do not add a machine-specific absolute path.
A motion or dataset fails to loadTest the exact source file before launch. Check its header, column order, units, and coordinate convention against the repository's native converter.
The simulation finishes but no result is publishedDeclare an evaluator that writes authoritative=true and at least one numeric metric. Logs and summaries are useful evidence, but they are not scored metrics.
The hosted runtime is not readyYour package is valid, but HIM has not enabled this Isaac profile yet. Retry after the runtime is marked available; do not add provider credentials to your repository.