Dyna Robotics has released Dyna-2, a world-action model for robot manipulation. It was pre-trained on more than one million hours of egocentric human video. That is roughly 170 years of continuous waking experience. Robot learning has been bottlenecked by action-labelled data, which teleoperation must deliberately produce. Dyna-2 tests whether ordinary human video can substitute. The research team trained a data ladder from 1,000 to 1,000,000 hours and measured what scales. Three results follow: a scaling law on human data, the first transfer of that law to unseen robot data, and evidence that video prediction drives the transfer.
Is it deployable?
Yes, but as a vendor-operated system, not as downloadable weights. Dyna Robotics has announced no public checkpoint, API, or license for Dyna-2. Deployment today means buying a Dyna robot cell, not self-hosting a model.
- Which companies: Dyna-1 robots already run in production in hotels, restaurants, and laundromats, per the company’s August 10, 2026 announcement. That points at mid-market service operators and multi-site enterprises with repetitive, stationary manipulation work. It is not a fit for solo builders or research labs wanting local inference.
- Industries: Hospitality, commercial laundry, food service, light assembly and kitting, and facilities cleaning.
- Applications: The 14 post-training tasks map cleanly to real work: trash tray clearing, first-aid kitting, tote construction, food scooping, rope tying, hanger preparation, and targeted drink retrieval from a fridge.
What is Dyna-2
Dyna-2 is a world-action model (WAM): one generative model that denoises future video and a future action chunk, jointly or separately, on a video-diffusion backbone. It was pre-trained on more than one million hours of egocentric human video, roughly 170 years of continuous waking experience.
Architecturally it is a mixture of transformers. Video and action are tokenized separately and get distinct DiT layer stacks that attend to each other. Proprioception feeds directly into the action transformer. Video tokens use causal masking; action tokens use bidirectional self-attention and attend to context video tokens. Video tokens cross-attend to text, but text does not directly influence action tokens.
Training uses flow matching. A video loss and an action loss share a trunk as two separate marginal velocity fields. Because the action network never takes the noised video latent as an argument, the policy stays reactive at inference — it neither generates nor attends to predicted future video. The action transformer is deliberately shallower and joins the video stream early, which the team says improves real-time latency without costing performance.
The three scaling results
Dyna Robotics cut nested subsets of exactly 1,000, 10,000, 100,000, and 1,000,000 hours, keeping identical proportions from each source. A larger budget only adds data, so curve differences cannot be attributed to distribution shift. A fixed, disjoint 100-hour validation set scores every rung.
- A scaling law holds on human data to one million hours: All four metrics improve monotonically and fit power laws: held-out MSE = 0.0691·D^-0.0184 (R²=0.919), [email protected] = 0.357·D^+0.0203 (R²=0.865). Across the ladder, [email protected] rises 51% against 12% for MSE.
- That law transfers to robot data the model never saw: The same checkpoints were scored zero-shot on 39 tasks across two stationary bimanual YAM platforms — 12 internal, 27 from xdof ABC. Zero-shot action MSE = 0.306·D^-0.0713 (R²=0.884). The team reports an inflection between 10k and 100k hours.
- The objective matters, and video is a separate axis: Joint denoising beat action-only on 39 of 39 tasks at every action scale. Holding action-labelled data fixed at 50,000 hours and adding video-only hours drops zero-shot robot MSE from 0.340 to 0.120. Notably, held-out human error does not improve — the benefit of video is specifically cross-embodiment generalization.
On-robot results
Each rung was post-trained on 14 tasks, at most 10 hours of robot data each, across three embodiments: 6-DOF YAM arms with parallel-jaw grippers, the same arms with WUJI-2 20-DOF dexterous hands, and a semi-humanoid prototype. Post-training used robot data only — no human-robot alignment, no co-training.
Mean normalized score rose 20% → 28% → 45% → 53% across the ladder, best on 9 of 14 tasks at one million hours. Lockbox Key Turning is the threshold case: 0% up to 100,000 hours, then 90%. Bottle Cap Untwisting was post-trained on roughly 10 minutes of demonstrations and still climbed to 50%.
Against Dyna-1 — the company’s production VLA initialized from Qwen3-VL-4B — an early Dyna-2 reached 1.55× success rate and 1.12× grade, pooled over 7 tasks and 3 checkpoints. At unseen customer sites, Dyna-2 passed production criteria 87% versus Dyna-1’s 46%, though both pass near 100% in house. A distillation pipeline also cuts video sampling from 10,203 ms to 110 ms on one H100.
Interactive explainer
// panel 3
function render3(i){
$(‘m3a’).textContent=V.mse[i].toFixed(3); $(‘f3a’).style.width=inv(V.mse[i],0.100,0.350)+’%’;
$(‘m3a’).classList.toggle(‘good’,i===3);
$(‘b3r’).style.width=V.robot[i]+’%’; $(‘n3r’).textContent=V.robot[i]+’%’;
$(‘b3h’).style.width=V.human[i]+’%’; $(‘n3h’).textContent=V.human[i]+’%’;
}
buildLadder(‘lad3’,VID,render3); render3(0);
// panel 4/5 comparison
function render4(on){
$(‘b4a’).style.width=on?’50%’:’0′; $(‘b4b’).style.width=on?’77.5%’:’0′;
$(‘b4c’).style.width=on?’50%’:’0′; $(‘b4d’).style.width=on?’56%’:’0′;
$(‘b5a’).style.width=on?’100%’:’0′; $(‘b5b’).style.width=on?’100%’:’0′;
$(‘b5c’).style.width=on?’46%’:’0′; $(‘b5d’).style.width=on?’87%’:’0′;
$(‘b6a’).style.width=on?’100%’:’0′; $(‘b6b’).style.width=on?’1.1%’:’0′;
}
render4(true);
// autoplay helpers
function autoplay(host,render,btn,n){
var busy=false;
$(btn).addEventListener(‘click’,function(){
if(busy)return; busy=true; var i=0;
selectRung(host,0); render(0);
var t=setInterval(function(){
i++; if(i>=n){clearInterval(t);busy=false;return;}
selectRung(host,i); render(i);
},900);
});
}
autoplay(‘lad1′,render1,’play1’,4);
autoplay(‘lad2′,render2,’play2’,4);
autoplay(‘lad3′,render3,’play3’,4);
$(‘play4’).addEventListener(‘click’,function(){render4(false);setTimeout(function(){render4(true);},260);});
// resize
function resize(){
try{
var h=document.body.offsetHeight+40;
if(window.parent&&window.parent!==window){
window.parent.postMessage({mtpFrame:’dyna2′,height:h},’*’);
}
}catch(e){}
}
window.addEventListener(‘load’,function(){resize();setTimeout(resize,400);});
window.addEventListener(‘resize’,resize);
setTimeout(resize,120);
})();
