Isaac Sim and Isaac Lab workflow
Prepare a headless Isaac workload and verify its requirements before the first run.
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.
- Add the generated .him folder to the repository and keep the project's existing headless Isaac command.
- 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.
- Run him doctor, him validate, and him test --local before spending GPU credits.
- Launch a bounded SSH GPU machine with him compute only after approving the budget, then run the repository's native command there.
- 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
- Run him init . --template isaac-lab in the existing repository.
- Set the native headless command the project already uses in .him/him.yaml.
- Declare the robot assets, signal mapping, reset behavior, evaluator, and expected outputs.
- Commit the source and run him doctor, him validate, and him test --local. Use him push when you want to register the immutable package.
- Start with the smallest private scenario and verify its artifacts before scaling up.
The required episode pipeline
- Simulate: load the exact world/robot/brain and write candidate trajectory, summary, environment, and bounded logs.
- Freeze: make candidate output immutable for the attempt.
- Evaluate: read frozen candidate state and emit authoritative=true plus numeric metrics from a versioned evaluator.
- Render: derive diagnostic, 16:9, 9:16, and poster media only from recorded state and evaluator output.
- Attest: bind run spec, package, evaluator, environment, manifest, provider job, and Ed25519 signature.
- Ingest privately: verify exact bytes and identities before any owner or Arena view can use the result.
If the first hosted run fails
| What you see | What to do |
|---|---|
| The .him folder is missing | Run 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 identifier | Use 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 dirty | Review and commit the intended source first. HIM runs an exact clean commit so the hosted result can be reproduced. |
| A required repository path is missing | Run 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 load | Test 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 published | Declare 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 ready | Your 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. |
