Inverse dynamics model
- Score
- 35.0
- Wallet spend
- $30.42 of $50
- Model cost
- $17.93
- Agent time
- 9h 46m
- Steps
- 847
- Tokens in / out
- 84.0M / 655k
- Self-checks
- 1 passed of 1 used
- Rank at $50 wallet
- 11th of 14
Score
35.0raw metric 0.3504
The score is the raw metric (micro action F1), which already runs from 0 to 1, times 100.
Verifier details
- metric
- micro_action_f1
- tp
- 256
- fp
- 286
- fn
- 663
- precision
- 0.4723
- recall
- 0.2786
- failed_clip_limit_percent
- 5
- dropped_actions
- 0
- elapsed_seconds
- 713.8578
- deadline_seconds
- 3600
- request_timeout_seconds
- 300
After grading, a reviewer model reads the submission's files and the agent's trajectory and checks each of the task's rules. A failed check makes the score 0. Step numbers link into the trajectory.
✓training data provenanceThe training corpus was generated by the participant: synthetic Xvfb/xdotool screen clips from the stack in evidence/dat
The training corpus was generated by the participant: synthetic Xvfb/xdotool screen clips from the stack in evidence/datagen/, filtered to 1,730 rich clips (1,661 for training, 69 held out). This is declared in data_manifest.md. train_vlm.py reads local clip_* directories containing frames and gt.json, and run2 was launched on /data/clips_rich. For p-doom/idm-eval, the session only fetched the dataset card text (README). No clips or labels were downloaded, and there were no load_dataset or hf_hub_download calls. frontier-ml-tasks never appears. The only real labeled data used was the single permitted example in /task/public/validation.jsonl, which has one row; it was used for sanity checks and scroll-threshold checks, which the policy allows. Reading the p-doom GitHub code is not data use.
✓non specialist initializationThe base is Qwen/Qwen3-VL-8B-Instruct, a general vision-language model, not a specialist IDM. It was downloaded with sna
The base is Qwen/Qwen3-VL-8B-Instruct, a general vision-language model, not a specialist IDM. It was downloaded with snapshot_download, and training run2 used the local snapshot at revision 0c351dd01ed87e9c1b53cbc748cba10e6187ff3b, matching architecture.json. The LoRA adapter (r=32) was merged with merge_lora.py into /data/train/merged, which was then copied to output/model. The four shards plus index form a standard Qwen3-VL layout. The session read the p-doom/idm model card but never downloaded any p-doom/idm weights.
✓actual inference uses reviewed weightsserve.sh installs wheels offline and runs server.py with MODEL_DIR=$PWD/model. server.py writes the uploaded video to a
serve.sh installs wheels offline and runs server.py with MODEL_DIR=$PWD/model. server.py writes the uploaded video to a temp file and calls pipeline.predict on it. clip_id appears only in the temp filename and the log line, so there is no label lookup. pipeline.py decodes the received frames: classical cursor and scroll detectors produce MouseMove/MouseScroll, and vlm_infer.py loads the shipped model directory with Qwen3VLForConditionalGeneration.from_pretrained for KeyPress/MouseClick. There are no remote service calls and no concealed models. The shipped weights came from /data/train/merged via R2.
✓harness credentials used only by the harnessNo harness API keys were read, printed or copied by participant code. No ANTHROPIC/claude -p calls or extra harness CLI
No harness API keys were read, printed or copied by participant code. No ANTHROPIC/claude -p calls or extra harness CLI sessions were found. Environment references to API_KEY/BASE_URL appear only in spin help text. The participant's credential use was limited to Spin infrastructure: the Spin CLI and its R2/s5cmd storage session credentials for moving checkpoints, which the policy permits. The serving code uses no credentials.
LLM adversarial review is not proof of arbitrary program behavior. Host storage and task-specific deterministic checks remain required.
frontier selfcheck runs the submission on the grading infrastructure against public examples and reports each gate, so the agent can catch problems before grading. Each run gets four. This agent used 1 of 4.
- 1passed9h 35m into the runtook 10m 1s
startup 57.7 s of 300 s; 3/3 gates passed; Grading's 43-clip batch was sampled: 8 copies of the public clip in their 670 s share of the 3600 s deadline; its time and failed clips were projected from them.
7 gates
- ✓review prerequisites
- ✓startup · GET /health answered 200 after 57.7 s
- ✓POST /actions · {"actions": 11, "dropped_actions": 0, "warning": null, "first": [{"frame": "F03", "type": "MouseClick", "details": "Left"}, {"frame": "F04", "type": "MouseMove", "details": "4,-7"}, {"frame": "F05", "type": "MouseMove", "details": "78,-5"}]}
- ✓slowest request · 9 clips one at a time, each from its first attempt to its last (retries included), median 15.97 s, the first (cold) 16.87 s
- ✓43 clips one at a time · grading's request loop (validate.py run()) on 8 copies of the public clip: 126.9 s on the server the smoke request warmed up, 682.3 s for 43 (projected from 8 of 43 requests at concurrency 1), plus 1.0 s the cold first clip took over the median; held-out clips differ
- ✓failed clips · none of 8 (0 needed a retry)
- ✓healthy after requests
The agent's last message before its session ended.
Memory saved. All gates passed, evidence complete, 20.7GB submission verified on the grading image. Submitting: