dhruva.lifecontact

← home

Research

I work on getting machines to understand how people move, and how they interact.

Two people in contact are one of the hardest things to see: bodies hide each other, limbs wrap and thread, and one camera can't tell you how far apart they really are. I started by asking whether a vision-language model could follow my own jiu-jitsu footage, and when it couldn't, I went after why - building harnesses, datasets, auto-labellers and 3D pipelines that measure engagement directly: where two people touch, how their limbs wrap, how far apart they are, over time, from ordinary video. What I've found so far is that engagement has a difficulty ladder - a handshake or a hug is easier than a dance, and a dance is easier than a scramble on the ground - and that one camera can now measure the distance between two people to within about 3 cm on held-out sequences, given the person boxes - an optimistic number, since the body model I build on saw that dataset in training, so testing on footage it has never seen is next. Over the next few years I want to turn that into large datasets of engagement in the wild, a layered model that reads every kind of human contact, and eventually the simulations robots will need to learn to be a dance partner, a caregiver, or a training partner that never hurts you.

I've done this as an independent researcher, self-funded, because I'm obsessed with this problem and have the freedom to chase it - with real help from the coaches at my gym, the founders of Zopu, and the folks at Lossfunk who pushed me to publish.

Questions I'm chasing

In the order I want to answer them:

  1. Bodies as building blocks. My measurements already treat each person's arms and legs as loops the other body can thread. Can a handful of body primitives describe every kind of engagement?
  2. A dataset of engagement. Easier engagement - a handshake, a hug - is far more understandable than a dance or a scramble on the ground. What does a dataset need to cover that whole ladder, in the wild, well enough to train models and simulations?
  3. A layered decoder of engagement. With that data, which models do you fine-tune? Decoders on top of VLMs like Qwen, VLMs fine-tuned on spatial movement, computer-vision models like SAM tuned for tight contact - layered, each doing the part it's best at.
  4. Depth from one camera. How far can a single ordinary video go, if you use where two people meet and not just how big they look?
  5. An engagement API. Four-dimensional analysis from any regular video - who, where, contact and depth, over time - that anyone can test on their own engagement scenarios.
  6. From seeing to acting. How do you carry that into simulation and vision-language-action models, so a robot learns how to engage?
  7. Touch. What does a robot need to learn to be in contact with a person safely - how close, how much force, when to hold back?

the work so far

