π

π0 (pi-zero)

Physical Intelligence, United States · October 2024

Foundation VLAOpen weights, Apache-2.0Also written pi0, pi-zero, pi_0
Parameters
3.3 B
Paper, Section IV: PaliGemma is an open-source 3 billion parameter VLM, and 300M parameters are added for the action expert...
GPU memory
8 GB
reported by the authors
Inference latency
73 ms
NVIDIA GeForce RTX 4090, 3 camera images, on-board.
Weights
Apache-2.0
Apache-2.0 for the openpi repository.

What it is

π0 is Physical Intelligence's first generalist policy and the model that made flow matching the default action head for VLAs. It bolts a 300M action expert onto a frozen-initialised PaliGemma-3B backbone, and the expert emits a 50-step action chunk in one shot rather than decoding action tokens one at a time. That design is what allows 50 Hz control on dexterous tasks such as folding shirts, and it costs 73 ms per chunk on an RTX 4090. The published evaluation is entirely in-house with a partial-credit rubric, so anyone comparing π0 against a LIBERO or SimplerEnv number is comparing different things. Treat it today as the reference architecture rather than the strongest available checkpoint, since π0.5 supersedes it inside the same open repository.

Architecture

Backbone
PaliGemma-3B (Gemma 2B language model with width 2048, depth 18, mlp_dim 16384, plus a SigLIP So400m/14 vision encoder)
Action head
flow matching (conditional flow matching, linear-Gaussian probability path, 10 forward Euler integration steps at inference, bidirectional attention over the action tokens)
Action chunk
50 steps per forward pass
Control rate
50 Hz
Parameters
Paper, Section IV: PaliGemma is an open-source 3 billion parameter VLM, and 300M parameters are added for the action expert (width 1024, mlp_dim 4096, initialised from scratch), for a total of 3.3 billion parameters. The paper additionally describes a 470M π0-small ablation without VLM pre-training. The openpi source confirms the split (paligemma_variant gemma_2b, action_expert_variant gemma_300m in src/openpi/models/pi0_config.py).
Pretraining data
About 10,000 hours of in-house dexterous manipulation demonstrations, quantified as 903M timesteps (106M from single-arm robots, 797M from dual-arm robots) covering 7 robot configurations and 68 tasks. Open-source data makes up 9.1 percent of the training mixture and consists of OXE Magic Soup (22 robots), Bridge v2 and DROID. Main model trained for 700k steps, with a 160k-step compute-parity variant reported for baseline comparisons.
Embodiments
UR5e, bimanual UR5e, Franka, bimanual Trossen ViperX (ALOHA style), bimanual ARX, mobile Trossen and mobile ARX (Mobile ALOHA style), mobile Fibocom (holonomic base)

What hardware it needs

This is the section most people came for, so it is worth being precise about which numbers are measured and which are arithmetic.

Computed from 3.3 B parameters. Weights only, so treat it as a floor: activations, image encoder intermediates and the CUDA context come on top, in practice 30 to 50 percent more for inference.
PrecisionWeightsNote
fp3212 GBTraining master weights, rarely used for inference
bf16 or fp166.1 GBThe usual way these checkpoints are served
int83.1 GBQuantised, expect some loss of precision on fine motions
int41.5 GBAggressive quantisation, verify success rate before trusting it

Smallest real card that fits the bf16 weights plus a 40 percent runtime allowance: 12 GB. That is an estimate for inference, not for fine tuning. Full fine tuning also holds optimiser state and gradients, which typically costs several times the weights unless you use LoRA or a comparable adapter.

Published figures. These come from the model authors, not from this site.
Inference memory, reported8 GB source
Fine tuning memory, reported22.5 GB source
Inference latency, reported73 ms on NVIDIA GeForce RTX 4090, 3 camera images, on-board. Breakdown from Table I: 14 ms image encoders, 32 ms observation forward pass, 27 ms for the 10 flow matching steps, giving 73 ms total. Running off-board over Wi-Fi adds 13 ms network latency for 86 ms total.
Control rate50 Hz

The openpi README gives one table for the whole family: inference from 8 GB on an RTX 4090, LoRA fine-tuning from 22.5 GB on the same card, full fine-tuning from 70 GB, which means an A100 or H100 class card.

Reported results

Grouped by what the evaluation actually asked. Values from different suites are not comparable with each other, so each one keeps its suite and split.

Simulation

No results in this category are published for this model.

Real world

