A systems studio

Don't trust the number. Re-run it.

Most software hands you a conclusion and asks you to believe it — a score, a benchmark, a dashboard. We build the other kind: systems whose claims you can derive again yourself, on your machine, and get the same answer or a different one.

It starts with an operating system. T&R — FreeBSD 15 assembled from pkgbase rather than installed, 364 MB, no installer and no first-boot download.

free · no account · no telemetry
sha256 9e8767be0140ac55…22023e · all files & checksums
A virtual machine console showing the Travel & RRABBIT shell: two application signs on a dark road above seven amber gauge tubes labelled CPU, RAM, SWAP, DISK, NET, TEMP and LOAD
the desktop flavour running Travel & RRABBIT — 2026-08-09, a 4 GB guest, no GPU
The thesis

Data driven keeps the result. Compute driven ships the derivation.

The name is an argument, and it is not that data-driven work is irreproducible. It often is reproducible — when the inputs, the transformations, the environment and the method have all been preserved with enough discipline. The difference is where that discipline lives: alongside the artifact, or inside it.

the common posture

Data driven

  • The result is the thing that travels.
  • Reproducing it means reassembling its context by hand.
  • That context lives outside the artifact — a README, a lockfile, a methods section, somebody's memory.
  • When any of that rots, the number outlives its derivation.
  • Reproducibility is achievable, and it is a practice.
keeps: the result
ours

Compute driven

  • The derivation is the thing that travels.
  • Canonical input, executable semantics, a derived identity and its provenance ride inside the artifact.
  • Meaning is computed, never assigned — the identity is a hash.
  • The derivation travels with the artifact rather than as assembly instructions beside it.
  • Reproducibility is a property, not a practice.
keeps: the derivation

So, stated as a test rather than a mood:

A claim is compute driven when the artifact carries enough — canonical input, executable semantics, a derived identity and its provenance — for an independent machine to derive the claim again.

And the limit, because this is the sort of page that has to state it: re-derivation proves fidelity, not correctness. A wrong computation re-runs perfectly and is still wrong. Deriving the same identity tells you that you got what we got — it does not tell you that either of us should have wanted it. What it removes is the argument about what happened, which is the argument that usually eats the room.

The shape

A road, and a window. All the way down.

This is a WRL world — the language the stack writes meaning in. Square brackets are places. Arrows are roads between them. It is a map, and the map is executable.

profile forge.world.core.v1 [pulser:p0](every 2){sig_out} [relay:r0]{sig_in, sig_out} [spinner:sp](w=16, n=8, rotor=quarter_turn_z) [orb:ob]{pose} [pulser:p0] --sig--> [relay:r0] [relay:r0] --sig--> [spinner:sp] [spinner:sp] --socket--> [orb:ob]

Now look at the shell in the picture at the top of this page: windows standing as signs along a road you drive through. That is the same drawing. Not a metaphor borrowed for the marketing — the language, the runtime, the evidence and the interface are all the same two things.

layerthe road — how, goingthe window — what, arrived
WRL --sig--> and ~~route~~> [actor:id] and its ports
TRVM local rewrites — a traversal the reduced term
TRAAVIIS the film, epoch by epoch the semantic identity (sem-…)
the shell Travel — road, camera, the flight in RRABBIT — signs, surfaces, the rect

The shell's own documentation puts it better than we can: “One likes going; the other likes being gone to.” Neither half is worth much alone — a hash without a film is a claim, and a film without a hash is a story.

What we hold to

Six rules. We break them in public or not at all.

These are not aspirations. Each one is here because it changed something we shipped — usually by making a page say something less flattering than the draft did.

  1. Re-derive, don't trust. If a claim cannot be computed again by someone who does not work here, it is a rumour with good typography.
  2. Say what is not built. Every status on every page is measured, sourced, or marked not built. The absent things are listed beside the present ones, at the size they actually are.
  3. Subtraction is the feature. 364 MB is not an optimisation. It is 200 MB of test suites, every debug package and every 32-bit library, decided against.
  4. A claim carries its date and its machine. “It works” is not a result. “Measured on a pristine image, 10 August 2026, and here is the string it printed” is one.
  5. Quote the unflattering half. The verifier costs 14 MB. The interpreter it needs costs another 250. A page that mentions only the first number is lying with a true fact.
  6. Never fake a success. A control that reports something it did not do is worse than one that plainly fails. We deleted our own before writing this down.
Get it

Two images. Pick the one you need.

Server

364 MB
50 packages · T&R 0.2

sshd, cron, a serial console. The whole operating system and nothing arranged around a screen.

sha256 9e8767be0140ac5515fedafabdd156e5c9323619285ec12790e29557c422023e

Server + verifier

626 MB
56 packages · T&R 0.3

The same system carrying TRVM and trvs — a runtime and a verifier that turn a run into a bundle somebody else can replay. The extra weight is almost entirely the python interpreter.

sha256 7e0f027db3da721b7f0210c4d5101e2acf872e77036c088f53c1ad8fafc820f9

Desktop

