Design Projects Coding Projects Experiments / Arts Writing About Resume / CV ↗

The City Tarot

“Narrativizing Toronto through critical archetypes.”

An interactive installation where drawing a Tarot card generates an AI narrative that connects an archetypal symbol to the lived reality of Toronto. Cities are complex systems of visible infrastructure and invisible forces — Tarot gives those forces a language.

Built with Lingbo (Alan) Tang under Prof. Nusrat Jahan Mim at the Daniels Faculty, University of Toronto.

Timeline
Sep 2025 – Dec 2025
Role
Full-stack developer
Collaborator
Lingbo (Alan) TangSupervisor: Prof. Nusrat Jahan Mim
Stack
Next.js 14 (App Router)TypeScriptTailwind CSSOpenAI API
The City Tarot reading page: a fable beside a route drawn on Toronto’s street network
The City Tarot: a card reading page on the finished site.

01.The Problem

Traditional data visualisation fails to capture the emotional and human cost of urban policy. Statistics about “housing starts” or “transit delays” sanitise lived experience, stripping away the narrative of struggle, hope and systemic violence.

Cities are complex systems of visible infrastructure and invisible forces.
The CN Tower against a blue sky

Why Tarot? A 78-card deck that emerged in 15th-century Italy as the parlour game tarocchini, Tarot works not as a predictor of a fixed future but as a tool for pattern recognition: a semantic container that lets people externalise internal narratives through universal symbols.

A spread of Tarot cards on red cloth
Illustrated The Tower and The Fool cards

The historical deck, and our own illustrated Tower and Fool.

The cards do not only predict the future; they reveal the architecture of the present.

02.Why Tarot for City Narratives

1 · Archetypal recognitionUniversal symbols make abstract urban phenomena emotionally legible. Cities speak in archetypes.
2 · Narrative over numbersCharts flatten complexity. Tarot holds contradictions.
3 · Participatory meaning-makingUsers don’t consume data, they interpret it. Like navigating a city, each reading requires active sense-making, turning residents into storytellers.
4 · Cultural accessibilityTarot invites diverse publics into urban policy conversations that typically gatekeep.
ArchetypeUrban critical mappingToronto narrative seed
The TowerInstitutions (Big Tech, the Finance District) built on precarious foundations: market bubbles, social alienation, promised utopia.“A tower built to touch the cloud, yet leaving the residents at its base in the shadow.”
The LoversThe dynamics of cooperation, conflict and coexistence between different communities.“On a street that divides an affluent neighbourhood from a low-income one, a constant conversation about land and belonging takes place.”
The FoolThe opportunities, vulnerabilities and explorations faced by immigrants, new graduates and others in an unfamiliar urban landscape.“A person who arrives in a new city with all their savings; their dreams are both the city’s fuel and its most fragile asset.”

Narrative generation logic

01User inputThe visitor draws a card, which triggers the engine.
02Narrative engineNews data is injected from the news database, e.g. a CBC report on the Eglinton Crosstown delay.
03SynthesisArchetype mapping turns the card and the news into a generated critical narrative explaining the city.
04Ask a critical questionThe narrative ends by handing a question back to the reader.
The Crosstown does not fail loudly. It fails in pauses: a light that never turns green, a platform where bodies wait without knowing for what. Software replaces schedules, and accountability dissolves into vendor updates no commuter can see.Generated narrative, The Tower × Eglinton Crosstown
The TowerFinancial District
Fig. 01Toronto street network43.65° N, 79.38° WToronto as the text to be read.

03.Narrative Pool & Implementation

Each card carries 3–5 pre-researched critical narratives backed by verified Toronto data sources. The system randomly samples one and injects it into GPT-4o prompts, balancing quality control with generative variety.

01User selects “The Tower”A card is drawn or picked.
02System retrieves the narrative poolThe card’s 3–5 curated narratives.
03Random selectionPool 1 is chosen.
04LLM promptThe curated script is sent to the AI.
78
original cards
13
urban archetypes
39+
live data sources: CBC, Star, Open Data

Tech stack

Framework
Next.js 14 (App Router)
Styling
Tailwind CSS, cyberpunk gold + black theme
AI
OpenAI API (GPT-4 nano for fable generation)
Type safety
TypeScript throughout
Data flow
Server Components → API Routes → Client Components

Dataset: one card, The Fool

City archetype
The Gig Worker / The Newcomer
Keywords
precarity · new immigration · hustle · hope · instability · toronto city
Urban narrative
“Stepping off the bus with a backpack and a dream, walking into a city that costs too much.” “The freedom of the gig economy is a cliff edge disguised as a bridge.”
Critical analysis
Mechanism: the gig economy. Impact: the commodification of risk; freedom from bosses replaced by servitude to algorithms.
From the archive
Brampton launches and then partially pauses a rental licensing crackdown on illegal student rooming houses after landlord protests.
Reflection prompts
“What is the cost of your freedom?” “Who bears the risk in this new economy?”
The Fool card page with critical theme, archive source and generated fable
A card page: critical theme, source material from the archive and the AI-generated fable.

04.Outcome

The finished site walks from a landing page to Choose your path (the archive or a draw), an archetype gallery, and finally the card: critical theme, source material from the archive, the AI-generated fable and a full report.

The City Tarot landing page: the title set over a gold street-network drawing of Toronto with registration marks and a title block
The archive: a numbered grid of archetype cards over the street network

Choose an archetype to explore: the gallery that leads into each reading.