feat(spectrum): ship Voyage imagery, hoist mood into frame contract, prune M4-era styles - #37
Merged
Merged
Conversation
…prune M4-era styles M9 second wave — the perception substrate moves into the framework and the first single-world imagery ships on top of it. Voyage imagery (航线): - src/lib/spectrum/three/voyage.ts: PBR capital ship on a fast course — hull-as-equalizer armor bays, selective Bloom, parallax deep-space field (nebulae, dust, star clusters, planet), vacuum-transliterated weather (rain → debris, storm → ion flashes), energy-pulse conduit system - Engine cluster rebuilt to a four-layer optic: faceted gunmetal nozzles with backlit twelve-vane louver grilles and hub, compact cyan-white cores (31% of nozzle diameter), parallel analytic jets (Gaussian radial falloff + continuous axial fade), restrained 1.7x outer envelope with deterministic edge sparks; bass drives jet length ±20%, energy drives core brightness ±15%, beats fire a 100 ms pulse — all attack/release smoothed, no radius pumping, nozzles kept out of Bloom - src/lib/spectrum/voyage.ts + voyage.test.ts: pure unit-tested cruise / engine-response model (33 tests) - examples/voyage-demo: esbuild harness with scene legs, freeze/bloom query switches for deterministic captures (demo:voyage) Perception substrate: - SpectrumFrame/ThreeFrame gain optional mood; SpectrumView owns the single MoodEngine, computed only while a moodAware style is active - mood scene consumes frame.mood; intent echo feeds the HUD Registry prune: - remove wave, spectrogram, loopring, flux, terrain, rings, crystal; bars stays the plain readout/fallback, mood the flagship imagery, auto picks between them App shell: - spectrum palette hue override (settings + Player UI, CSS-hue validated) - SceneRail filter + name/time sort (project.rs exposes modified_ms) - VisualizerOverlay records imagery playback - new builtin style packs: aaa-game-score, eastern-wuxia - examples/armor-material-lab: hull weathering material workbench Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
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.
M9 second wave
The perception substrate moves into the framework, the M4-era style registry is pruned, and the first single-world imagery — 航线 · Voyage — ships on top of it.
docs/roadmap.mdM9 status updated accordingly.航线 · Voyage (new imagery)
src/lib/spectrum/three/voyage.ts— a PBR capital ship on a fast course:src/lib/spectrum/voyage.ts+voyage.test.ts: pure cruise / engine-response model (33 unit tests)examples/voyage-demo: esbuild harness (npm run demo:voyage) with scene legs andfreeze/bloom/atquery switches for deterministic capturesBloom off / on comparison:
Perception substrate (shared, pure)
SpectrumFrame/ThreeFramegain optionalmood;SpectrumViewowns the singleMoodEngine, computed once per frame only while amoodAwarestyle is activeframe.mood(neutral-state fallback); the intent echo feeds the HUDRegistry prune
wave,spectrogram,loopring,flux,terrain,rings,crystalbarsremains the plain readout and universal fallback,moodthe flagship imagery;autopicks between them until affinity selection landsApp shell
settings.spectrum_hue(CSS-hue validated in Rust) + Player UI controlproject.rsexposesmodified_ms)aaa-game-score,eastern-wuxiaexamples/armor-material-lab(npm run demo:armor): hull weathering material workbenchVerification
npm run check— 0 errors / 0 warningsnpm test— 10 files, 104 tests passednpm run build— OKcargo fmt --check,cargo clippy,cargo testinsrc-tauri/— clean