Spatial Narrative Systems / Front-End Prototyping

Into the Poppyverse

About this project Self-initiated case study

Part story map, part multiverse directory, part emotionally unstable control panel. 700+ story fragments, plotted in 3D and read as a place instead of a list.

Focus: interactive storytelling, graph-based browsing, spatial navigation, visual hierarchy, and a data-driven static build.

Role
Design + front-end build (solo)
Type
Self-initiated project
Stack
CSV → Python → static HTML/CSS/JS, GitHub Pages
Year
2024 - PRESENT

"Are Those Kids Allowed Here?" | AREA FIFTY-DONE

—

21 Pilots, Too Many Pilots | BEYOND THE POPPYVERSE

—

Ants & Angels | DESERT ROSEVERSE

—

Being Realistic | PSI-VERSE

—

Someone Is Clearly Screwing Around | INNATELY UNABSOLVABLE

—

You're Nailing It | ULTRAVIOLETVERSE

—

"Are Those Kids Allowed Here?" | AREA FIFTY-DONE — 21 Pilots, Too Many Pilots | BEYOND THE POPPYVERSE — Ants & Angels | DESERT ROSEVERSE — Being Realistic | PSI-VERSE — Someone Is Clearly Screwing Around | INNATELY UNABSOLVABLE — You're Nailing It | ULTRAVIOLETVERSE —

What you're looking at

A fiction archive you don't read. You fly through it.

The Poppyverse is a long-running fictional multiverse: 767 story nodes, a handful of recurring souls who keep showing up across timelines, and 22 branches that occasionally notice they're fictional. It had outgrown every list, index, and wiki I tried to keep it in.

So it stopped being a table of contents and became a place. Every story is a point in 3D space, positioned by what it's actually about. You don't start at page one. You pick a glowing cluster, fly over, and land wherever you're curious.

By the numbers
767
Story nodes
Every point you can land on in the map.
22
Parallel universes
Distinct branches, each its own colour.
1,416
Source text files
The raw archive behind the nodes.
1.56M
Words
Roughly twenty novels’ worth.
9.57M
Characters
Letters, not people.
9.0MB
Plain text
The whole universe, as .txt.
The challenge

“How do you enter a complex world without reading a manual first?”

The problem

Too interconnected for a table of contents. Too unstable for a map.

Alternate timelines, recurring souls, universes that lean on each other’s fourth wall. A list view flattens all of that; a wiki buries it in clicks. Functionally it’s closer to a knowledge graph than a fiction showcase. The dataset just happens to be fictional.

The brief

Navigable without flattening it.

Make the whole archive explorable at a glance: atmosphere without losing legibility, mysterious enough to feel like a universe, structured enough to still be a tool.

How to read the map

Three numbers place every node: when, how far, how weird.

Every story file gets three coordinates. Together they drop it into a cylinder of story-space: how far along the timeline it falls, how far it drifts from the core, and how much reality it bends on the way. Position isn't decoration. Where a node sits already tells you most of what it is.

Linearity  · when
Position along the main timeline, in real days since the earliest cataloged file. Older stories sit near the origin; newer ones move outward.
Range 0–823 days
Maturity  · how far
How far the piece sits from the core timeline. Pure distance out from the spine, not a measure of quality or depth.
Range 0–560
Stability  · how weird
How much dimensional, multiversal, or fourth-wall instability is in play. It wraps around the timeline as an angle instead of climbing in a straight line.
Range 0–360°
A node, opened
#INTERNAL_COMMS

Welcome to the Poppyverse

“Slack, but in zero gravity and with a suspicious amount of oversharing.”

Coordinates
Linearity0.0 days
0–823 days  ·  sits at the origin
Maturity272.8
0–560  ·  about halfway out from the core
Stability
156.6° of 360°  ·  wraps

Reads as: right at the start of the timeline, drifting about halfway out from the core, and 157° around the stability dial. A calm opening node that still bends reality a little.

Sub-parts
#WRECKED_RECRUITS#GENERIC_GENERALS#LOTS_OF_PILOTS #PRIVATE_MATTERS#DID_ENSIGN_UP_FOR_THIS#COLONELS_ON_A_COB TAGGING GHOSTS
Characters
PILOTPERSONNEL
Read more
The multiverse taxonomy

22 branching universes. One hue spectrum.

Every cluster in the archive is a distinct universe branch. Without being planned as a “design,” the palette that tells them apart turned out to be a single unbroken sweep around the colour spectrum.

22 universes one spectrum
Each wedge is one universe, ordered by hue
welcome to the poppyverse

The Poppyverse's front door: workplace comedy, growing pains, and everyday life for pilots and their mechanized partners, before things get complicated.

deeper into the poppyverse

Same multiverse branch, deeper layers, fewer safety rails.

fireweedverse

A universe branch grown in the burn scar of Fire Force: spontaneous human combustion, Infernals, Company 8, and the terrible things that grow from bodies the fire did not finish.

spider lilyverse

A reflective branch strung together with spider lilies, gold repair, and the things PILOT and DONOR keep trying to protect for each other.

desert roseverse

A sun-bleached branch where the desert mirages aren’t the weirdest thing around.

