CoolFace
Datasetpublic

gui-wm/spine

GUI World Model — Spine Transitions (s, a, s') transitions collected by walking task instructions on a live Ubuntu desktop. Every state is captured from the running machine: a screenshot, the accessibility tree as XML, and the rendered element table the model reads. This set is spine only — the path an agent actually took. No branches. Where the instructions come from instruction_source what it is agentnet Human recordings of people using their own… See the full description on the dataset page: https://huggingface.co/datasets/gui-wm/spine.

sourceHugging Faceapache-2.0updated 28d agoView on Hugging Face
0likes669downloads
Dataset Card

GUI World Model — Spine Transitions

(s, a, s') transitions collected by walking task instructions on a live Ubuntu desktop. Every state is captured from the running machine: a screenshot, the accessibility tree as XML, and the rendered element table the model reads.

This set is spine only — the path an agent actually took. No branches.

Where the instructions come from

`instruction_source`what it is
agentnetHuman recordings of people using their own desktops (xlangai/AgentNet). Only the instruction is taken; the trajectory is ours. Windows and macOS recordings are included where the work is portable — the application name is rewritten (ExcelLibreOffice Calc) and tasks naming features with no counterpart here are refused.
osworldThe 369 OSWorld task instructions, walked by an agent rather than replayed.
synthesizedWritten by Qwen3.8-27B from collected transitions, gated on eleven checks. See the generator's notes for what each gate rejects.

The agent is OpenCUA-7B throughout. The desktop is OSWorld's Ubuntu VM at 1920×1080.

Columns that say what a row is

Our internal pipeline names (mode_a, mode_b) are deliberately absent: they name which of our programs ran, not what produced the data. These do:

columnvalues
instruction_sourceagentnet · osworld · synthesized
trajectory_sourceagent (a model chose the actions) · replay (a recording was re-executed)
transition_rolemain (on the spine) · branch
walk_passwhich pass over the task list produced this
config_idwhich generated start state the task was walked on
policy_modelthe model that chose the actions
synth_source_task_idfor synthesised instructions, the OSWorld task the goal descends from
duplicate_ofsee below

State columns: before_screenshot · after_screenshot (PNG bytes), before_a11y_xml · after_a11y_xml, before_a11y_txt · after_a11y_txt, before_awb_txt · after_awb_txt (the AgentWorldBench format-A table: tag · name · text · class · description · position (top-left x&y) · size (w&h)).

What was removed, and what was only labelled

Removed — one `(s, a)` reaching two different `s'`. Measured on a 700-trajectory sample: 111 such groups, and they are not measurement noise. Opening Thunderbird sometimes shows a welcome page and sometimes does not, so the same click lands in genuinely different states. Keeping one arm would teach a determinism the desktop does not have, and nothing in the record says which arm was the accident, so both go.

Labelled, not removed — repeated `(s, a, s')`. A repeat is usually a shared opening: two tasks bootstrapped into the same application begin on the same screen. Deleting the later copies would punch holes in the trajectories that produced them, and each AWB example is built from its whole root-to-edge chain — a fifteen-step walk missing its first four would publish its fifth step as a one-turn example. So the row stays and carries duplicate_of. Filter on it when training on individual transitions; ignore it when building histories.

Kept on purpose — transitions where the table does not change. About a quarter of them. An action that changes nothing is a fact about the interface, and a model that never sees one learns that every action changes something.

Restoring the folder layout

The parquet is the delivery form, not a lossy one. guiwm_collector.dataset.pack.materialize() writes the eight-files-per-step directory tree back out, byte for byte — verified on a full trajectory: 176 files, 176 identical.