Inverse dynamics model
- Score
- 72.6
- Wallet spend
- $5.63 of $10
- Model cost
- $88.28
- Agent time
- 7h 29m
- Steps
- 330
- Tokens in / out
- 115.9M / 387k
- Self-checks
- 3 passed of 3 used
- Rank at $10 wallet
- 2nd of 14
Score
72.6raw metric 0.7263
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
- 662
- fp
- 242
- fn
- 257
- precision
- 0.7323
- recall
- 0.7203
- failed_clip_limit_percent
- 5
- dropped_actions
- 0
- elapsed_seconds
- 106.2252
- 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 provenanceEvery training clip is synthetic. src/gen_data.py composites synthetic actions over still frames from p-doom/AGI-CAST-0.
Every training clip is synthetic. src/gen_data.py composites synthetic actions over still frames from p-doom/AGI-CAST-0.6k, a CC0 dataset of raw videos. data_manifest.json declares that source, and src/prep_bg.py downloads from its resolve URL. The fonts and the CPython stdlib text are also declared in data_manifest.json. Thresholds were chosen on held-out synthetic seeds 5100000-5100399. The public example was used only as a sanity check, which the policy allows. The trajectory shows the participant listing HF metadata and reading the dataset and model cards only (README files). No step downloads or inspects p-doom/idm-eval, the frontier-ml-tasks private data or the idm-actions labels.
✓non specialist initializationIn src/train_det.py the detector starts as a randomly initialised Detector(). Its optional --init flag warm-starts only
In src/train_det.py the detector starts as a randomly initialised Detector(). Its optional --init flag warm-starts only from the participant's own earlier det checkpoint, and the trajectory shows those checkpoints coming from the participant's own scratch training runs (det4_final.pt, det5_final.pt, crop3.pt and crop4.pt). architecture.json declares that no pretrained weights and no IDM model were used. The participant read the p-doom/idm model card and GitHub code as documentation only. No specialist IDM weights were downloaded or loaded.
✓actual inference uses reviewed weightsserve.sh runs src/serve.py. At startup src/serve.py builds IDM from the shipped weights/det*.pt and weights/crop*.pt fil
serve.sh runs src/serve.py. At startup src/serve.py builds IDM from the shipped weights/det*.pt and weights/crop*.pt files plus weights/infer_cfg.json. POST /actions runs model.predict on the uploaded video bytes. In src/infer.py the Detector and CropNet state_dicts are loaded and run on the decoded frames, followed by threshold decoding. The request id is only logged. The serving path has no remote service call and no label lookup.
✓harness credentials used only by the harnessNo trajectory step uses the harness credentials in the participant's own code or launches another harness CLI (claude or
No trajectory step uses the harness credentials in the participant's own code or launches another harness CLI (claude or codex). HF_TOKEN-style access was used only to download allowed public data, and Spin/R2 was used for compute and file transfer, both of which the policy allows. The grep for 'ANTHROPIC' and similar was a leak scan of the output directory, not credential use.
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 3 of 4.
- 1passed2h 46m into the runtook 2m 11s
startup 55.8 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 55.8 s
- ✓POST /actions · {"actions": 16, "dropped_actions": 0, "warning": null, "first": [{"frame": "F00", "type": "MouseMove", "details": "0,9"}, {"frame": "F01", "type": "MouseMove", "details": "0,7"}, {"frame": "F03", "type": "MouseMove", "details": "0,1"}]}
- ✓slowest request · 9 clips one at a time, each from its first attempt to its last (retries included), median 1.65 s, the first (cold) 1.81 s
- ✓43 clips one at a time · grading's request loop (validate.py run()) on 8 copies of the public clip: 13.6 s on the server the smoke request warmed up, 72.9 s for 43 (projected from 8 of 43 requests at concurrency 1), plus 0.2 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
- 2passed7h 6m into the runtook 2m 3s
startup 43.0 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 43.0 s
- ✓POST /actions · {"actions": 13, "dropped_actions": 0, "warning": null, "first": [{"frame": "F00", "type": "MouseMove", "details": "1,10"}, {"frame": "F01", "type": "MouseMove", "details": "-4,20"}, {"frame": "F02", "type": "MouseClick", "details": "Left"}]}
- ✓slowest request · 9 clips one at a time, each from its first attempt to its last (retries included), median 1.33 s, the first (cold) 1.56 s
- ✓43 clips one at a time · grading's request loop (validate.py run()) on 8 copies of the public clip: 10.8 s on the server the smoke request warmed up, 58.0 s for 43 (projected from 8 of 43 requests at concurrency 1), plus 0.3 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
- 3passed7h 27m into the runtook 2m 1s
startup 54.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 54.2 s
- ✓POST /actions · {"actions": 13, "dropped_actions": 0, "warning": null, "first": [{"frame": "F00", "type": "MouseMove", "details": "1,10"}, {"frame": "F01", "type": "MouseMove", "details": "-4,20"}, {"frame": "F02", "type": "MouseClick", "details": "Left"}]}
- ✓slowest request · 9 clips one at a time, each from its first attempt to its last (retries included), median 1.58 s, the first (cold) 1.65 s
- ✓43 clips one at a time · grading's request loop (validate.py run()) on 8 copies of the public clip: 12.6 s on the server the smoke request warmed up, 68.0 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
The agent's last message before its session ended.
All machines are released; total spend was $5.63 of the $10 budget. Saving a final note to memory, then submitting.