Skip to content

Conversation

@jeff-hykin
Copy link
Member

@jeff-hykin jeff-hykin commented Feb 8, 2026

Test with: bin/pytest-slow (no added functionality)

Performance Improvements

BEFORE

dimos --help  4.86s user 1.27s system 103% cpu 5.943 total
dimos --help  4.53s user 1.27s system 122% cpu 4.750 total
dimos --help  4.61s user 1.49s system 119% cpu 5.112 total

# below is time till first `onimage` call for `dimos --replay run unitree-go2-basic`
dimos --replay run unitree-go2-basic  13.85s user 2.73s system 68% cpu 24.35

AFTER

dimos --help  0.90s user 0.15s system 98% cpu 1.069 total
dimos --help  0.88s user 0.16s system 97% cpu 1.061 total
dimos --help  0.92s user 0.16s system 96% cpu 1.115 total

# below is time till first `onimage` call for `dimos --replay run unitree-go2-basic`
dimos --replay run unitree-go2-basic  5.60s user 1.99s system 49% cpu 15.262 total

New Dir Structure:

  • robots/unitree/<robot name>/<stuff for robot>
  • robots/unitree/<robot name>/blueprints/
  • every init.py going forward should use the lazy system as much as possible (see diffs)
  • no more robots/unitree_webrtc dir*

@greptile-apps
Copy link

greptile-apps bot commented Feb 8, 2026

Too many files changed for review. (128 files found, 100 file limit)

@@ -0,0 +1,11 @@
from __future__ import annotations
Copy link
Member Author

@jeff-hykin jeff-hykin Feb 8, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this file just helps with typing

model.update_intrinsic([1.0, 2.0]) # Only 2 values


@pytest.mark.cuda
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this is part of: #1220 which I expect/hope will get merged before anyone even sees this comment

R = TypeVar("R")


def rpc(fn: Callable[P, R]) -> Callable[P, R]:
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

make mypy happy and properly carry over arg/return typing

# Run the blueprint
blueprint.build().loop()
if __name__ == "__main__":
blueprint.build().loop()
Copy link
Member Author

@jeff-hykin jeff-hykin Feb 8, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

without this change, the example code does not work!! (its broken on dev!)

@jeff-hykin jeff-hykin changed the title Import Fix & Optimize: G1 without ROS, lazy imports (4x faster), Fix bad dir naming Import Fix & Optimize: G1 without ROS, lazy imports, Fix bad dir naming Feb 9, 2026
@@ -0,0 +1,84 @@
#!/usr/bin/env python3
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

typo in file name uintree

from dimos.robot.foxglove_bridge import foxglove_bridge
from dimos.web.websocket_vis.websocket_vis_module import websocket_vis

uintree_g1_primitive_no_nav = (
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

typo here too

def __repr__(self) -> str:
"""Return a string representation of the TList using Timeseries repr method."""
return Timeseries.__repr__(self)
from dimos.robot.unitree.type.timeseries import * # noqa: F403
Copy link
Contributor

@paul-nechifor paul-nechifor Feb 11, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Just import each individually Don't use * because it kills the ability of the linter to check for bad names.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

In general I agree, I actually wish python would deprecate import *, but for a shim thats supposed to be deleted anyways (as soon as pickle file gets rerecorded) I thought it would be fine.

paul-nechifor
paul-nechifor previously approved these changes Feb 11, 2026
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