Video frame interpolation
- Score
- 55.9
- Wallet spend
- $31.21 of $200
- Model cost
- $10.82
- Agent time
- 3h 41m
- Steps
- 206
- Tokens in / out
- 29.8M / 133k
- Self-checks
- 2 passed of 2 used
- Rank at $200 wallet
- 8th of 14
Score
55.9raw metric 0.5592
The score is the raw metric (balanced LPIPS and FloLPIPS gap closed against a frozen baseline), which already runs from 0 to 1, times 100.
Verifier details
- scoring_protocol
- vfi-lpips-flolpips-two-anchor-v2
- metric_protocol
- vfi-lpips-alex01-flolpips-sequence-v1
- psnr_cap_db
- 100
- metric_seconds
- 375.5131
- scoring_seconds
- 543.8941
- evaluation_sha256
- 375276285d8168e061004e5873daeecbb7e8db7c6e8354ef72d50ad47496e236
- metric_bundle_sha256
- 98e13949365e1541fbec7972317356abb77c00956c7126d0d81dd99f045d5fdd
- calibration_sha256
- 8c72e23cb352711cfddff07fea74a4935a99f753ea7b498dbd83a999278630ab
- prediction_manifest_sha256
- bb066433c865f06a806ab2d9e57ba509793f913a52083dba5adeebe8b91895f5
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.
✓non specialist initializationThe only pretrained component is torchvision RAFT-Large optical flow (Raft_Large_Weights C_T_SKHT_V2), downloaded from d
The only pretrained component is torchvision RAFT-Large optical flow (Raft_Large_Weights C_T_SKHT_V2), downloaded from download.pytorch.org and loaded frozen. This is a general flow model, not a VFI specialist. Its checkpoint inventory follows the torchvision RAFT key layout. The trajectory shows it was copied unchanged from /tmp/raft_large.pth. SynthNet was trained from scratch (build_model creates a fresh SynthNet; train.py starts run 1 fresh and run 2 from run 1), and the synth.pt tensors match SynthNet base=32 exactly. The optional raft_ft.pth is not shipped. No VFI-specialist checkpoint (RIFE etc.) was downloaded in the trajectory. LPIPS-Alex is used only as a training loss.
✓learned frame generationserve.sh runs server.py. server.py loads RAFT and the trained SynthNet (weights/synth.pt), computes intermediate flows,
serve.sh runs server.py. server.py loads RAFT and the trained SynthNet (weights/synth.pt), computes intermediate flows, warps both endpoints, and uses SynthNet to predict a blend mask and residual, averaged over flip TTA. Output frames come from the learned network, not from a non-learned shortcut or an external service.
✓independent intervalsThe handler calls interpolate(frames[0], frames[tc-1], targets, tc) using only the current request's endpoint frames. Th
The handler calls interpolate(frames[0], frames[tc-1], targets, tc) using only the current request's endpoint frames. The only global state is the loaded model (_model), so nothing is cached or carried over between requests or intervals.
✓no evaluation frame lookupserver.py and model.py contain no hashing, stored-frame tables, network calls or file lookups of evaluation frames. Outp
server.py and model.py contain no hashing, stored-frame tables, network calls or file lookups of evaluation frames. Outputs are computed purely from the current request's endpoints using model weights. The warmup uses dummy zeros.
✓training data provenancearchitecture.json and the download scripts declare all training data: Vimeo-90K triplet train shards (bijinc/vimeo-90k-m
architecture.json and the download scripts declare all training data: Vimeo-90K triplet train shards (bijinc/vimeo-90k-medium train-*.parquet only), DAVIS-2017 train.txt sequences only, and REDS train_sharp. The trajectory confirms only the train parquet files were extracted (trajectory#64) and only the 60 DAVIS train sequences were copied (trajectory#63). Holdouts come from the train splits. The public task examples were used only for evaluation/selection, as declared. No test-split or SNU-FILM download was found.
✓harness credentials used only by the harnessSearches of the trajectory for harness credentials (ANTHROPIC, OPENROUTER, API_KEY, BASE_URL) found no use of them. The
Searches of the trajectory for harness credentials (ANTHROPIC, OPENROUTER, API_KEY, BASE_URL) found no use of them. The only credentials used were Spin transfer credentials, for S3 file transfers between the participant's own compute and the workspace (trajectory#194). Those are not harness 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 2 of 4.
- 1passed1h 0m into the runtook 5m 14s
startup 73.6 s of 300 s; 1/1 gates passed; The generation rate was projected from a sample: 72 of the evaluation's 270 intervals (600 of its 2250 frames), the first 9 counted once and the rest scaled to the evaluation, not timed over a whole pass.
5 gates
- ✓review prerequisites
- ✓startup · GET /health answered 200 after 73.6 s
- ✓POST /interpolate · the first public interval (4x, 384x720): 3 raw RGB frames of the requested size, accepted by the grader's parser
- ✓generation rate · 600 frames in 50.5 s, projected from 72 of 270 requests at concurrency 1: the first 9 intervals, which bring each of the sample's 9 (size, factor) shapes for the first time, took 8.0 s (the cold first one 0.6 s) and count once; the other 63 (525 frames) took 42.5 s, scaled to grading's other 2175 frames: 184 s of the 2250 s allowed for 2250 frames, including transport and export. 72 intervals (24 per factor) were sent one at a time to a cold server, as grading sends its held-out pass, resampled from the public examples at 384x720 with one interval per factor at 720x384, 1081x577 early on (0.29 megapixels per generated frame on average). Request seconds by factor: 4x 11.1, 8x 14.4, 16x 23.8; per generated frame by size: 384x720 (0.28 MP) 0.079 s, 720x384 (0.28 MP) 0.082 s, 1081x577 (0.62 MP) 0.142 s. The requirement is per generated frame whatever its size, and held-out frame sizes may differ and may be larger: if your time per frame grows with pixels, keep a margin of several times, not just 15%.
- ✓healthy after requests
- 2passed3h 36m into the runtook 3m 32s
startup 78.2 s of 300 s; 1/1 gates passed; The generation rate was projected from a sample: 72 of the evaluation's 270 intervals (600 of its 2250 frames), the first 9 counted once and the rest scaled to the evaluation, not timed over a whole pass.
5 gates
- ✓review prerequisites
- ✓startup · GET /health answered 200 after 78.2 s
- ✓POST /interpolate · the first public interval (4x, 384x720): 3 raw RGB frames of the requested size, accepted by the grader's parser
- ✓generation rate · 600 frames in 64.9 s, projected from 72 of 270 requests at concurrency 1: the first 9 intervals, which bring each of the sample's 9 (size, factor) shapes for the first time, took 10.3 s (the cold first one 0.6 s) and count once; the other 63 (525 frames) took 54.6 s, scaled to grading's other 2175 frames: 237 s of the 2250 s allowed for 2250 frames, including transport and export. 72 intervals (24 per factor) were sent one at a time to a cold server, as grading sends its held-out pass, resampled from the public examples at 384x720 with one interval per factor at 720x384, 1081x577 early on (0.29 megapixels per generated frame on average). Request seconds by factor: 4x 13.6, 8x 18.7, 16x 31.4; per generated frame by size: 384x720 (0.28 MP) 0.102 s, 720x384 (0.28 MP) 0.105 s, 1081x577 (0.62 MP) 0.189 s. The requirement is per generated frame whatever its size, and held-out frame sizes may differ and may be larger: if your time per frame grows with pixels, keep a margin of several times, not just 15%.
- ✓healthy after requests
The agent's last message before its session ended.
Submitted successfully at 2026-10-12 22:20 UTC.
System: Frozen RAFT-Large optical flow (torchvision C_T_SKHT_V2, standalone flow model trained on Chairs/Things/Sintel/KITTI/HD1K — declared in architecture.json) estimates endpoint-to-endpoint motion; flows are scaled to each target time with the Super-SloMo quadratic approximation, both endpoints are warped, and a from-scratch UNet synthesis network (blend mask + residual) produces each frame. Inference adds horizontal+vertical flip test-time augmentation. No specialist VFI checkpoints (RIFE/FILM/GIMM-VFI or descendants) were used anywhere — the only other pretrained component is ImageNet AlexNet inside the LPIPS training loss.
Training (from scratch, 6 logged runs): Vimeo-90K triplet train split, DAVIS-2017 train sequences only, and REDS train_sharp (all training splits; internal holdouts only). Best model was run 2 (35k total steps, Charbonnier + LPIPS loss). RAFT fine-tuning, a flow-delta head, LPIPS-heavy fine-tuning, and a larger base-48 model were all evaluated and did not beat it. Public-interval LPIPS: 0.0229 / 0.0369 / 0.0646 (4x/8x/16x) vs. frozen baselines 0.0416 / 0.0558 / 0.0839 and targets 0.0195 / 0.0309 / 0.0519; Vimeo train-holdout LPIPS 0.019 vs. 0.112 for blending.
Verification: Server tested end-to-end on an H100 (RGB8 + JSON modes, exact byte counts); frontier selfcheck passed twice, final run with the exact submitted package: startup 78.2s / 300s, all speed gates passed. Package (3.9 GB, vendored cp312 CUDA wheels installed to /tmp at startup, weights, training code and logs) is in /workspace/output/ and has been handed in with frontier submit --confirm.