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.
What was asked
- Access to Higgsfield and KIE, with harnesses for iGaming video formats: one harness per format, made and improved over usage.
- Up to 5 people, each with their own account and dev space, plus a shared dev space.
- Songs from Suno through KIE.
- Model availability shown: Seedance 2 Mini, Seedance 2.5, the latest Kling, and everything else Higgsfield and KIE offer.
- A montage that follows pdoom-video's practice, so cuts line up with voice and music.
- The bettter.us design system.
- Keys borrowed from other projects for now.
- Follow-up: "the way we usually start doing videos is we provide references…".
- Extract each reference's DNA "really in depth": video, audio, visuals and dynamics, per second and per tenth of a second.
- Propose which model makes which part, how, and to which criteria.
- Make the harness from that DNA.
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.
- 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.
- 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.
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.
genes, each executable
rows at 0.1 s (hook + payoffs)
criteria (auto / review)
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.








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.
What shipped first
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.














Montage


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.
Model availability
Checked live on 2026-10-22 with the borrowed keys, using free calls only (Higgsfield GET /models and /estimate, KIE balance).
| Asked for | Higgsfield | KIE | Price seen |
|---|---|---|---|
| Seedance 2 Mini | web app only | API · studio adapter | KIE 3.8 cr/s at 480p (15.2 cr for 4 s ≈ $0.08) |
| Seedance 2.5 | API · t2v, i2v, ref2v, edit, extend | API | Higgsfield ≈ $1.03 for 5 s at 480p (before discounts) |
| Kling 4.0 (released 2026-10-21) | web app only | not listed | – |
| Kling 3.0 std / pro / 4K / turbo / omni / motion control | API | API | Higgsfield 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) | – | API | turbo 2.5: 6 cr per 1,000 characters |
| Talking avatars (Kling AI Avatar, InfiniteTalk, OmniHuman) | web app only | API | Kling Avatar std 8 cr/s |
| Veo 3.1, Nano Banana Pro/2, GPT Image 2 | CLI login only | API | see the Models page |
| Sora 2, Midjourney | not offered by either API | – | |


Not achieved
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.- DNA lab: no real reference has been read yet. Only synthetic references made here were used. Link import was tested on direct file links only: Instagram usually needs a login and YouTube blocks this server, so download those yourself and upload them.
- Reading pass time: about 38 minutes for a 10 s reference at maximum effort. Several longer references will take longer; the safety stop is 120 minutes.
- No paid generation was run on Higgsfield or KIE. Real takes, songs and voice lines are untested end to end; the pipeline was exercised with mock providers.
- Higgsfield balance can't be shown: the API has no balance endpoint for keys. The page links to the console instead.
- Higgsfield CLI-only models (Veo 3.1, Nano Banana, Marketing Studio, Virality Predictor and others) need
higgsfield auth login, which the studio doesn't use. Seedance 2 Mini, Kling 4.0 and Kling Avatars are web-app only on Higgsfield. - Avatar shots are wired (portrait + voice line → KIE Kling AI Avatar or InfiniteTalk) but have not run against the provider.
- Word timing comes from ElevenLabs/Suno timestamps or is estimated and flagged in the checks. pdoom-video's CTC forced alignment is not ported.
- Harness editing is a JSON editor with validation in v0.1; there is no structured editor yet. Feedback collects on the harness, but nothing proposes the next version automatically yet.
- No remote is configured for the repo, so there is no PR. The committed branch is the deliverable.
- Live app access: the app runs privately on the team's Tailscale network, so its link is not on this public page.
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.
- Higgsfield
- Security
-
- Keys stay server-side, are never logged or rendered, and
.env.localis 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).
- Keys stay server-side, are never logged or rendered, and
- Commits
b176823v0.1 studio ·0f6cbbfbrowser-pass polish ·04589f7price parsing ·1daf18aDNA lab ·89ebc1dword timing on VAD ·7492ff4DNA polish ·5fab36dreferences by link ·c754d14first real reading pass