pilotr ships a point-and-click application over the same design specification that the R and Python packages consume. It is a thin client: every control writes into the portable JSON specification, which you can download and run unchanged in either package to obtain identical data.
Two ways to run it
Installed, on your own machine. With the package installed, launch the app locally:
pilotr::run_app()Each user runs their own R process, so a heavy power run never blocks anyone else, and simulations use all of your local cores.
In the browser, with nothing to install. A serverless build runs entirely in the browser through WebAssembly, with no server and nothing uploaded. Try it at the no-code app. It covers the light path: build a design, simulate, inspect the data, estimate two-group Gaussian power and export.
What the app does
Describe the design in the left panel: the sample sizes, the factor and its two levels, the fixed intercept and effect, a response family, and for crossed designs the random-effect standard deviations. Then read the tabs.
- Design spec: the exact JSON specification, the portable source of truth.
- Data: the simulated data set.
- Summary & plot: group summaries and a plot.
- Power: simulation-based two-group Gaussian power with the Type S and Type M errors, plus a power curve over sample size.
- R script: a self-contained, reproducible R script. The installed app can also verify it by running it in a clean R session and confirming bit-for-bit reproduction.
Changing the response family resets the intercept and effect to sensible values for that family’s scale, so a point-and-click design stays valid. The advanced ‘paste a JSON spec’ box accepts designs beyond the point-and-click controls, such as continuous predictors, interactions and nesting.
One specification, three interfaces
The app does not own the design; the specification does. Download the
specification (.json) or the data (.csv), and
run the specification unchanged in R with simulate_design()
or in Python with pilotr.simulate() for identical data.
Crossed mixed-effects power runs in the installed packages rather than
in the browser (in R via lme4, the reference backend), and
precision/ROPE design analysis runs in the R package. Whichever
interface you use, the specification you build in the app drives all
three.