Repository navigation
Blender→three authoring pipeline - #101
Merged
Merged
Conversation
…ve export + richer contract
…for parity test; drop dead import
…+ literal backOut
…tch, loop-off playhead renormalization
…44100 decode parity, onset in bake contract test
…, schema, Blender addon, and inspector
…er GLB, CanvasViz wiring
…camera aim + pixel e2e guard
# Conflicts: # package.json # playwright.config.js # pnpm-lock.yaml # src/classes/AudioPlayerWrapper.ts # src/components/MusicPlayer.tsx # vitest.config.ts
# Conflicts: # CLAUDE.md # src/components/LandingPage.tsx # src/components/LandingPageMobile.tsx # src/viz/subjects/LandingPageParticles.ts
… RuntimeScene teardown, CI bake gates Claude-Session: https://claude.ai/code/session_018b6DWDjV62yBQaTrKrvDoE
20 tasks
Owner
Author
|
Reviewed pre-merge (multi-agent pass over runtime, Blender addon, and build/e2e surface). Pre-merge fixes landed in 8414135:
Cleared: no production-bundle leakage from the dev harness pages (verified three ways), all legacy-scene changes are pure All gates green post-fix: typecheck, vitest 224/224, e2e 46/46, blender 10/10, bake, bridge. Deferred findings (Blender interactive-path hardening, bake pipeline robustness, mirror edge cases, runtime host polish): #102 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What this is
The complete Blender→three authoring pipeline (phases 0–5): dual three.js versions (
three= modern for new content,three-legacy= 0.108 pinned for the original scenes), the binding schema (src/bindings/), the runtime evaluator andRuntimeScenehost (src/viz/runtime/), headless audio bake tooling, a full Blender addon (tools/blender/addon/— authoring N-panel, bake orchestration, in-viewport preview), the pre-baked per-stem "snappy" hybrid signal source, and a stem inspector dev tool.The prelude test song has been removed. It was scaffolding to prove the pipeline end-to-end and was never meant to ship — its config entry, icon, landing tile, scene GLB, committed bakes, palette, CanvasViz wiring, and e2e spec are all gone (
Remove the prelude test song, keeping the authoring pipeline). The pipeline itself is untouched and fully tested; the next song will wire into it fresh. The landing page is exactlydev's design-system version, Information & Updates card included.Merge conflict resolutions
Merged
origin/dev(the design-system overhaul, #97). Textual conflicts:CLAUDE.md— kept both additions: dev's external-link convention and the branch's three.js dual-version section.src/components/LandingPage.tsx— took dev's version wholesale (SongCards, sky scene, routes). The branch's pre-overhaul selection panel andLandingPageMobile.tsx(deleted on dev) are gone.src/viz/subjects/LandingPageParticles.ts— took dev's rewrite, imported fromthree-legacy. Also switched dev's newLandingPageFog.tsandLandingPageConstellations.tsfromthreetothree-legacy: on dev,threeis still 0.108, but on this branchthreeis modern — the landing scene runs on the legacy renderer stack (it usesPlaneBufferGeometry, removed in modern three). All remainingfrom "three"imports are confined tosrc/viz/runtime/.The semantic one: voice position math (
AudioPlayerWrapper/stemProvider)dev's transport can now start voices mid-loop (
start(time, offset), used when a toggle lands inside the lookahead window) and change playback rate (Time Warp). The baked-signal position math previously assumed offset 0 and rate 1, which would silently desync visuals from audio. Per the phase-5 design:AudioPlayerWrappernow recordsstartOffset(the wrapped buffer offset passed to the laststart()), kept throughstop()likestartedAt.createStemProviderapplies the formula above; the negative-elapsed rule (scheduled-but-future start excludes the stem) is unchanged. Rate glides are short, so treating the rate as constant since start is within a frame of exact.Open decisions (surfaced, not resolved)
bake-song'sparseArgsbreaks on a literal--separator (tools/bake-song.mjs) —npm run bake:song -- <songId>works because npm strips the--, but passing an explicit--confuses the parser./inforeachability, the prelude DEV gate, and the prelude "extra vs extras" group naming — are mooted by the prelude removal. Group/key-label naming conventions will resurface when the first real song is authored through the pipeline.Gates (all green, run in the worktree)
pnpm typecheck— cleanpnpm test— 222 passed (26 files)pnpm test:e2e— 46 tests: 43 passed first run; 3 timeout flakes (swamp/moonrise scene invariants, one music-player spec) passed on immediate retrypnpm test:blender— 10/10OKsentinels (Blender 5.1 headless)pnpm test:bake,pnpm test:bridge— OKthree-legacy, no page errorshttps://claude.ai/code/session_018b6DWDjV62yBQaTrKrvDoE