⚠️ This code depends on a project structured by the Vantage Platform.
npm install
npm run dev
npm run build- Open
http://localhost:5173/process - Paste your
<vantage-renderer>...</vantage-renderer>block - Pick the local folder that contains the assets
- Download
story.jsondirectly to a folder
- Put your files in
static/data/<slug>/. - Edit
static/data/<slug>/story.json. - Register the story in
src/lib/story-catalog.js:slugtitlestoryPath(for example/data/<slug>/story.json)
sceneSrc: GLTF scene path.cameraPathProjectionId: projection used as the scroll-follow camera path.projections[]: maps/perspective projections and keyframes.ui: page title, intro, credits, and theme colors.
Recorded camera-path behavior is enabled only for projections whose id contains recorder.
If no recorder projection is present, the app uses the fallback sequence camera path.
Example:
{
"id": "recorder",
"projectionType": "perspective",
"focus": true,
"keyframes": [
{
"time": 0,
"position": "...",
"rotation": "...",
"fov": 66,
"far": 1500
}
]
}Context is markdown via context.markdown, usually on camera-path keyframes:
{
"time": 1.2,
"position": "...",
"rotation": "...",
"context": {
"markdown": "Your text."
}
}Optional pacing controls per keyframe:
scrollWeight: slower/faster transition to the next keyframe.pause: hold longer on this keyframe while scrolling.
"cameraControl": {
"mode": "triggered", // instead of always following mouse scroll
"durationMs": 1400,
"easing": "easeInOutCubic"
},