Rollouts on physical hardware. The setups differ, so read these as evidence, not as a ranking.

  • Physical Intelligence in-house out-of-box evaluation Shirt folding, bimanual ARX, direct prompting without fine-tuning
    1 score (0 to 1)
    normalized score with partial credit, averaged over 10 episodesIn-house task suite, not a public benchmark. Baselines OpenVLA and Octo both scored 0.0 on this task. Partial credit means the score is not a plain success rate.source
  • Physical Intelligence in-house out-of-box evaluation Bussing easy, UR5e, direct prompting without fine-tuning
    0.971 score (0 to 1)
    normalized score with partial credit, averaged over 10 episodesIn-house task suite. Baselines on the same task: π0-small 0.443, OpenVLA trained on the full mixture 0.0, OpenVLA trained on UR5e data only 0.343, Octo 0.043.source
  • Physical Intelligence in-house out-of-box evaluation Bussing hard, UR5e, direct prompting without fine-tuning
    0.875 score (0 to 1)
    normalized score with partial credit, averaged over 10 episodesIn-house task suite. All four baselines (π0-small 0.333 excepted) scored 0.0 on this harder variant.source
  • Physical Intelligence in-house out-of-box evaluation Grocery bagging, UR5e, direct prompting without fine-tuning
    0.786 score (0 to 1)
    normalized score with partial credit, averaged over 10 episodesIn-house task suite. Baselines: π0-small 0.271, OpenVLA 0.0, Octo 0.0.source
  • Physical Intelligence in-house out-of-box evaluation Toast out of toaster, bimanual Trossen, direct prompting without fine-tuning
    0.75 score (0 to 1)
    normalized score with partial credit, averaged over 10 episodesIn-house task suite. Every baseline including π0-small scored 0.0 on this task.source

Fine tuned tasks

No results in this category are published for this model.

On real hardware

Demonstrated on 7 in-house robot configurations covering single-arm, bimanual and mobile manipulators. Fine-tuned tasks include laundry folding from a hamper, table bussing, box assembly, grocery bagging, stacking eggs into a carton and putting dishes in a microwave, with tasks running tens of minutes. Deployment ran chunks open-loop: inference every 0.8 s after executing 16 actions on the 20 Hz UR5e and Franka, and every 0.5 s after executing 25 actions on the 50 Hz platforms. Temporal ensembling was tried and dropped because it hurt performance.

Fine tuning it yourself

Fine-tune through openpi. Data must be converted to the LeRobot dataset format, then a data config (inputs and outputs transforms), a LeRobotDataConfig and a TrainConfig are defined. The repository ships worked LIBERO configs for π0, π0-FAST and π0.5 as templates. LoRA and full fine-tuning are both supported, and a PyTorch implementation now exists alongside the original JAX one. openpi documents no minimum demonstration count.

Where it helps, where it does not

Strengths

  • The action expert lets one model emit 50-step chunks at 50 Hz, which is high enough for cloth manipulation and other dexterous tasks that autoregressive VLAs of the same era could not reach.
  • Weights, training code and inference server are published under openpi, so the model can be fine-tuned and served without a vendor agreement.
  • Inference fits in roughly 8 GB, so a single consumer RTX 4090 is enough to serve the policy.
  • The pre-training mixture at roughly 10,000 hours and 903M timesteps is far larger than the academic datasets used by contemporaries such as OpenVLA and Octo.

Limits

  • The out-of-box evaluation is an in-house task suite with a partial-credit rubric and only 10 episodes per task, so the published scores are not comparable to success rates on LIBERO, SimplerEnv or any public leaderboard.
  • The paper reports no results on any public simulation benchmark, so cross-model comparison rests on third-party reproductions.
  • Fine-tuning is the expensive part. LoRA needs more than 22.5 GB and a full fine-tune needs more than 70 GB, which rules out a single consumer GPU for full fine-tuning.
  • Physical Intelligence states in the openpi README that π0 was developed for its own robots and may or may not work on other platforms. There is no guarantee of transfer to a new arm.
  • Superseded within the same family. π0.5, π0.6, π*0.6 and π0.7 all postdate it, and only π0.5 also has open weights.

Sources

Everything on this page was taken from these documents. Where they disagree with what you read here, they win.

Entry last checked 2026-08-11.

Try a policy on a real arm

A physical SO-100 is online and free to drive in the browser, and five of the models in this arena can be fine tuned on a dataset you record with your own.