A VLA model built from combining and training SLMs, so the whole thing runs on any device (CPU / Apple MPS / CUDA — no GPU required) at SIMILAR readiness as leading VLA models for physical AI for iteration and deployment.
1iteVLA driving a real SO-101 — continuous perceive → act, running on the laptop beside it.
1iteVLA's numbers are measured on this machine (trained with run/train_libero.py,
evaluated with run/eval_policy.py); the other models' numbers are as reported in their
papers/pages (linked below). 1iteVLA is by far the smallest, yet after behavior-cloning on
LIBERO demos its continuous 7-DoF policy reaches OpenVLA-level success at ~10–90× fewer
parameters.
| Model | Params | Runs on | Inference speed | LIBERO |
|---|---|---|---|---|
| 1iteVLA | ~38M (2.9M trainable) | any device (CPU/GPU) | real-time on CPU | 78.0% (libero_spatial, trained)¹ |
| SmolVLA | ~450M | consumer GPU (≈CPU-feasible) | ≥10 Hz (50-step chunks) | 87.3% (4-suite avg) |
| π0 (pi-zero) | ~3.3B | GPU | 50 Hz (chunked control) | 86.0% (4-suite avg) |
| MolmoAct-7B-D | 7B | GPU | — | 86.6% (4-suite avg) |
| OpenVLA | 7B | GPU (~15 GB) | ~5–6 Hz (A100 / RTX 4090) | 76.5% (4-suite avg; 97.1% w/ OFT) |
¹ Measured, trained result. LiteVLAPolicy (two MobileNetV3-Small image encoders +
proprioception + a frozen flan-t5-small language embedding → an 8-step continuous 7-DoF
action chunk; ~2.9M trainable params) was behavior-cloned on the real LIBERO-Spatial
demonstrations (30 demos/task × 10 tasks, 60 epochs) and evaluated in-sim: 39 / 50 episodes
solved = 78.0% (10 tasks × 5 trials). That's on par with OpenVLA-7B's 76.5% four-suite average
at ~180× fewer parameters. This is libero_spatial only; the other three suites
(object / goal / long) train the same way for a full four-suite average. Reproduce:
run/train_libero.py then run/eval_policy.py (needs a local LIBERO install).
Sources: SmolVLA (params + SmolVLA/π0 LIBERO) · OpenVLA · OpenVLA-OFT · MolmoAct
1iteVLA/
1iteVLA/ # the model (the package)
vision.py # V: image recognition SLM
action.py # LA: discrete language-action SLM (zero-shot)
model.py # LiteVLA: V -> LA (zero-shot)
policy.py # LiteVLAPolicy: trainable CONTINUOUS 7-DoF policy (the 78% one)
skills/ # GENERAL, robot/task-agnostic capabilities (reusable by any app)
perceive.py # Locator: find any object by name, gated by a confidence eval
motor_model.py # learn how a robot's motors move its camera view (Jacobian) + invert it
spatial.py # SpatialAwareness: distance from box area, over time (PD)
visual_servo.py # VisualServo + Tracker: center a target + hold distance with all motors
la.py # LanguageAction: read a use-case prompt -> a task the skills execute
run/ # example run with SO-101
tests/ # tests that the real models load and the pipeline works
CAM=0 python run/train_motor_model.py # once: the arm learns its motor model -> run/jacobian.npz
python run/follow_hand.py # the arm centers + holds distance to your hand
PROMPT="Follow a red cup, keep it centered, hold it at 15% of the frame" python run/follow_hand.pypip install -r requirements.txtThe package directory name starts with a digit, so Python's import statement can't
load it (import 1iteVLA is a syntax error). Load it with importlib:
import importlib
liteVLA = importlib.import_module("1iteVLA") # with the repo root on sys.path
VLA = liteVLA.LiteVLA() # auto-picks cpu/mps/cuda
out = VLA.act(image, "pick up the object")
print(out["scene"], "->", out["action"])