Skip to content

Feat/rerun latency panels#925

Merged
leshy merged 13 commits intodevfrom
feat/rerun-latency-panels
Jan 3, 2026
Merged

Feat/rerun latency panels#925
leshy merged 13 commits intodevfrom
feat/rerun-latency-panels

Conversation

@Nabla7
Copy link
Contributor

@Nabla7 Nabla7 commented Jan 2, 2026

Rerun Visualization Improvements

Addresses feedback from issue #922

Visual Fixes:

  • Costmap now uses Foxglove-style colors (blue-purple free, black occupied)
  • Fixed z-fighting white dots by increasing z_offset to 0.05
  • Removed broken 2D image panel logging
  • Made path visualization thicker (5cm) and elevated above floor

New Features:

  • TFRerunModule: Auto-visualizes all TF transforms by subscribing to /tf LCM topic
  • log_timing_to_rerun() decorator for easy performance metrics

Fixes:

  • Command center routing now uses global_config instead of os.environ
  • A* planner logs paths manually without polluting stream.py core code

Result: Clean Rerun integration without adding complexity to core stream infrastructure. (cleaned up all vibeslop from previous experiments my bad)

Nabla7 added 6 commits January 1, 2026 22:09
- Add radii parameter (default 0.05m = 5cm thick)
- Add z_offset parameter (default 0.2m above floor)
- Prevents path from being occluded by costmap mesh

Path now clearly visible in Rerun 3D viewer.
- Fix costmap colors: use turbo colormap, remove broken image panel, increase z_offset to 0.05 (turbo is bullshit i will fix this)
- Fix websocket_vis: use global_config instead of os.environ for viewer_backend
- Add TFRerunModule: auto-visualize all TF transforms via LCM subscription
- Add autolog_to_rerun_async(): async logging with background thread for Out streams
- Add log_timing_to_rerun(): decorator for timing metrics in Rerun
- Wire TFRerunModule into go2 blueprints

Addresses feedback from issue #922
…ccupied)

- Free space: #484981 (blue-purple)
- Occupied: gradient to #000000 (black)
- Replaces incorrect turbo colormap
- Removes dependency on stream.py autolog_to_rerun() method
- Uses manual Rerun logging like CostMapper/VoxelGridMapper
- Keeps stream.py clean without Rerun-specific code
Out streams don't have subscribe() method - fixed to use self._planner.path
@chatgpt-codex-connector
Copy link

Codex usage limits have been reached for code reviews. Please check with the admins of this repo to increase the limits by adding credits.
Credits must be used to enable repository wide code reviews.

@greptile-apps
Copy link
Contributor

greptile-apps bot commented Jan 2, 2026

Greptile Summary

This PR cleans up Rerun visualization by removing experimental autolog_to_rerun() infrastructure from stream.py and implementing cleaner, module-specific logging patterns. The changes address issue #922 feedback comprehensively.

