| name | abot-physworld-physics-aligned-world-model |
| title | ABot-PhysWorld: 14B DiT for Physics-Aligned Robotic Manipulation Videos |
| version | 0.0.3 |
| engine | skillxiv-v0.0.3-claude-opus-4.6 |
| license | MIT |
| url | https://arxiv.org/abs/2603.23376 |
| keywords | ["Physics Alignment","Diffusion Transformer","Robotic Manipulation","DPO Training","Video Generation"] |
| description | Replace standard likelihood-based video diffusion training with decoupled physics discriminators and DPO post-training to suppress physically implausible behaviors (object penetration, anti-gravity motion) in robotic manipulation videos. Use when generating physics-realistic video predictions for embodied AI and want to maintain visual quality without physical violations. |
| category | Component Innovation |
What This Skill Does
Replace standard diffusion model training objectives with a decoupled discriminator architecture and DPO (Direct Preference Optimization) post-training. This eliminates physically implausible behaviors like object interpenetration and anti-gravity motion while maintaining visual quality in robotic manipulation video generation.
The Component Swap
The old approach uses a single likelihood-based diffusion loss that prioritizes pixel-level reconstruction without explicit physics constraints:
The new ABot-PhysWorld approach decouples physics supervision from visual supervision using separate discriminator heads:
physics_discriminator = DiscriminatorHead(
input_dim=latent_dim,
output_dim=1,
detects=['interpenetration', 'anti_gravity', 'contact_violations']
)
visual_discriminator = DiscriminatorHead(
input_dim=latent_dim,
output_dim=1
)
loss_dpo = dpo_loss(
preferred=model_output_physics_plausible,
rejected=model_output_physics_implausible,
beta=0.1
)
Post-training with DPO uses curated preference pairs to reinforce physically plausible trajectories while downweighting implausible ones. Parallel context blocks inject spatial action information without modifying core diffusion parameters:
action_embedding = embed(action_tokens)
context_block = ParallelContextAttention(
context=action_embedding,
video_features=diffusion_features
)
Performance Impact