~5.2 GB
~350 packages · build it yourself

X.org, icewm, a vertical cockpit panel, Firefox, and the Travel & RRABBIT road shell in the picture above. Too large for the release host, so this one is a build rather than a download.

Run it

Three ways in. One of them is proven.

Every T&R boot on record is a virtual machine. Writing the image to real hardware should work — it is a GPT image with a UEFI partition — but nobody has done it, so those two routes are marked untested rather than supported.

This is the route we run constantly. The image boots to a serial console, so you can drive and log it without a display. Needs UEFI firmware — the path below is Arch; Debian uses /usr/share/OVMF/OVMF_CODE.fd.

# one command, straight from the download qemu-system-x86_64 -m 2048 -smp 2 -cpu host -enable-kvm \ -drive file=tandr-0.2.qcow2,if=virtio \ -bios /usr/share/edk2/x64/OVMF.4m.fd \ -nographic

Prefer something that manages instances for you? PARKVPS runs these images rootless and daemonless, one process per guest, every disk a copy-on-write overlay on one shared image.

Why it is small

Subtraction, done once, at build time.

FreeBSD's own cloud image enables firstboot_pkg_upgrade, so every instance re-downloads its base packages the first time it starts — forever. We patch at build time instead, and leave out the ~200 MB of test suites, every debug package and every 32-bit library a server guest will never open.

T&R server image364 MB
FreeBSD cloud image2.51 GB
written on first boot — T&R55 MB
written on first boot — stock cloud image~3 GB
Measurement record. First-boot figures measured 10 August 2026 on this workstation, as the size of a copy-on-write overlay after one boot and no other use: two independent bare instances wrote 58,064,896 and 58,130,432 bytes (55.4 MB); the image carrying the verifier wrote 59,637,760 bytes (56.9 MB). Image sizes are qemu-img on-disk, same day, same tree.
The two FreeBSD cloud-image figures are carried from the T&R build notes rather than measured here — they are the weakest numbers on this page and they are the ones that flatter us, which is exactly why they are labelled.
The stack

Six parts. Not all of them are software.

T&R is the distribution and the shell; the five beneath it are the reason the distribution exists. They are not the same kind of thing, so each card says what role it plays and where it actually is — because "part of the stack" and "in the image you just downloaded" are different claims. ComputeDriven is not a seventh box. It is the discipline the six are held to.

T&R
distribution · proof artifact
Travel & RRABBIT — the distribution, and the shell it is named after. Travel navigates: the road, the camera, the flight into a window. RRABBIT is the windows: the sign on the road, the surface that flattens to 1:1 under you. Two personalities, not two layers.
shipping · shell in the desktop image
RAVIO
interface lineage · visual system
The drivable sky road the shell was forked from, re-missioned from rendering a build harness to managing an operating system's windows. What reaches the image is its palette — the amber, the cyan, the bronze rims this whole page is wearing.
upstream · theme, not a package
WRL
topology language
WallRiderLang. A topology language whose meaning is a canonical graph, so a world's identity is a hash rather than a filename. Reformat it freely; change what it claims and the identity moves.
in the 626 MB image
TRVM
reduction runtime
The term-rewrite runtime that reduces it. Interaction-net reduction is confluent by construction, and it is confluence — not locality on its own — that licenses schedule-independence: the order redexes fire cannot change the result. That is what makes "run it yourself" an offer rather than a hope.
in the 626 MB image
TRAAVIIS
evidence · verification
trvs — seals a run into a bundle somebody else can replay, and derives the same identity when they do. Boot the 626 MB image and type trvs doctor; it answers status ready having set nothing up.
in the 626 MB image
[&]
composition protocol
The protocol the other five are designed to compose under — how a capability declares what it is and what it may touch. It is not enforced as a conformance boundary across all five today. It is a specification, so it is not installed anywhere; it is the shape the rest agree to.
a protocol · nothing to install
The Travel & RRABBIT shell seen from above, windows arranged along a road
windows as signs along a road
Seven amber gauge tubes reading CPU, RAM, SWAP, DISK, NET, TEMP and LOAD
seven gauges reading the real machine
A native application rendered flat inside the Travel & RRABBIT shell
native applications, rendered in place
Untested & unfinished

The parts we have not earned yet.

A download page that only lists wins is asking you to install on faith. These are the holes at the size they actually are.

Never booted on real hardware

Every boot on record is QEMU/KVM. USB and internal-disk installs should work and have not been demonstrated by anyone.

No installer

You write an image to a disk. There is no partitioner, no dual-boot path and no way to keep what was already there.

The console is the front door

The serial console is marked secure and root has no password. Fine for a disposable local VM, wrong the moment one listens on a real address.

The desktop is not downloadable

At ~5.2 GB it exceeds the release host's per-file limit, so the most visual part of this page is the part you have to build yourself.

One implementation

The verifier's identity claim rests on a single codebase agreeing with itself across two operating systems — not on two implementations agreeing.

Nobody else has run it

These are the first published images. Every measurement on this page comes from our machines, which is the weakest kind of evidence there is.