Baked 3D Story Site

A three-page 3D story site with baked light, scroll stops that loop and a shader cut between pages, in one offline file.

Baked 3D Story Site

Build an offline 3D story website with Blender-baked lighting, scroll stops and diagonal shader transitions. Two complete three-page examples show different materials and light: Skerrow assembles a stone lighthouse at night, reveals its Fresnel lens and follows its signal to dawn; Quillmere assembles a daylight glasshouse, opens a flower with refracting dew and moves through a shower to a rainbow. Each site is one HTML file under 5 MiB. The page synthesizes optional sound, off until the visitor enables it; the demonstration films are silent.

How it works

  1. Plan the three views of the object and the copy for each page

  2. Choose the lighthouse or greenhouse content as a starting point, then change the world, pages, sound and HTML; rebake only when geometry or lighting changes

  3. Build the single file, run the desktop and phone check and open every screenshot

Frequently asked questions

Does it need a model key or paid calls?

No. It builds and checks locally with Node.js 22.14 and Chrome, and calls no model or API. Blender 5.2, ffmpeg and cwebp are needed only to bake new geometry or light.

Do I need Blender?

Not for either bundled example or for changing copy, timing and colours: both include the required baked geometry and lighting. Blender is needed to change geometry or lighting. The recipes share modelling, baking and export helpers; the content sets its own cameras, shaders, tone mapping and sound.

Why does the page not scroll?

Wheel, touch and keys drive a virtual position with inertia that settles on fixed stops, so each view holds still long enough to read, and the last page loops back to the first. Arrow keys, Space and Page Up/Down move one stop; the page names on the left jump to a page. The cut between pages is a shader effect, not a scroll. In the preview on this page, scrolling over the frame moves the site, not this page.

Can I use my own object?

Yes, by writing a content directory and a Blender recipe for it. The engine accepts custom page counts, stops, transition colours, tone mapping and sound states. The same checker reads each site's page contract. The two examples are starting points, not a general model importer; loading a ready-made GLB is not supported.

What are the limits?

Verified on macOS Chrome with desktop and simulated phone viewports; Safari and real iOS/Android devices remain untested. Sound paths and switches pass automated checks but have no listening acceptance. Skerrow has thick fog during part of the dawn descent and a simplified ferry. Quillmere's daylight glass is subtle, the flower view has a fixed rendered background, and its rain uses line segments, ripples and glass streaks without droplet collisions or splashes. Reduced motion softens animation rather than freezing it.

Are the brands real?

No. Skerrow and Quillmere, their copy and contact addresses are fictional examples. Their geometry, lighting, shaders and optional sound are built in code.