SpatialMem: Metric-Aligned Long-Horizon Video Memory for Language Grounding and QA
Organizations: University of Bristol · Memories.ai Research
Abstract
SpatialMem is a memory-based system which integrates 3D geometry, semantics, and language with one another in one combined, queryable representation. Starting with casually recorded egocentric RGB video, SpatialMem recreates metrically scaled interior scenes, recognizes structural 3D anchors (walls, doors, windows) as the first-layer scaffold, and associates open-vocabulary object nodes with evidence patches, visual embeddings, and two-layer descriptions to 3D coordinates, enabling spatial-relation reasoning, language-directed retrieval, and QA without special sensors. We test at scale on public benchmarks. On VSI-Bench ( videos, questions) SpatialMem scores overall with RGB alone, and its margin is precisely where a metric memory should earn it (room size vs.\ with a same-size frame model). On the episodic-memory task of OpenEQA ( questions) the memory serialised to text is lower than the blind control, but as evidence-frame retrieval it recovers frame-level accuracy, matching uniform sampling at an equal eight-frame budget and pulling ahead as the budget tightens, with every answer grounded in linked 3D evidence. On ScanNet scenes evaluated using instance-level official annotations, the anchor-first hierarchy assigns the retrieved object to the proper structural parent where open-vocabulary 3D scene graphs essentially cannot ( compared to with matched input), a capability difference instead of an overall win. The queryable index has a cost of ,KB per scene without the linked evidence frames, and we make available the suites, memories and code.
Figures & tables
| Metric measurement | Configurational | ||||||||||
| System | 3D mem | Train- free | Cnt | Abs. Dist | Obj Sz | Room Sz | Rel Dist | Rel Dir | Route | Order | Overall |
| Zero-shot, published for context [ 24 ] | |||||||||||
| Frequency prior | – | ✓ | 62.1 | 32.0 | 29.9 | 33.1 | 25.1 | 47.9 | 28.4 | 25.2 | 35.5 |
| GPT-4o | – | ✓ | 46.2 | 5.3 | 43.8 | 38.2 | 37.0 | 41.3 | 31.5 | 28.5 | 34.0 |
| Gemini-1.5 Pro | – | ✓ | 56.2 | 30.9 | 64.1 | 43.6 | 51.3 | 46.3 | 36.0 | 34.6 | 45.4 |
| LLaVA-NeXT-Video-72B | – | ✓ | 48.9 | 22.8 | 57.4 | 35.3 | 42.4 | 36.7 | 35.0 | 48.6 | 40.9 |
| System | Memory use | Poses given | Frames @query | Text | ObjRec | Attr | State | Loc | Spatial | Func | World | Overall |
| Published for context, full EM-EQA set ( q): blind GPT-4 † 35.5, CG captions † [ 7 ] 34.4, GPT-4V@50 † 48.1, human 85.9 [ 13 ] | ||||||||||||
| VL-KnG [ 15 ] | graph retrieval | – | — | ✓ | — | — | — | — | — | — | — | 55.2 |
| GraphPad [ 1 ] | keyframe retrieval | ✓ | ✓ | — | — | — | — | — | — | — | 55.3 | |
| 3D-Mem [ 25 ] | snapshot retrieval | ✓ | – | — | — | — | — | — | — | — | 57.2 | |
| This work: full ScanNet portion, questions / scenes, identical questions, answerer and judge | ||||||||||||
| Blind GPT-4o (control) | none | – | – | 32.9 | 40.2 | 57.9 | 34.8 | 41.2 | 58.7 | 47.2 | 44.5 | |
| Relation verif. | Object retrieval | Hierarchy | Descr. | Cost | ||||||||
| Model | Input | Poses given | all | matched | SR@ | SR@ | mLE [m] | R@ | Wall | All | Colour | Build s/scene |
| (573) | (390) | (471) | (471) | (471) | (471) | (436) | (471) | (19) | ||||
| GPT-4o | 8 frames | – | 0.61 | 0.615 | returns no 3D instance | 0.74 | — | |||||
| Gemini-2.5-Flash | 8 frames | – | 0.60 | 0.623 | 0.79 | — | ||||||
| Qwen2.5-VL-72B | 8 frames | – | 0.59 | 0.610 | 0.74 | — | ||||||
| GPT-4o-mini | 8 frames | – | 0.55 | 0.549 | 0.84 | — | ||||||
| ScanNet suite ( relation / retrieval, external GT) | VSI-Bench ( ) | |||||||||
| Component removed or replaced | Module | Coverage | Ver. all | Ver. answ. | SR@ | SR@ | Entity cov. | Metric | Config. | |
| reference : full RGB memory | — | 0.764 | 0.433 | 0.611 | 0.176 | 0.236 | 0.149 | 56.3 | 36.5 | 38.5 |
| Estimated geometry (vs. given posed depth) | geometry | — | — | — | ||||||
| Scale | geometry | — | — | — | ||||||
| Scale | geometry | — | — | — | ||||||
| w/o open-vocabulary object nodes | object layer | |||||||||
Appendix figures & tables18 assets
Supplementary material from the paper’s appendix.
Appendix
| Component | Setting | Value / rule |
| Frame sampling | video sampling stride | 10 |
| Floor fitting | RANSAC inlier threshold | 2–5 cm |
| Metric scaling | height prior | fixed m ceiling prior (no per-scene metadata) |
| 3D box fitting | box type | axis-aligned bounding box (AABB) |
| Multi-view object association | grouping rule | center-distance matching |
| Duplicate suppression | merge range | approximately 25 cm |
| Scene | ||||
| HT (hotel room) | 0.96 | 1.00 | 0.83 | 0.83 |
| Apt (multi-room) | 0.99 | 1.00 | 0.79 | 0.79 |
| Replica (public) | 1.00 | 1.00 | 1.00 | 1.00 |
| Task | resolved | not resolved | % resolved |
| Room size | 41.4 [37.4,45.3] | – | 100 |
| Counting | 33.7 [30.0,37.7] | 0.0 | 74 |
| Object size | 52.3 [48.9,55.9] | 51.9 [48.5,55.5] | 48 |
| Absolute distance | 25.1 [20.8,29.3] | 28.6 [25.6,31.3] | 30 |
| System | matched (390) | all episodes (573) |
| GPT-4o | ||
| Gemini-2.5-Flash | ||
| Qwen2.5-VL-72B | ||
| GPT-4o-mini | ||
| ConceptGraphs | ||
| SpatialMem-RGBD |
| Task | Full | w/o obj. nodes | quest. resolved | |
| Object count | 24.9 | 13.9 | 74% | |
| Absolute distance | 27.5 | 28.9 | 30% | |
| Object size | 52.1 | 54.5 | 55% | |
| Room size | 41.4 | 41.4 | 100% | |
| Relative distance | 36.1 | 32.5 | 8% | |
| Relative direction | 44.5 | 44.5 | 14% |
| Variant | Ver. all | Ver. answ. | SR@ | SR@ | |
| Full, RGB memory (reference) | 0.433 | 0.611 | 0.176 | 0.236 | 0.149 |
| Full, matched-input memory | 0.553 | 0.662 | 0.263 | 0.359 | 0.242 |
| w/o open-vocabulary object nodes | 0.079 | 0.616 | 0.028 | 0.042 | 0.034 |
| w/o wall anchors | 0.433 | 0.611 | 0.176 | 0.236 | 0.019 |
| w/o structural layer (flat) | 0.433 | 0.611 | 0.176 | 0.236 | 0.000 |
| w/o relational hint in retrieval | 0.433 | 0.611 | 0.174 | 0.238 | 0.157 |
| Provenance | Ground truth | Cost | |||||||
| Evaluation | Scene source | Scenes built | Questions / episodes | Origin | Chance / prior | Indep. of recon. | Human verified | Metrics reported | Build / scene (median) |
| VSI-Bench [ 24 ] (Tab. 1 ) | ScanNet, ScanNet++, ARKitScenes | benchmark’s released answers | freq. prior | ✓ | benchmark | task scores, macro mean | s | ||
| OpenEQA [ 13 ] EM-EQA (Tab. 2 ) | ScanNet portion | human-written answers | blind LLM | ✓ | benchmark | LLM-Match, categories | s | ||
| ScanNet suite (Tab. 3 ), released | ScanNet, scenes | relation, retrieval, description | official aggregation.json + released instance boxes | balanced | ✓ | episodes, confirmed | Ver. all / matched, @ / , , Colour | s RGB, s RGB-D | |
| Real egocentric probe set (supp., qualitative), released | self-captured + Replica | verified | system-proposed, human-verified | — | – | episodes | , , Loc@parent/path, guidance metrics (qualitative) | — | |
| Input | Representation | |||||||||
| Method | Sensor | Poses given | Persistent 3D | Metric | Anchor- first | Open-vocab objects | Language descr. | Train- free | Index / scene | Evaluated on |
| Frame-sampling and instruction-tuned VLMs | ||||||||||
| GPT-4o, Gemini, Qwen2.5-VL | RGB video | – | – | – | – | ✓ | ✓ | ✓ | re-reads video | VSI-Bench, OpenEQA |
| VLM-3R [ 5 ] | RGB video | – | implicit | implicit | – | ✓ | ✓ | – | in weights | VSI-Bench |
| Open-vocabulary 3D maps | ||||||||||
| OpenScene [ 18 ] | posed RGB-D + cloud | ✓ | ✓ | ✓ | – | ✓ | – | – | dense features | ScanNet, Matterport3D |
| Task | SpatialMem | w/o open-vocab. object nodes | LLaVA-NeXT-Video-7B, re-run |
| Object count | |||
| Absolute distance | |||
| Object size | |||
| Room size | |||
| Relative distance | |||
| Relative direction |
| System | Relation (all) | Relation (answerable) | ||
| ConceptGraphs | ||||
| SpatialMem-RGBD | ||||
| SpatialMem | ||||
| GPT-4o | – | – | ||
| Gemini-2.5-Flash | – | – | ||
| Qwen2.5-VL-72B | – | – |
| System | described objs. | all audited |
| ( ) | ( ) | |
| Ours, Layer-1 (per-view) | 0.68 [0.47,0.90] | – |
| Ours, Layer-2 (consolidated) | 0.42 [0.21,0.63] | – |
| GPT-4o | 0.74 [0.53,0.90] | 0.56 [0.49,0.63] |
| Gemini-2.5-Flash | 0.79 [0.58,0.95] | 0.59 [0.52,0.66] |
| Qwen2.5-VL-72B | 0.74 [0.53,0.90] | 0.69 [0.63,0.76] |
| Model | Verify | Consist | SR | Color |
| GPT-4o | 0.50 | 0.12 | 1.00 | 0.13 |
| Gemini-2.5-Flash | 0.50 | 0.16 | 0.95 | 0.37 |
| Qwen2.5-VL-72B | 0.53 | 0.60 | 0.91 | 0.13 |
| GPT-4o-mini | 0.53 | 0.44 | 0.95 | 0.27 |
| Qwen2-VL-72B | 0.53 | 0.64 | – | – |
| SpatialMem (Ours) | 0.99 | 1.00 | 1.00 | 0.80 |
Memory-Augmented Video Understanding
Memory-augmented video understanding helps models retain and retrieve useful visual history for reasoning over long videos and live streams.
See all 85 papers