Skip to content

Week 19 release.

Paul Nechifor edited this page May 8, 2026 · 26 revisions
banner_bordered_trimmed
The Agentive Operating System for Physical Space

Release v0.0.12: memory2 streaming engine, async modules, OpenArm + G1 low-level, MuJoCo manipulation, slimmer install

TL;DR

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.

Highlights

108 commits, 11 contributors, 972 files changed.

⚠️ 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-whisper is the default STT — pip install 'dimos[whisper]' for full Whisper. (#1877)
  • Blueprint.build removed — use ModuleCoordinator.build(blueprint) and import from dimos.core.coordination. (#1744)
  • Module Config must be a pydantic.BaseModel; module __init__ signature standardized. (#1510)
  • __init__.py re-exports removed — import directly from defining modules. (#1545)
  • Blueprint aliases removed — use MyModule.blueprint() instead of my_module(). (#1606)
  • Old Agent class removed — now agent communication is just through MCP. (#1657)
  • Teleop blueprints regrouped under teleop_*; VisualizingTeleopModule removed. (#1602)
  • Manipulation: joint names use / (arm/joint1); WorldStateMonitorRobotStateMonitor; _hardware.py removed in favor of RobotConfig. (#1728, #1725)
  • use_mesh_obstacles default flipped to False; ObjectDB no 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 def handlers/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-security agentic 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; --help lists 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-coordinator blueprint. (#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: --simulation spins 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_on skills, 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, NativeModule API). (#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 --connect works again — clicks/teleop flow over websockets. (#1784) by @jeff-hykin
  • dtop shows native child-process CPU; dtop --log records metrics to a memory2 SQLite store for offline plotting. (#1880, #2004) by @aclauer

🐛 Bug Fixes

  • macOS UDP receive buffer probed up to 32 MiB. (#1789) by @Dreamsorcerer
  • --disable works again; module-by-name lookup fixed. (#1707, #1689) by @paul-nechifor
  • CameraModule.stop() reachable via RPC; doc imports use canonical paths. (#1773) by @jeff-hykin
  • Python 3.10 compat (typing_extensions.Self); skip pyrealsense2 on macOS; fix nix develop LCM build on macOS. (#1621, #1556, #1610) by @jeff-hykin
  • Rerun grid raised above the costmap; viewer bumped to 0.30.0a6. (#1714, #1690, #1785) by @ruthwikdasyam
  • Go2 lidar timestamps repaired: non-monotonic frames clamped to the expected period; older firmware that never updates timestamps falls back to system time after a calibration window. (#1992, #2021) by @leshy, @aclauer
  • Replay memory leak fixed. (#2025) by @leshy

⚡ Performance

🔒 Security

  • MCP/Foxglove/GStreamer bind to localhost by default; set MCP_HOST=0.0.0.0 to expose. (#1698) by @vrinek
  • Update vulnerable dependencies flagged by Dependabot. (#1989) by @paul-nechifor

👥 New Contributors

Full Changelog: https://github.com/dimensionalOS/dimos/compare/v0.0.11...v0.0.12

Clone this wiki locally