Project · World Models · Robot Manipulation

V-JEPA Pick and Place

Meta's V-JEPA 2-AC is a world model that learned from video. I got it to pick up an object and set it on a plate in simulation, with no training on the task.

The robot never learns a policy. It imagines a few hundred moves, keeps the one that looks most like a goal photo, and repeats.

PyTorch · V-JEPA 2 · MuJoCo · Isaac Sim 6.1 · Python

01 / Overview

Overview

Most robot learning needs demos of the exact task. V-JEPA 2-AC skips that. It watched internet video, then 62 hours of robot video, and learned how scenes change when an arm moves.

Meta showed it picking objects on a real Franka arm. I rebuilt that setup in simulation so I could run hundreds of trials, see why it fails, and fix it.

The paper's recipe got 0 of 6 pick-and-place runs in my sim. After the fixes on this page it gets 28 of 40 in MuJoCo and 12 of 20 in Isaac Sim.

A full pick-and-place in Isaac Sim. Left: the planner's camera. Right: the goal photo it is chasing right now
02 / The Model

How V-JEPA Sees

Picture a movie with patches of the screen covered. You can't paint the missing pixels. You can still say “there's a hand there, moving left.” V-JEPA learns that kind of guess.

An encoder turns each video frame into features: short number lists that describe what is where. A predictor sees the uncovered features and guesses the covered ones.

The key choice is guessing features, not pixels. Pixels waste effort on things nobody can predict, like carpet texture or light flicker. Features keep what matters: objects, the arm, and where they are going.

Two-step diagram. Step 1: an encoder watches internet video with patches hidden and a predictor guesses the hidden features. Step 2: with the encoder frozen, a predictor takes the current frame's features, a 7-number arm move, and the arm state, and predicts the features after the move. The average gap between that prediction and the goal image's features is the energy.
Step 1 learns to see. Step 2 learns what arm moves do

The AC stands for action-conditioned. Meta froze the encoder and trained a second predictor on robot video. It answers one question: “If the arm moves like this, what will the scene look like next?”

It is like closing your eyes and picturing your hand reaching for a cup before you move. The model does that in feature space, for any move you hand it.

03 / Planning

How It Picks a Move

Planning is a game of hot and cold. The goal is a photo of where the arm should end up. The energy is how different the imagined scene looks from that photo. Lower is warmer.

The planner uses the cross-entropy method (CEM). It throws out 200 random moves, imagines each one, and scores them. It keeps the best 10, samples new moves near them, and repeats five times.

The arm runs the winner for 0.4 seconds. Then it takes a new photo and plans again. One move takes about 3 seconds on an RTX 5080.

Top: six goal photos in order, pregrasp, grasp, retract, mid, place, final. Bottom: a loop of guess 200 moves, imagine each with the predictor, score each against the goal, keep the best 10 and resample, five rounds. Then run the best move for 0.4 seconds and start over.
One goal photo per leg of the task, and the loop that picks each move

One photo can't describe a whole pick-and-place, so the task is split into legs. Each leg has its own goal photo. When the planned step stays under 1 centimeter, the arm has arrived and the next photo takes over.

The goal photos come from a scripted expert on the same scene. That is a shortcut. Removing it is the next big step (see Future Work).

04 / The Sim

Building a Sim the Model Believes

The model only ever saw real lab video from the DROID dataset. A sim that looks different is a foreign country to it. So I copied DROID closely: a Franka arm with a Robotiq gripper, the same camera spots, the same control rate, and the same 7-number action.

I built it first in MuJoCo, then ported it to Isaac Sim 6.1 for better rendering. The two sims match to 1.5 millimeters on the scripted expert, so I can compare them fairly.

The same scripted expert in MuJoCo and Isaac Sim, side by side
Three frames: a real DROID lab frame with a wooden table and black curtain, the first Isaac Sim scene with a purple room and striped table, and the tuned Isaac scene with a black backdrop and wood table
Left: real DROID video. Middle: my first sim scene. Right: the tuned look, with a dark backdrop like the real lab and a brighter gripper
05 / Challenges

What Broke and What Fixed It

