Computaco

Computaco

Computers, users and expert work, simulated for computer-use agents.

Every machine above runs in your browser. Five operating systems share one simulated internet, and every run replays to the byte.

260verified expert episodes
14professional domains
4.8×GUI actions per tool call
35 µsto fork a whole world
5operating systems on one network

What we sell.

All three run on ComputerWorld, our engine. It simulates desktops, phones and an internet in one deterministic process.

Computer instances

Start a desktop or a phone with one API call. Each machine runs in its own simulated world, on hosted machines that you do not manage. Drive it with pointer and keyboard, snapshot it, fork it and delete it when the run ends.

Read the hosted API

User simulation

Put many people in one world, each on their own phone or computer. Each person sees only their screen and acts on it. Fork the world, change one rule for half of them, and compare what they do.

Read about societies

Expert-work data

Professionals’ procedures, performed through the screen and checked against the world’s state. There are 260 verified episodes in 14 domains. Each one replays to the byte.

See the expert work

Three people ship one fix.

A lead posts a ticket in Slack on a Mac. An engineer fixes the bug in VS Code on Ubuntu and opens a pull request. A reviewer approves and merges it on Windows. That is 118 pointer and keyboard actions, and 7 checks on the world’s state judge the result.

See the expert work
swe-atlas-bfs-dead-end, seed 3. Every frame is the engine’s own render.

An engineer models a part.

FreeCAD runs inside the world. The engineer sketches a plate, pads it, drills a hole and patterns it, in 86 actions. The CAD engine then recomputes the saved part and compares its volume with the reference.

cad-mounting-plate, seed 1. 16 checks pass.

A late tax return costs a penalty.

A founder registers a company and gets a sales tax license. A bookkeeper files the first return. Then nobody files October’s return. The world clock moves on, a notice comes, and the bookkeeper pays the tax and the penalty. That is 66 days in 251 actions, and 35 checks read the agencies’ records.

gov-late-sales-tax, seed 1. September 17 to November 22 in 53 seconds.

An ad becomes a sale.

A founder sets up Stripe and a search campaign. An engineer deploys the landing page and points a domain at it. A customer searches, clicks the ad and pays. The founder then reads the sale in the ads report. All of it is simulated: no request leaves the process.

biz-search-campaign, seed 1. 115 actions, 36 checks pass.

Sixteen phones spread a rumor.

A society puts many people on their own phones in one world. Each person sees only their screen and acts on it. Fork the world, change one rule for half of them, and measure how far the rumor goes in each branch.

Read about societies
rumor-cascade, six rounds with scripted residents. Studies use model-driven residents replayed from a journal.

Market simulation research.

The same forks and societies can hold simulated buyers, readers and executives. We use them to test how a name, an article, a pitch or a comparison moves a fictional market. Everyone in these studies is a language model playing a persona, and each page says so, shows its uncertainty and lists the human data that would test it.

All research

One checkpoint, many futures.

Snapshot a world and fork it. A fork takes 35 µs and keeps 20.9 KB until it writes. Drive each branch its own way. The same actions from the same checkpoint always reach the same state.

See the benchmark
The repository’s two open pull requests, the state every branch starts fromCheckpoint2 open pull requests
    1. Pull request #15, still open1Open #15
    2. The pull request’s changed files, still open2Files changed

    No policy broken

    1. The same pull request in a world of its own1Open #15
    2. The pull request closed by the agent2Close it

    P12 broken

    1. The repository starred by the agent1Star

    P15 broken

The screen is the hard part.

Each procedure runs twice: through the screen, and through tool calls that reach the same verified state. Across 260 episodes the screen takes 4.8× the actions and 49× the tokens. That gap is the training signal.

Every domain and episode
Tool callsGUI actions

The chart draws from data/expert.json.

Median actions per episode, by domain. Hover a row for its numbers.

The checker finds policy breaks.

Give it a start state, the actions an agent may take and a depth. It tries every sequence and returns the shortest one that breaks a policy, ready to replay. On the reference world it checked 77,748 states to depth five.

15policies
6held
9broken, each replayed
Read the evaluation

Every frame comes with its scene.

The engine knows what it drew. Each frame comes with the text, the controls and their bounds, so labels are exact and free. Labelled frames raised held-out-font OCR accuracy from 66.8% to 79.4%.

Read the OCR study
A rendered frame: Safari on macOS showing a GitHub pull request. The same frame with a box around each of its 96 text runs and 67 enabled controls.
96 text runs and 67 controls in one frame.

Drive it from your own code.

One handle takes actions and returns a scene, a frame and a state hash. The same Rust engine runs natively and as WebAssembly, so Python, JavaScript and Rust see the same world.

Run a first episode
pip install computerworld
from computerworld import World

world = World(definition, seed=42)
env = world.environment({"actor": "alice", "machines": ["alice-mac"],
                         "actions": ["pointer.v1", "keyboard.v1", "application.v1"],
                         "observations": ["semantic.v1"]})

env.step([{"family": "application.v1", "op": "launch",
           "machine": "alice-mac", "payload": {"kind": "code"}}])

scene = env.scene(1440, 900)     # roles, names, geometry — no pixels needed
frame = env.render(1440, 900)    # or exact RGBA, if your model wants pixels