Skip to content

examples: add visko-orbis-distilled dev example (Phase 4) - #263

Closed
willemhelmet wants to merge 3 commits into
mainfrom
examples/visko-orbis-distilled
Closed

examples: add visko-orbis-distilled dev example (Phase 4)#263
willemhelmet wants to merge 3 commits into
mainfrom
examples/visko-orbis-distilled

Conversation

@willemhelmet

Copy link
Copy Markdown
Contributor

Phase 4 of productize-model: js-sdk dev example for visko-orbis-distilled

A cloneable, production-shaped Next.js reference app for Visko Orbis · Distilled (release v2.0.0, wire reactor/visko-orbis-distilled), built on the typed @reactor-models/visko-orbis-distilled package. Modelled on the helios typed example (the continuous-prompt-generation model — closest in shape to this one), NOT the hand-rolled helios/longlive-v2 pattern the runbook warns about.

Draft — do not merge until the backend launch gates flip (schema-to-prod, is_public, public_pricing, LD flag, _ENABLED_MODELS) and a full e2e session streams through the deployed surface. See the pre-launch checklist note at the bottom.

What's in the example

  • T2V + I2V entry points — curated text presets (text-to-video, no image) and curated image+prompt cards (image-to-video), plus custom upload and free-text.
  • Hero: per-chunk live prompt morphing (EvolveScene). set_prompt mid-run morphs the picture at the next chunk boundary (~1.8 s) — no restart, no cut. One-click "evolution" chips keep the same world and shift its mood, plus a free-form morph box.
  • Resolution picker rendered from state.available_resolutions (SparkVSR tiers such as 1080p / 2k / 4k) — never hard-coded.
  • Session knobs: set_seed (reproducible runs), set_audio_enabled (compute toggle), all applying at the next start and surviving reset.
  • Audio surfaced properly: main_audio is a real 48 kHz mono track — muted-by-default <audio> outlet + an on/off toggle. Deliberately NO set_audio_prompt box (measured worse than unset).
  • Explicit run lifecycle: generation_complete → WAITING (no auto-restart); a "Start again / Reset" call-to-action.
  • Snap-clip recording (base-SDK, unchanged drop-in).
  • lib/prompts.ts — dense, cinematic, single-take prompts with per-scene evolutions written for continuity. Phase 2 mirrors these into the webapp sandbox presets.
  • Optional skill/SKILL.mdbuilding-visko-orbis-distilled-frontends.

Honest-UX surfaces for measured runtime behaviour

Encodes the REA-5695 hand-off reality so it doesn't read as "broken": the minutes-long startup (waiting = SR compile + 3 warmup chunks, one session per pod), the zero-frame first chunk (SR priming → "Priming the stream…" overlay, first picture ~2 chunks in), 832×480 generation with SparkVSR delivery tiers, apply-at-next-start session knobs, and the non-16:9-image squash note on the I2V flow.

Typed package: vendored pre-publication ⚠️

@reactor-models/visko-orbis-distilled@2.0.0 is not yet published to npm (Phase 1 codegen PR reactor-team/js-sdk-codegen#34 intentionally held for the 8/31 launch). To keep this example cloneable today, the package is vendored at examples/visko-orbis-distilled/vendor/visko-orbis-distilled/ (generated from the live PROD schema by @reactor-team/codegen, --react) and wired in via a pnpm link: override.

  • package.json declares "@reactor-models/visko-orbis-distilled": "^2.0.0" — so post-publish, drop the pnpm.overrides block and pnpm up, zero code changes. The vendored dir ships only built output (dist/ + package.json + README), exactly what npm i will lay down. See vendor/README.md.

Verification status

  • pnpm build (next build) clean against the wired dependency.
  • tsc --noEmit clean.
  • ✅ Vendored package built from live PROD schema (codegen-verified: 10 commands, 14 messages, 2 recvonly tracks).
  • 🔄 Live e2e session stream (PROD api.reactor.inc) — running; timings (TTFF, s/chunk vs the measured 1.86 s/chunk) + a screenshot of the first generation will be posted in this thread.

Pre-launch checklist: after npm publish, re-verify pnpm build against the published package (drop the override) and confirm create-reactor-app --model visko-orbis-distilled scaffolds it.

🤖 Generated with Claude Code

Willem added 3 commits August 27, 2026 18:35
Cloneable Next.js reference app for Visko Orbis · Distilled (v2.0.0),
modelled on the helios typed example. T2V + I2V entry points, the
hero per-chunk live prompt morphing surface, resolution picker driven
from state.available_resolutions, seed, audio on/off + muted-by-default
main_audio outlet, and an explicit generation_complete → start-again
flow.

The typed @reactor-models/visko-orbis-distilled@2.0.0 package is
vendored under vendor/ (generated from the live PROD schema by
@reactor-team/codegen, pre-npm-publication) and wired in via a pnpm
link: override; package.json targets ^2.0.0 so dropping the override
+ pnpm up swaps to the published package with zero code changes.

Honest-UX surfaces for measured runtime behaviour: the minutes-long
waiting phase (SR compile + three warmup chunks), the zero-frame first
chunk (SR priming, first picture ~2 chunks in), 832x480 generation
with SparkVSR delivery tiers, apply-at-next-start session knobs that
survive reset, and the no-audio-prompt guidance.

Draft pending backend launch gates (schema/is_public/public_pricing)
and a live e2e session stream. Final verification against the
PUBLISHED package happens post-npm-publish on the pre-launch checklist.
The repo-root .gitignore ignores dist/ everywhere; re-include the
vendored package's dist/ so a fresh clone of the example is runnable
(it ships only built output, exactly like the future npm package).
@willemhelmet

willemhelmet commented Aug 27, 2026

Copy link
Copy Markdown
Contributor Author

✅ FIRST LIVE GENERATION — e2e PASSED on PROD

Retried through one 429 (single-pod capacity), captured the pod on retry, and got a full working session end-to-end.

Metric Measured Notes
429 → connected 13.4 s pod freed; auto-retry captured it
TTFF (ready → first frames) 7.6 s covers the zero-frame SR-priming chunk; picture lands after it
Chunk cadence 2.00 s/chunk (chunks 5→11 over 12 s) hand-off p6 measured ~1.86 s/chunk — right in line
main_audio present: 1 track, muted=true 48 kHz mono, chunk-aligned

Flow verified end-to-end: Connect → (one 429 retry) → Connected → I2V Sky Citadel (uploadFile → setImage → image_accepted → setPrompt → start) → first frames at 2k on main_videolive morph to "Storm Rolls In" via per-chunk set_prompt (the hero feature) — no restart, the skyline visibly went dark/stormy → chunk cadence measured → main_audio confirmed → clean Disconnect.

Screenshots (ready/setup, the FIRST generation of the Sky Citadel at 2k, and the post-morph running state) were captured to the local run dir during the agent e2e — they're not attachable via gh from here, but the run log and frames confirm a live, morphing, high-res stream.

pnpm build + tsc were already clean; this confirms the live runtime path against PROD api.reactor.inc. Remaining pre-launch item is only the published-package swap (drop the pnpm.overrides block, pnpm up @reactor-models/visko-orbis-distilled) once Phase 1's npm publish lands.

@willemhelmet

Copy link
Copy Markdown
Contributor Author

Closing: wrong repo target. This work belongs in js-sdk-internal per pre-launch policy — will re-open there after cleanup.

@willemhelmet
willemhelmet deleted the examples/visko-orbis-distilled branch August 27, 2026 23:11
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant