version 1

Video2Force

Feasibility check — predicting contact force from video

① Idea & goal of the feasibility check ② Literature review — self-supervised learning ③ Datasets & metrics ④ Results — supervised feasibility ⑤ Self-supervised force learning

Ivan Domrachev · sinew · 2026  ·  → chapters · ↓ detail

Goal

The missing modality

  • Data factories collect enormous visuomotor datasets.
  • Almost all of it is vision-only — no haptic / force signal.
  • Idea: generate the missing force modality from video — augment existing vision data for free.
vision → generate missing modality → augmented data → policy training
Goal

The idea — climb a hierarchy

  • Contact — where is the contact? (gate)
  • Direction — which way is the interaction?
  • Force — how strong is it? (magnitude)

Across embodiments: manipulator → dexterous hand → gloves.

Goal

Goal of the feasibility check

Using existing datasets, try to predict contact · direction · magnitude — and ask:

  • Are videos enough to extract interaction force?
  • Which contact info is feasible to extract?
  • Is there any room for generalization?
Hypotheses:
  • H1 — video detects contact / no-contact.
  • H2 — video gives an approximate direction.
  • H3 — large-scale data → generalization to unseen robots / scenes.
Literature

Self-supervised learning — three families

Joint-Embedding (JEA)
score two views in latent space
Generative
reconstruct pixels
Predictive (JEPA)
predict target latent
Literature

JEA — CLIP & DINO

CLIP — image–text contrastive alignment
DINO — teacher–student self-distillation
  • Strong, transferable backbones.
  • Limitations: representation collapse; limited prediction.
Literature

Generative & JEPA

MAE — reconstruct masked patches in pixel space
V-JEPA 2 — predict masked latent (EMA target)
  • JEPA = best of both — latent prediction, versatile features. We build on V-JEPA.
Literature

Sparsh — SSL for touch

Sparsh: MAE / DINO / JEPA on 462k tactile images
DINO best for force & pose; JEPA for touch semantics
  • Gap: ignores F/T data; tactile understanding, not generation.
Literature

Goal, refined

Step 1. Pre-trained visual encoders + paired video–force data → supervised force prediction.

Step 2. Devise an SSL approach to learn a force representation given vision as context.
Datasets

Three datasets with force

FMB
peg insertion · 4 cams · Panda F/T 10 Hz. Biased force, low variety.
REASSEMBLE
NIST board · F/T 100 Hz <1 N error · clean.
RH20T
147 tasks · 4 robots · huge but messy.
FMB boards & pegs
RH20T — 7 configs, 4 robots
Datasets

Comparison

DatasetTaskSamplesF/T qualityVariety
FMBPeg insertion1 844PoorPoor
REASSEMBLEObject insert / remove2 262PerfectMediocre
RH20TDiverse manipulation12 666MediocreHuge
  • 16 772 rollouts · 178 hours.
  • Train each separately, then combine.
Datasets

What we predict & how we measure

Predict (3 heads):
  • Contact event
  • Force unit direction (3-D)
  • Force magnitude
Metrics:
  • Contact — F1
  • Direction — cosine + cos-lift
  • Magnitude — MAE (N)
Cycle 1

Supervised feasibility

method → results → ablations → conclusions

Cycle 1 · Method

Frozen V-JEPA → TCN

  • Encoder frozen; cache features once → small TCN head.
Cycle 1 · Result · FMB

FMB — contact & magnitude work

FMBF1dirliftMAE
in-dist0.7790.965+0.0151.06
OOD0.7670.953+0.0421.06
  • Contact feasible; magnitude surprisingly accurate.
Cycle 1 · Result · REASSEMBLE

REASSEMBLE — clean force, real direction

F1MAEdirlift
REASSEMBLE0.8740.740.906+0.34
FMB0.7791.060.965+0.015
  • Better F/T data → better contact (+9.5% F1).
Cycle 1 · Result · RH20T

RH20T — generalization is hard

splitF1dirlift
in-dist0.710.390.27
OOD task0.680.600.33
OOD robot0.600.260.17
OOD both0.570.250.08
  • OOD task ok; OOD robot poor.
Cycle 1 · Ablations

What encoder & head?

Encoder
modelF1
DINOv2-B (img)0.52
V-JEPA ViT-B0.64
V-JEPA ViT-L0.76
ViT-L E2E0.779
video ≫ image; temporal matters
Head
headF1
TCN0.768
BiGRU0.723
Transformer0.689
TCN best; predict Mag+Dir+Contact; mean pooling
Cycle 1 · Conclusions

Hypotheses, answered

  • H1 — contact: feasible ✓.
  • Magnitude: surprisingly good.
  • H2 — direction: partial.
  • H3 — generalization: partial → motivates SSL.
Cycle 2

Self-supervised force learning

idea → method → results → conclusion

Cycle 2 · Idea

SSL of a force representation

  • X masked force · Y true force · Z encoded video.
  • Force as the self-supervisory anchor — physical, camera-independent.
Cycle 2 · Method

Cross-modal force-augment

  • Augment, don't replace: concat force-aligned embedding onto raw features.
Cycle 2 · Result A

Unseen camera: 0.28 → 0.70

held-out cameraF1direction
trivial0.460.47
V-JEPA + TCN0.280.41
+ force-augment0.700.78
  • Baseline below trivial; SSL clears it, in-dist preserved.
Cycle 2 · Result B

Cross-dataset direction

dir cosineREASS→FMBFMB→REASS
trivial0.690.47
V-JEPA + TCN0.410.40
+ force-augment (UDA)0.870.83
  • Needs world-frame force + unlabeled target video.
Cycle 2 · Result C

Why? The latent forgets the camera

cam NMIeff-rank
Raw1.00396
DINO0.7933
Force-JEPA0.00961

Force-JEPA kills camera identity without collapse.

Cycle 2 · Conclusion

What SSL bought us

  • View-invariant, task-structured, uncollapsed force embedding.
  • Wins severe gaps at zero in-dist cost.
Conclusions

Where each tool wins

regimewinnersignal
contact (H1)feasible ✓F1 0.87
unseen cameraforce-augment SSL0.28→0.70
cross-dataset directionforce-augment (UDA)0.40→0.85
cross-robot (H3)openmajor room
Conclusions

Next

  • Push cross-robot / cross-scene generalization.
  • Joint training + force-frame harmonization.
  • Scale the SSL force encoder.

Video is enough for contact & magnitude — and SSL unlocks the transfer.