dimos --viewer none ....
Blueprints add Rerun stream visualization with vis_module(...), which renders typed
robot streams according to GlobalConfig.viewer.
Quick Start
Choose your viewer via the CLI:--rerun-open and --rerun-web:
Viewer Modes Explained
Rerun Native (rerun, --rerun-open native) — Default
What you get:
- dimos-viewer, a custom Dimensional fork of Rerun with built-in keyboard teleop and click-to-navigate
- Native desktop application (opens automatically)
- Better performance with larger maps/higher resolution
- No browser or web server required
Rerun Web (rerun, --rerun-open web)
What you get:
- Browser-based dashboard at http://localhost:7779
- Rerun 3D viewer + command center sidebar in one page
- Teleop controls and goal setting via the web UI
- Works headless (no display required)
Rendering with Custom Blueprints
To enable visualization in your own blueprint, usevis_module:
skip
skip
color_image (output by CameraModule), that uses a data type (like Image) that has a .to_rerun method will get rendered (rr.log) using the LCM topic as the rerun entity path. In other words: to render something, simply log it to a stream and it will automatically be available in rerun.
Performance Tuning
Symptom: Slow Map Updates
If you notice:- Robot appears to “walk across empty space”
- Costmap updates lag behind the robot
- Visualization stutters or freezes
Increase Voxel Size
Editdimos/robot/unitree/go2/blueprints/smart/unitree_go2.py:
skip
- Larger voxels = fewer voxels = faster updates
- But slightly less detail in the map
Direct Visualization from a Module
If you want to log data to Rerun directly from inside a module (e.g. for debugging or one-off visualizations), usererun_init instead of calling rr.init() yourself. It handles colormap registration and can optionally start a gRPC server so a viewer can connect.
skip
RerunBridgeModule is already part of your blueprint, you typically don’t need start_grpc — just call rerun_init() and log directly with rr.log(). The data will appear in the existing viewer.
How to use Rerun on dev (and the TF/entity nuances)
Rerun on dev is module-driven: modules decide what to log, and Blueprint.build() sets up the shared viewer + default layout.