> ## Documentation Index
> Fetch the complete documentation index at: https://docs.relayintelligence.org/llms.txt
> Use this file to discover all available pages before exploring further.

# Models

> The policies WALLE serves and how they differ.

Pass a model's ID to `PolicyClient`. Each model runs on its own server.

```python theme={null}
policy = PolicyClient("groot")
```

## Comparison

| | π0.5 | π0 | GR00T N1.7 |
| - | - | - | - |
| ID | `pi05` | `pi0` | `groot` |
| Checkpoint | `lerobot/pi05_base` | `lerobot/pi0_base` | `nvidia/GR00T-N1.7-3B` |
| Cameras | up to 3 | up to 3 | exterior + wrist (DROID) |
| Image size (server) | 224×224 | 224×224 | 180×320 |
| State | 32 floats | 32 floats | `eef_9d`, `gripper_position`, `joint_position` |
| Action horizon | 50 | 50 | 40 |
| Actions | `(50, 32)` joint positions | `(50, 32)` joint positions | dict of `(1, 40, k)` arrays |
| JPEG input | yes | yes | no |
| Fine-tuned adapters | yes | yes | no |

## π0.5

Physical Intelligence's π0.5. It writes the robot state into its language prompt, which helps it follow instructions in scenes it hasn't seen before. Start with π0.5 for a single- or dual-arm robot with joint-position control.

## π0

The earlier Physical Intelligence policy. It has the same observation and action format as π0.5, so you can switch between the two by changing the ID. It's useful as a baseline or when a fine-tuned π0 adapter already exists for your robot.

## GR00T N1.7

NVIDIA's Isaac GR00T, served with the DROID embodiment: a Franka arm with an exterior camera and a wrist camera. Each call returns end-effector, gripper and joint actions, so you can drive whichever interface your controller accepts. It takes structured observations rather than flat keys. See the GR00T tab on the [Observations](/observations) page.

## Fine-tuned adapters

π0 and π0.5 servers can serve LoRA adapters fine-tuned for a specific robot or task, alongside the base model. Select one per request with `sampling_params.lora`. See [Request options](/observations#request-options). You can only select adapters registered on the server.

## Checking a server at runtime

The handshake is the source of truth for a server's settings. If the docs and the metadata disagree, trust the metadata:

```python theme={null}
policy = PolicyClient("pi0")
meta = policy.get_server_metadata()
assert meta["action_horizon"] == 50
```


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.