◆ Vortex CCReport · 2026-10-22
DNA labShippedScreensMontageModelsNot achievedVerification
Branch chief/44ef3393b2 · 9 commits · updated with the DNA lab

Vortex Creative Center v0.1:
the first interface

A studio for iGaming video formats, for up to five people. Each format is a harness: a versioned spec the team runs, rates and improves. Shots come from Higgsfield and KIE, songs from Suno via KIE, and the montage follows the cut rules of mexicat/pdoom-video. Built in the bettter.us design system.

Every format a harness. Every cut on the beat before the word.

01

What was asked

02

DNA lab: references → DNA → harness

Every format now starts from references. Upload videos or paste links. The studio measures each reference to the tenth of a second, saves a measured DNA at once, then runs a Claude reading pass on the team subscription that reads every frame and number. One click turns the DNA into a harness.

01
Measure
Free and local.
  • Cuts to the frame from two detectors, with flashes kept apart.
  • Light, colour, motion and grade.
  • Beats and downbeats; cuts on the beat versus 2,000 random cuts.
  • Every word, with speech timing fixed against voice detection.
  • A 10 fps hook sheet and per-shot strips.
02
Measured DNA
Genes, structure, every second, the hook at 0.1 s, a model plan, criteria and a valid harness draft, from the numbers alone. Saved as v1 the moment measuring ends.
03
Claude reading pass
Claude Code on the team subscription, never the API. It reads every sheet and strip, frame-checks the cuts and measures what it sees.
  • Every second of every reference; every 0.1 s of hooks and payoffs.
  • Visual, audio and edit.
  • A model per part, criteria and compliance.
  • harness.json.
04
Harness
The DNA becomes a new harness in your space, or the next version of one. It keeps its link back to the references, model plan and criteria behind it.
03

The first real reading pass

Run end to end through the app on a synthetic 10 s test reference made here: a 250X slam, a climb, a BIG WIN card with a flash, motion, an end card, a TTS announcer, and 120 BPM. No real ad was used. It took about 38 minutes on the team subscription (Opus 5.5, xhigh). The init event reported apiKeySource: none.

24
genes, each executable
93
rows at 0.1 s (hook + payoffs)
25
criteria (auto / review)
9
compliance flags

Its compliance catch went straight into the studio. It flagged "just like that" after a win as implying winning is easy (UK CAP/BCAP), so our Big Win harness now says "What a moment." Read the full DNA it wrote (86 KB, Markdown) · the test reference.

DNA v2 from the reading pass: one-liner, energy curve and structure
DNA v2 (Claude): one-liner, energy per second and structure. v1 is the measured DNA.
Genes
Genes, each marked measured or observed/inferred, with its evidence.
Hook at 0.1 second resolution
The hook at 0.1 s. Each tenth records the frame, the text size as a share of frame width (27 → 43 → 59 → 75 → 90 %), the camera, the loudness and spectrum, and the voice.
Model plan per part
Model plan per part: final and draft model, mode, settings, why, a prompt skeleton in the measured visual language, and cost. For a type-only hook it chose a still animated in the edit over a video model.
Criteria
Criteria a result must meet, with the values measured in the reference and how each is checked.
Harness draft from the DNA
The harness draft, validated against the schema, one click from being a harness.
Measurement timeline at 0.1 seconds synced to the video
Measurements: the reference on its 0.1 s grid, synced to the video. Yellow marks cuts, white the flash, then luma, motion and loudness curves, beats, and the words heard.
Hook sheet: first three seconds at 10 frames per second
The hook sheet the reading pass reads: the first 3 s at 10 fps, timestamped.

Measured against ground truth

  • Cuts: 5 of 5 and 6 of 6 known cuts found to the exact frame on two synthetic references. White flashes were classified as flashes, not cuts.
  • Beats: within 8 ms at 96, 128 and 140 BPM.
  • Words: Whisper's raw starts ran up to 0.6 s early. Mapped onto voice-activity regions, "Play" moves from 5.96 s to 6.66 s, where it was spoken.
04

What shipped first

