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:
- 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?
- 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?
- 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.
- 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?
- 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.
- From seeing to acting. How do you carry that into simulation and vision-language-action models, so a robot learns how to engage?
- 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.
Oct 2026 – now
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▾ 7 experiments
- Token-layout audit before any probe - Every image patch mapped back to its row and column on all five models' processors
- 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
- 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
- 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
- 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
- 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
- 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
Oct 2026 – now
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▾ 4 experiments
- Six layers, one camera - Tracking, masks, 2D and 3D bodies, contact events, and VLM narration that cites the measured events
- 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
- 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
- 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
Oct 2026 – now
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▾ 11 experiments
- Engagement as measurable 3D relations - Contact by region, distance and limb threading, scored against multi-view ground truth
- One-camera baseline - In-contact F1 0.85–0.92, body lock 0.80; the shuffled-partner control drops to ≤ 0.05
- 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
- 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
- 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
- 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)
- 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
- 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
- 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)
- A trust flag without ground truth - Flags bad frames at AUROC 0.795 held out, 0.76 on new people
- Engagement at range - Distance right to about 4% with the two people 2.4 m apart - but it misses its absolute pre-registered bars
Sep – Oct 2026
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▾ 8 experiments
- Calibrating an AI labeller - Three effort levels against claims it could support; picked the middle one
- Trial100 - 100 sources, 4,000 seconds, 3,213 labelled claims
- Auto-labeller: AI reviewer plus SAM 3.1 - 8,512 frames, 49,794 people; masks good on 85.1% of audited actor-frames
- 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
- Gold review by hand - 103 verdicts on the auto-labels; no true identity switches
- Tangle tracker - Ownership in tangles 0.845 → 0.882; won blind reviews 13–2 (p ≈ 0.007)
- Dot-assisted correction - 932 dots on 94 frames, propagated through video: held-out 75% → 90%, blind reviews 28–6
- Depth-ordered ownership from 3D bodies - 280 right, 69 swapped
Sep 2026
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▾ 6 experiments
- Human State v0 on a small VLM - Posture: released model 36.1%, trained heads 50.0%, a probe on its frozen features 66.7%
- Controls on the small VLM - Answers moved with option order and athlete swaps, and survived blank images
- Interaction codes on UT-Interaction - 80.0%
- Three encoders, same crops, same tiny head - DINO 82.0%, Qwen 75.6%, Laya 70.9%
- Learned temporal adapter vs interpolation - Interpolation won (0.825 against 0.615)
- Weight audit of the small VLM - 86,433,024 vision weights identical to the public SmolVLM it's built on
Aug – Oct 2026
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▾ 6 experiments
- 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
- 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
- Ownership probes and decoders - Naming the athlete never helped; swapping them flips the whole person. 0 of 27 trapped arms right
- Provenance audit of my own results - Found actor-ID reversals, and that the "armbar" answer was describing a triangle
- Final layer campaign: 636 jobs - Best layer 14, validation IoU 0.580
- Layout audit - Found a token reshape that misplaced most spatial locations, and voided the results built on it
Aug 2026
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▾ 14 experiments
- Does prompt framing make a model more factual? - +0.43 at first, then shown to be a formatting confound (−0.02)
- Pose-to-position classifier on ViCoS - 0.948 F1 on a random split, 0.044 holding out sessions. It had learned the room. Retracted
- Adversarial de-biasing against the room - Session probe 0.95 → 0.70, at a cost to the task (0.44 → 0.34)
- Audited Harmony4D's ground truth - The reference meshes interpenetrate in 51.7% of frames
- What runs on a 6 GB laptop GPU - RTMPose 33.8 fps against BBoxMaskPose 0.71 fps
- Masks touching as a contact detector - AUC 0.890, worse than plain box overlap (0.922). Dropped
- Relative depth from PromptHMR - Correlates 0.95 with truth - but side-to-side error is 4–20× the depth error
- How much does the camera matter? - 60.5 cm of 3D error with the wrong focal length, 8.4 cm with the right one
- Estimating the camera per shot - GeoCalib: 6.1% focal error, keeps 71.5% of the gain
- Checking 3D placement without ground truth - A self-check that flags bad placements at AUC 0.933
- 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
- Reading PromptHMR's weights - Its cross-person attention is trained - but to track which person is first, not how they interact
- A full one-camera placement loop - 20.0 → 9.2 cm, within 25 cm on 75% of frames. Mask prompts made it worse
- 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
Mar – Jul 2026
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 experiment
- 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
Oct 2025 – Mar 2026
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▾ 6 experiments
- One pass of Gemini over a whole match - It mostly missed the match - no sub-segments at all
- Multi-pass with context caching - Tokens down 85%, but 241 segments - 7.5× too many
- 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
- Computer-vision anchors under a cached VLM - Pose and scene cuts as anchors: 58 segments, 100% coverage, 2 cents, under two minutes
- Two-pass fix for the attention cliff - Failed - coverage fell to 46%
- "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)
- OCHuman - 5,081 photos of heavily overlapping people
- Qwen3-VL-Seg ↗ - Design reference for the Qwen probing decoders
- VideoLISA ↗
- Molmo 2 ↗
- Hidden in plain sight: VLMs overlook their visual representations ↗
- Harmony4D ↗ - Used as ground truth
- OpenCap Monocular ↗ - The path to joint loading from video
- WHAM ↗
- MotionBERT ↗
- D4RT ↗ - Written evaluation; weights unreleased
- Play4D ↗ - Written evaluation: doesn't help separate interacting people
- StableMotion ↗ - Written evaluation
- StreamingVLM ↗
- Marlin-2B ↗
- LLaVA-NeXT-Video-7B ↗
- YOLO26 ↗
- TAPNext ↗
- Track Everything ↗
- DenseLandmarks ↗
- SOMA ↗
- BoxMind ↗
- Diffuse2Seg ↗
- WiFi-JEPA ↗
- Gen4Regen ↗ - Generated images for label scarcity
- PAMI-Code ↗
- ChaosRL ↗
- System One models and JEV ↗
- Laya vs JEV benchmark ↗
- Harness engineering ↗
- OpenAI function calling ↗
- ExerciseDB ↗
- human-atlas ↗ - A 3D anatomy viewer
- Sa2VA, GVHMR, TRAM, SAMURAI, Deep-EIoU, LLoVi, VideoTree, BIMBA - Cloned and read
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.