From 10b3551668c6c729439dea734ff40de903579a2d Mon Sep 17 00:00:00 2001 From: Patrick Mulligan Date: Fri, 31 Jul 2026 18:06:44 +0200 Subject: [PATCH] feat(deck): mycelium + gallery reflect the 4-entity model Mycelium flowers are now the three experiences (SolLunar indigo, Festivals rose, Chateau clay) and the underground is named Archipelago, the shared backbone. Gallery City/Farm/Festival sections repoint to the matching entities and accents. Co-Authored-By: Claude Opus 4.8 (1M context) --- src/deck/components/MyceliumNetwork.vue | 31 +++++++++++++------------ src/deck/gallery.ts | 14 +++++------ src/deck/gallery/README.md | 10 ++++---- 3 files changed, 28 insertions(+), 27 deletions(-) diff --git a/src/deck/components/MyceliumNetwork.vue b/src/deck/components/MyceliumNetwork.vue index f9a624b..b78771d 100644 --- a/src/deck/components/MyceliumNetwork.vue +++ b/src/deck/components/MyceliumNetwork.vue @@ -2,12 +2,12 @@ /** * The core metaphor, as an animated SVG. * - * Underground → the mycelium = the shared core stack / custom software. - * Unseen, always working, connects every entity. - * Flowers → the three entities people actually experience: - * • Archipelago (city center) — a permanent bloom - * • SolLunar Society (pop-up fest.) — ephemeral cluster - * • Chateau du Faune (farm center) — a permanent bloom + * Underground → Archipelago = the shared backbone / custom software. + * Unseen, always working, connects every entity (the mycelium). + * Flowers → the three experiences people actually engage with: + * • SolLunar Punk Society (city center) — a permanent bloom + * • Pop-up Festivals (travelling) — ephemeral cluster + * • Chateau du Faune (farm center) — a permanent bloom * Ghost flowers→ once the mycelium runs, new locations & festivals sprout * cheaply, anywhere in the world. * @@ -72,14 +72,15 @@ function thread([a, b]: [number, number], i: number) { return `M ${ax} ${ay} Q ${mx} ${my} ${bx} ${by}` } -const arch = entityById('archipelago') -const sol = entityById('solunar') -const cha = entityById('chateau') +const sol = entityById('sollunar') // city +const fest = entityById('festivals') // travelling +const cha = entityById('chateau') // farm -// surface flowers: three entities + two faint "future" ones +// surface flowers: the three experiences + two faint "future" ones. +// (Archipelago is the mycelium itself — the network below, not a flower.) const flowers = [ - { x: 230, kind: 'bloom', color: 'var(--color-pine-400)', name: arch.name, tag: arch.role }, - { x: 500, kind: 'festival', color: 'var(--color-indigo-400)', name: sol.name, tag: sol.role }, + { x: 230, kind: 'bloom', color: 'var(--color-indigo-400)', name: sol.name, tag: sol.role }, + { x: 500, kind: 'festival', color: 'var(--color-rose-400)', name: fest.name, tag: fest.role }, { x: 770, kind: 'bloom', color: 'var(--color-clay-400)', name: cha.name, tag: cha.role }, { x: 100, kind: 'ghost' }, { x: 900, kind: 'ghost' }, @@ -274,15 +275,15 @@ const festivalCaps = [ ABOVE GROUND · WHAT PEOPLE EXPERIENCE - UNDERGROUND · THE SHARED CORE STACK THEY NEVER SEE + ARCHIPELAGO · THE SHARED BACKBONE BENEATH EVERY NODE

- The mycelium is the product. - One core stack runs unseen beneath every entity — members feel it, they don’t see it. + Archipelago is the mycelium. + One shared backbone runs unseen beneath every entity — members feel it, they don’t see it.

diff --git a/src/deck/gallery.ts b/src/deck/gallery.ts index ca2a77c..ba34758 100644 --- a/src/deck/gallery.ts +++ b/src/deck/gallery.ts @@ -4,9 +4,9 @@ * Drop image files into these folders and they appear in the deck gallery * automatically — no code changes, no manifest to edit: * - * src/deck/gallery/city/ → City (Archipelago) - * src/deck/gallery/farm/ → Farm (Chateau du Faune) - * src/deck/gallery/festival/ → Festival (SolLunar Society) + * src/deck/gallery/city/ → City (SolLunar Punk Society) + * src/deck/gallery/farm/ → Farm (Chateau du Faune) + * src/deck/gallery/festival/ → Festival (Pop-up Festivals) * * Supported: jpg jpeg png webp avif gif svg. Images show sorted by filename, * so prefix with 01-, 02-, … to control order. The seeded *-placeholder.svg @@ -58,8 +58,8 @@ export const gallerySections: GallerySection[] = [ { id: 'city', label: 'City', - entityName: entityById('archipelago').name, - accent: 'pine', + entityName: entityById('sollunar').name, + accent: 'indigo', folder: 'src/deck/gallery/city/', images: toImages(city), }, @@ -74,8 +74,8 @@ export const gallerySections: GallerySection[] = [ { id: 'festival', label: 'Festival', - entityName: entityById('solunar').name, - accent: 'indigo', + entityName: entityById('festivals').name, + accent: 'rose', folder: 'src/deck/gallery/festival/', images: toImages(festival), }, diff --git a/src/deck/gallery/README.md b/src/deck/gallery/README.md index 111093d..e5a79b4 100644 --- a/src/deck/gallery/README.md +++ b/src/deck/gallery/README.md @@ -3,11 +3,11 @@ Each subfolder feeds one section of the Gallery slide. **Drop image files in and they appear automatically** — no code to touch. -| Folder | Section | Entity | -| ----------- | -------- | ----------------- | -| `city/` | City | Archipelago | -| `farm/` | Farm | Chateau du Faune | -| `festival/` | Festival | SolLunar Society | +| Folder | Section | Entity | +| ----------- | -------- | --------------------- | +| `city/` | City | SolLunar Punk Society | +| `farm/` | Farm | Chateau du Faune | +| `festival/` | Festival | Pop-up Festivals | - Supported formats: `jpg` `jpeg` `png` `webp` `avif` `gif` `svg`. - Images display **sorted by filename** — prefix `01-`, `02-`, … to order them.