dimensionalOS / dimensionalOS/dimos
Replay-derived evals for navigate_with_text goal selection
Nobody has claimed this yet.
- Dominant language
- Python
- Stars
- 4.5k
- Forks
- 808
- Avg merge
- 3d 5h
- Merged PRs (30d)
- 233
Description
What do you want, and why?
the only behavior-level check on spatial memory today is e2e tests with hand-measured coordinates (test_dimsim_spatial_memory.py pins the bed at (-3.567, -1.332)). every new question is a manual measurement, and after a prompt or model change there's no repeatable way to tell whether object finding got better or worse.
i built a way to derive the questions and reference positions from a recording the robot already made, and score the goal the shipping navigate_with_text selects — execution stubbed:
- teacher (offline, once per recording): sample RGB on recorded timestamps, skip near-black frames, open-vocab detect (the in-repo YOLOe), project the nearest lidar sweep through
pose ∘ BASE_TO_OPTICAL+ fisheye intrinsics, reject ground points, take the depth-IQR inliers' map-frame median as the candidate position. a label qualifies only with ≥2 pairwise-independent views (the robot actually moved between them) and exactly one qualifying cluster; qualified labels sitting on the same spot get linked so one physical object can't become several questions. - names are the weak half of open-vocab on a dim replay, so a committed human-review overlay (verified / renamed / dropped, with reasons and the crops) gates what becomes a question.
go2_bigofficeyields 26 geometrically qualified labels on 19 locations; review keeps the single-digit subset that survives as askable questions. - harness: fresh coordinator per question, shipping
SpatialMemoryattached read-only, goal + query strings captured from the worker processes, six-state outcome so harness failures can't masquerade as agent failures, one figure per sweep (error distribution per model × system-prompt configuration).
status: implemented and green on a branch — one new directory (dimos/agents/evals/), zero existing-file changes, roughly half of it tests; the unit layer runs on the default lane, recording-backed layers are self_hosted. related: #3069 (this exercises the in-house agent path), #1913 (the point-placement half of it), #3249 covers the complementary authored-scene closed-loop side in dimsim, #3154 applies the same replay-derived-reference idea to the MLS planner. the success contract mirrors dimsim's {passed, reason, score}.
three questions before i open the PR:
- one PR, or split (offline reference pipeline vs harness+tests)?
- is
dimos/agents/evals/the right home? followed the colocation precedent ofnav_3d/evaluatorandcontrol/benchmarking - sample results in the PR: a keyless pipeline-validation run (recorded model transcript) now with live sweep numbers as a follow-up comment, or hold for live numbers?
happy to adjust scope before opening. branch is ready to link if useful.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with the implemented branch's new dimos/agents/evals/ directory, then read test_dimsim_spatial_memory.py and the related issues #3069, #1913, #3249, and #3154. Run the unit layer on the default lane and recording-backed layers on self_hosted; done means the PR scope, directory placement, sample-results plan, and {passed, reason, score} contract are agreed.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- computer-vision, robotics, testing-qa
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Quiet
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100