dimensionalOS / dimensionalOS/dimos
Dimos(simulation=...) is applied after the blueprint import that reads it
Open
@paul-nechifor is already working on this.
Since Sep 12, 2026.
api
bug
- Dominant language
- Python
- Stars
- 4.5k
- Forks
- 808
- Avg merge
- 3d 5h
- Merged PRs (30d)
- 233
Description
Dimos(simulation="mujoco").run("xarm-grasp") composes the hardware stack and then tries to reach an xArm and a RealSense that are not attached.
run()resolves the target first and applies the constructor's overrides second (dimos/porcelain/dimos.py, resolve at line 78,global_config.updateat line 81).- Resolving a name imports the blueprint module, and blueprints settle the arm-versus-sim split at import time:
SIMULATED = bool(global_config.simulation)inxarm/blueprints/grasp.py:59, and several module-scope branches inunitree_g1_groot_wbc.pyandunitree_g1_teleop.py. - The import therefore reads the default and the override lands too late. The CLI already applies global config before resolving names
Found by greptile on #3873 rather than by anything failing in use, so nothing is blocked.
Synced from DIM-1668 by stash
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Assessment
This issue has not been assessed yet.