## Inspiration
We wanted to build something that felt less like a tech demo and more like walking through a dream. Inspired by Jorge Luis Borges' idea of paradise as a library, and a wry Dickens line about books whose "backs and covers are by far the best parts," we imagined an archive suspended in a cosmic void — where forgotten knowledge doesn't just sit on shelves, it drifts, dissolves, and eventually returns to light.
What it does
The Last Library takes the visitor through four narrative chapters:
- The Vault of Echoes – towering stone archways and hundreds of floating codices lit by warm lantern glow
- The Grand Unbinding – gravity loosens, books drift apart, pages release glowing glyphs into the air
- The Nebulae of Memory – all structure dissolves into a cosmic particle field of unwritten thought
- The Final Folio – a single glowing grimoire remains; interacting with it reveals the closing line: "Knowledge does not perish. It only waits to be remembered."
Rather than a static scene, it's built as an emotional arc — order, dissolution, and quiet resolution.
How we built it
- Three.js for the core 3D scene and rendering
- InstancedMesh to efficiently render hundreds of floating books at 60fps
- Custom GLSL vertex/fragment shaders for the particle-dissolve effect, computing curl-noise turbulence and radial glow falloff
- THREE.CatmullRomCurve3 for a cinematic, scroll-driven camera path with subtle mouse parallax
- Web Audio API for a generative ambient soundscape and interaction chimes
- A custom lightweight bloom/grain post-processing pass
Challenges we ran into
Balancing atmosphere with performance was the biggest challenge — getting hundreds of instanced books and particle shaders to run smoothly at 60fps without a heavy postprocessing library. We also iterated a lot on the pacing of the four chapters to make sure the transitions felt emotional rather than mechanical.
What we learned
How much a simple narrative arc (beginning → dissolution → resolution) changes the feel of a 3D scene compared to a single static environment, and how far custom shaders can go for atmosphere without needing external postprocessing libraries.
What's next
Adding more interactive "chapters," letting visitors read fragments of the dissolving books, and experimenting with WebGPU for higher particle counts.
Built With
- gemini
- glsl
- google-ai-studio
- javascript
- three.js
- web-audio-api
- webgl
Log in or sign up for Devpost to join the conversation.