Latest first; each result set up a later question. 63 experiments, with the negative results kept.

  1. Oct 2026 – now

    Can a VLM measure what it sees?

    [current]

    Asked how far away something is, does a vision-language model give a measurement or a guess? And if the measurement is somewhere inside it, can we read it out instead of running a separate computer-vision model?

    Inside, mostly yes: a probe on the word that names an object reads its depth nearly as well as a dedicated depth model (abs-rel 0.172 vs MoGe-2's 0.138, lower is better). Out loud, no: asked, Qwen3.8-27B is no better than guessing from the object's name (0.370 vs 0.394). Spatial fine-tuning changes what a model says, not what it holds, and a decoder trained on some kinds of scene doesn't carry over to new ones.

    0.17 vs 0.37 depth error, probe vs the model's own answer · 5 open VLMs, probed layer by layer · 1 of 26 decoder tests passed on a scene type it never saw

    ▸ 7 experiments
    1. Token-layout audit before any probe - Every image patch mapped back to its row and column on all five models' processors
    2. Ask five VLMs, then probe them layer by layer - The object's word holds depth (0.172 abs-rel; MoGe-2 0.138). Asked, Qwen3.8-27B is no better than a guess from the name (0.370 vs 0.394). $4.07
    3. Spatial fine-tunes against their base models - SpatialAxiom-9B's spoken depth beats its base (0.233 vs 0.344) with the same probes inside; the SpatialVLM-recipe reproduction doesn't help here
    4. Decoders tested on a kind of scene they never saw - They don't carry over: 2 of 50 pass. Depth error on new scenes 0.73–5.3, against 0.20–0.57 for the model's own answer
    5. A dense head on Qwen3.8's own vision tower - Depth per pixel 0.186 vs MoGe-2's 0.096; joints 69% vs ViTPose+'s 96%. The geometry is there, but coarse
    6. Every question in a second wording - The findings hold. SpatialAxiom is the steadiest; the SpatialVLM-recipe model loses 10 points on relations asked the other way round
    7. Decoders trained on four kinds of scene - Still no transfer (1 of 26), but variety helps: indoor depth error 5.32 → 0.45 once synthetic rooms are in training
  2. Oct 2026 – now

    Layered engagement in 4D

    [current]

    Can one ordinary camera be peeled into every layer of engagement - who's there, their masks, skeletons and 3D bodies, how they touch, and what it means - across everything from a hug to a scramble on the ground?

    Across 29 clips - hugs, dancing, karate, MMA, grappling - and 12 with ground truth: no identity switches, 3D limbs 2.9–5.2 cm off. Difficulty depends on the layer: hugs are easy to detect but hide arms, strikes are hard to time, dancers are hard to place in depth.

    29 clips, from hugs to ground grappling · 0 identity switches on 12 clips with truth · 2.9–5.2 cm 3D limb error, per clip

    ▸ 4 experiments
    1. Six layers, one camera - Tracking, masks, 2D and 3D bodies, contact events, and VLM narration that cites the measured events
    2. 29 clips across kinds of engagement - Hugs, ballroom, West Coast Swing, karate, MMA and grappling; every clip passed per-layer quality gates; one VHS clip retired as a documented failure
    3. Scored against truth on 12 - 0 identity switches, masks IoU 0.69–0.90, 3D limbs 2.9–5.2 cm; karate's 6 strikes all found within 0.2 s
    4. Where it's hard - Hugs hide arms, strikes are hard to time, and one dancer in front of the other throws depth off by 16–33 cm
  3. Oct 2026 – now

    Engagement in 3D

    [current]

    Can engagement between two people - where they touch, which surfaces, whose limbs wrap whom - be measured in 3D from one ordinary camera, and checked against independent ground truth?

    Distance between two athletes 11.2 → 3.2 cm on held-out sequences: 11.2 cm from SAM 3D Body alone, 3.95 cm with combined depth, 3.2 cm with a small learned placement model on top. Ballroom dancing measures well (2.7 cm, touching F1 0.96); limbs hidden inside tangles are still 4–6 cm off, and time alone doesn't fill them in. A truth-free trust flag spots bad frames (AUROC 0.795 held out). SAM 3D Body saw Harmony4D in training, so absolute errors are likely optimistic.

    11.2 → 3.2 cm distance between two athletes, raw → final, held out · 0.46 → 0.60 which body surfaces touch (F1) · 1,068 held-out views, never trained on

    led to: Peel the whole video into layers, and test it across every kind of engagement.

    ▸ 11 experiments
    1. Engagement as measurable 3D relations - Contact by region, distance and limb threading, scored against multi-view ground truth
    2. One-camera baseline - In-contact F1 0.85–0.92, body lock 0.80; the shuffled-partner control drops to ≤ 0.05
    3. Fixing one error at a time with ground truth - Depth between the two people is what breaks it: 14.5 cm, against 5.0 cm side to side
    4. Monocular depth, alone and combined - Alone, it failed its pre-registered test. Combined with SAM 3D Body it passed all six: distance 10.0 → 3.9 cm
    5. A learned placement correction - A small network that moves and turns each body: distance 3.95 → 3.17 cm on 1,068 held-out views. Public on Hugging Face
    6. New people - Trained on one pair, it keeps about two-thirds of its gain on a different pair doing MMA (5.07 → 4.30 cm)
    7. Ground work, with no 3D truth - Combined depth lifts mount 0.14 → 0.29, closed guard 0.20 → 0.33, back control 0.39 → 0.64, without false positives
    8. Beyond grappling - Ballroom dancing: distance 2.7 cm, touching F1 0.96. Sword fighting 2.4 m apart: distance right to about 4%. Hugging still fails - the arms hide
    9. Does time fill in hidden limbs? - Not on its own; a per-frame head helps a little in tangles (5.39 → 4.81 cm, exploratory)
    10. A trust flag without ground truth - Flags bad frames at AUROC 0.795 held out, 0.76 on new people
    11. Engagement at range - Distance right to about 4% with the two people 2.4 m apart - but it misses its absolute pre-registered bars
  4. Sep – Oct 2026

    Auto-labelling combat video

    [superseded]

    Can a VLM agent plus SAM 3.1 label combat-sports video at scale - and can a person steer it where it fails?

    485,028 person masks over 1,526 intervals - but my own gold review found 52–70% fully right, below every AI audit. Dot-assisted correction (932 dots on 94 frames, five rounds) reached held-out accuracy 75% → 90% in the final round, and won blind reviews 28–6. None of it made a model better.

    120 h combat-sports video library · 485,028 people auto-labelled · 75% → 90% held-out, final dot-assisted round

    led to: Fixing outputs is evaluation, not progress. Define engagement as something you can measure, and measure it.

    ▸ 8 experiments
    1. Calibrating an AI labeller - Three effort levels against claims it could support; picked the middle one
    2. Trial100 - 100 sources, 4,000 seconds, 3,213 labelled claims
    3. Auto-labeller: AI reviewer plus SAM 3.1 - 8,512 frames, 49,794 people; masks good on 85.1% of audited actor-frames
    4. How fast do you need to sample a fight? - At 2 fps about 43% of fast wrist peaks are missed; 12.5 fps holds IoU 0.981
    5. Gold review by hand - 103 verdicts on the auto-labels; no true identity switches
    6. Tangle tracker - Ownership in tangles 0.845 → 0.882; won blind reviews 13–2 (p ≈ 0.007)
    7. Dot-assisted correction - 932 dots on 94 frames, propagated through video: held-out 75% → 90%, blind reviews 28–6
    8. Depth-ordered ownership from 3D bodies - 280 right, 69 swapped
  5. Sep 2026

    Fast and slow vision

    [superseded]

    Can small, fast models describe people well enough - posture, ownership, contact, motion - for slower models to reason on top?

    Not yet. A small third-party VLM (Laya Vision) fails grounding controls - the answer follows the letter, not the person (5.3% actor-swap consistency). A DINOv2 posture readout passed a fresh audit.

    36% → 67% posture, released model vs frozen visual probe · 82.0% DINO, best of three encoders compared · 62% less movement error, tracking limb pairs

    led to: Better outputs aren't progress on their own. Measure engagement itself.

    ▸ 6 experiments
    1. Human State v0 on a small VLM - Posture: released model 36.1%, trained heads 50.0%, a probe on its frozen features 66.7%
    2. Controls on the small VLM - Answers moved with option order and athlete swaps, and survived blank images
    3. Interaction codes on UT-Interaction - 80.0%
    4. Three encoders, same crops, same tiny head - DINO 82.0%, Qwen 75.6%, Laya 70.9%
    5. Learned temporal adapter vs interpolation - Interpolation won (0.825 against 0.615)
    6. Weight audit of the small VLM - 86,433,024 vision weights identical to the public SmolVLM it's built on
  6. Aug – Oct 2026

    Is there spatial information inside a VLM?

    [completed]

    Probing Qwen3.8-27B layer by layer: is there enough spatial information inside it to tell, when two bodies are tangled, which limb belongs to whom?

    Not enough for tangles. The language states add nothing - 0 of 27 trapped-arm cells right - and naming the athlete switches the whole person, not the arm. A layout audit of my own code voided the earlier spatial results (14,080 of 14,400 locations misplaced).

    27 + 64 vision and language layers probed · 0 / 27 trapped-arm cases right · ~$5 of cloud GPU for the extraction

    led to: Stop asking models to label pixels. Define engagement itself as something measurable in 3D, and check it against real ground truth.

    ▸ 6 experiments
    1. Off-the-shelf tools on one armbar - Identity holds; SAM 3 / 3.1 never recovers the trapped arm; body models collapse at 3.5 s
    2. All 27 vision and 64 language layers of Qwen3.8-27B - About $5 of cloud GPU. The model recognised the armbar in 0 of 8 prompts
    3. Ownership probes and decoders - Naming the athlete never helped; swapping them flips the whole person. 0 of 27 trapped arms right
    4. Provenance audit of my own results - Found actor-ID reversals, and that the "armbar" answer was describing a triangle
    5. Final layer campaign: 636 jobs - Best layer 14, validation IoU 0.580
    6. Layout audit - Found a token reshape that misplaced most spatial locations, and voided the results built on it
  7. Aug 2026

    Measuring movement under contact

    [completed]

    Can movement be measured reliably - with error bars - from one ordinary camera, when two people are overlapping?

    The camera's lens is the biggest lever: 3D placement error 60.5 → 8.4 cm with the true lens. Separating two people in contact stays unsolved - the detector finds both, and de-duplication deletes one.

    60.5 → 8.4 cm 3D error, wrong vs true camera · 98.7% → 50.9% telling two people apart, heavy occlusion · 19 retractions, kept on record

    led to: Separation is the bottleneck. When limbs are entangled, does a model even know which belongs to whom?

    ▸ 14 experiments
    1. Does prompt framing make a model more factual? - +0.43 at first, then shown to be a formatting confound (−0.02)
    2. Pose-to-position classifier on ViCoS - 0.948 F1 on a random split, 0.044 holding out sessions. It had learned the room. Retracted
    3. Adversarial de-biasing against the room - Session probe 0.95 → 0.70, at a cost to the task (0.44 → 0.34)
    4. Audited Harmony4D's ground truth - The reference meshes interpenetrate in 51.7% of frames
    5. What runs on a 6 GB laptop GPU - RTMPose 33.8 fps against BBoxMaskPose 0.71 fps
    6. Masks touching as a contact detector - AUC 0.890, worse than plain box overlap (0.922). Dropped
    7. Relative depth from PromptHMR - Correlates 0.95 with truth - but side-to-side error is 4–20× the depth error
    8. How much does the camera matter? - 60.5 cm of 3D error with the wrong focal length, 8.4 cm with the right one
    9. Estimating the camera per shot - GeoCalib: 6.1% focal error, keeps 71.5% of the gain
    10. Checking 3D placement without ground truth - A self-check that flags bad placements at AUC 0.933
    11. Where do the two people get merged? - 92.3% of "missed" detections were my own matching bug; the real merge is in pose de-duplication
    12. Reading PromptHMR's weights - Its cross-person attention is trained - but to track which person is first, not how they interact
    13. A full one-camera placement loop - 20.0 → 9.2 cm, within 25 cm on 75% of frames. Mask prompts made it worse
    14. Can motion tell two grapplers apart? - No - AUC 0.42. In no-gi, where one body ends and the other begins isn't where the colours change
  8. Mar – Jul 2026

    Harnessing Vision–Language Models for Faithful Human-Movement Understanding

    [accepted][CAISc 2026]

    CAISc 2026 is a new conference for research co-authored with AI (Open-Ended Problems track). The experiments and claims are mine; most of the prose was written with AI, which I wrote about in Vibe Researching.

    Can a frozen vision-language model give a temporally coherent, technically correct, grounded account of long, contact-heavy movement?

    Grounding a frozen VLM in cheap computer-vision signals lifted position F1 from 0.017 to 0.189 (Δ +0.174, 95% CI [0.031, 0.209]) - but a CV-only baseline scored 0.213, and the paper says so. On 200 unseen real uploads it was 92.9% right to within a neighbouring position.

    0.017 → 0.189 position F1 from CV grounding (CV-only baseline 0.213) · 58.9% positions identified, 496 clips · 4,620 real-upload segments reviewed by hand

    led to: If the CV anchors carry the signal, measure with computer vision directly.

    ▸ 1 experiment
    1. MoveHarness and MoveBench v0 - Position F1 0.017 → 0.189 from CV grounding (a CV-only baseline: 0.213); 58.9% across 496 clips; 4,620 real-upload segments reviewed by hand. Accepted at CAISc 2026
  9. Oct 2025 – Mar 2026

    Can a model watch a whole match?

    [superseded]

    Can a frozen vision-language model produce a correct timeline of a whole jiu-jitsu match?

    It finds where things happen, not what: span overlap about 0.7, but position macro-F1 no better than 0.14. One pass mostly missed the match; caching over-segmented it 7.5×.

    ~0.7 span overlap - it finds where · ≤ 0.14 position macro-F1 - not what

    led to: Structure, not scale: build a harness around the model.

    ▸ 6 experiments
    1. One pass of Gemini over a whole match - It mostly missed the match - no sub-segments at all
    2. Multi-pass with context caching - Tokens down 85%, but 241 segments - 7.5× too many
    3. Built a ground-truth tool and labelled the match by hand - 32 segments, 64 sub-segments, 124 labels; rated the model's segments (25 of 32 got one star). Became the seed of MoveBench
    4. Computer-vision anchors under a cached VLM - Pose and scene cuts as anchors: 58 segments, 100% coverage, 2 cents, under two minutes
    5. Two-pass fix for the attention cliff - Failed - coverage fell to 46%
    6. "Skeleton and flesh": pose plus motion, one pass - 25 segments for 1.3 cents. The shape the harness grew from

data

What I've worked with, what I've built, and how it was labelled.

Datasets I've worked with

ViCoS jiu-jitsu positions

Measuring movement under contact ↗ - 120,279 images, poses for both athletes, 18 positions. Found it's multi-view, and that a random split leaks the room

Engagement in 3D ↗ - Expert position labels as ground truth for ground work: 1,426 frames

Harmony4D

Layered engagement in 4D - Hugging, karate, sword fighting, MMA and grappling sequences as ground truth for the six-layer pipeline

Engagement in 3D ↗ - Multi-view 3D of people in close contact: 16 sequences, 5,596 views as ground truth

Measuring movement under contact ↗ - Audited it first: the reference meshes interpenetrate in 51.7% of frames

Auto-labelling combat video ↗ - Tangle-tracker evaluation: 56 videos, 5,500 frames

Can a VLM measure what it sees? ↗ - Hugging, sword, karate and ballroom sequences as the two-person scene type for VLM probes

COCO, NYU Depth v2, Hypersim, KITTI

Can a VLM measure what it sees? ↗ - People, real and synthetic rooms, and streets: scene types to probe VLMs on, and to test whether a decoder carries to one it never saw

MAMMA

Layered engagement in 4D - Max Planck's dance motion capture: West Coast Swing scored against its 3D truth

Sapiens

Auto-labelling combat video ↗ - Meta's 28-part body segmentation, tested on combat footage: it holds up on large, close-up people and breaks down below about 1,000 px tall

UT-Interaction, Penn Action

Fast and slow vision ↗ - Public interaction and movement benchmarks: 80.0% on interaction codes

Data I've built

A hand-labelled match

Can a model watch a whole match? ↗ - Built my own ground-truth tool and labelled a 16-minute match: 124 labels. It became MoveBench v0, available on request

Kakashi-labelled videos from public sources

kakashi.ai ↗ - Instructional and competition videos from public sources, labelled with Kakashi's pipeline

Crowdsourced footage from Kakashi

kakashi.ai ↗ - Athletes from 250+ gyms uploading their own rolls, rated and corrected in the app

CAISc 2026 paper ↗ - 4,620 real-upload segments I reviewed by hand with coaches from my gym

A combat-sports library

Auto-labelling combat video ↗ - 765 sources, about 120 hours, catalogued into cohorts; 65,159 images and 485,028 people auto-labelled

A VLM spatial-probe set

Can a VLM measure what it sees? ↗ - Hidden states and answers from five VLMs, with depth, size and position labels from five public datasets. Available on request

How it was labelled

By hand

Can a model watch a whole match? ↗ - Segment-by-segment ground truth in my own review tool

Auto-labelling combat video ↗ - A gold review of the auto-labels (103 verdicts) and blind side-by-side packs

AI-assisted

Auto-labelling combat video ↗ - An AI reviewer as the teacher, marking people for SAM 3.1 to segment

Fast and slow vision ↗ - Two blind AI reviewers labelling human state

Dot-assisted

Auto-labelling combat video ↗ - 932 dots on 94 frames, turned into point prompts and carried through the video: held-out accuracy 75% → 90%

Human-in-the-loop, in a product

kakashi.ai ↗ - Ratings, a low-rating review queue, and coaches correcting the model's segments

methods

How the work gets done, and where each method shows up.

Harness engineering

Harnesses around frozen models

Can a model watch a whole match? ↗ - From one pass, to cached multi-pass, to CV anchors: $1 a video down to 1.3 cents

CAISc 2026 paper ↗ - MoveHarness: CV anchors, compact outputs and cached passes; position F1 0.017 → 0.189

kakashi.ai ↗ - The same ideas in production, with versioned prompts tested offline before shipping

Inside the models

Training small models

Engagement in 3D ↗ - A small two-person placement correction trained on Harmony4D, tested on held-out sequences and new people, public on Hugging Face

Layer probing

Can a VLM measure what it sees? ↗ - Five VLMs, layer by layer: the vision tower, the image tokens, and the word that names the object

Is there spatial information inside a VLM? ↗ - All 27 vision and 64 language layers of Qwen3.8-27B; 636 probe jobs to find the best layer

Reading weights

Measuring movement under contact ↗ - PromptHMR's cross-person attention is trained to track person order, not interaction

Fast and slow vision ↗ - Showed a small VLM's vision tower is identical to the public model it's built on

Training on frozen features

Can a VLM measure what it sees? ↗ - Depth, size and position decoders tested on scene types they never saw; dense depth and joint heads on a frozen vision tower

Is there spatial information inside a VLM? ↗ - Probes and mask decoders on VLM features, on a 6 GB laptop GPU

Fast and slow vision ↗ - Decision heads (8.3M parameters), a temporal adapter, spatial decoders and readouts

Measuring movement under contact ↗ - Adversarial de-biasing to stop a classifier recognising the room

Fine-tuning

Zopu.ai ↗ - LoRA on platform feedback, in production

Rigour

Pre-registration

Can a VLM measure what it sees? ↗ - Five experiments, each pushed with its pass bar before it ran

Engagement in 3D ↗ - Pass criteria written before every fix; failures reported as failures

Measuring movement under contact ↗ - Every run with its falsifier; no claim below n = 30

Controls

Can a VLM measure what it sees? ↗ - A name-only prior, no image, a mismatched image, shuffled labels and random features

Engagement in 3D ↗ - Shuffled partners: everything drops to ≤ 0.05

Is there spatial information inside a VLM? ↗ - Fixed-decoder identity swaps, shuffled frame order

Fast and slow vision ↗ - Blank images, option order, athlete swaps

Statistics

CAISc 2026 paper ↗ - Bootstrap and video-clustered confidence intervals

Auto-labelling combat video ↗ - Blind side-by-side reviews with a sign test

Auditing my own results

Measuring movement under contact ↗ - A leaking split, a matching bug, 19 retractions kept on record

Is there spatial information inside a VLM? ↗ - A provenance audit and a layout audit that voided my own earlier results

tools

Everything I've run, compared, or read closely enough to decide.

VLMs and LLMs, used

  • Gemini 2.0 / 2.5 Flash, 2.5 Pro - Frozen, inside the harness
  • Qwen3.8-27B - Open weights, taken apart layer by layer
  • SpatialAxiom-9B, Qwen3.5-9B - A spatial fine-tune and its base, asked and probed side by side
  • SpaceQwen2.5-VL-3B, Qwen2.5-VL-3B - An open reproduction of SpatialVLM's recipe, and its base
  • Laya Vision / SmolVLM - A small VLM, tested against its own frozen features
  • GPT-6, GPT-5.6, gpt-4o-mini - AI reviewers, labellers and identity grounding

Segmentation and tracking, used

  • RF-DETR - Finding the people before SAM 3.1 tracks them, and the box baseline for the VLM probes
  • SAM 2 / 2.1 - Point prompts for dot-assisted correction
  • SAM 3 / 3.1 ↗ - Auto-labelling and video tracking
  • CoTracker3 - Point tracking
  • Sapiens - Body-part segmentation; unusable below ~1,000 px person height, and fighters are 150–400 px

3D bodies, cameras and depth, used

  • SAM 3D Body ↗ - The one-camera 3D baseline
  • PromptHMR ↗ - Benchmarked, and read its weights
  • GeoCalib - Per-shot camera estimation
  • MoGe-2, Depth Pro, Depth-Anything-V2 - Monocular depth between two people, and the depth baseline for the VLM probes

Pose and features, used

  • BBoxMaskPose ↗ - Finds the second athlete, then de-duplication deletes it
  • RTMPose, RTMW, ViTPose+, YOLO11 pose - Pose, compared on a 6 GB laptop GPU; ViTPose+ is the baseline for joints read from a VLM's vision tower
  • DINOv2 - The strongest frozen encoder for posture
  • Optical flow, PySceneDetect, faster-whisper - Pipeline building blocks
▸ Also read, cloned or evaluated (33)

Kakashi.ai, the side project

Kakashi came out of this research and fed it back: crowdsourced data from 377 people across more than 250 gyms, coaches correcting what the model said, and a clearer view of the problems that actually matter.

Code, models and data

Every thread has its own repo, with the numbers sourced and the negative results kept - the index has the timeline. Models are public on Hugging Face; datasets, including MoveBench v0, are available on request.

Want to collaborate on research?email mebook a callLinkedIn