dimensionalOS / dimensionalOS/dimos

Replay-derived evals for navigate_with_text goal selection

Open
#3,290 0 comments 0 reactions 0 assignees View on GitHub

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_bigoffice yields 26 geometrically qualified labels on 19 locations; review keeps the single-digit subset that survives as askable questions.
  • harness: fresh coordinator per question, shipping SpatialMemory attached 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:

  1. one PR, or split (offline reference pipeline vs harness+tests)?
  2. is dimos/agents/evals/ the right home? followed the colocation precedent of nav_3d/evaluator and control/benchmarking
  3. 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

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.