sheep milk latte

Retired PILOT and DONOR run a sheep ranch, vend baked goods at farmers markets, and raise kids on bedtime stories that may violate a federal NDA.

lilyverse

DONOR keeps summoning a hologram with a familiar face and voice, and keeps being surprised by how much it still affects her.

to be hero y

A hero economy runs on belief instead of money, and the newest icon used to be a firefighter with an ordinary apartment and a coffee habit.

area fifty-done

A top secret research base where the hallways forget basic geography, the elevator remembers people, and the incident log gave up trying to make sense of any of it.

apple-y ever after

PILOT and DONOR live ordinary Apple Park tech lives, except reality keeps hairline-fracturing around them into timelines they never expected.

shibuya-verse

A writer publicly interrogates her own relationship to character arcs, identity, and spectacle, live, in manga panel form.

houston houston

The Johnson Space Center Visitor Center has some unfiled anomalies.

in another world

PILOT and DONOR's regular life, if regular life included extradimensional mech children, cemetery-adjacent small talk, and grocery-store readiness.

pelagoverse

A universe branch where PILOT, UNIT, and Sae wash up as marine mammals, adopt a very large stray, and slowly get absorbed into the extended family of an ever-larger sea squirt.

innately unabsolvable

The largest branch of the multiverse, and nobody's fully sure why.

beyond the poppyverse

Where the metaphors go cosmic: souls, stars, and the site's own thesis statements about what any of this actually means.

psi-verse

A crossover fusion with The Darkest Minds: a federal task force hunts psychic kids who'd rather just be left alone. Somewhere between a jailbreak and a eulogy.

ultravioletverse

Live in the shadows, work in the shadows.

the 43

A half-assed, failed fusion attempt with the 86 (Eighty-Six) universe: we tried to reach 86 but only made it halfway through the fourth wall before getting stuck. 86 divided by 2 is 43. Yay math. Welcome to the 43.

things to do in dc

A sightseeing tour of Washington DC where the monuments answer back, the National Mall glows colored light, and the strangest variable is a woman named Iris with a working phone number.

anomalies in pink

Alternate versions of the same mech souls keep meeting each other across the multiverse to compare notes on their pilots.

tout a toulouse

A French aerospace branch where the callsigns are prettier and the radio still crackles with the same old numbers station.

Design iterations

Before the cylinder, other shapes.

The same nodes, arranged every which way. Each of these was a real layout experiment before the current map won out.

Plane

Flattened onto one sheet.

Sphere

Wrapped onto a globe.

Cube

Boxed into a lattice.

CylinderWhere it landed

Time down the axis, drift around it.

Spiral

The timeline coiled into a helix.

Hub

One center, everything spoking out.

Shape of a node

Node shape tells you what kind.

Position places a story, colour sorts its universe, and shape says what type of thing you’re actually looking at. Five node forms, readable at a glance.

Sphere

Story

A regular node: an individual story, the actual narrative content. Click to read.

Ring

Published

A ring around any node means it’s published: a finished story, not a draft.

Cube

Author’s note

Meta commentary from behind the curtain, not story canon.

Pyramid

Image story

Told in manga panels: reference art and panel pages, no story text.

Hexagon

Trailer

A teaser for a branch. Click to watch on YouTube.

Access boundaries

public
  • Cluster dashboards
  • Character directories
  • Story titles & descriptions
  • Relationship maps
  • Navigation & archive metadata
password-protected
  • Full story text

Maturity-axis scores span the full range, including entries that lean more mature. The password boundary is what keeps the page focused on interface and information design, not on the underlying content itself.

How it's built

Not just a viewer. The whole pipeline.

Two spreadsheets go in; a static site comes out. Everything downstream is generated, never hand-edited, so the interface can never drift from the data.

01 Source
Two CSVs
  • SRC_clusters.csv
  • SRC_toc.csv
The single source of truth. Edit a row, rebuild the site.
→
02 Build
build_all.py
  • normalize + fill gaps
  • clean URLs, match clusters
  • generate node IDs
  • compute graph edges
One Python pass turns rows into a whole site.
→
03 Generate
Static output
HomepageAbout2D dashboard3D graph
Plain HTML / CSS / JS. Nothing touched by hand.
→
04 Ship
GitHub Pages
  • static hosting
  • no server
  • no database
A universe that deploys as flat files.
Data model vs. interface
The graph knows more than it shows.

Ratings, coordinates, and connection edges all live under the hood. The card on screen surfaces only what a reader actually needs. That split is most of the design work.

Visual language
One system, 767 nodes.

A colour per universe, a shape per node type, a shared card and navigation, and a lot of iteration spent cutting clutter out of the graph until it stayed readable at scale.

The multiverse, rendered as sky.

The map is a tool: axes, scores, a structure you can actually navigate. But a multiverse should also feel like one. So I fed the archive back into Midjourney and let it render the Poppyverse as pure cosmos, every branch a coloured galaxy, every story a mote of light, no legend required.

Go wander

3D space is a suggestion. Canon is unstable.

Pick a glowing cluster, fly over, and land wherever you’re curious. The map does the rest.