Releases: dimensionalOS/dimos
Release list
Release v0.0.13.post1
v0.0.13.post1
Patch release for v0.0.13 with packaging fixes and a few features that landed after the initial cut.
What's new in this patch
Bug Fixes & Packaging
- Pin support to Python <3.13 (#2640)
- Bump minimum version of
typing_extensions(#2639) - Fix release wheel builds (#2629)
- Skip musllinux builds (#2661)
- Fix release 13 issues (#2671)
Features
- Introduce runtime scene packages for MuJoCo and Rerun (#2594)
- Roboplan integration (#2478)
- Point-LIO: mirror FAST-LIO cleanups — no-YAML config, memory2 Recorder, frame scheme (#2559)
Full v0.0.13 Changelog
Highlights
This is the Navigation, Relocalization, and Loop closure release.
160 commits, 17 contributors, 969 files changed.
Any lidar-enabled robot can now build a clean, loop-closed global map from its own recordings and relocalize against it on later runs. A new Rust voxel ray-tracing mapper with per-voxel normals stops moving objects and grazing rays from corrupting the map, so floors, stairs, and slopes stay dense and stable. PGO loop closure reconstructs a full global map in seconds from a sampled slice of memory2 recordings, and a dimos map tool builds, inspects, and exports the relocalization pointclouds. At runtime the robot loads a saved map, publishes the map -> world transform, and plans on the global costmap, with low-confidence matches filtered out and AprilTag/ArUco markers flowing through the same 3D pipeline as anchors.
⚠️ Breaking Changes
- Foxglove viewer support removed (~15k lines); Rerun is the sole viewer backend. (#2122)
- RPyC removed as a transport and dependency. (#2094)
- Docker modules have been removed. (#2224)
- Robot catalogue (
RobotConfig) removed. Hardware metadata now comes from a_hardware.pyfactory. (#2550) - Manipulation viz config:
visualization_backend/visualization_optionsreplaced by a singlevisualizationblock (none/meshcat/viser). (#2475)
✨ New Features
Navigation
- Per-platform nav blueprints:
unitree-g1-nav-simpleraytracing nav for the G1 (#2327), the i2rt FlowBase base from WASD teleop to full MID-360 + FastLio2 + click-to-drive (#2090), andalfred-navfor the new Alfred wheeled base (#2100). by @jeff-hykin, @mustafab0 - 3D multi-level-surface (MLS) path planner that places nodes on map surfaces and plans over a cached graph, plus a
path-planner-evalblueprint to score any planner against synthetic and mesh-derived scenarios. (#2310, #2302) by @aclauer unitree-go2-nav-3dblueprint wires the Rust ray-tracer to the MLS planner for click-to-navigate 3D nav: incremental planner-artifact builds off the ingest path, per-frame replanning, string-pulled paths with tunable cost/safety, and aset_motion_mode()to disable stock obstacle avoidance. (#2570) by @aclauervis_throttleworks out of the box and nav logging is much quieter (FastLIO, PGO, A*). (#2108, #2095) by @jeff-hykin
Mapping, SLAM & relocalization
- Rust voxel ray-tracing mapper that clears stale voxels along rays so global maps handle moving objects (
dimos run mid360-fastlio-ray-trace); per-voxel normals and a recency gate keep grazing rays from eroding floors, stairs, and slopes. (#2163, #2462, #2275) by @aclauer - Publishes a
local_mapslice of the global map around the robot for downstream nav. (#2257) by @aclauer - Pose-graph loop closure and global map reconstruction, plus a
dimos maptool to visualize mem2 maps, run offline loop closure, and export relocalization pointclouds. (#2242, #2241, #2306) by @leshy - Go2 relocalization against a prebuilt map: load a saved map, publish
map->world, and plan on the global costmap. (#2160) by @arkluc - Point-LIO native module as an alternative to FAST-LIO, plus a Virtual Mid-360 that records and replays Livox pcaps offline; FAST-LIO supports the same pcap record/replay, and Point-LIO inherits the same no-YAML config, memory2 Recorder, and frame scheme. (#2486, #2498, #2559) by @jeff-hykin
- PyO3 Python bindings and a mem2 transform pipeline for the Rust ray-tracer and 3D planner. (#2351, #2368) by @aclauer
Robot support
- A-750 arm: initial support with a
keyboard-teleop-a750blueprint and gripper bindings. (#1911) by @adob - G1 GR00T whole-body walking policy as a first-class coordinator task (
unitree-g1-groot-wbc);--simulationselects 500 Hz hardware vs 50 Hz Mujoco, and Twists on/g1/cmd_veldrive it. (#2300, #2239) by @Nabla7 - Go2 rage mode is now a bidirectional
set_rage_mode(enable)toggle (restores the normal velocity envelope on disable), the lowstate stream is part ofGo2ConnectionProtocoland implemented on the sims, and aget_battery_soc()skill reads battery level. (#2569) by @ruthwikdasyam - Support for current Unitree firmware (G1 >= 1.5.1, Go2 >= 1.1.15) via an optional
aes_128_key;connect()now fails fast with an actionable error instead of hanging. (#2476) by @KrishnaH96
Manipulation
- Viser visualizer with a MoveIt-style plan/preview/execute UI; the loose viz options collapse into one validated
visualizationconfig. (#2475) by @TomCC7 - Pink IK backend (
kinematics_name=pink) for faster IK, and a visualization protocol routed throughWorldMonitorwith trajectory-timed preview playback. (#2481, #2460) by @TomCC7 - Roboplan integration: a single backend implements both world and planner specs (
world_backend=roboplan), usable with roboplan's planner or the generic planners (e.g.planner_name=rrt_connect). (#2478) by @TomCC7 - Skills return a structured
SkillResult(success, message, error_code, duration) with domain error enums, exposed to the LLM as JSON for structured retries; all 18 skills migrated. (#2091) by @mustafab0 - xArm teleop syncs to the robot's real joint state at startup and moves to a default pose on activate/deactivate. (#2425) by @TomCC7
Simulation
- Runtime scene packages: a
scene.meta.jsoncontract resolves MuJoCo XML/.mjb, Rerun/browser visuals, entities, and frame alignment from one cooked package so consumers stop hardcoding folder layouts. Selectable with--scene(none/office/supermarket);unitree-g1-groot-wbcis the first end-to-end consumer (spawn, lidar, map, plan, Rerun robot/scene viz, WASD velocity). (#2594) by @Nabla7
Teleoperation
- Hosted teleoperation over WebRTC via a Cloudflare Realtime SFU: a
HostedTeleopModule(cmd/state datachannels + camera video) that drops into existing blueprints, with recording and latency/jitter/loss stats (dimos run teleop-hosted-go2 teleop-recorder). ([#2411](https:...
Release v0.0.13: Navigation, Relocalization, Loop closure, Map loading/saving, realtime mapping,
Highlights
This is the Navigation, Relocalization, and Loop closure release.
160 commits, 17 contributors, 969 files changed.
Any lidar-enabled robot can now build a clean, loop-closed global map from its own recordings and relocalize against it on later runs. A new Rust voxel ray-tracing mapper with per-voxel normals stops moving objects and grazing rays from corrupting the map, so floors, stairs, and slopes stay dense and stable. PGO loop closure reconstructs a full global map in seconds from a sampled slice of memory2 recordings, and a dimos map tool builds, inspects, and exports the relocalization pointclouds. At runtime the robot loads a saved map, publishes the map -> world transform, and plans on the global costmap, with low-confidence matches filtered out and AprilTag/ArUco markers flowing through the same 3D pipeline as anchors.
⚠️ Breaking Changes
- Foxglove viewer support removed (~15k lines); Rerun is the sole viewer backend. (#2122)
- RPyC removed as a transport and dependency. (#2094)
- Docker modules have been removed. (#2224)
- Robot catalogue (
RobotConfig) removed. Hardware metadata now comes from a_hardware.pyfactory. (#2550) - Manipulation viz config:
visualization_backend/visualization_optionsreplaced by a singlevisualizationblock (none/meshcat/viser). (#2475)
✨ New Features
Navigation
- Per-platform nav blueprints:
unitree-g1-nav-simpleraytracing nav for the G1 (#2327), the i2rt FlowBase base from WASD teleop to full MID-360 + FastLio2 + click-to-drive (#2090), andalfred-navfor the new Alfred wheeled base (#2100). by @jeff-hykin, @mustafab0 - 3D multi-level-surface (MLS) path planner that places nodes on map surfaces and plans over a cached graph, plus a
path-planner-evalblueprint to score any planner against synthetic and mesh-derived scenarios. (#2310, #2302) by @aclauer unitree-go2-nav-3dblueprint wires the Rust ray-tracer to the MLS planner for click-to-navigate 3D nav: incremental planner-artifact builds off the ingest path, per-frame replanning, string-pulled paths with tunable cost/safety, and aset_motion_mode()to disable stock obstacle avoidance. (#2570) by @aclauervis_throttleworks out of the box and nav logging is much quieter (FastLIO, PGO, A*). (#2108, #2095) by @jeff-hykin
Mapping, SLAM & relocalization
- Rust voxel ray-tracing mapper that clears stale voxels along rays so global maps handle moving objects (
dimos run mid360-fastlio-ray-trace); per-voxel normals and a recency gate keep grazing rays from eroding floors, stairs, and slopes. (#2163, #2462, #2275) by @aclauer - Publishes a
local_mapslice of the global map around the robot for downstream nav. (#2257) by @aclauer - Pose-graph loop closure and global map reconstruction, plus a
dimos maptool to visualize mem2 maps, run offline loop closure, and export relocalization pointclouds. (#2242, #2241, #2306) by @leshy - Go2 relocalization against a prebuilt map: load a saved map, publish
map->world, and plan on the global costmap. (#2160) by @arkluc - Point-LIO native module as an alternative to FAST-LIO, plus a Virtual Mid-360 that records and replays Livox pcaps offline; FAST-LIO supports the same pcap record/replay, and Point-LIO inherits the same no-YAML config, memory2 Recorder, and frame scheme. (#2486, #2498, #2559) by @jeff-hykin
- PyO3 Python bindings and a mem2 transform pipeline for the Rust ray-tracer and 3D planner. (#2351, #2368) by @aclauer
Robot support
- A-750 arm: initial support with a
keyboard-teleop-a750blueprint and gripper bindings. (#1911) by @adob - G1 GR00T whole-body walking policy as a first-class coordinator task (
unitree-g1-groot-wbc);--simulationselects 500 Hz hardware vs 50 Hz Mujoco, and Twists on/g1/cmd_veldrive it. (#2300, #2239) by @Nabla7 - Go2 rage mode is now a bidirectional
set_rage_mode(enable)toggle (restores the normal velocity envelope on disable), the lowstate stream is part ofGo2ConnectionProtocoland implemented on the sims, and aget_battery_soc()skill reads battery level. (#2569) by @ruthwikdasyam - Support for current Unitree firmware (G1 >= 1.5.1, Go2 >= 1.1.15) via an optional
aes_128_key;connect()now fails fast with an actionable error instead of hanging. (#2476) by @KrishnaH96
Manipulation
- Viser visualizer with a MoveIt-style plan/preview/execute UI; the loose viz options collapse into one validated
visualizationconfig. (#2475) by @TomCC7 - Pink IK backend (
kinematics_name=pink) for faster IK, and a visualization protocol routed throughWorldMonitorwith trajectory-timed preview playback. (#2481, #2460) by @TomCC7 - Roboplan integration: a single backend implements both world and planner specs (
world_backend=roboplan), usable with roboplan's planner or the generic planners (e.g.planner_name=rrt_connect). (#2478) by @TomCC7 - Skills return a structured
SkillResult(success, message, error_code, duration) with domain error enums, exposed to the LLM as JSON for structured retries; all 18 skills migrated. (#2091) by @mustafab0 - xArm teleop syncs to the robot's real joint state at startup and moves to a default pose on activate/deactivate. (#2425) by @TomCC7
Simulation
- Runtime scene packages: a
scene.meta.jsoncontract resolves MuJoCo XML/.mjb, Rerun/browser visuals, entities, and frame alignment from one cooked package so consumers stop hardcoding folder layouts. Selectable with--scene(none/office/supermarket);unitree-g1-groot-wbcis the first end-to-end consumer (spawn, lidar, map, plan, Rerun robot/scene viz, WASD velocity). (#2594) by @Nabla7
Teleoperation
- Hosted teleoperation over WebRTC via a Cloudflare Realtime SFU: a
HostedTeleopModule(cmd/state datachannels + camera video) that drops into existing blueprints, with recording and latency/jitter/loss stats (dimos run teleop-hosted-go2 teleop-recorder). (#2411) by @ruthwikdasyam - Stream a robot or sim camera (MuJoCo, RealSense, Go2) into the Quest VR headset during teleop. (#2198) by @ruthwikdasyam
Learning & datasets
- Teleop-to-dataset pipeline: an
EpisodeMonitorModuleturns Quest/keyboard buttons into start/save/discard episodes and aCollectionRecordercaptures obs/action/status to a session DB (learning-collect-quest-xarm7/-piper);dimos dataprep build/inspectthen time-syncs the streams and exports LeRobot v2 or HDF5 datasets with per-feature stats. (#2446) by @ruthwikdasyam
Perception & fiducials
- AprilTag 3D detector plus a camera-calibration CLI that generates
camera_info.yaml, with adesk-marker-tfblueprint; calibration also works with the Go2 (live topic source, fi...
Release v0.0.12: memory2 streaming engine, async modules, OpenArm + G1 low-level, MuJoCo manipulation, slimmer install
Highlights
108 commits, 11 contributors, 972 files changed.
memory2 lands as a typed streaming observation engine. Modules can now be async def. Three new robots: OpenArm bimanual, G1 whole-body low-level, Go2 over Unitree SDK2. Manipulation now runs in MuJoCo. The base install drops several hundred MB: perception, sim, and whisper are now opt-in extras.
⚠️ Breaking Changes
Most breakers are import / config renames. The install shrinkage requires opting into extras you used to get for free.
- Perception (and torch, bitsandbytes) removed from base install —
pip install 'dimos[perception]'to opt in. (#1888) - Sim removed from base install (~550 MB) —
pip install 'dimos[sim]'. (#1878) faster-whisperis the default STT —pip install 'dimos[whisper]'for full Whisper. (#1877)Blueprint.buildremoved — useModuleCoordinator.build(blueprint)and import fromdimos.core.coordination. (#1744)- Module
Configmust be apydantic.BaseModel; module__init__signature standardized. (#1510) __init__.pyre-exports removed — import directly from defining modules. (#1545)- Blueprint aliases removed — use
MyModule.blueprint()instead ofmy_module(). (#1606) - Old
Agentclass removed — now agent communication is just through MCP. (#1657) - Teleop blueprints regrouped under
teleop_*;VisualizingTeleopModuleremoved. (#1602) - Manipulation: joint names use
/(arm/joint1);WorldStateMonitor→RobotStateMonitor;_hardware.pyremoved in favor ofRobotConfig. (#1728, #1725) use_mesh_obstaclesdefault flipped toFalse;ObjectDBno longer matches by name. (#1656)
🚀 Upgrade
pip install -U 'dimos[perception,sim,whisper]'Drop extras you don't use.
✨ New Features
memory2
Typed streaming observation engine. memory2 replaces per-blueprint perception buffers with first-class streams that record, query, and visualize together.
- Stream/Observation primitives, SQLite + R*Tree + vec0 backends, codecs, live channels. (#1536) by @leshy
- Recorder/Query modules, semantic search, 3D detection projections, ~10× smaller replay files. (#1769) by @leshy
- StreamModules + Go2 auto-recorder + visualization scaffolding. (#1682, #1925, #1637) by @leshy
Async modules & agent API
Modules can now be async def. New surface area for scripting and tool-calling agents.
- Async modules:
async defhandlers/RPCs, async@rpc,self.spawn, latest-only dispatch. (#1920) by @paul-nechifor - Porcelain Python API:
connect()to script against a running DimOS. (#1779) by @paul-nechifor app.peek_stream(name, timeout)for one-shot stream samples. (#1909) by @paul-nechifor- MCP tool streams: tools push progress back to agents during a single tool call. (#1713) by @paul-nechifor
- Modules can be restarted at runtime; multiple blueprints can start after startup. (#1755, #1744) by @paul-nechifor
- New patrolling module +
unitree-go2-securityagentic patrol blueprint; patrol rewritten as an async module. (#1488, #1619, #1939) by @paul-nechifor - Blueprint config via CLI
-o key=value,__env vars, and--config=foo.json;--helplists options. (#1543) by @Dreamsorcerer
Robot support
- OpenArm bimanual: from-scratch CAN driver, adapter, blueprints, mock + real planner. (#1897) by @mustafab0
- G1 humanoid: 500 Hz whole-body low-level coordinator +
unitree-g1-coordinatorblueprint. (#1954) by @mustafab0 - Go2 over Unitree SDK2 (
dimos[unitree-dds]) with Nix-based cyclonedds setup. (#1885) by @ruthwikdasyam - Go2 rage mode (~2.5 m/s) over WebRTC + dedicated keyboard-teleop blueprint. (#1903) by @ruthwikdasyam
- Go2 WebRTC TwistAdapter integrated with ControlCoordinator. (#1362) by @mustafab0
dimos go2tool discover/connect-wifi: find Go2s on LAN or over Bluetooth and configure Wi-Fi without the vendor app. (#1990) by @leshy- New Hong Kong office Go2 replay datasets. (#1991) by @leshy
Manipulation in MuJoCo
Any manipulation blueprint can now run in sim with --simulation.
dimos --simulation run coordinator-xarm7- Manipulation in MuJoCo:
--simulationspins up a sim arm; coordinator and teleop blueprints (xArm6/xArm7/Piper) honor the flag, replacing per-arm sim blueprints. (#1639, #2027) by @ruthwikdasyam - Quest teleop in MuJoCo for xArm6 + Piper, with eye-in-hand sim cameras. (#1958) by @ruthwikdasyam
- Sim assets for xArm6 and Piper +
MujocoCamera(drop-in RealSense replacement in sim). (#1642, #1694) by @ruthwikdasyam - Unified
RobotConfig: parse joints/DOF/limits from URDF/MJCF instead of hand-wiring. (#1699) by @mustafab0 - Drake loader supports MJCF; configured home pose + EE orientation honored when planning. (#1722) by @mustafab0
- Manipulation demo:
look/drop_onskills, distance-adaptive grasps, structured agent prompt. (#1656) by @mustafab0 - Control blueprints split into a package; hardcoded IPs replaced with env vars (
XARM7_IP, …). (#1601) by @ruthwikdasyam - Unity simulator as a DimOS module (
dimos run unity-sim); auto-downloads on Linux x86. (#1539) by @jeff-hykin
Core & visualizer
- Rust native modules: write performance-critical modules in Rust (LCM transport,
NativeModuleAPI). (#1794) by @aclauer - Watchdog kills all DimOS child processes (and grandchildren) when the parent exits. (#1886) by @paul-nechifor
- DockerModules restored: parallel deploy, image pull, build args, rebuild on Dockerfile change. (#1431) by @jeff-hykin
- Voxel maps render as Rerun Points3D spheres (~10× faster at high point counts). (#1793) by @ruthwikdasyam
- Rerun pipeline latency: PointCloud2 ~350 ms → ~5 ms; costmap ~40 ms → ~5 ms. (#1747) by @ruthwikdasyam
- Blueprint module dependency graph auto-rendered as a Graph tab in Rerun. (#1705) by @ruthwikdasyam
- Viewer remote
--connectworks again — clicks/teleop flow over websockets. (#1784) by [@jeff-hykin](https://gith...
Release v0.0.11: Dimensional now fully Agent-native, Interactive Visualizer, Drones, Temporal Memory, Fleet control
Highlights
82 commits, 10 contributors, 396 files changed.
Production CLI and daemon, MCP tooling, temporal-spatial memory, and first-class support for coding agents. Dask has been removed entirely. The full stack now runs from dimos run through dimos stop.
🚀 New Features
Agent-Native Development
DimOS is now built to be driven by coding agents. Point OpenClaw, Claude Code, or Cursor at AGENTS.md and they can build, run, and debug Dimensional applications using the CLI and MCP interfaces directly.
-
AGENTS.md — comprehensive onboarding doc: architecture, CLI reference, skill rules, blueprint quick-reference. Your agent reads this and starts coding. (#1495) by @spomichter
-
MCP server — all
@skillmethods exposed as HTTP tools. External agents calldimos mcp call relative_move --arg forward=0.5or connect via JSON-RPC. (#1300) by @PaulNechifor -
MCP CLI —
dimos mcp list-tools,dimos mcp call,dimos mcp status,dimos mcp modules. (#1451) by @spomichter -
Agent context logging — MCP tool calls and agent messages logged to per-run JSONL for debugging and replay. (#1499) by @spomichter
CLI & Daemon
Full process lifecycle — no more Ctrl-C in tmux.
-
Daemon mode —
dimos run --daemonwith health checks and run registry.dimos stop,dimos status,dimos restart. (#1436) by @spomichter -
Structured logs —
dimos log -fwith per-run JSONL, follow mode, JSON output, and filtering. (#1497) by @spomichter -
Show config —
dimos show-configprints resolved GlobalConfig with source tracing.
Temporal-Spatial Memory
Robots in physical space ingest hours of video and lidar. Temporal-spatial memory gives them a human-like understanding of the world — causal object relationships, entity tracking through time and physical space, and the ability to answer complex temporal queries.
Who spends the most time in the kitchen? What time on average do I wake up? Which set of switches toggles the main lights? Who was at the office at 9am last Thursday?
Traditional frame-level embeddings (CLIP, ViT) lose temporal context and don't scale beyond a handful of frames. Video transformers are expensive and don't operate in RGB-D. Dimensional agents work with video + lidar natively, tracking entities across hours and days.
dimos --replay --replay-dir unitree_go2_office_walk2 run unitree-go2-temporal-memory(#1511) by @spomichter
Interactive Viewer
Custom Rerun fork (dimos-viewer) is now the default. Click-to-navigate: click a point in the 3D view → PointStamped → A* planner → robot moves. (#1414, #1394) by @spomichter
- Camera | 3D split layout on Go2, G1, and drone blueprints. (#1525) by @spomichter
- Native keyboard teleop in the viewer. (#1473) by @spomichter
- Default viewer changed from rerun-web to native dimos-viewer. (#1478) by @spomichter
Drone Support
Drone blueprints modernized to match Go2 composition pattern. drone-basic and drone-agentic work with replay, Rerun, and the full CLI. (#1520) by @spomichter
Perception
- Perceive loop — continuous observation module for agents. (#1411) by @PaulNechifor
Robot Support
- Go2 fleet control — multi-robot with
--robot-ips. (#1487) by @ruthwikdasyam - G1 agent RPC wiring and system prompt fix. (#1518) by @SummerYang
- Replay
--replay-dirto select dataset, loops by default. (#1519, #1494) by @spomichter
Installation & Platform
- Interactive install script —
curl -fsSL .../install.sh | bash. (#1395) by @spomichter - Nix install for non-Debian Linux. (#1472) by @leshy
- macOS MuJoCo and multicast fixes. (#1503, #1502) by @SummerYang
Core Architecture
- Remove Dask — replaced with native worker pool. (#1365) by @PaulNechifor
- Remove asyncio dependency. (#1367) by @SamBull
- PointStamped message type for click-to-navigate. (#1388) by @spomichter
- Module standalone execution from blueprints. (#1342) by @PaulNechifor
- Gripper in coordinator tick loop. (#1371) by @ruthwikdasyam
- ClockSyncConfigurator for Unitree WebRTC. (#1346) by @leshy
- Worker resource monitor —
dtopTUI. (#1378) by @leshy - FastAPI WebSocket server replaces Deno bridge for teleop. (#1385) by @ruthwikdasyam
Documentation
- Full CLI reference (
docs/usage/cli.md), system requirements and dependency tiers (docs/requirements.md), agents capability readme. (#1524) by @spomichter - G1 getting started. (#1347) by @spomichter
- Go2 preflight checklist. (#1349) by @leshy
- GitHub issue templates. (#1517) by @SummerYang
🐛 Bug Fixes
- Rerun rate limiting to prevent viewer OOM. (#1509, #1521) by @spomichter
- Sim camera intrinsics — use MuJoCo computed values. (#1516) by @ruthwikdasyam
- Open3D memory leak. (#1386) by @PaulNechifor
- RotatingFileHandler to prevent unbounded log growth. (#1492) by @spomichter
- LCMSpy concurrent access lock. (#1419) by @PaulNechifor
- Module annotations at runtime. (#1377) by @PaulNechifor
- Non-TTY sysconf handling. (#1356) by @JeffHykin
- Protobuf pin major version. (#1372) by @PaulNechifor
- Test coverage, draft PR CI skip, manipulation test fixes. (#1397, #1398, #1522)
⚠️ Breaking Changes
--viewer-backendrenamed to--viewer- Dask removed — blueprints using Dask workers need migration to native worker pool
- Default viewer changed from
rerun-webtorerun(native dimos-viewer)
What's Changed
- docs(go2): add getting started guide by @spomichter in #1339
- docs(go2): add getting started guide (#1339) by @spomichter in #1340
- fix(metric3d): remove metric3d to fix tests by @paul-nechifor in #1341
- fix(tests): replace sleep() with threading.Event in pubsub tests by @leshy in #1350
- Feature: Control Coordinator support for mobile base by @mustafab0 ...
Packaging update to v0.0.10 — no major feature changes
Packaging update to v0.0.10 — no major feature changes.
- Restored README banner image
- G1 rerun visualization support
- G1 sim video stream and camera_info
- Logging color improvements
- Docs updates (nix, testing)
See v0.0.10 for the full release notes.
What's Changed
- fix(nix): add venv setup to dev install docs by @ruthwikdasyam in #1328
- feat(logging): improve spacing and colors by @paul-nechifor in #1329
- fix(pytest): autoconf by @paul-nechifor in #1325
- fix(docs): add missing testing docs by @paul-nechifor in #1330
- fix(readme): ordering by @paul-nechifor in #1327
- docs(readme): restore banner image by @spomichter in #1331
- feat(g1): added rerun visualization for G1 by @ruthwikdasyam in #1334
- fix(logging): remove black background from console log colors by @ruthwikdasyam in #1332
- fix(g1): add video stream and camera_info to G1SimConnection by @spomichter in #1335
- chore: bump version to v0.0.10.post1 by @spomichter in #1337
Full Changelog: v0.0.10...v0.0.10.post1
Release v0.0.10: Manipulation Stack, MuJoCo Simulation, DDS Transport, Web and Native Visualization
Highlights
88+ commits, 20 contributors, 700+ files changed.
The TLDR: a complete manipulation stack, MuJoCo simulation, DDS transport, and a rewritten visualization pipeline. Agents are no longer bolted on top — they're refactored as native modules with direct stream access. The entire ROS message dependency has been removed from core DimOS, and we've added VR, phone, and arm teleoperation stacks. You can now vibecode a pick-and-place task from natural language to motor commands. Installation has been significantly streamlined — no more direnv, simpler setup, and the web viewer is now the default.
🚀 New Features
Simulation
- MuJoCo simulation module — Run any DimOS blueprint in simulation with no hardware. Supports xArm and Unitree embodiments, parses MJCF/URDF for robot properties, monotonic clock timing (no
time.sleep).dimos --simulation run unitree-go2(#1035) by @jca0 - Simulation teleop blueprints — Added simulation teleop blueprints for Piper, xArm6, and xArm7. (#1308) by @mustafab0
Manipulation
- Modular manipulation stack — Full planning stack with Drake: FK/IK solvers (Jacobian + Drake optimization), RRT path planning, world model with obstacle monitoring, multi-robot management. xArm6/7 and Piper support. (#1079) by @mustafab0
- Joint servo and cartesian controllers — Joint position/velocity controllers and cartesian IK task with Pinocchio solver. PoseStamped stream input for real-time control. (#1116) by @mustafab0
- GraspGen integration — Grasp generation via Docker-hosted GPU model. Lazy container startup, thread-safe init, RPC
generate_grasps()returns ranked PoseArray. (#1119, #1234) by @JalajShuklaSS - Gripper control — Gripper RPC methods on control coordinator, exposed adapter property for custom implementations. (#1213) by @mustafab0
- Detection3D and Object support — Object input topics, TF support on manipulation module, pointcloud-to-convex-hull for Drake imports. (#1236) by @mustafab0
- Agentic pick and place — Reimplemented manipulation skills for agent-driven pick-and-place workflows. (#1237) by @mustafab0
Teleoperation
- Quest VR teleoperation — Full WebXR + Deno bridge stack. Quest controller data (pose, trigger, grip) streamed to DimOS modules. Monitor-style locking for control loops. (#1215) by @ruthwikdasyam
- Phone teleoperation — Control Go2 from your phone with a web-based teleop interface. (#1280) by @ruthwikdasyam
- Arm teleop with Pinocchio IK — Single and dual arm teleoperation using Pinocchio inverse kinematics. Blueprints for xArm, Piper, and dual configurations. (#1246) by @ruthwikdasyam
Transports & Infrastructure
- DDS transport protocol — CycloneDDS transport with configurable QoS (high-throughput and reliable profiles). Optional install, benchmark integration. (#1174) by @Kaweees
- Pubsub pattern subscriptions — Glob and regex pattern matching for topic subscriptions.
subscribe_all()for bridge-style consumers. Topic type encoding in channel strings (/topic#module.ClassName). (#1114) by @leshy - LCM raw bytes passthrough — Skip
lcm_encode()when message is already bytes. (#1223) by @leshy - Unified TimeSeriesStore — Pluggable backends (InMemory, SQLite, Pickle, PostgreSQL) with SortedKeyList for O(log n) operations. Replaces the old replay system and TimestampedCollection. Collection API with slice, range, and streaming methods. (#1080) by @leshy
- DimosROS benchmark tests — Benchmark suite for ROS transport performance. (#1087) by @leshy
Navigation
- FASTLIO2 support — Hardware-verified localization with arm64 support. Docker deployment with FAR Planner, terrain analysis, and bagfile playback mode. Builds or-tools from source on arm64. (#1149) by @baishibona
- Native Livox + FASTLIO2 module — First-class DimOS native module for Livox Mid-360 lidar with FASTLIO2 localization. (#1235) by @leshy
Visualization
- RerunBridge module and CLI — New bridge that subscribes to all LCM messages and logs those with
to_rerun()to Rerun viewer. GlobalConfig singleton, web viewer support. Replaces the old rerun initialization system. (#1154) by @leshy - Webcam rerun visualization — Camera module logs to Rerun with pinhole projection for 3D visualization. (#1117) by @ruthwikdasyam
- Default viewer switched to rerun-web — Browser-based viewer is now the default for broader compatibility. No native viewer install needed. (#1324) by @spomichter
Agents
- Agent refactor — Restructured agent module with cleaner imports and global config integration. (#1211) by @paul-nechifor
- Timestamp knowledge — Agents now have timestamp awareness in prompts for temporal reasoning. (#1093) by @ClaireBookworm
- Observe skill — Go2 can now observe (capture and describe) its environment via agent skill. (#1109) by @paul-nechifor
Platform & Hardware
- G1 without ROS — Unitree G1 blueprints decoupled from ROS dependency. Lazy imports for fast startup. (#1221) by @jeff-hykin
- ARM (aarch64) support — DimOS runs on ARM hardware. Platform-conditional dependencies, open3d source builds for arm64. (#1229) by @jeff-hykin
- Universal joint/hardware schema —
HardwareComponentdataclass withJointState,JointNametype aliases. Backend registry with auto-discovery for SDK adapters. (#1040, #1067) by @mustafab0
🔧 Improvements
- Optional Dask — Start without Dask using
--no-daskflag. Startup time reduced from ~60s to ~45s. (#1111, #1232) by @paul-nechifor - RPC rework — Renamed
ModuleBlueprint→_BlueprintAtom,ModuleBlueprintSet→Blueprint,ModuleConnection→Stream. AddedModuleRef, improved type hints throughout. (#1143) by @jeff-hykin - Image class simplification — Rewritten as pure NumPy dataclass. Removed CUDA backend, unused methods (solve_pnp, csrt_tracker), and image_impls/ directory. (#1161) by @leshy
- Odometry message cleanup — Simplified Odometry message type. (#1256) by @leshy
- Remove all ROS message dependencies — Purged ROS message types from core DimOS. Refactored rosnav to use ROSTransport. Removed dead ROS bridge code. (#1230) by @alexlin2
- Removed bad function serialization — Eliminated unnecessary serialization of Python functions. (#1121) by @paul-nechifor
- Benchmark IEC units — Switched bandwidth benchmarks from SI to IEC units for accuracy. (#1147) by @leshy
- Pubsub typing improvements — Thread-safety locks on
subscribe_new_topicsandsubscribe_all. Proper type params across pubsub stack. (#1153) by @leshy - Autogenerated blueprint list — Blueprints are now auto-discovered and listed. (#1100) by @paul-nechifor
- Generic Buttons message — Renamed
QuestButtonstoButtonswith generic field names for cross-platform teleop. (#1261) by @ruthwikdasyam - Dev container uses ros-dev image —
./bin/devnow runs the ROS-enabled dev image. (#1170) by @leshy - LSP support — Added python-lsp-server and python-lsp-ruff to dev dependencies. (#1169) by @leshy
- Lazy-load pyrealsense2 — RealSense camera module uses lazy imports to avoid errors in simulation environments without the SDK. (#1309) by @spomichter
- Removed unused mmcv and mmengine — Dead ...
Release v0.0.9: hotfixes and v0.0.8 patch
What's Changed
- Pre-Release v0.0.8: Unitree Go2 Navigation & Exploration Beta, Transport Updates, Documentation updates by @spomichter in #1056
- Fix LFS Updating Issue by @jeff-hykin in #1090
- Launch hotfixes: Git clone change to HTTPS from SSH, get_data change to main branch by @spomichter in #1091
- Bump version v0.0.9 by @spomichter in #1095
- v0.0.9 Release Patch: Git clone change to HTTPS from SSH, get_data change, LFS changes by @spomichter in #1092
Full Changelog: v0.0.8...v0.0.9
Release v0.0.8: Unitree Go2 Navigation Pre-Release Patch, ROSTransport, Rerun bug fixes
What's Changed
- Small docs clarification about stream getters by @leshy in #1043
- Fix split view on wide monitors by @jeff-hykin in #1048
- Docs: Install & Develop by @jeff-hykin in #1022
- Add uv to nix and fix resulting problems by @jeff-hykin in #1021
- v0.0.8 by @paul-nechifor in #1050
- Style changes in docs by @paul-nechifor in #1051
- Revert "Add uv to nix and fix resulting problems" by @leshy in #1053
- Transport benchmarks + Raw ros transport by @leshy in #1038
- feat: default to rerun-web and auto-open browser on startup (browser … by @Nabla7 in #1019
- bbox detections visual check by @leshy in #1017
- fix: only auto-open browser for rerun-web viewer backend by @Nabla7 in #1066
- move slow tests to integration by @paul-nechifor in #1063
- Streamline transport start/stop methods by @Kaweees in #1062
- Person follow skill with EdgeTAM by @paul-nechifor in #1042
- fix: increase costmap floor z_offset to avoid z-fighting by @Nabla7 in #1073
- Fixed issue #1074 by @alexlin2 in #1075
- ROS transports initial by @leshy in #1057
- Fix System Config Values for LCM on MacOS and Refactor by @jeff-hykin in #1065
- SHM Transport basic fixes by @leshy in #1041
- commented out Mem Transport test case by @leshy in #1077
- Docs/advanced streams update 2 by @leshy in #1078
- Fix more tests by @paul-nechifor in #1071
- feat: navigation docker updates from bona_local_dev by @baishibona in #1081
- Fix missing dependencies by @Kaweees in #1085
- Release readme fixes by @spomichter in #1076
New Contributors
- @baishibona made their first contribution in #1081
Full Changelog: v0.0.7...v0.0.8
Release v0.0.7: Unitree Go2 Navigation Pre-Release
What's Changed
- add uv.lock back by @paul-nechifor in #964
- fix mujoco menagerie by @paul-nechifor in #968
- fix(sim): set ImageFormat.RGB for MuJoCo video frames by @Nabla7 in #972
- Remove objectdb from go2 blueprints by @leshy in #981
- fix lcm load speed by @leshy in #975
- [Tiny] Add Webcam demo by @jeff-hykin in #977
- [Tiny] use ip instead of ifconfig by @jeff-hykin in #976
- Rerun issue956 by @Nabla7 in #959
- [Tiny] Add primary/main/core/std (whatever you want to call it) extras group for tutorial by @jeff-hykin in #978
- semantic navigation fix by @sinha7y in #982
- [Tiny] commit the index.html/js so that command center works on pip install by @jeff-hykin in #985
- Tag v0.0.7 by @paul-nechifor in #986
- Patches for langchain and removed detic dependencies by @alexlin2 in #987
- use p controller to stop oscillations by @paul-nechifor in #1014
- Dynamic session providers for onnxruntime by @Kaweees in #983
- Perception Full Refactor and Cleanup, deprecated Manipulation AIO Pipeline and replaced with Object Scene Registration by @alexlin2 in #936
- feat(cli): type-free topic echo via /topic#pkg.Msg inference, this mi… by @Nabla7 in #988
- verify blueprints by @paul-nechifor in #1018
- Temporal Memory by @ClaireBookworm in #973
- Control Orchestrator - Unified Controller for multi-arm and full body controller by @mustafab0 in #970
- configure unitree go2 mapper to use 10 cm voxels by @leshy in #1032
New Contributors
- @sinha7y made their first contribution in #982
- @ClaireBookworm made their first contribution in #973
Full Changelog: https://github.com/dimensionalOS/dimos/commits/v0.0.7
Release v0.0.6: UnitreeGo2 Pre-Release
What's Changed
- Added is_flying_to_target agent skill and fly_to now return string for agent feeback by @spomichter in #635
- Release v0.0.5 by @spomichter in #697
- Rebase ivan g1 by @paul-nechifor in #709
- Navspec by @leshy in #648
- Remove depth module from base unitree go2 blueprints by @spomichter in #712
- Fix Unitree Go2 (replay and spatial memory) by @paul-nechifor in #714
- Add G1 blueprints, and simulation by @paul-nechifor in #724
- New g1 blueprint runfiles by @spomichter in #706
- Update G1/Go2 skills and remove some Robot interfaces by @paul-nechifor in #717
- Add dimos-robot end-to-end test with agents by @paul-nechifor in #716
- Run DimOS and ROS nav in Docker by @paul-nechifor in #700
- Anim experiment by @leshy in #701
- G1 navigation documentation fixes by @spomichter in #738
- Rename dimos-robot to dimos by @paul-nechifor in #740
- Use a process for MuJoCo by @paul-nechifor in #747
- Remove unneeded code files by @paul-nechifor in #718
- Make pygame G1JoystickModule usable for all modules by @paul-nechifor in #741
- error on conflicts by @paul-nechifor in #763
- Hosted Moondream 3 for VLM queries by @alexlin2 in #751
- transport: Remove DaskTransport dead code by @ym-han in #767
- Add editorconfig by @paul-nechifor in #769
- add
type: ignoreby @paul-nechifor in #768 - exclude .md changes from CICD builds by @spomichter in #770
- Working Ivan g1 detection in blueprints by @spomichter in #737
- small env fixes on a fresh install by @leshy in #778
- autofixes by @paul-nechifor in #744
- Support running local agents by @paul-nechifor in #739
- pin major version of langchain packages by @paul-nechifor in #789
- Deduplicate Unitree connections/entrypoints. by @paul-nechifor in #749
- Add TTS and STT by @paul-nechifor in #753
- fix mypy errors by @paul-nechifor in #791
- Use structlog and store JSON logs on disk by @paul-nechifor in #715
- Rpc fixes merge by @paul-nechifor in #801
- transport improvements by @leshy in #713
- Added concurrency check by @spomichter in #803
- make connections work with string annotations by @paul-nechifor in #807
- Run mypy checks in GitHub Actions by @paul-nechifor in #805
- Fix incorrect
= Noneby @paul-nechifor in #802 - increase mujoco timeout by @paul-nechifor in #823
- MacOS Support: tests + devShell + mujoco by @jeff-hykin in #745
- nix flake revert by @leshy in #824
- fix mypy issues by @paul-nechifor in #827
- PRODUCTION Nav skills on drone with tracking by @spomichter in #640
- Fix added memory limit to blueprint global config by @spomichter in #856
- models/ refactor by @leshy in #819
- Point Detections by @leshy in #859
- Add generic ignore to gitignore by @jeff-hykin in #864
- fix set transport by @paul-nechifor in #866
- cli-precedence by @paul-nechifor in #857
- show
get_dataprogress by @paul-nechifor in #873 - skip if OPENAI_API_KEY not defined by @paul-nechifor in #872
- build foxglove extension by @paul-nechifor in #871
- New planner by @paul-nechifor in #792
- Use
uvby @paul-nechifor in #870 - Add direnv to gitignore by @Kaweees in #875
- Cuda mapper by @leshy in #862
- rename agents to agents_deprecated by @paul-nechifor in #877
- new planner new mapper by @paul-nechifor in #879
- odom ts parsing by @leshy in #882
- Sim fix by @paul-nechifor in #881
- navigation tuning by @leshy in #883
- Fix: Module init and agents by @leshy in #876
- Remove old setup.sh by @paul-nechifor in #888
- Release planner by @leshy in #887
- fix replay leak by @paul-nechifor in #890
- first pass on large file deletions by @leshy in #891
- Generalized manipulator driver by @mustafab0 in #831
- Restore MacOS Support (flake.nix) by @jeff-hykin in #863
- check-uv by @paul-nechifor in #902
- Make dimos pip-installable by @paul-nechifor in #731
- Revert "Restore MacOS Support (flake.nix)" by @leshy in #907
- jeff flake without py env stuff by @leshy in #911
- remove deprecated docker files by @paul-nechifor in #912
- command center stop and home by @leshy in #893
- use packages by @paul-nechifor in #915
- Fix agents prompt by @paul-nechifor in #914
- fix manifest by @paul-nechifor in #916
- fix move skill by @paul-nechifor in #913
- Ignore individual errors by @paul-nechifor in #919
- Feat/rerun latency panels by @Nabla7 in #917
- WIP Release detections by @leshy in #889
- Remove old navigation modules by @paul-nechifor in #923
- Feat/rerun latency panels by @Nabla7 in #925
- Repair camera module by @leshy in #929
- Repair Stream by @leshy in #932
- Docs Clean by @leshy in #933
- docs: sensor streams by @leshy in #934
- Docs: bugfixes by @leshy in #940
- Fixed doclinks to use git ls by @spomichter in #943
- Examples: third party language interop by @leshy in #946
- DOCS: temporal alignment docs improvements by @leshy in #944
- filter bots from commits by @leshy in #947
- Fix skills by @paul-nechifor in #950
- Limit Rerun viewer memory to 4GB default by @Nabla7 in #949
- Working dimensional MCP server - tested with Claude Code MCP client by @spomichter in #945
- allow registration of different agents by @paul-nechifor in #951
- Pre commit large files by @leshy in #953
- Proper Realsense and ZED Camera Drivers by @alexlin2 in #935
- Granular deps by @leshy in #894
- class VLMAgent(AgentSpec, Module) for streamed VLM queries over Transport by @spomichter in #960
- mac compatible commit filter by @paul-nechifor in #961
New Contributors
- @ym-han made their first contribution in #767
- @jeff-hykin made their first contribution in https://github.com/dimens...
