https://framer.com/m/Scenestage-vpFQV4.js
Io / Enhancements / SceneStage
SceneStage
SceneStage puts two glTF models on one WebGL stage and dissolves between them through a mud-normal edge. Camera, lights, each stage’s surface mode, the transition driver, particles and the post pass all come from one JSON schema.
Examples
Live specimens. Camera, lights, both stages, the transition and the post pass come from the AI Schema; the panel carries progress, the two model slots and the debug helpers.
Live
One stage, two models: a duck on stage A and an animated fox on stage B. The buttons write a different AI Schema into the page variable the component is bound to — the transition driver, both surface modes and the particle field are all schema keys. The JSON under the canvas is that same variable.
Props
Eleven controls on the instance panel: progress, the curtain, the sketch toggle, the two model slots and the debug helpers. Everything else — camera, lights, both stages, the transition and the post pass — is set through the AI Schema, listed below the panel rows.
Usage
Guidance carried over from the component definition.
Reach for SceneStage
A hero where one object becomes another: two glTF models, one dissolve, no video file.
Pages that need the same object in several surface treatments — textured, shaded, wireframe, hologram.
Scroll-, click- or hover-driven storytelling: the driver is one schema key, not a rebuild.
Anything that has to degrade gracefully — a fallback image covers readers without WebGL.
Reach for something else
One model the reader turns freely. That is ModelViewer3d; this is a staged transition, not an inspector.
A moving background with no 3D asset. SilkWave or FluidShaderBackground cost a fraction of the payload.
A photo cross-fade. LiquidMaskTimeline and DistortoSlider dissolve images without loading a WebGL stage.
Io — Enhancements
Every specimen above is a live component instance. Colour, type and radius resolve from the project theme tokens.