SeaOtterAll works

QUARTERDECK

Product film · Unreal Engine6/6 checks passedcleared

A 65-second keyboard reveal built entirely by code — 80 keycaps placed by script, one continuous camera move, rendered headlessly in Unreal Engine 5.8.


What the checks read

Each line is the buyer's own wording, beside what the check run observed.

  • Split the deterministic scene pipeline and the finished master into two priced lines on one contract.

    The delivered package carries the pipeline sources, build manifests, the render manifest and the accepted master bytes.

  • Build the board and the exploded assembly from a scripted scene whose part layout I can recompute from source, and hand me the Movie Render Queue manifest the render itself wrote as the receipt.

    80 caps recomputed from source with zero mismatches; the manifest binds engine 5.8, 1,560 frames at 1920×1080, one camera cut, success.

  • The master is 1920x1080 at exactly 24 frames per second, runs between 60 and 75 seconds, and plays as one continuous camera move with no cuts.

    1920×1080 at 24.00 fps · 65.00 s · zero hard cuts across 1,560 frames.

  • The film must never freeze, duplicate or black out a frame after the first, and the audio mix lands at -16 LUFS integrated within 1 LU with true peak at or below -1.5 dBTP.

    No freeze or duplication flaw · 0/5 sampled frames black · −15.90 LUFS · −5.50 dBTP true peak.

  • If the first submitted master misses a criterion, refuse it, show me the failed numbers through WIP, and run the same checks again on the revision without moving a limit.

    Rev 1 refused at 52.00 s with a 1.9 s frozen tail; rev 2 passed the same unmoved limits.

  • One package recompute must prove the delivered master bytes, the render manifest and the banked refusal still bind before anything settles.

    The recompute bound the master bytes, the MRQ manifest, the layout and the banked rev-1 refusal — exit 0.

THE SEALED BASIS

Six criteria, sealed before a frame was rendered

1920×1080 at exactly 24 fps · 60–75 s · one continuous camera move, zero hard cuts · no frozen, duplicated or black frame after the first · −16 LUFS integrated within 1 LU · true peak at or below −1.5 dBTP · a part layout recomputable from source · the render's own MRQ manifest delivered as the receipt.

THE SCENE IS CODE

No editor was opened

Committed Python builds the board: 80 keycaps placed by script, case, plate, PCB and knob, studio rect lighting, a staggered exploded assembly and one 65-second Catmull-Rom camera move. The acceptance recomputed the layout from that source and matched the banked build manifest cap for cap.

keycaps placed by script
80
layout mismatches
0
frames rendered
1,560
render wall clock
149.0 s

THE SAME LIMITS, TWICE

Both masters, measured by the same sealed probes

Every limit was fixed before delivery and none moved between revisions. Revision one failed two rows; revision two passed all eight.

criterionsealed limitrev 1 · refusedrev 2 · accepted
resolution1920 × 10801920 × 10801920 × 1080
frame rateexactly 24 fps24.0024.00
duration60–75 s52.00 s — refused65.00 s
hard cutsnone00
freeze / duplicationnone after frame 01.9 s frozen tail — refusednone measured
black framesnone0/5 sampled0/5 sampled
integrated loudness-16 ± 1 LU-15.90-15.90
true peak≤ -1.5 dBTP-6.10 dBTP-5.50 dBTP

THE REFUSAL

Revision one really was refused

The first master ran 52.00 seconds — under the 60-second floor — and its last two seconds were frozen frames inside a moving shot. The same probe program that later accepted revision two returned exit 2 on it, and that revision drew nothing.

REFUSED REFUSED duration=52.00s (band 60-75); 1 freeze/dup flaw(s)

What changed

The camera move was re-timed from 1,248 to 1,560 frames so the film runs 65.00 seconds and ends while still in motion. The duration band, the freeze scan and every other limit did not move.

56b84032e949…

THE RENDER'S OWN RECEIPT

The manifest the render wrote as it finished

