L-PhySim is a novel, modular mechanism that injects a single-step differentiable physics simulation into the forward pass of frozen VLA models. Unlike classical safety filters that operate on joint angles (e.g., Jacobian conditioning), L-PhySim operates directly in the latent token embedding space, learning a data-driven collision manifold to correct "ghost grasp" hallucinations before they are decoded into actions.
This is not classical robotics repackaged.
-
Classical Approach (KSAM): Computes Jacobian condition number
$\kappa(q)$ on proprioceptive state$q$ . Fails when visual hallucinations occur despite valid kinematics. - L-PhySim Approach: Projects provisional actions into the VLA's own latent space to verify geometric consistency with visual tokens. Corrects the tokens themselves before decoding.
- Key Innovation: Learns a latent collision manifold specific to the VLA's visual features, enabling correction of semantically driven hallucinations (e.g., "grasp the reflection") that analytical methods cannot detect.
One-sentence definition: L-PhySim is a lightweight (3.5K parameter) micro-simulator inserted via forward hooks into the final transformer block of a frozen VLA, predicting latent state changes from provisional actions to compute a collision score and apply residual corrections to gripper-related token embeddings.
Given a provisional action
Predict the change in latent space if
Compute a differentiable collision score against target object tokens
Apply residual correction to gripper tokens before the action head:
$$\tilde{V}{grip} = V{grip} - \lambda \cdot c \cdot \Delta \hat{V}$$
[Input Images + Language]
↓
[Frozen VLA Encoder] → Visual Tokens V
↓
[Frozen Transformer Blocks]
↓
[Provisional Action a_prop] ──┐
↓ │
[L-PhySim Module] ←───────────┘
1. Project a_prop → h_act
2. Predict ΔV̂ = MLP_dyn(h_act, V_grip)
3. Compute collision score c
4. Correct tokens: Ṽ_grip = V_grip - λ·c·ΔV̂
↓
[Frozen Action Head] → Final Action a_final
| Failure Mode | Baseline (Octo) | L-PhySim | Improvement |
|---|---|---|---|
| Ghost Grasps (hallucinated objects) | 68.2% | 89.5% | +21.3% |
| Penetration Errors (collisions) | 71.5% | 91.8% | +20.3% |
| Overall MT-10 Success | 72.4% | 84.7% | +12.3% |
| Overall MT-50 Success | 48.2% | 59.1% | +10.9% |
Note: Improvements are most significant in tasks requiring precise contact (e.g., door-open, button-press-topdown).
- Base Model: Octo (frozen, 100% weights unchanged)
- Trainable Parameters: ~3,500 (2-layer MLPs, 64 hidden units)
- Training Time: 8-12 minutes on single A100/RTX 4090
- GPU Memory: <3GB
- Inference Overhead: 0.05ms (pure matrix multiplications)
- Dataset: Self-generated collision trajectories (1,000 samples sufficient)
Catastrophic Failure Condition: L-PhySim fails when the initial visual token embeddings
pip install torch numpy transformersfrom l_physim import LatentPhysicsSimulator
from octo.model import OctoPretrained
# Load frozen VLA
vla = OctoPretrained.from_pretrained("octo-base")
for param in vla.parameters():
param.requires_grad = False
# Wrap with L-PhySim
l_physim = LatentPhysicsSimulator(vla, lambda_corr=0.8)
# Train only the micro-simulator
optimizer = torch.optim.Adam(l_physim.micro_sim_params(), lr=1e-3)
# ... training loop with collision loss ...MIT License - See LICENSE file for details.
If you use L-PhySim in your research, please cite:
@misc{lphysim2026,
title={L-PhySim: Latent Physics Simulation for Hallucination Correction in Vision-Language-Action Models},
author={Lexus-X Research},
year={2026},
howpublished={\url{https://github.com/lexus-x/L-physim}}
}