The first run failed every task. The arm drifted 37 to 63 centimeters from the goal. Each fix below came from measuring first, then changing one thing.

  • A mirrored world. DROID video is flipped left to right, so the model's y axis pointed the wrong way. Mirroring the sim image and action took y from 15% correct to 85%.
  • Camera angle beats looks. With the camera placed where DROID's was, the true move beat standing still up to 91% of the time. With the camera slightly off, 3%. Textures mattered far less.
  • A noisy renderer. Isaac's real-time ray tracer added speckle noise. The noise moved the features as much as a 5 centimeter arm move. Switching to path tracing dropped the noise to zero.
  • The gripper slams shut. The planner closed the gripper within three moves in 14 of 18 runs. I scripted the gripper to open and close on arrival and let the planner steer x, y, and z only.
  • The arm leaves the frame. Out of view, the model is blind. A view guard keeps the hand on screen: 17 of 18 runs then ended within 3.6 centimeters.
  • Dragging the object. With the paper's three photos, the arm slid the object along the table. A retract photo lifts it first: carry height went from 6 to 19 centimeters.
  • Far goals feel flat. From far away, every move scores about the same. A pregrasp photo turns one long jump into two short hops.
Before the fix: the planner shuts the gripper early and arrives with nothing to grab
The paper's three-photo schedule: the object gets dragged, not carried

Key Insight

Short hops beat long jumps. Legs that start under 30 centimeters from their goal arrive within 3 centimeters 90% of the time. Past 40 centimeters, only 9% do.

So the fix was not a better planner. It was better goals: more photos, each closer to the last.

A far first goal: the energy is flat, the arm guesses, and it closes on air
The same scene with a pregrasp photo added: two short hops, then a clean grasp
06 / Results

Results

Bar chart of pick-and-place success. Paper's 3 goal photos: MuJoCo 0 of 6, Isaac 1 of 6. Adding retract and place photos: MuJoCo 20 of 40, Isaac 7 of 20. Adding a pregrasp photo: MuJoCo 28 of 40, Isaac 12 of 20.
Same model, same planner. Only the goal photos changed

Reaching is nearly solved: 19 of 20 in both sims. Pick-and-place climbed from 0 of 6 to 28 of 40 in MuJoCo and 12 of 20 in Isaac Sim.

Isaac trails MuJoCo on grasping. Its gripper renders darker and its contacts are stiffer, which likely explains why the grip holds less often.

A six-photo pick-and-place in MuJoCo

I also tried fixing the flat energy directly. A small learned distance head (1.6 million weights, 10 minutes of training) reads the model's features and guesses how far the arm is from the goal.

Without the pregrasp photo, it took pick-and-place from 6 of 20 to 14 of 20 on the same scenes. It never wanders. Its misses all happen at contact, about 3 centimeters off the grasp.

Raw energy, far start: the arm wanders and never reaches the object
Same scene with the learned distance head: straight to the object, then placed

One blind spot remains. The model reads roll and pitch of the gripper well. It can't see yaw, the twist around the vertical axis: 0 of 36 test pairs. So the planner leaves rotation alone for now.

07 / Future Work

Future Work

  • Drop the expert photos. The end goal is a prompt like “pick 3 red squares and place them in the bowl.” First step: render goal photos from a sim twin instead of running an expert.
  • Tighter grasps. Fine-tune the predictor on close-up contact data to close the last 3 centimeters.
  • See yaw. Try a closer camera and asymmetric gripper markers so the twist shows up in the image.
  • Real frames. Test the distance head on real DROID video, then in Isaac Sim, then on a real arm.
  • A second camera. Add a view only if it reads x and y at least 85% of the time. The one I tried did not.
08 / Glossary

Glossary

V-JEPA
Video Joint-Embedding Predictive Architecture: learns by predicting hidden video features (V-JEPA 2 paper)
AC
Action-conditioned: the predictor also takes the arm's move as input
Energy
Average gap between predicted features and goal features; the planner drives it down
CEM
Cross-entropy method: sample many moves, keep the best, resample near them
DROID
A large dataset of real Franka arm video from many labs; the model's robot training data
Leg
One piece of the task with its own goal photo, like grasp or place