This release is a pre-release and may not be stable for production use.
fieldtrial
Find out whether your robot policy actually got better.
fieldtrial is an open-source Python framework for statistically rigorous, real-world evaluation of robot policies. LeRobot trains the policy; fieldtrial tells you whether it actually got better.
Status: alpha. The statistics core and the calculator commands work. Studies, the operator console and reports follow in 0.1.0. See the roadmap.
Why
Real-world evaluation is slow, noisy and ad hoc. With 40 rollouts, the 95% confidence interval for a success rate is about ±15 percentage points, so many apparent improvements from a fine-tuning run are just noise. fieldtrial helps at every stage:
- Before an evaluation: how many rollouts do I need? What is the smallest difference this evaluation can detect?
- During: a randomized, blinded schedule, plus a phone-friendly operator console that logs the outcome, progress stage and failure tags of each rollout.
- After: correct statistics (exact tests, paired designs, multiplicity control), honest wording, and a shareable report.
30-second demo
$ uvx fieldtrial compare 74/80 91/120
Arm 1: 74/80 = 92.5% (95% CI 84.6%–96.5%)
Arm 2: 91/120 = 75.8% (95% CI 67.4%–82.6%)
Difference +16.7 pp, Newcombe 95% CI [+6.2 pp, +26.0 pp]
Boschloo p = 0.0020 (two-sided); rejects H0 at α = 0.05
Fisher p = 0.0022
$ uvx fieldtrial power --p1 0.76 --p2 0.90 # rollouts needed to detect 76% → 90%
112 per arm (pooled-z)
$ uvx fieldtrial mde --p1 0.76 --n 40 # what 40 rollouts per arm can detect
+21.1 pp (to 0.9707) / −30.1 pp (to 0.4588)
The same functions are available from Python in fieldtrial.stats. Every one of them is
tested against an independent reference implementation.
fieldtrial demo, with a simulated study, the operator console and a report, arrives in
0.1.0.
How it fits with LeRobot and openpi
fieldtrial complements LeRobot and openpi and never forks them. It is not a training framework, a simulation benchmark, a robot driver, a labeling platform or a cloud service. In manual mode, fieldtrial schedules and records the trials and you run the robot however you like. Integrations with other stacks are adapters.
Development
See CONTRIBUTING.md.
License
Apache-2.0. Copyright 2026 Rok Benko.
The name comes from agricultural field trials. At Rothamsted in the 1920s, R. A. Fisher developed randomized block designs for field trials, and those are the designs fieldtrial uses to compare robot policies.
Metadata
Release files for fieldtrial 0.1.0a1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| fieldtrial-0.1.0a1.tar.gz | 42.6 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| fieldtrial-0.1.0a1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 76.1 kB
Release files / fieldtrial-0.1.0a1.tar.gz
| Download URL | fieldtrial-0.1.0a1.tar.gz |
|---|---|
| Size | 42.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
aa02d6188cc1ffb9dea1c0a52fe696aba4d996a689635e3e6a6243c49aafdde4
|
|
BLAKE2b-256 checksum How to use checksums |
58b4ebb9c08fd439f00f9fb71371c924ff87d294515293aa647c0eaa2780d782
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.12.21 {"installer":{"name":"uv","version":"0.12.21","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":null,"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|
Release files / fieldtrial-0.1.0a1-py3-none-any.whl
| Download URL | fieldtrial-0.1.0a1-py3-none-any.whl |
|---|---|
| Size | 33.5 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
a20b24aa4a0eb563b2f8ca9163811aeb7e5d21fa263b2e0d8d7bc9e828a9ec49
|
|
BLAKE2b-256 checksum How to use checksums |
19c4cc7346d4762201fcd0e9da5f8e3101a3f6fb0cfe6758e3f1f95ef1864ebc
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.12.21 {"installer":{"name":"uv","version":"0.12.21","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":null,"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|