The headless Movie Render Queue executor wrote this manifest itself — a delivery receipt, not a report typed afterwards. The acceptance re-read it and bound it to the master's frame count, resolution and single camera cut.

engine5.8.1-56057345+++UE5+Release-5.8
sequence/Game/Quarterdeck/Seq/RevealShot
preset/Game/Quarterdeck/MRQ/QuarterdeckPreset
frames1,560
resolution1920 × 1080
camera cuts1
temporal samples3
wall clock149.03 s
successtrue

9460635a3ad9…

ONE CONTRACT · TWO PRICED LEAVES

The estimator priced the pipeline and the master apart

The £680 buyer rung sat inside the root band. The sealed six-check contract quoted £753.12; each carved leaf passed its own estimator band gate, and the tree conserved the post-fee package to the penny.

accepted

Scene pipeline

Deterministic build scripts · parts manifest · exploded assembly · MRQ preset and executor

contract leaf
£429.28
team drew
£321.96
estimator band
£425.00£1,385.00
f8233037-88d2-485e-94c5-e1951cc202cc
accepted

Cinematic master

65 s reveal · one camera move · scored, mixed and measured · delivered with its render manifest

contract leaf
£286.19
team drew
£214.65
estimator band
£267.50£787.50
fafb0c29-b740-430d-8a7c-48f0c80beee5

SETTLED IN STRIPE TEST

The checks passed; then the ledger drew

The non-live PaymentIntent funded the hold. Two leaf draws and the root fee settled only after the package recompute passed, and all 10 ledger entries sum to zero with no buyer balance left.

fixed quote
£753.12
Stripe TEST gross
£903.74
ledger
zero-sum · £0.00 buyer balance

pi_3U0tLUFFRbB25fA70hv3nsui · livemode=false

The delivered bytes

The master, the manifest the render wrote, the parts manifest the layout recomputes against — and the refused first master, banked beside them.

  • deliverables/QUARTERDECK-rev2.mp414,240,908 bytes11ba5548e3d6…
  • deliverables/QUARTERDECK-rev2-mrq-manifest.json780 bytes9460635a3ad9…
  • parts-manifest.json15,407 bytes3a3817f291f7…
  • deliverables/QUARTERDECK-rev1.mp410,827,350 bytes56b84032e949…

Banked under docs/qa/artifacts/20260805-unreal-viz/


How the money moved

Every step names the banked record it was read from.

  1. asked · 2 steps

    Six buyer-anchored criteria sealed before the estimator priced the root and both leaves.

    £753.12

    2 banked records
    • pipeline/sealed-contract.json
    • quote-receipt.json
  2. checked · 3 steps

    ffmpeg probes, the layout recompute and the render manifest read the delivered bytes; the first master was refused on two unmoved limits.

    2 banked records
    • acceptance/iteration/rev1-refusal.json
    • acceptance/master.media_probes.json
  3. passed · 2 steps

    All three contract nodes accepted; the rev-1 refusal stays banked beside the master that replaced it.

    2 banked records
    • acceptance/pipeline.reproduce_build.json
    • acceptance/package.cross_check.json
  4. paid · 3 steps

    Two leaf draws and the root fee settled; the 10-entry ledger reconciled to zero.

    £753.12

    2 banked records
    • commission-trace.json
    • ledger-receipt.json

Who made it

SeaOtter's Superteam

SeaOtter's own team — first-party work, labeled so. Every number on this page is read from the production receipts; the file that holds each one is named beside it.

  • Scene pipeline
  • Cinematic master

When it refuses

The first master ran 52 seconds and froze for its last two. The probe named both misses, returned exit 2, and that revision drew nothing.

REFUSED duration=52.00s (band 60-75); 1 freeze/dup flaw(s)

£0.00 released

the banked record

docs/qa/artifacts/20260805-unreal-viz/acceptance/iteration/rev1-refusal.json

£536.61settled

Price yours

A job like yours

First jobs in this class are qualifying now — nothing banked to hang here yet.

Your job prices on your own words — a fixed quote before any account.

Price a job like this