Technical Process

How variables stack: from pixels to probability

The technical architecture of this deck twists up three distinct, interwoven threads: visual generation, experimental narrative poetry, and interactive state. Each required different approaches to the same fundamental question I've been chasing for decades: How do variables stack?

Visual Generation: The Asymptotic Dance

Midjourney's vast subconscious provided some the conceptual foundation for each card, but as I discovered through hundreds of iterations (which are not, as Lev M might say, curation, more like fishing), AI image generation is beautifully asymptotic. I'd begin with watercolor sketches, feed them into Midjourney with carefully crafted prompts, then iterate from there as you can see in the videos attached to the cards. The first 80% shows quickly enough. Core narrative image, broad compositions, archetypal resonance. But the final 20%, where symbolic precision lives, demands human intervention. This is important for the artists that are grumpy about AI right now. Your skill is needed, your precision and care is needed. Just, sometimes even, in a different thought process order.

The style was gradually applied after I'd mostly roped in the core concept. My workflow became a kind of call-and-response between intention and algorithm. This often amounted to using style references (--sref), custom profiles (--p), and image weights (--iw), rotating through, sometimes nearly a thousand generations to corner the model (between the style, my own learned profile, the source image and the style) into producing what traditional tarot literacy required. The RWS deck stayed at my elbow—my compass for symbolic authenticity.

But here's where it gets interesting: the final pixel-pushing in GIMP wasn't about correcting AI "mistakes." It was about bridging the gap between statistical pattern recognition and lived symbolic understanding. AI excels at broad strokes but struggles with the precise iconographic complexity a single tarot card demands—the hand position that suggests blessing rather than dismissal, the flower that anchors earth energy rather than air.

Narrative Intelligence: Beyond Random Selection

The interactive narrative system was entirely my design, though its implementation reflects a deep collaboration with AI. Rather than simple randomization, I built a quantum state management system that learns from user interactions and creates interference patterns between cards.

The narrative selection algorithm employs weighted probability distributions that evolve based on user history. Each card tracks "archaeology depth"—how often it's been drawn—adjusting narrative weights accordingly. Recent draws create temporal interference patterns, reducing repetition while maintaining genuine unpredictability.

Under the hood, this draws from principles of natural language processing, particularly attention mechanisms and contextual embeddings. When the system selects a narrative, it's not just rolling dice—it's performing cosine similarity calculations across embedded card representations, using attention-weighted context from the user's draw history, considering the card's relationship to recently drawn cards, the user's position preference (past/present/future), and the accumulated resonance patterns.

Each of the three poetic narratives per card (past / present / future) were entirely written with AI, in an intentionally clanker voice i would never use. This was a blind cast into a dark well that brought back some occasionally intriguing fish but, admittedly, a few tires and old shoes were pulled up as well. I left them as Claude Sonnet 3 and 4 wrote them. I wanted to see what AI would do that I could not, where it might exceed me or create, as a medium, something totally different in tenor and thinking. The machine provided linguistic fluency and surprising conceptual connections—"the bird drinks first" wasn't something I'd have written alone. But the symbolic coherence, the way each narrative maps to traditional tarot meanings while remaining digital and contemporary, was an experiment.

State Architecture: Memory and Forgetting

The website itself leverages modern JavaScript's capacity for persistent state management. Using localStorage, the system maintains a state object (i think of it as a 'quanta') that tracks user interactions across sessions. This isn't just convenience but philosophically essential. Tarot reading, like consciousness itself, requires memory to create meaning. It's kinda the point to making this interactive, to use the tools we can.

The TarotState class implements a sophisticated interference matrix, calculating how card types and suits amplify or dampen each other's selection probabilities. Major Arcana create stronger interference fields than Minor Arcana. Opposing suits (Cups/Swords, Wands/Pentacles) generate amplification patterns. This mirrors how transformer architectures weight token relationships in neural networks.

Most of the site's structural code was using Claude's MCP functionality to generate CSS grid layouts, responsive design patterns, modal interactions, etc. But the state management logic, the algorithmic soul of the deck's intelligence, required my own thinking. AI's great at implementing known patterns but struggles with novel conceptual frameworks.

The debug panel reveals the system's inner workings—card draw frequencies, position weights, interference patterns. It's both a development tool and a philosophical statement about transparency. Unlike traditional oracles, this one shows you its reasoning process.

The Human Line

Throughout this process, I've maintained what I call "the human line"—the boundary between what machines can optimize and what requires lived experience. AI provided linguistic fluency, visual concepts, and code implementation. But the symbolic literacy, the narrative coherence, the philosophical framework—these demanded human judgment.

This isn't about human superiority. It's about recognizing that AI's knowledge stems from pattern recognition across vast datasets, while artistic knowledge emerges from direct experience with meaning-making. Both are essential. Neither is sufficient alone.

The result is a deck that asks the same question traditional tarot has always posed—how do we align our Will with reality's patterns?—but through computational metaphors that reflect our current moment. The cards remember your interactions, learn your preferences, create interference between archetypal energies. They become, in a small way, alive.

Example: The iterative process of creating The World card, showing initial AI generation through final symbolic refinement.