feat(evals): generate simulator-grounded VQA cases from RoboCasa - #3416
Draft
Moshiii wants to merge 11 commits into
Draft
feat(evals): generate simulator-grounded VQA cases from RoboCasa#3416Moshiii wants to merge 11 commits into
Moshiii wants to merge 11 commits into
Conversation
EvalCase/PassiveEval/InteractiveEval with EvalRig protocol dispatch, EvalRunner implementing the rig (model call / mcp skill / agent loop / live-store sampling), scorers as plain functions wrapping openevals, generated + hand VQA suites over go2 replays, dimsim go-to-bed interactive suite, dimos evals CLI + EvalModule MCP skills. extracts _init_model to dimos/agents/model.py for shared use.
…e-store sampling)
…ackages, no __all__)
…anges reuse mcp_client._init_model lazily instead of extracting it — keeps this PR scoped to dimos/evals (+ cli registration). extraction can be its own PR if we want it shared properly.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Contribution path
feat/evals-framework(feat(evals): passive/interactive agent eval framework over memory2 #3411), becausemaindoes not yet contain the evaluation framework used by this feature. The stacked development branch is retained for now, with the VQA work isolated in one clean feature commit (c23561c58). After feat(evals): passive/interactive agent eval framework over memory2 #3411 merges, I will make this a truly independent branch by runninggit rebase --onto origin/main 0ddf8b493 feat/vqa-generation-frameworkand force-pushing the rebased branch.Problem
#3411 adds the evaluation framework and its Memory2-backed passive runner, but image VQA cases still need to be authored manually. A developer has no reproducible path from a simulator use case to rendered observations, grounded questions, reference answers, and a case manifest that the existing dimOS evaluation runner can consume.
Solution
Add a small VQA generation layer that runs RoboCasa through an external Python environment and converts seeded simulator scenes into the existing dimOS evaluation inputs.
The generator exports RGB and instance-segmentation observations, normalizes simulator metadata into source-independent scene facts, and produces two initial question families: semantic presence and spatial left/right. Answerability gates reject ambiguous or visually weak cases using visibility, pixel area, label uniqueness, horizontal separation, and bounding-box overlap. Family balancing and deterministic seeds keep generated datasets reproducible.
The output contains a versioned
cases.jsonmanifest and a Memory2observations.db, so it can be loaded directly by the existing passive evaluation path. RoboCasa, robosuite, and MuJoCo remain outside the dimOS runtime; this change adds no production dependency and avoids coupling the core package to a simulator-specific environment.Developer workflow:
This PR deliberately does not add a new evaluation engine, scorer, agent loop, or generalized scene generator. It provides the necessary adapter and schema boundary for simulator-grounded VQA generation, with two concrete families that can be tested end to end.
How to Test
Local verification completed with 32 relevant evaluation tests passing, including a real RoboCasa/MuJoCo fixed-seed run. Seeds 100-102 generated 18 accepted cases: 14 semantic-presence cases and 4 spatial left/right cases. Eight repository static checks also passed.
Checklist