Major improvements:

  • Visual fixes: Costmap now uses Foxglove-style colors (blue-purple #484981 for free space, black for occupied), z-offset increased from 0.02m to 0.05m to eliminate z-fighting, paths made thicker (5cm) and elevated (0.2m) for better visibility
  • New TFRerunModule: Auto-visualizes all TF transforms by subscribing to /tf LCM topic, properly conditional on viewer_backend setting
  • Performance metrics: New @log_timing_to_rerun() decorator enables easy function timing without queues
  • Configuration cleanup: Command center and modules now use global_config.viewer_backend instead of os.environ
  • Camera fix: Unitree camera correctly marked as RGB format (was implicitly BGR before)

Architecture changes:

  • Removed generic autolog_to_rerun() from Out class (was coupling visualization to core streaming infrastructure)
  • A* planner now manually subscribes for Rerun logging (cleaner than autolog pattern)
  • Removed broken 2D costmap image logging (only keeping working 3D mesh)

The PR successfully achieves its goal of "clean Rerun integration without adding complexity to core stream infrastructure."

Confidence Score: 5/5

  • Safe to merge - well-tested refactor with clear improvements and no breaking changes
  • All changes are architectural improvements with proper cleanup. The removal of autolog_to_rerun() is compensated by explicit patterns. Visual fixes directly address reported issues. New modules properly check configuration before initializing. No logic errors or security concerns identified.
  • No files require special attention

Important Files Changed

Filename Overview
dimos/core/stream.py Removed autolog_to_rerun() infrastructure - clean removal of experimental feature without side effects
dimos/dashboard/tf_rerun_module.py New TF visualization module - properly checks viewer_backend and cleans up LCM subscription on stop
dimos/utils/metrics.py Added log_timing_to_rerun() decorator for performance metrics - simple and well-documented
dimos/mapping/costmapper.py Removed broken 2D image logging, updated z_offset to 0.05 to fix z-fighting
dimos/msgs/nav_msgs/OccupancyGrid.py Implemented Foxglove-style colormap (blue-purple for free, black for occupied) with smooth gradient
dimos/navigation/replanning_a_star/module.py Replaced autolog with manual subscribe pattern, cleaned up Disposable usage

Sequence Diagram

sequenceDiagram
    participant BP as Blueprint
    participant TFM as TFRerunModule
    participant LCM as LCM /tf Topic
    participant TF as TFMessage
    participant RR as Rerun

    BP->>TFM: start()
    TFM->>TFM: Check viewer_backend
    alt viewer_backend starts with "rerun"
        TFM->>RR: connect_rerun()
        TFM->>LCM: subscribe("/tf", callback)
        loop On each TF message
            LCM->>TFM: _on_tf_message(TFMessage)
            TFM->>TF: msg.to_rerun()
            TF-->>TFM: [(entity_path, Transform3D), ...]
            loop For each transform
                TFM->>RR: rr.log(entity_path, Transform3D)
            end
        end
    end

    Note over BP,RR: Manual Rerun Logging (A* Planner)
    participant AP as ReplanningAStarPlanner
    participant GP as GlobalPlanner
    
    BP->>AP: start()
    AP->>AP: Check viewer_backend
    alt viewer_backend starts with "rerun"
        AP->>RR: connect_rerun()
        AP->>GP: path.subscribe(_log_path_to_rerun)
        loop On path updates
            GP->>AP: path published
            AP->>RR: rr.log("world/nav/path", path.to_rerun())
        end
    end
Loading

@greptile-apps
Copy link
Contributor

greptile-apps bot commented Jan 2, 2026

Greptile's behavior is changing!

From now on, if a review finishes with no comments, we will not post an additional "statistics" comment to confirm that our review found nothing to comment on. However, you can confirm that we reviewed your changes in the status check section.

This feature can be toggled off in your Code Review Settings by deselecting "Create a status check for each PR".

Nabla7 and others added 7 commits January 2, 2026 01:01
- Remove import rerun
- Remove autolog_to_rerun() and _log_to_rerun() methods
- Remove _rerun_config and _rerun_last_log from __init__
- Keep Out.subscribe() and ObservableMixin (core functionality)
- Add type ignore for to_rerun() calls
- Remove Disposable() double-wrapping, add subscriptions directly
- Move type ignore comment for Path.to_rerun()
Frame is decoded as rgb24 but Image.from_numpy() was defaulting to BGR,
causing red/blue color swap in Rerun camera feed
- Fix camera image format: specify RGB when decoding rgb24 frames
- Wrap module input subscriptions with Disposable()
- Add type ignores for untyped to_rerun() calls
@Nabla7 Nabla7 closed this Jan 2, 2026
@Nabla7 Nabla7 reopened this Jan 3, 2026
@leshy leshy merged commit fca9a14 into dev Jan 3, 2026
13 checks passed
leshy pushed a commit that referenced this pull request Jan 5, 2026
* fix: Make path visualization thicker and elevated above floor

- Add radii parameter (default 0.05m = 5cm thick)
- Add z_offset parameter (default 0.2m above floor)
- Prevents path from being occluded by costmap mesh

Path now clearly visible in Rerun 3D viewer.

* feat:some rerun visualization improvements

- Fix costmap colors: use turbo colormap, remove broken image panel, increase z_offset to 0.05 (turbo is bullshit i will fix this)
- Fix websocket_vis: use global_config instead of os.environ for viewer_backend
- Add TFRerunModule: auto-visualize all TF transforms via LCM subscription
- Add autolog_to_rerun_async(): async logging with background thread for Out streams
- Add log_timing_to_rerun(): decorator for timing metrics in Rerun
- Wire TFRerunModule into go2 blueprints

Addresses feedback from issue #922

* fix: Use Foxglove-style colors for costmap (blue-purple free, black occupied)

- Free space: #484981 (blue-purple)
- Occupied: gradient to #000000 (black)
- Replaces incorrect turbo colormap

* fix: Remove autolog_to_rerun from A* planner, use manual logging

- Removes dependency on stream.py autolog_to_rerun() method
- Uses manual Rerun logging like CostMapper/VoxelGridMapper
- Keeps stream.py clean without Rerun-specific code

* fix: Subscribe to internal planner path, not module Out stream

Out streams don't have subscribe() method - fixed to use self._planner.path

* style: Apply pre-commit formatting and linting fixes

* fix: correct stream.py

* refactor: Remove all Rerun code from stream.py

- Remove import rerun
- Remove autolog_to_rerun() and _log_to_rerun() methods
- Remove _rerun_config and _rerun_last_log from __init__
- Keep Out.subscribe() and ObservableMixin (core functionality)

* style: Apply linter formatting

* fix: Address mypy errors from Rerun changes

- Add type ignore for to_rerun() calls
- Remove Disposable() double-wrapping, add subscriptions directly
- Move type ignore comment for Path.to_rerun()

* fix: Correct camera image format from BGR to RGB

Frame is decoded as rgb24 but Image.from_numpy() was defaulting to BGR,
causing red/blue color swap in Rerun camera feed

* fix: Camera RGB color swap and additional cleanup

- Fix camera image format: specify RGB when decoding rgb24 frames
- Wrap module input subscriptions with Disposable()
- Add type ignores for untyped to_rerun() calls

* CI code cleanup
spomichter added a commit that referenced this pull request Jan 8, 2026
Release v0.0.6: Pre-Launch Unitree Go2 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: ignore` by @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 `= None` by @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_data` progress 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 `uv` by @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 #745
* @Kaweees made their first contribution in #875
* @mustafab0 made their first contribution in #831
* @Nabla7 made their first contribution in #917

**Full Changelog**: v0.0.5...v0.0.6
spomichter pushed a commit that referenced this pull request Jan 8, 2026
* fix: Make path visualization thicker and elevated above floor

- Add radii parameter (default 0.05m = 5cm thick)
- Add z_offset parameter (default 0.2m above floor)
- Prevents path from being occluded by costmap mesh

Path now clearly visible in Rerun 3D viewer.

* feat:some rerun visualization improvements

- Fix costmap colors: use turbo colormap, remove broken image panel, increase z_offset to 0.05 (turbo is bullshit i will fix this)
- Fix websocket_vis: use global_config instead of os.environ for viewer_backend
- Add TFRerunModule: auto-visualize all TF transforms via LCM subscription
- Add autolog_to_rerun_async(): async logging with background thread for Out streams
- Add log_timing_to_rerun(): decorator for timing metrics in Rerun
- Wire TFRerunModule into go2 blueprints

Addresses feedback from issue #922

* fix: Use Foxglove-style colors for costmap (blue-purple free, black occupied)

- Free space: #484981 (blue-purple)
- Occupied: gradient to #000000 (black)
- Replaces incorrect turbo colormap

* fix: Remove autolog_to_rerun from A* planner, use manual logging

- Removes dependency on stream.py autolog_to_rerun() method
- Uses manual Rerun logging like CostMapper/VoxelGridMapper
- Keeps stream.py clean without Rerun-specific code

* fix: Subscribe to internal planner path, not module Out stream

Out streams don't have subscribe() method - fixed to use self._planner.path

* style: Apply pre-commit formatting and linting fixes

* fix: correct stream.py

* refactor: Remove all Rerun code from stream.py

- Remove import rerun
- Remove autolog_to_rerun() and _log_to_rerun() methods
- Remove _rerun_config and _rerun_last_log from __init__
- Keep Out.subscribe() and ObservableMixin (core functionality)

* style: Apply linter formatting

* fix: Address mypy errors from Rerun changes

- Add type ignore for to_rerun() calls
- Remove Disposable() double-wrapping, add subscriptions directly
- Move type ignore comment for Path.to_rerun()

* fix: Correct camera image format from BGR to RGB

Frame is decoded as rgb24 but Image.from_numpy() was defaulting to BGR,
causing red/blue color swap in Rerun camera feed

* fix: Camera RGB color swap and additional cleanup

- Fix camera image format: specify RGB when decoding rgb24 frames
- Wrap module input subscriptions with Disposable()
- Add type ignores for untyped to_rerun() calls

* CI code cleanup

Former-commit-id: fca9a14
spomichter added a commit that referenced this pull request Jan 8, 2026
Release v0.0.6: Pre-Launch Unitree Go2 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: ignore` by @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 `= None` by @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_data` progress 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 `uv` by @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 #745
* @Kaweees made their first contribution in #875
* @mustafab0 made their first contribution in #831
* @Nabla7 made their first contribution in #917

**Full Changelog**: v0.0.5...v0.0.6

Former-commit-id: 26e61a70a9469f2e33e51f1296f082b470009c09 [formerly 7ffc878]
Former-commit-id: 725e628
spomichter pushed a commit that referenced this pull request Jan 8, 2026
* fix: Make path visualization thicker and elevated above floor

- Add radii parameter (default 0.05m = 5cm thick)
- Add z_offset parameter (default 0.2m above floor)
- Prevents path from being occluded by costmap mesh

Path now clearly visible in Rerun 3D viewer.

* feat:some rerun visualization improvements

- Fix costmap colors: use turbo colormap, remove broken image panel, increase z_offset to 0.05 (turbo is bullshit i will fix this)
- Fix websocket_vis: use global_config instead of os.environ for viewer_backend
- Add TFRerunModule: auto-visualize all TF transforms via LCM subscription
- Add autolog_to_rerun_async(): async logging with background thread for Out streams
- Add log_timing_to_rerun(): decorator for timing metrics in Rerun
- Wire TFRerunModule into go2 blueprints

Addresses feedback from issue #922

* fix: Use Foxglove-style colors for costmap (blue-purple free, black occupied)

- Free space: #484981 (blue-purple)
- Occupied: gradient to #000000 (black)
- Replaces incorrect turbo colormap

* fix: Remove autolog_to_rerun from A* planner, use manual logging

- Removes dependency on stream.py autolog_to_rerun() method
- Uses manual Rerun logging like CostMapper/VoxelGridMapper
- Keeps stream.py clean without Rerun-specific code

* fix: Subscribe to internal planner path, not module Out stream

Out streams don't have subscribe() method - fixed to use self._planner.path

* style: Apply pre-commit formatting and linting fixes

* fix: correct stream.py

* refactor: Remove all Rerun code from stream.py

- Remove import rerun
- Remove autolog_to_rerun() and _log_to_rerun() methods
- Remove _rerun_config and _rerun_last_log from __init__
- Keep Out.subscribe() and ObservableMixin (core functionality)

* style: Apply linter formatting

* fix: Address mypy errors from Rerun changes

- Add type ignore for to_rerun() calls
- Remove Disposable() double-wrapping, add subscriptions directly
- Move type ignore comment for Path.to_rerun()

* fix: Correct camera image format from BGR to RGB

Frame is decoded as rgb24 but Image.from_numpy() was defaulting to BGR,
causing red/blue color swap in Rerun camera feed

* fix: Camera RGB color swap and additional cleanup

- Fix camera image format: specify RGB when decoding rgb24 frames
- Wrap module input subscriptions with Disposable()
- Add type ignores for untyped to_rerun() calls

* CI code cleanup

Former-commit-id: 9f59de4
spomichter added a commit that referenced this pull request Jan 8, 2026
Release v0.0.6: Pre-Launch Unitree Go2 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: ignore` by @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 `= None` by @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_data` progress 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 `uv` by @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 #745
* @Kaweees made their first contribution in #875
* @mustafab0 made their first contribution in #831
* @Nabla7 made their first contribution in #917

**Full Changelog**: v0.0.5...v0.0.6

Former-commit-id: 7ffc878
spomichter added a commit that referenced this pull request Jan 8, 2026
Release v0.0.6: Pre-Launch Unitree Go2 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: ignore` by @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 `= None` by @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_data` progress 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 `uv` by @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 #745
* @Kaweees made their first contribution in #875
* @mustafab0 made their first contribution in #831
* @Nabla7 made their first contribution in #917

**Full Changelog**: v0.0.5...v0.0.6

Former-commit-id: 7ffc878
Former-commit-id: 067332a
spomichter pushed a commit that referenced this pull request Jan 8, 2026
* fix: Make path visualization thicker and elevated above floor

- Add radii parameter (default 0.05m = 5cm thick)
- Add z_offset parameter (default 0.2m above floor)
- Prevents path from being occluded by costmap mesh

Path now clearly visible in Rerun 3D viewer.

* feat:some rerun visualization improvements

- Fix costmap colors: use turbo colormap, remove broken image panel, increase z_offset to 0.05 (turbo is bullshit i will fix this)
- Fix websocket_vis: use global_config instead of os.environ for viewer_backend
- Add TFRerunModule: auto-visualize all TF transforms via LCM subscription
- Add autolog_to_rerun_async(): async logging with background thread for Out streams
- Add log_timing_to_rerun(): decorator for timing metrics in Rerun
- Wire TFRerunModule into go2 blueprints

Addresses feedback from issue #922

* fix: Use Foxglove-style colors for costmap (blue-purple free, black occupied)

- Free space: #484981 (blue-purple)
- Occupied: gradient to #000000 (black)
- Replaces incorrect turbo colormap

* fix: Remove autolog_to_rerun from A* planner, use manual logging

- Removes dependency on stream.py autolog_to_rerun() method
- Uses manual Rerun logging like CostMapper/VoxelGridMapper
- Keeps stream.py clean without Rerun-specific code

* fix: Subscribe to internal planner path, not module Out stream

Out streams don't have subscribe() method - fixed to use self._planner.path

* style: Apply pre-commit formatting and linting fixes

* fix: correct stream.py

* refactor: Remove all Rerun code from stream.py

- Remove import rerun
- Remove autolog_to_rerun() and _log_to_rerun() methods
- Remove _rerun_config and _rerun_last_log from __init__
- Keep Out.subscribe() and ObservableMixin (core functionality)

* style: Apply linter formatting

* fix: Address mypy errors from Rerun changes

- Add type ignore for to_rerun() calls
- Remove Disposable() double-wrapping, add subscriptions directly
- Move type ignore comment for Path.to_rerun()

* fix: Correct camera image format from BGR to RGB

Frame is decoded as rgb24 but Image.from_numpy() was defaulting to BGR,
causing red/blue color swap in Rerun camera feed

* fix: Camera RGB color swap and additional cleanup

- Fix camera image format: specify RGB when decoding rgb24 frames
- Wrap module input subscriptions with Disposable()
- Add type ignores for untyped to_rerun() calls

* CI code cleanup

Former-commit-id: 321a8c4 [formerly 9f59de4]
Former-commit-id: 25ee6d8
spomichter added a commit that referenced this pull request Jan 8, 2026
Release v0.0.6: Pre-Launch Unitree Go2 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: ignore` by @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 `= None` by @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_data` progress 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 `uv` by @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 #745
* @Kaweees made their first contribution in #875
* @mustafab0 made their first contribution in #831
* @Nabla7 made their first contribution in #917

**Full Changelog**: v0.0.5...v0.0.6

Former-commit-id: 26e61a70a9469f2e33e51f1296f082b470009c09 [formerly 7ffc878]
Former-commit-id: 725e628
Former-commit-id: 2e5f1d4
spomichter pushed a commit that referenced this pull request Jan 8, 2026
* fix: Make path visualization thicker and elevated above floor

- Add radii parameter (default 0.05m = 5cm thick)
- Add z_offset parameter (default 0.2m above floor)
- Prevents path from being occluded by costmap mesh

Path now clearly visible in Rerun 3D viewer.

* feat:some rerun visualization improvements

- Fix costmap colors: use turbo colormap, remove broken image panel, increase z_offset to 0.05 (turbo is bullshit i will fix this)
- Fix websocket_vis: use global_config instead of os.environ for viewer_backend
- Add TFRerunModule: auto-visualize all TF transforms via LCM subscription
- Add autolog_to_rerun_async(): async logging with background thread for Out streams
- Add log_timing_to_rerun(): decorator for timing metrics in Rerun
- Wire TFRerunModule into go2 blueprints

Addresses feedback from issue #922

* fix: Use Foxglove-style colors for costmap (blue-purple free, black occupied)

- Free space: #484981 (blue-purple)
- Occupied: gradient to #000000 (black)
- Replaces incorrect turbo colormap

* fix: Remove autolog_to_rerun from A* planner, use manual logging

- Removes dependency on stream.py autolog_to_rerun() method
- Uses manual Rerun logging like CostMapper/VoxelGridMapper
- Keeps stream.py clean without Rerun-specific code

* fix: Subscribe to internal planner path, not module Out stream

Out streams don't have subscribe() method - fixed to use self._planner.path

* style: Apply pre-commit formatting and linting fixes

* fix: correct stream.py

* refactor: Remove all Rerun code from stream.py

- Remove import rerun
- Remove autolog_to_rerun() and _log_to_rerun() methods
- Remove _rerun_config and _rerun_last_log from __init__
- Keep Out.subscribe() and ObservableMixin (core functionality)

* style: Apply linter formatting

* fix: Address mypy errors from Rerun changes

- Add type ignore for to_rerun() calls
- Remove Disposable() double-wrapping, add subscriptions directly
- Move type ignore comment for Path.to_rerun()

* fix: Correct camera image format from BGR to RGB

Frame is decoded as rgb24 but Image.from_numpy() was defaulting to BGR,
causing red/blue color swap in Rerun camera feed

* fix: Camera RGB color swap and additional cleanup

- Fix camera image format: specify RGB when decoding rgb24 frames
- Wrap module input subscriptions with Disposable()
- Add type ignores for untyped to_rerun() calls

* CI code cleanup

Former-commit-id: 321a8c4 [formerly 9f59de4]
Former-commit-id: 25ee6d8
spomichter added a commit that referenced this pull request Jan 8, 2026
Release v0.0.6: Pre-Launch Unitree Go2 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: ignore` by @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 `= None` by @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_data` progress 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 `uv` by @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 #745
* @Kaweees made their first contribution in #875
* @mustafab0 made their first contribution in #831
* @Nabla7 made their first contribution in #917

**Full Changelog**: v0.0.5...v0.0.6

Former-commit-id: 7ffc878
Former-commit-id: 067332a
spomichter added a commit that referenced this pull request Jan 8, 2026
Release v0.0.6: Pre-Launch Unitree Go2 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: ignore` by @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 `= None` by @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_data` progress 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 `uv` by @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 #745
* @Kaweees made their first contribution in #875
* @mustafab0 made their first contribution in #831
* @Nabla7 made their first contribution in #917

**Full Changelog**: v0.0.5...v0.0.6

Former-commit-id: 26e61a70a9469f2e33e51f1296f082b470009c09 [formerly 7ffc878]
Former-commit-id: 725e628
Former-commit-id: 2e5f1d4
paul-nechifor pushed a commit that referenced this pull request Jan 8, 2026
* fix: Make path visualization thicker and elevated above floor

- Add radii parameter (default 0.05m = 5cm thick)
- Add z_offset parameter (default 0.2m above floor)
- Prevents path from being occluded by costmap mesh

Path now clearly visible in Rerun 3D viewer.

* feat:some rerun visualization improvements

- Fix costmap colors: use turbo colormap, remove broken image panel, increase z_offset to 0.05 (turbo is bullshit i will fix this)
- Fix websocket_vis: use global_config instead of os.environ for viewer_backend
- Add TFRerunModule: auto-visualize all TF transforms via LCM subscription
- Add autolog_to_rerun_async(): async logging with background thread for Out streams
- Add log_timing_to_rerun(): decorator for timing metrics in Rerun
- Wire TFRerunModule into go2 blueprints

Addresses feedback from issue #922

* fix: Use Foxglove-style colors for costmap (blue-purple free, black occupied)

- Free space: #484981 (blue-purple)
- Occupied: gradient to #000000 (black)
- Replaces incorrect turbo colormap

* fix: Remove autolog_to_rerun from A* planner, use manual logging

- Removes dependency on stream.py autolog_to_rerun() method
- Uses manual Rerun logging like CostMapper/VoxelGridMapper
- Keeps stream.py clean without Rerun-specific code

* fix: Subscribe to internal planner path, not module Out stream

Out streams don't have subscribe() method - fixed to use self._planner.path

* style: Apply pre-commit formatting and linting fixes

* fix: correct stream.py

* refactor: Remove all Rerun code from stream.py

- Remove import rerun
- Remove autolog_to_rerun() and _log_to_rerun() methods
- Remove _rerun_config and _rerun_last_log from __init__
- Keep Out.subscribe() and ObservableMixin (core functionality)

* style: Apply linter formatting

* fix: Address mypy errors from Rerun changes

- Add type ignore for to_rerun() calls
- Remove Disposable() double-wrapping, add subscriptions directly
- Move type ignore comment for Path.to_rerun()

* fix: Correct camera image format from BGR to RGB

Frame is decoded as rgb24 but Image.from_numpy() was defaulting to BGR,
causing red/blue color swap in Rerun camera feed

* fix: Camera RGB color swap and additional cleanup

- Fix camera image format: specify RGB when decoding rgb24 frames
- Wrap module input subscriptions with Disposable()
- Add type ignores for untyped to_rerun() calls

* CI code cleanup

Former-commit-id: 8ce217d [formerly fca9a14]
Former-commit-id: b03d8e8
jeff-hykin pushed a commit that referenced this pull request Jan 9, 2026
* fix: Make path visualization thicker and elevated above floor

- Add radii parameter (default 0.05m = 5cm thick)
- Add z_offset parameter (default 0.2m above floor)
- Prevents path from being occluded by costmap mesh

Path now clearly visible in Rerun 3D viewer.

* feat:some rerun visualization improvements

- Fix costmap colors: use turbo colormap, remove broken image panel, increase z_offset to 0.05 (turbo is bullshit i will fix this)
- Fix websocket_vis: use global_config instead of os.environ for viewer_backend
- Add TFRerunModule: auto-visualize all TF transforms via LCM subscription
- Add autolog_to_rerun_async(): async logging with background thread for Out streams
- Add log_timing_to_rerun(): decorator for timing metrics in Rerun
- Wire TFRerunModule into go2 blueprints

Addresses feedback from issue #922

* fix: Use Foxglove-style colors for costmap (blue-purple free, black occupied)

- Free space: #484981 (blue-purple)
- Occupied: gradient to #000000 (black)
- Replaces incorrect turbo colormap

* fix: Remove autolog_to_rerun from A* planner, use manual logging

- Removes dependency on stream.py autolog_to_rerun() method
- Uses manual Rerun logging like CostMapper/VoxelGridMapper
- Keeps stream.py clean without Rerun-specific code

* fix: Subscribe to internal planner path, not module Out stream

Out streams don't have subscribe() method - fixed to use self._planner.path

* style: Apply pre-commit formatting and linting fixes

* fix: correct stream.py

* refactor: Remove all Rerun code from stream.py

- Remove import rerun
- Remove autolog_to_rerun() and _log_to_rerun() methods
- Remove _rerun_config and _rerun_last_log from __init__
- Keep Out.subscribe() and ObservableMixin (core functionality)

* style: Apply linter formatting

* fix: Address mypy errors from Rerun changes

- Add type ignore for to_rerun() calls
- Remove Disposable() double-wrapping, add subscriptions directly
- Move type ignore comment for Path.to_rerun()

* fix: Correct camera image format from BGR to RGB

Frame is decoded as rgb24 but Image.from_numpy() was defaulting to BGR,
causing red/blue color swap in Rerun camera feed

* fix: Camera RGB color swap and additional cleanup

- Fix camera image format: specify RGB when decoding rgb24 frames
- Wrap module input subscriptions with Disposable()
- Add type ignores for untyped to_rerun() calls

* CI code cleanup

Former-commit-id: 48583fc [formerly fca9a14]
Former-commit-id: b03d8e8
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants