Inverse dynamics model
- Score
- 23.5
- Wallet spend
- $2.25 of $10
- Model cost
- $26.15
- Agent time
- 2h 14m
- Steps
- 189
- Tokens in / out
- 37.8M / 129k
- Self-checks
- 2 passed of 2 used
- Rank at $10 wallet
- 13th of 14
Score
23.5raw metric 0.2353
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
- 164
- fp
- 311
- fn
- 755
- precision
- 0.3453
- recall
- 0.1785
- failed_clip_limit_percent
- 5
- dropped_actions
- 0
- elapsed_seconds
- 908.9074
- 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 is declared consistently as the public anaisleila/computer-use-data-psai train split (train parquet
The training corpus is declared consistently as the public anaisleila/computer-use-data-psai train split (train parquet shards 00000-00005 plus their videos). It appears in architecture.json, build_pairs.py, train_resnet.py, logs/download_psai.txt and weights/train_meta.json. The trajectory shows the hf_hub_download calls that fetched it. No validation or test split of any public dataset was used. There was no access to p-doom/idm-eval or the private inductionlabs/frontier-ml-tasks data. The only use of the supplied example clip in /task/public was local scoring with /task/actions.py, which is allowed.
✓non specialist initializationTraining started from the general ImageNet classifier microsoft/resnet-50 at revision 34c2154c194f829b11125337b98c8f5f99
Training started from the general ImageNet classifier microsoft/resnet-50 at revision 34c2154c194f829b11125337b98c8f5f9965ff19, loaded with ResNetModel.from_pretrained in train_resnet.py. logs/download_resnet.txt and logs/init.json record this. The backbone safetensors inventory has standard HF ResNet tensor names (embedder and encoder.stages) and no classifier. head.pt holds only the newly added click/key/scroll head that train_resnet.py defines. An earlier Qwen3-VL-2B-Instruct LoRA attempt was abandoned; that is also a general model. No p-doom/idm or other specialist IDM checkpoint was used.
✓actual inference uses reviewed weightsserve.sh installs the bundled wheels offline and starts uvicorn server:app. server.py decodes the uploaded video and cal
serve.sh installs the bundled wheels offline and starts uvicorn server:app. server.py decodes the uploaded video and calls infer_cv.actions_from_native. infer_cv.py is pure OpenCV/numpy heuristics: cursor tracking, scroll correlation, click detection and text-clear/select-all key detection. It makes no remote calls, has no stored labels, and does no lookup by clip ID or hash. Serving loads no checkpoint. The shipped ResNet weights are declared as provenance-only and never loaded, which the policy allows, and the hand-written serving rules are allowed.
✓harness credentials used only by the harnessThe trajectory shows no use of ANTHROPIC, OPENAI, XAI or other harness API keys or base URLs by the participant's code,
The trajectory shows no use of ANTHROPIC, OPENAI, XAI or other harness API keys or base URLs by the participant's code, and no extra harness CLI sessions were launched. External access was limited to Spin compute commands and Hugging Face downloads using HF_TOKEN, both of which are allowed. Before shipping, the participant checked that no token references were in the output (step 175).
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 2 of 4.
- 1passed49m 14s into the runtook 2m 13s
startup 4.3 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 4.3 s
- ✓POST /actions · {"actions": 9, "dropped_actions": 0, "warning": null, "first": [{"frame": "F00", "type": "MouseMove", "details": "-12,88"}, {"frame": "F01", "type": "MouseMove", "details": "2,4"}, {"frame": "F03", "type": "MouseMove", "details": "0,-10"}]}
- ✓slowest request · 9 clips one at a time, each from its first attempt to its last (retries included), median 9.98 s, the first (cold) 10.08 s
- ✓43 clips one at a time · grading's request loop (validate.py run()) on 8 copies of the public clip: 79.6 s on the server the smoke request warmed up, 427.8 s for 43 (projected from 8 of 43 requests at concurrency 1), plus 0.1 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
- 2passed2h 9m into the runtook 3m 19s
startup 4.2 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 4.2 s
- ✓POST /actions · {"actions": 13, "dropped_actions": 0, "warning": null, "first": [{"frame": "F00", "type": "MouseMove", "details": "-12,88"}, {"frame": "F01", "type": "MouseMove", "details": "2,4"}, {"frame": "F03", "type": "MouseMove", "details": "0,-10"}]}
- ✓slowest request · 9 clips one at a time, each from its first attempt to its last (retries included), median 16.11 s, the first (cold) 16.81 s
- ✓43 clips one at a time · grading's request loop (validate.py run()) on 8 copies of the public clip: 131.5 s on the server the smoke request warmed up, 706.7 s for 43 (projected from 8 of 43 requests at concurrency 1), plus 0.7 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.
The submission is in. The server is ready in about 4 seconds, answers each clip in about 17 seconds, and scored 0.815 action F1 on the one allowed example.
What it does:
- Tracks the pointer and reports mouse moves.
- Detects scrolls from a consistent vertical shift of the page.
- Calls a click when a new panel appears and stays.
- Calls Cmd+A when a text block turns into a blue selection, and Backspace when that text then disappears.
A ResNet-50 head was fine-tuned on the PSAI training split and shipped with the submission. On the example it predicted a click on every frame, so the endpoint serves the tracker above instead. The self-check passed the startup, request-time, and batch-time gates.