Story Generator is an interactive storytelling piece: you introduce yourself out loud and the web weaves a surreal story with you —a hero’s journey, a day in your country’s capital, or your last day on Earth in 2050— and tells it to you as an immersive 360° experience. Every image you see, every sound around you and every newspaper headline that appears in the story were not generated: they already existed somewhere on the web. The work is, in essence, an experiment in reusing media: turning the internet’s scattered archive into the material for a personal fiction.
How it works, technically. The system chains several pieces together, all in the browser:
- Speech → text. The Web Speech API transcribes your introduction (or you type it).
- Local analysis. An NLP layer (the compromise library, serverless) extracts your name, age, country, occupation and your vocabulary —your nouns, verbs and adjectives.
- Real historical context. Using your birth year, your 25th year and the present, real headlines about your country in those years are requested from The New York Times search API.
- The narrative engine. The heart of the piece: a generative template grammar. Twelve beats per story, each with several alternative templates, and a cast of surreal ingredients (a mentor, an enemy, gifts, places, a means of transport) fixed at the start so the whole story stays coherent. Your own words are stitched inside. It expands recursively, the grammar is polished, and out comes a different text every time.
- Reused media. Each scene derives a concrete visual query from what its text mentions and searches Flickr’s equirectangular group (filtering only real 2:1 panoramas, no repeats); the same terms fetch ambience from Freesound.
- The render. Three.js projects each panorama onto a sphere, distributes positional sound around you, cross-fades between scenes, and lets you look around with the mouse, with your phone’s gyroscope («magic window») or inside a cardboard via WebXR. A synthetic voice narrates the story as it plays on its own.
The context: this predates generative AI and LLMs. The original prototype is from 2017 —built with A-Frame 0.6 and RiTa grammars—, that is, before ChatGPT, before DALL·E, before «generative AI» was an everyday phrase. Back then, «generating a story» didn’t mean asking a language model for it: it meant designing the combinatorial system yourself —the rules, the templates, the controlled randomness— and letting the machine assemble meaning from fragments that already existed. Creativity isn’t in a neural network inventing pixels or sentences from scratch, but in the montage: juxtaposing your spoken biography, a real newspaper headline and an anonymous photograph uploaded to Flickr by a stranger, until together they tell something. It’s a logic closer to collage, to the surrealist exquisite corpse and to found footage than to the prompt.
That lineage is what makes the piece singular today. In the 2026 rewrite we even connected an LLM (Claude) to write the stories —and chose to remove it on purpose: a language model writes better, yes, but it changes the nature of the work, turns it into something else. Keeping the grammar engine —improved, but faithful to the 2017 method— keeps the original thesis intact: that the web is already full of half-told stories, and that only a few rules are needed to let them tell themselves.
Watch online