01
Five seats, two kinds of space
The first visitor creates the admin account; the admin invites four more with one-time links. Everyone gets a private dev space and shares one team space. Harnesses are forked into a private space and published back as the next version.
02
Six iGaming harnesses
Big Win Reaction, Crash Multiplier Rush, Slot Launch Trailer, Bonus Feature Explainer, AI Presenter, Theme Song Lyric Video. Each defines sections, shot prompts, draft and final models, a Suno plan, a voice plan, montage numbers and compliance rules (18+, banned phrases).
03
Every model, honestly labelled
324 catalog entries across both providers, checked live. Each model is labelled ready in the studio, ready via API, needs a Higgsfield CLI login, or web app only. Prices come from the providers' own estimate endpoints and price tables.
04
Price, then confirm
Every paid call (shot, Suno song, voice line) opens a dialog that prices it and shows the balance. Nothing runs without that confirm. Takes, tracks and voice lines can also be uploaded instead.
05
Montage on pdoom-video's rules
Beats are analysed with librosa on the same ffmpeg clock as the render. Cuts land on the last beat before each phrase and never inside a word; payoffs land on downbeats. Captions light up word by word. Ten rule checks run on every plan.
06
Render with QA built in
ffmpeg renders frame-exact cuts with karaoke captions, the 18+ badge and the legal end card. Music ducks under the voice, loudness is normalised to −14 LUFS / −1 dBTP, and BT.709 is tagged. Each render writes a cut sheet; shots without a take render as labelled slates.
05

Screens

Captured with browser-use in local Chrome from a mock-provider demo (no paid calls). The demo users are “Demo Producer” and “Demo Editor”. The model screens come from a live check against the real providers.

Studio home in the shared space: harness cards on dark green, productions, providers, team activity
Studio home (Shared): harness cards, productions, provider health, team activity. The switch at top left changes between My space and Shared.
Harness page for Big Win Reaction with section strip and shot list
A harness: section strip (payoffs in pink), shots with prompt templates, models per shot. Fork to my space, Edit spec (each save is a new version).
Harness models, music, voice, montage rules, compliance, versions and learnings panels
The rest of the harness spec: models, Suno V6 plan, voice, montage numbers, compliance, inputs, versions and learnings from runs.
Production shots tab with prompt, model picker and take preview
Production · Shots: edit the prompt, pick a model (draft or final), Price & generate, choose between takes, or upload your own clip.
Production audio tab with Suno music form and voice lines
Production · Audio: Suno V6 / V6_MINI / V6_WILD through KIE (2 tracks per call, beat analysis on arrival) and ElevenLabs voice lines with word timestamps.
Render tab with draft video and QA checks
Production · Render: draft 540×960 or final 1080×1920. Loudness, true peak and length checks, plus the plan checks at render time.
Team page with five seats, invites and account
Team: five seats, one-time invite links (admin only), and each person's drafts and productions.
New production brief form
New production: the harness's inputs fill its prompts, music style and voice lines. Choose My space or Shared.
Montage rules page
Montage rules: the 14 rules every harness inherits, each with its source in pdoom-video.
Sign-in screen
Sign in. Before the first account exists, the same layout shows “Set up the studio”.
Studio home on a phone
Phone, 390 px
Production montage on a phone
Production on a phone
bettter.us homepage used as the design referencebettter.us numbered section with cards
Design reference, bettter.us: floating white nav bars with the segmented switch, numbered uppercase heads with a dash, dark-green bands, tall numbered cards, yellow kinetic captions. Univers LT Pro is licensed, so Archivo stands in.
06

Montage

