CoolFace
Datasetpublic

get2rot/WildGUI

WildGUI This repository hosts a personally reprocessed annotation release for WildGUI, the dataset introduced by Video2GUI. The original Video2GUI project builds WildGUI from large-scale Internet tutorial videos for GUI agent pretraining. This repository focuses on the open annotation artifacts: the records were regenerated and cleaned following the full annotation workflow, then reformatted to make the data easier to inspect, reuse, and reproduce. It also ships the screenshot… See the full description on the dataset page: https://huggingface.co/datasets/get2rot/WildGUI.

sourceHugging Facecc-by-nc-4.0updated 3mo agoView on Hugging Face
0likes29kdownloads
README.md231 linesDownload Raw Back to root
1---2pretty_name: WildGUI3license: cc-by-nc-4.04language:5- en6tags:7- gui-agents8- gui-grounding9- interaction-trajectories10- video2gui11- wildgui12- web13- desktop14- mobile15size_categories:16- 10M<n<100M17---18 19# WildGUI20 21This repository hosts a personally reprocessed annotation release for **WildGUI**, the dataset introduced by Video2GUI.22 23The original Video2GUI project builds WildGUI from large-scale Internet tutorial videos for GUI agent pretraining. This repository focuses on the open annotation artifacts: the records were regenerated and cleaned following the full annotation workflow, then reformatted to make the data easier to inspect, reuse, and reproduce. It also ships the screenshot frames that the trajectories reference.24 25## What's in this repository26 27| Content | Coverage | Location |28|---|---|---|29| **Annotations** (JSONL) | `part1`–`part19` (all parts) | `wildgui_part{N}.jsonl` |30| **Screenshots** (tar shards) | `part1`–`part15` | `screenshots/part{N}/` |31 32The screenshots for the remaining parts (`part16`–`part19`) are hosted in a33companion repository:34[`joker-112/WildGUI_Screenshots`](https://huggingface.co/datasets/joker-112/WildGUI_Screenshots).35So the annotations for every part live here, while their screenshot frames are36split between this repo (`part1`–`part15`) and the companion repo37(`part16`–`part19`).38 39## Annotation File Layout40 41The processed annotation release is organized as JSONL shards, one per part:42 43```text44wildgui_part1.jsonl45wildgui_part2.jsonl46...47wildgui_part19.jsonl48```49 50Each line is one task-level JSON object. The original multi-task `annotations` entries were split by `task_id`, so each record contains a single GUI task and its ordered action trajectory.51 52## Record Structure53 54Top-level fields:55 56| Field | Type | Description |57|---|---:|---|58| `video_id` | string | Source video identifier. |59| `segment_index` | integer | Segment index within the source video. |60| `task_id` | integer | Task identifier after splitting the original annotations. |61| `instruction` | string | Natural-language task instruction. |62| `dense_caption` | string | Dense natural-language summary of the GUI behavior. |63| `plan` | string | High-level task plan. |64| `platform` | string | Platform context, such as web, desktop, or mobile. |65| `software` | string | Application or software used in the interaction. |66| `website` | string | Website or web service, when applicable. |67| `trajectories` | list | Ordered GUI action sequence for the task. |68 69Each `trajectories` item is an action object. Common action fields include:70 71| Field | Type | Description |72|---|---:|---|73| `timestamp` | string | Action timestamp in the source video segment. |74| `action_type` | string | Action category, such as `moveTo`, click, typing, scrolling, or keyboard operation. |75| `grounding_instruction` | string | Natural-language description of the target GUI element or action target. |76| `action_reason` | string | Reason for performing the action. |77| `action_parameters` | object, optional | Grounded parameters such as `point`, `bbox`, `text`, `key`, `start_point`, `end_point`, `direction`, or duration fields. This field is omitted when reliable grounding is unavailable. |78| `core_change_reason` | string | Explanation of the expected or observed GUI state change. |79| `core_change` | string | Description of the main GUI state change after the action. |80| `effects_on_success` | string, optional | Additional note on how the action affects task completion. |81| `finish_reason` | string, optional | Reason the trajectory or task is considered finished. |82| `use_grounding` | boolean | Whether the grounded action parameters should be used. |83 84## Example85 86```json87{88  "video_id": "...",89  "segment_index": 0,90  "task_id": 0,91  "instruction": "Use a component library to find a design element and apply it to an AI app builder.",92  "dense_caption": "...",93  "plan": "step1: ...",94  "platform": "web",95  "software": "Google Chrome",96  "website": "example.com",97  "trajectories": [98    {99      "timestamp": "00:18",100      "action_type": "moveTo",101      "grounding_instruction": "Move the mouse cursor over the target component.",102      "action_reason": "...",103      "core_change_reason": "...",104      "core_change": "...",105      "use_grounding": false106    }107  ]108}109```110 111## Screenshots (part1–15)112 113Screenshot frames are grouped by the same `partN` shards and packed into114uncompressed tar archives (the frames are already JPEG-compressed):115 116```text117screenshots/118  part1/119    wildgui_part1_images_000001.tar120    wildgui_part1_images_000002.tar121    ...122  part2/123    ...124  ...125  part15/126    ...127```128 129Inside each tar, every frame is stored under a per-video directory:130 131```text132{video_id}/screenshot_{MM_SS}.jpg133```134 135`{MM_SS}` is the action timestamp normalized to zero-padded `minutes_seconds`136(e.g. the annotation timestamp `"00:18"` → `screenshot_00_18.jpg`).137 138### Linking an annotation to its screenshot139 140Each trajectory action maps to exactly one frame. Given a record's `video_id`141and an action's `timestamp`:142 1431. Take the `partN` matching the annotation shard (e.g. `wildgui_part3.jsonl` →144   `screenshots/part3/`). For `part16`–`part19`, fetch the frames from145   [`joker-112/WildGUI_Screenshots`](https://huggingface.co/datasets/joker-112/WildGUI_Screenshots) instead.1462. Normalize the timestamp to `MM_SS`: timestamps like `"00:18"`, `"1:05"`, or a147   raw second count are converted to total `minutes_seconds`, each part148   zero-padded to two digits.1493. The frame is `{video_id}/screenshot_{MM_SS}.jpg`, found inside one of that150   part's `wildgui_part{N}_images_*.tar` shards.151 152```python153def timestamp_to_suffix(ts: str) -> str:154    """'00:18' -> '00_18', '1:05' -> '01_05', '78' -> '01_18'."""155    ts = str(ts).strip()156    if ":" in ts:157        total = 0158        for part in ts.split(":"):159            total = total * 60 + int(part)160    else:161        total = int(float(ts))162    minutes, seconds = divmod(total, 60)163    return f"{minutes:02d}_{seconds:02d}"164```165 166A small fraction of annotated frames may be missing from the packed shards167(source frame unavailable at pack time); treat a missing168`{video_id}/screenshot_{MM_SS}.jpg` as a skippable example rather than an error.169 170## Loading171 172Annotations:173 174```python175from datasets import load_dataset176 177dataset = load_dataset(178    "xwm/WildGUI",179    data_files="wildgui_part*.jsonl",180    split="train",181)182```183 184For local files:185 186```python187from datasets import load_dataset188 189dataset = load_dataset(190    "json",191    data_files="/path/to/wildgui_part*.jsonl",192    split="train",193)194```195 196Screenshots (download and unpack one part):197 198```bash199hf download xwm/WildGUI \200  --repo-type dataset \201  --include "screenshots/part1/*" \202  --local-dir ./wildgui203 204for t in ./wildgui/screenshots/part1/*.tar; do205  tar -xf "$t" -C ./wildgui_frames206done207```208 209## Intended Use210 211WildGUI is intended for research on GUI agents, GUI grounding, action prediction, interaction trajectory modeling, and multimodal agent pretraining.212 213The annotations are automatically derived from tutorial videos and may contain noise. Users should validate the data for their own downstream training or evaluation settings, especially when relying on spatial grounding. For actions with `use_grounding: false`, use the natural-language action context but avoid treating removed coordinates or parameters as valid supervision.214 215## Citation216 217If you use this reprocessed annotation release, please cite the Video2GUI paper:218 219```bibtex220@misc{xiong2026video2gui,221  title = {Video2GUI: Synthesizing Large-Scale Interaction Trajectories for Generalized GUI Agent Pretraining},222  author = {Xiong, Weimin and Gu, Shuhao and Ye, Bowen and Yue, Zihao and Li, Lei and Song, Feifan and Li, Sujian and Tian, Hao},223  year = {2026},224  eprint = {2605.14747},225  archivePrefix = {arXiv},226  primaryClass = {cs.CL},227  doi = {10.48550/arXiv.2605.14747},228  url = {https://arxiv.org/abs/2605.14747}229}230```231