A Daydream for Libby
A generative fairy tale book made with love and code.
— By genlight
A Daydream for Libby (ADFL) is a longform generative art collection exploring fairy tales, imagination, story-telling, and childhood wonder. It's a wish and a dream for my kids - that they be filled with curiosity, agency, and meaning throughout their lives. It's also an attempt at a new, digitally-native, collectively experienced book which fuses one of the world's oldest and innate artforms (storytelling) with its newest technologies (generative art and blockchain).
I started working on this collection nearly a year ago, before my daughter could speak. One of my favorite hobbies was - and still is - to follow her around and imagine what she might be thinking, particularly when she's lost in a picture or a book. ADFL is primarily made for her and every output had to pass the test of: “Would I hang this in her room?”.
This collection is not just a daydream, but an infinite daydream. Each piece comes with a 'warp machine.' Although each piece has a canonical aspect ratio (600x700), with the click of a button, your piece becomes fully responsive - filling your entire browser and changing, growing, and adapting the story. As you adjust your browser size you can watch empires rise, fall, crumble, and rise again - towers grow taller, armies sweep by, and story lines change. Each piece isn't just a single page, but rather an entire world cradled by your machine. Practically, this also means you can generate prints and digital pages of any size and shape.
I've rewritten the code entirely more times than I can count. In the process the pieces drastically changed from sweeping, large landscapes that rendered in 3-4 minutes to smaller, more dynamic pieces with surreal details, algorithmic stories and instant renders.
There are 4 major compositions - a traditional Storybook format (with either a single kingdom or a diptych) inspired by a page in a traditional fairy tale, a Flowbook format inspired by traditional generative art compositions / flow fields, and a Tinyworld format inspired by modern animated fairy tales.
You'll find all types of details present in these pieces - see if you can spot them all: guard towers, pyramids, crenelated towers, covered towers, connecting ropes, aqueducts, soldiers, trees, villages, birds, grass, crops, tiny globes, flags, and more.
Most palettes are based on my daughter's favorite colors. Pulled from ice cream flavors and candy and dresses that she loves. I can't tell you how much joy it brought me to see how bright and colorful her life must be. The names of each palette also form a letter to Libby when unscrambled.
I don't love traits. I think they make it difficult to holistically appreciate a piece. But practically, I'd like to make it easier to collect multiple pages and form your own mini book. There are 6 'exposed' traits:
your piece can be new or old; older pieces have a texture overlay and are rarer, just like only a few fairy tales survive over time
there are 14 palettes, ranging from monochrome to 10 different colors in one
there are 3 core types of stories: Storybook, Flowbook, or Tinyworld
your piece can have dense, traditional crosshatching or sparse, windblown hatching
there are 8 different topographical types, including 3 equal cities, 1 city + farmland, etc.
a small number of pieces come with 2 pages in the form of a diptych
Each story is written by me and then augmented by randomness. Some are tiny pre-written poems, some are algorithmic ad-libs, and some respond to the visual itself. There is no LLM or AI present.
The text of each story is small on purpose. I don't want to constrain or impose my imagination upon yours. The small text forces you to create your own story before reading mine.
Since starting this collection, Libby has learned to talk. I love how surreal and observant and random her comments are and have modeled many of the stories off of these moments.
Traditional fairy tales were passed down orally and changed each time they were told. Modern fairy tales are the same every time you watch / read them. With ADFL I've tried to blend the two via an immutable blockchain record of a story that is slightly different based on your warp machine setting.
ADFL was initially inspired by Thomas Cole's series of paintings in 1833, The Course of Empire which charts the cyclical nature of an Empire from The Savage State to The Pastoral State to The Consummation of Empire to Destruction, and finally, Desolation. Although each piece was made with a specific cycle in mind, it's up to you to decide where yours falls. ADFL also draws on Lord of the Rings, Where's Waldo, Avatar the Last Airbender, and many other childhood favorites.
Both the text and visuals were developed in a similar manner - starting with a rigid, 'perfect' output and then aggressively adding increasing levels of randomness. Care was taken to make sure that each piece works individually without invalidating the broader world and story.
The piece is built entirely in p5js, renders in less than a second, and is responsive to nearly any size and dimension. Here's how the average, Storybook style piece is made:
- Divide the canvas into 1, 2, or 3 segments - each segment can have varying levels of terrain ranging from flat to mountainous, based on Perlin noise.
- Give each segment a city, pyramid, or nothing at all.
- Layer on additional details ranging from armies, towns, walls, aqueducts, trees, etc.
- Write the story based on a combination of random and composition-influenced elements
- Potentially add an 'aged' texture via thousands and thousands of slightly transparent bezier lines.
The piece itself is also littered with easter eggs and interactivity:
- The tiny birds present in many pieces are actually 3 small flower petals from one of the first algorithms I ever wrote.
- You can remove the color, texture, and story of each piece by pressing G, F, and H respectively; I hope that some of you then use these blank canvases to paint or draw or add new elements with a loved one.
- You can enter Warp Mode by pressing D and download a high resolution image by pressing A or B.
There will be 548 pieces - the age (in days) of Libby when I started working on ADFL. A number of pieces will be reserved for myself and gm. studio in lieu of royalties.
I believe very strongly in sharing outputs broadly. Only after posting something do I know what it needs. It's a strange feeling. This piece in particular has been shaped heavily by that process and I'm grateful to the hundreds of people who provided helpful feedback and encouragement. A special shoutout to foxwizard, shima, cyphr, remnynt, 113, snofro, mctoady, irrev, pixelwank, octal, duke, circolors, and many others in gmDAO who have generously provided feedback and encouragement on the project for quite some time.
I'm very proud of this project. I think it's unique, filled with love, and will stand the test of time. But above all else, when I finally showed Libby the outputs, she said “Ohh I want to fly there daddy.” So as far as I'm concerned, it's already accomplished everything I wanted.