Montage timeline with waveform, beats, shots, words, captions and phone animatic
One clock. From top: waveform (pink = music ducked under the voice), sections, beats (white = downbeats), shots with cuts in yellow, voice words, caption chunks. Right: a phone animatic that plays the chosen takes against the music with word-by-word captions inside the 9:16 safe zone, then the rule checks and per-production overrides.
Draft render (540×960, 12.00 s) from the mock demo: green “mock take” slates stand in for generated shots, the music is a synthetic 128 BPM track, and the voice is placeholder tones. The real parts are the cut timing, the karaoke captions, the 18+ badge, the legal end card, the ducking and the loudness.
Cut sheet: frames before, at and after each cut
Cut sheet: the frame before, at and after every cut (pdoom-video's QA practice).

Rules taken from pdoom-video

  • One clock. The analyser decodes through ffmpeg so it and the render agree; this removes the ~23 ms MP3 encoder offset pdoom warns about.
  • Shots are anchored to their phrase by text or line, never by a stored time.
  • The cut goes on the last beat at or before the phrase's first word (±20 ms), never inside a word.
  • Hard cuts; payoffs and section changes land on downbeats; sub-cuts stay at least 0.3 s apart.
  • A word lights up exactly at its start; a dim preview may appear up to 0.4 s early.
  • Renders are tagged BT.709 with faststart and get a cut sheet.

Added for short-form ads: hook inside 2 s, voice lines starting just after a beat, music ducked 8–12 dB, −14 LUFS, 9:16 platform safe zones.

07

Model availability

Checked live on 2026-10-22 with the borrowed keys, using free calls only (Higgsfield GET /models and /estimate, KIE balance).

Asked forHiggsfieldKIEPrice seen
Seedance 2 Miniweb app onlyAPI · studio adapterKIE 3.8 cr/s at 480p (15.2 cr for 4 s ≈ $0.08)
Seedance 2.5API · t2v, i2v, ref2v, edit, extendAPIHiggsfield ≈ $1.03 for 5 s at 480p (before discounts)
Kling 4.0 (released 2026-10-21)web app onlynot listed–
Kling 3.0 std / pro / 4K / turbo / omni / motion controlAPIAPIHiggsfield std 5 s: 6.72 cr ($0.42) without sound; KIE 720p 5 s: 70 cr ($0.35)
Suno V6 · V6_MINI · V6_WILD–API (V4–V5.5 discontinued)12 cr ($0.06) per call, 2 tracks
ElevenLabs voice (word timestamps)–APIturbo 2.5: 6 cr per 1,000 characters
Talking avatars (Kling AI Avatar, InfiniteTalk, OmniHuman)web app onlyAPIKling Avatar std 8 cr/s
Veo 3.1, Nano Banana Pro/2, GPT Image 2CLI login onlyAPIsee the Models page
Sora 2, Midjourneynot offered by either API–
Models page spotlight cards with live access labels
Models · “Asked for first”: every route to each model and whether the studio can call it now (live check).
Models page full table
Models · all 324 entries, filterable by kind, provider and “callable only”. Highlighted rows have a studio adapter.
08

Not achieved

KIE is effectively blocked. The borrowed AgentRadar key KIE_API_KEY is rejected (401). The studio falls back to the older backup key in the same file, which works but holds 8.13 credits: less than one Suno song (12) or one 4 s Seedance 2 Mini draft (15.2). Music, voice and every KIE video model will be refused until the team's own key is in .env.local.
09

Verification

Tests
npm test: 21/21 pass, including the DNA lab (synthetic reference with known cuts, mock reading pass, link import, privacy). 10 montage tests cover beat grid, cut before phrase, never inside a word, captions, sentence-break chunks, ducking, payoff downbeats, every seed harness planning cleanly, and price parsing. 7 end-to-end studio tests use mock providers, a real ffmpeg render and librosa.
Beat accuracy
Known-tempo tracks at 96, 128 and 140 BPM: max error 7.3–8.0 ms, mean ~4 ms against the true grid (20 ms cut tolerance).
Render
Final 1080×1920: h264 yuv420p, BT.709 tagged, 30 fps, 12.00 s, −14.3 LUFS, −1.8 dBTP. Draft: −14.3 LUFS, −1.1 dBTP.
Browser
browser-use in local headless Chrome:
  • Login works, and the price dialog priced a shot and showed the balance.
  • A render started from the UI, and the page refreshed itself when the render finished.
  • No horizontal overflow at 390 px on 11 pages.
Live providers
Free calls only:
  • Higgsfield /models: 88 models.
  • Higgsfield /estimate: Seedance 2.5 and Kling 3.0 priced.
  • KIE balance: 8.13 credits.
  • A throwaway local instance was used and then deleted.
Security
  • Keys stay server-side, are never logged or rendered, and .env.local is git-ignored.
  • Passwords are hashed with scrypt; session cookies are HttpOnly.
  • Other users' private media returns 404, path traversal is refused, and cross-origin POSTs get 403 (all covered by tests).
Commits
b176823 v0.1 studio · 0f6cbbf browser-pass polish · 04589f7 price parsing · 1daf18a DNA lab · 89ebc1d word timing on VAD · 7492ff4 DNA polish · 5fab36d references by link · c754d14 first real reading pass