ETS27 design direction — a mind in free space

Energy Thought Summit 2027 · Austin, Texas · theme "Free Your Mind" Status: draft v1 for owner review · 2026-10-13 · owner of this file: design direction

This document sets the visual and interaction direction for the ETS27 site: the white opening realm, the two-door fork, the AI-driven "interactive" route, the standard route with its omnipresent mind, type, palette, motion, fallbacks, the head itself, and the persona. It is written for the prototype and architecture work that follows; sections 4, 5 and 9 are the ones the build consumes directly.


0. What was looked at before writing

Captured on 2026-10-13 at 1440×900 (headless Chrome for Testing via Playwright) into research/refs/:

File What it shows
ets-home-1440x900-fold.png Live home: white nav bar, black TV-static hero, "FREE YOUR MIND … coming soon · May 3-6, 2027 · Austin, Tx", REGISTER TODAY bar
ets-home-1440-full.png Same page full height (the home is a single fold)
ets-home-390x844-mobile.png The home at phone width: wordmark + hamburger, hero text wraps to four lines
ets-lineup-1440x900-fold.png Lineup hero: aqua "LINEUP" in VT323 at 150 px over a black-and-white stage photo
ets-lineup-1440x900-scroll900.png / -scroll1800 / -scroll2700 The speaker grid, which is a Whova embed (iframe), not theme markup
ets-lineup-1440-full.png Full lineup page incl. the black subscribe/countdown band and the white footer link row

Tokens measured in the live DOM (not eyeballed):

ETS26 merch lineage (../ets26/shirt-tote/): black grounds, CP437/ANSI block type, phosphor amber #FFB000, neon green #39FF14, Phrack red/magenta, the // ets26 . hack the planet lowercase mono line, root@gibson :: ets26 prompts, [#] bracket markers, the .nfo speaker list. The brand's notation is //, [ ], ::, >, lowercase mono, and it was always black-on-white on the page with the hacker-world on the merch.


1. Concept statement

ETS26 was the hacker's room: black glass, static, phosphor, the planet as a target. "Free Your Mind" is the step through to the other side of that screen — an open, white, endless place where nothing exists until it is asked for. That is not decoration; it is the product. A site built on intelligent UI holds no fixed pages in its interactive form: when a visitor says what they came for, the thing itself materializes — the speaker, the day, the room, the ticket — and nothing else. The white realm is the honest picture of what the software does. The theme, the visual and the interaction model are one idea: a mind in free space, with the site as the space and the visitor's intent as the only thing in it. The head is the visitor's own: a smooth, matte, featureless cranium from the nose bridge up, blank sockets facing the light. No face means anyone's face. It does not look at you; it waits with you.

The hacker-cinema lineage continues by inheritance, not by quotation. ETS26 owned the 1995 world (terminals, static, "hack the planet"); ETS27 owns the 1999 idea that a mind can load whatever it needs into an empty white construct. We take the idea and the emptiness, never the props: no green rain, no sunglasses, no coats, no lines from the film anywhere on the site, and the word "construct" never appears in the interface. What carries the family resemblance is the notation the brand already owns — // tags, [ bracket ] verbs, the > prompt, lowercase mono lines, the .nfo list — now set in the light instead of on black, the same phosphor seen in daylight. ETS26's site accent and merch "signature" magenta becomes the one mark of colour in the white. The result should read to a utility executive as calm, precise and new, and to anyone who knows the references as a knowing nod they were never hit over the head with.


2. Opening storyboard, 0–10 s

Stage: full viewport, white realm, no nav, no scroll. The wordmark ets sits small at top-left from frame 0 (never animated, never absent — the brand is the one fixed thing). A mono skip hint [ skip ] sits bottom-right from 0.4 s. Any click, key, tap, scroll or the skip link jumps straight to the 4.8 s state. Return visitors (a local flag set on first completed intro) get the compressed 1.4 s version (beats 0, 2b, 3 only, overlapping).

Time Beat What the viewer sees Mechanics
0.00–0.40 White Pure #FFFFFF, a 2 % film grain so it is a space, not a blank tab. Nothing moves yet. Shader canvas mounts under a white CSS layer; the CSS layer fades at 0.4 s so a slow GPU never shows a black flash.
0.40–1.20 Weather The lower third thickens into fog (warm-neutral whites, fog-1→fog-3), four cloud planes begin to drift at different speeds. A horizon forms at 56 % of viewport height. Cloud planes alpha in over 800 ms; drift speeds 6/4/2.5/1.5 px/s. Pointer parallax arms at 1.2 s.
1.20–3.20 Condense The head rises out of the fog line, 10 % of viewport height over 2 s, decelerating. It starts as a cloud-displaced blob and resolves into the cranium, brow ridge and nose bridge as the displacement falls to zero. The blank sockets are the last thing to appear, as occlusion darkens inside them. uRise 0→1 with --ease-out-soft; uResolve (domain-warp amplitude) 0.12→0 with the same ease, lagging 300 ms. Height fog hides everything below the cut plane.
3.20–3.90 Settle A soft contact shadow forms on the fog beneath the head. The head begins its idle: a 7 s breath (±0.4 % scale) and a 2° pointer-follow with 600 ms lag. Nothing else on screen yet. Shadow radius 0→1 over 700 ms. Idle loops start.
3.90–5.00 Lockup FREE YOUR MIND fades in beneath the head, letters widely tracked (+0.30 em) and drifting inward to +0.06 em — the letters come together as the mind did. 250 ms later the mono line types in under it at 40 characters per second with a block cursor: // ets27 . may 3–6 2027 . austin tx Display XL, weight 200. The mono line is real text from frame 0 for screen readers; only the visual reveal is animated.
5.00–5.90 Doors The two doors materialize side by side below the lockup: from 8 px blur / 0.96 scale / 12 px low, to crisp, 120 ms apart. Their one-line explainers follow 160 ms later. The mono eyebrow // two ways in sits above them. Materialize grammar from §4 (480 ms, --ease-settle). Focus is moved to the first door for keyboard users at 5.9 s (not before — the animation never traps focus).
5.90–10.00 Hold The scene idles. Clouds drift, the head breathes, the cursor blinks. The sockets turn 2° toward the pointer. If a visitor starts typing, the second door opens with their words already in the composer (§3). No auto-advance, ever.
10.00 Nudge A single quiet line fades in under the doors in the persona voice: > pick a door, or just start typing. Once per session. Never a modal, never a sound.

Camera: eye level at the fog line, 24° vertical field of view, pitched 4° upward, so the cranium rises like a sun over a white sea. Key light from upper-left; no specular highlight anywhere (a highlight reads as plastic; matte reads as mind).

Compressed return-visitor intro (1.4 s): white → head already resolved, rising only 3 % → lockup and doors together. If a door was remembered (§3), skip the fork entirely and show the one-line switcher of that route.


3. The fork

3.1 Three copy systems, evaluated

Criteria: instant comprehension for a mixed utility-industry audience (many first-time visitors on a phone, arriving from a LinkedIn post), fidelity to the theme, zero pastiche, works as a two-to-three-word button, reads correctly without the explainer, accessible as a plain link name.

System Door A (standard) Door B (interactive) Verdict
Operator / Construct "Operator" "Construct" On-lineage but opaque; "Operator" means nothing to a first-time visitor and "Construct" is a film prop in disguise — exactly the pastiche we are avoiding. Fails comprehension.
Map / Mind "Open the map" "Ask the mind" Both verbs are plain; the nouns are the theme and the site's own model. A visitor who never heard of ETS understands it, and the pair stays short on a phone. The mind is also the name the persona can carry (§10).
Show me around / I know what I want "I know what I want" "Show me around" Friendly, but the mapping inverts in the reader's head: someone who knows what they want would rather ask for it than browse. Ambiguous → fails.

Pick: Map / Mind.

3.2 Exact microcopy

Eyebrow (mono-m, gray-700): // two ways in

Door A - Label (h2, weight 400): Open the map - Explainer (body, gray-700): Everything laid out — agenda, lineup, venue, tickets. - Corner tag (mono-s, appears on hover/focus): [ browse ] - Link name for assistive tech: "Open the map: the full site with pages and navigation"

Door B - Label (h2, weight 400): Ask the mind - Explainer (body, gray-700): Say what you came for. Only that appears. - Corner tag (mono-s, appears on hover/focus): [ ask ] - Link name for assistive tech: "Ask the mind: a conversational guide that shows only what you ask for"

Under both doors (mono-s, gray-500): // you can switch any time.

Optional, below that, unchecked by default: a mono checkbox [ ] remember my door — if checked, future visits skip the fork and show the route with its one-line switcher. Recommended on; see §11 for the owner's call.

3.3 States

3.4 After the fork

Both routes carry a quiet switcher in the same place (top-right, mono-s): in the interactive route [ open the map ], in the standard route [ ask the mind ] is the dock itself (§5.5), and [ change entrance ] lives in the footer of both. Switching keeps context: a visitor who was looking at the day-2 agenda in the mind lands on /agenda/#day-2 in the map, and vice versa.


4. The interactive route — visual grammar

Principle: the mind chooses from a kit; it never draws freehand. The answer is the UI; the text is its caption. Every component in the catalog has one designed way to arrive, live, recede and leave. The implementation family this grammar is designed for is the declarative-tree-from-an-allow-listed-catalog model (A2UI, AG-UI, MCP Apps, Open-JSON-UI are the public shapes of it; the architecture document picks one). The design does not depend on which.

4.1 The stage

The white realm persists. After the door, the head drifts to the upper-left over 800 ms and settles at 38 % of its opening scale, cut plane just above the wordmark line — a presence, not a subject. Clouds slow to half speed. Three depth layers, back to front:

  1. Fog — the realm (clouds, head, contact shadow).
  2. Content — materialized components, centre column: 720 px max for text and single cards, 1120 px for grids and agendas, 16 px gutters at phone width.
  3. Voice — the mind's caption line above the content and the composer below it. This layer is never blurred.

4.2 Materialize, settle, recede, leave

4.3 Where the conversation lives

4.4 Suggestion chips

Three to five chips sit above the composer, mono-m, lowercase, // prefix, hairline pill, 32 px tall, horizontally scrollable on phones.

4.5 The component catalog (what can materialize)

Component Arrives as Notes
TextAnswer Caption + paragraph(s), 60 ch measure Source line required when factual
SpeakerCard Portrait (4:5, grayscale by default, colour on hover), name h3, title/org body, session chip Portrait treatment echoes the monochrome stage photos the brand already uses
SpeakerGrid 2/3/4 columns by width, each cell a SpeakerCard-compact Filter state shown as a mono answer bar on top: // 12 speakers · day 2 · [ clear ]
AgendaDay A vertical time rail with sessions as hairline rows; "now" marked in signal during the event Day tabs are mono chips: // mon 3 // tue 4 …
SessionCard Time, title h3, speakers inline, room, [ add to calendar ]
VenueCard Venue name, address, a monochrome map tile, hotel block link Map is static-image first; interactive on request
TicketTiers Columns of tiers with one signal primary action Hands off to the register flow in a new tab with a one-line confirmation
PartnerWall Logo grid, grayscale, hover colour
FAQ / Policy Hairline accordion
ContactCard Email, a short form (name, email, message) The only place the mind asks for personal data, and only when the visitor asks to contact someone
LinkOut A single mono link with a [ map ]-style verb For anything that lives only in the standard site or off-site

4.6 The quiet escape

Top-right, mono-s, always present, never a modal: [ open the map ]. It deep-links to the page equivalent of the current component (SpeakerGrid → /lineup/, AgendaDay → /agenda/#day-n, VenueCard → /venue/, TicketTiers → /register/), otherwise to the home. The transition is the standard route materializing around the current component where possible (§7), so nothing is lost.

4.7 Empty and error states


5. The standard route

5.1 Layout system

12-column grid, 1200 px content max, 24 px gutters (16 px below 600 px), 8 px spacing base. Section rhythm is set by the display scale, not by boxes: a section is a mono eyebrow, a heading, content, and a hairline — no panels, no cards with shadows, no tints. The page is white; the only tone is in images and the one accent.

5.2 Nav

Sticky, white, 72 px tall (56 px on phones), a hairline below once scrolled.

5.3 Hero

The opening realm at reduced intensity: the head resolved and breathing at the right third of the hero, cut plane on the hero's lower edge; left third carries the lockup FREE YOUR MIND (display XL, 200), the mono line // ets27 . may 3–6 2027 . austin tx, and two actions: [ REGISTER ] (filled ink) and Ask the mind → (text link, signal). Hero height 88 vh desktop, 72 vh phone. Below it, a mono strip of facts in a hairline row: dates · venue · "day count" numerals in Unbounded 900 at 96 px — the big numeral is where the 900 weight lives.

Pages: Home, Lineup, Agenda, Venue (hotel and venue), Partners, Gallery, About (incl. past summits ETS25/26), Contact, Register. Each page is built from the same component catalog as §4.5, so the mind can act on it (§5.6). The lineup and agenda are first-party components fed by structured data, not a Whova iframe — this is a prerequisite, see §11.

Footer: a black band is the one dark moment on the site and the one place the ETS26 world is allowed to show: #000 background, the subscribe field in mono with a > prompt, the countdown as a single mono line (// 201 days . 14:02:07) instead of four big zeros, the link row (Speak · Sponsor · Partners · Gallery · Contact · LoFi), and © 2027 Zpryme. Links in white; hover signal. No aqua anywhere on ETS27 (§6).

5.5 The omnipresent mind dock

5.6 How answers merge into the page

The dock prefers to act on the page over talking in the sheet. Five rules, tried in order:

  1. Filter — the page holds a list the answer narrows (speakers, sessions, partners): apply it in place and pin a mono answer bar above the list: // showing 12 speakers · day 2 · [ clear ]. The sheet shows only the caption.
  2. Reveal — the answer is one item already on the page: scroll to it, draw a 1 px signal hairline around it for 2 s, caption in the sheet.
  3. Materialize — nothing on the page matches: the component materializes inside the sheet with the §4 grammar, with a [ open page ] link if a page exists.
  4. Navigate — the answer is a page: one-line caption, then navigate; the sheet stays open and the thread continues on the new page.
  5. Act — tickets, calendar, contact: hand off (new tab for the register flow) with a one-line confirmation and no dead end.

Every merged answer is reversible by [ clear ] or Escape, and every page works identically with the dock never opened.


6. Type and palette

6.1 Faces (Google Fonts, both verified to resolve on the API on 2026-10-13)

6.2 Scale (desktop / phone)

Token Size Face · weight Use
display-xl clamp(64 px, 10 vw, 168 px) · line 0.95 · tracking +0.06 em (settles from +0.30) Unbounded 200, uppercase FREE YOUR MIND
display-l 96 / 64 · line 1 Unbounded 900 27, day numerals, the countdown-day count
h1 56 / 40 · line 1.05 · tracking −0.01 em Unbounded 300 Page titles
h2 36 / 28 · line 1.15 Unbounded 400 Section and door labels
h3 24 / 20 · line 1.25 Unbounded 500 Card titles, names
body 18 / 17 · line 1.5 · measure ≤ 60 ch Unbounded 300 Copy, captions
small 15 / 14 · line 1.45 Unbounded 300 Secondary copy
mono-m 14 · tracking +0.02 em Geist Mono 400 Chips, tags, nav, composer, answer bars
mono-s 12 · tracking +0.04 em Geist Mono 400 Source lines, timestamps, corner tags

The ratio below h1 is a perfect fourth (1.333); above it the steps are deliberate jumps (h1 → display-xl is ~3×). Weights are used at their extremes — 200/300 against 900 — never 400 against 600.

6.3 Palette — black on white, one accent

Token Value Role
white #FFFFFF The sky; page background
fog-1 / fog-2 / fog-3 #FAFAF9 / #F3F3F1 / #EBEBE8 Cloud tones — warm-neutral so the realm never reads clinical or blue
hairline #E2E2DF Every rule, outline and divider
gray-500 #8A8A86 Decorative mono only, 3.5:1 — source lines and timestamps at mono-s, never for anything that must be read
gray-700 #6F6F6B Secondary text, 5.1:1 on white
ink-2 #2C242C Body text — the brand's existing plum-black, kept for continuity (15.0:1)
ink #000000 Display type, wordmark, the footer band
signal #C1115A The one accent: active nav, focus rings, the "now" marker, the socket glow, the primary action — the raspberry the brand already uses for its active state and the merch "signature" magenta, 6.0:1 on white
signal-ink #8F0C43 Hover/pressed accent
signal-tint #FBE9F0 Selected chip fill, focus halo

Retired for ETS27: the aqua #53EBE4 (1.5:1 on white — unusable in the light) and the phosphor amber/green of the merch (they belong to the black world; they may return on ETS27 merch, not on the site). Considered and rejected for the accent: a hyperlink blue (#1D4DFF, 5.9:1) — it would have been new rather than inherited, and the brand already owns a colour that passes.

Head shading range: white down to #8C8C88 in the deepest socket; the contact shadow peaks at 12 % black. Nothing on the site is black except type, the wordmark and the footer.

6.4 Notation

The // idiom is kept and formalized: // tag for labels, eyebrows and chips; [ verb ] for small actions and switchers; :: only inside the footer prompt; > for the composer and the persona's own lines; lowercase in all mono except nav links. Title tag: ETS27 | free_your_mind [OPEN] (the [INITIATE] slot from ETS26, with the verb the realm asks for).


7. Motion principles and fallbacks

7.1 Principles

  1. Things arrive from depth, not from the side. Blur and scale say "closer"; translateX says "slide deck" and is never used.
  2. Nothing bounces, nothing overshoots. Easing: --ease-settle: cubic-bezier(0.2, 0.8, 0.2, 1); --ease-out-soft: cubic-bezier(0.16, 1, 0.3, 1).
  3. Durations: 160 ms micro, 240 ms leave, 480 ms materialize, 800 ms scene, 1800 ms head resolve. Stagger 40 ms, capped at 12.
  4. Idle motion is below conscious notice: cloud drift ≤ 6 px/s, the breath 7 s at ±0.4 %, pointer-follow 2° with 600 ms lag. If a visitor can describe the motion, it is too much.
  5. One orchestrated moment: the opening. Everything after it is quiet. Route transitions reuse the materialize/leave pair; the head's reposition (800 ms) is the only large move after the fork.
  6. The accent never animates in area — only hairlines grow and glows fade.

7.2 Reduced motion (prefers-reduced-motion: reduce)

No drift, no breath, no pointer-follow, no blur transitions, no typing effect. The intro collapses to a single 400 ms opacity fade with the head already resolved; the doors are present from the first frame. Materialize/leave become 160 ms opacity-only. The streaming skeleton becomes a static hairline outline.

7.3 No WebGL

The hero swaps to a still: the head rendered offline from the same shader at 2× (AVIF with PNG fallback, one desktop crop and one phone crop) over CSS cloud layers (two tiled noise textures, mix-blend-mode: multiply, a 60 s CSS translate loop at 2 px/s). The pointer-follow and socket glow are dropped. Decision at runtime: no WebGL2 context, or a frame-time probe averaging > 24 ms over the first 20 frames, or Save-Data on → still. No flash: the still is the poster under the canvas from frame 0.

7.4 No JavaScript

The home is a static hero (the still), the lockup, the mono line and two plain anchors styled as the doors: Open the map → /home/ and Ask the mind → /ask/ (which, without JS, renders a plain explanation and the same links). The standard site is server-rendered and fully usable: nav, pages, footer, forms. The dock is absent. The interactive route needs JS by nature and says so in one mono line.


8. Mobile behaviour

Opening: the head occupies the upper 45 % of the viewport with the cut plane at 55 %; lockup and doors stack below in the lower half; the intro compresses to 3.2 s (the condense beat halves), with tap-anywhere skip. Device pixel ratio capped at 1.5, 48 march steps, 30 fps throttle, and the frame-time probe above falls back to the still on weak GPUs or battery saver.

Fork: two full-width stacked cards, minimum 64 px tall, map above mind, 12 px apart; explainers stay; corner tags are shown always (no hover on touch). Typing-opens-door-B still applies when a hardware keyboard is present; otherwise the composer appears only inside door B.

Interactive route: the head shrinks into the top bar as the 24 px glyph (the mind is still present); the composer sits above the keyboard using the visual viewport, chips scroll horizontally under the caption, components fill the width with 16 px gutters, grids go to two columns, agenda rails to a single column with sticky day chips. The thread rail becomes a swipe-down sheet from the top bar listing the steps. The escape [ open the map ] stays top-right.

Standard route: [ menu ] sheet as in §5.2; hero at 72 vh with the head behind the lockup at 60 % scale and the copy on a white gradient; the dock is a bottom pill above the safe area and opens as the 70 % sheet; merged answers (filter and reveal) show on the page behind the sheet, which can be dragged down to see them.


9. The head and the clouds

9.1 Realization options for the head

Option For Against
GLSL SDF raymarch (one full-screen quad, fragment shader) No asset pipeline; resolution-independent; the "resolve from cloud" is a one-uniform domain warp; blank sockets and the cut plane are set operations; matte shading, ambient occlusion and soft shadows are native; the head and the fog share one lighting model; the still fallback is the same shader rendered offline; ~6 KB of code Needs a careful step budget on phones; sculpting is done in numbers, not in a modelling tool; ears/hair-free design is a feature here, a limit elsewhere
GLB model (sculpted mesh, three.js) Art-directable in Blender; standard PBR A 1–3 MB download before the first frame; a mesh looks like a mesh (triangle silhouettes on a white ground are unforgiving); the resolve effect needs vertex displacement plus a separate volumetric for the fog; two systems to keep consistent
Procedural mesh (parametric cranium built at runtime, three.js) No download; tweakable Harder to make beautiful than an SDF, same silhouette problem, no free occlusion

Recommendation: the SDF raymarch. It is the only option where the head, the fog, the resolve and the fallback still are one system, and a white object in a white world is drawn entirely by occlusion and soft shadow, which the raymarcher gives for free.

9.2 SDF primitive list (head height = 1.0; y up; z toward the camera)

Smooth-union k values are in head units. Proportions follow standard adult anthropometry (head width ≈ 0.80 of height), ears and hair omitted (mannequin), features below the nasion removed.

  1. Cranium — ellipsoid, centre (0, 0.62, −0.02), radii (0.40, 0.44, 0.47). The base volume.
  2. Occipital fullness — ellipsoid, centre (0, 0.60, −0.14), radii (0.36, 0.38, 0.40), smooth-union k 0.08. Keeps the back from reading as a sphere.
  3. Frontal bone — ellipsoid, centre (0, 0.70, 0.22), radii (0.30, 0.26, 0.20), smooth-union k 0.06. The forehead plane.
  4. Brow ridge — two capsules from (±0.05, 0.50, 0.38) to (±0.30, 0.52, 0.30), radius 0.045, plus a glabella sphere r 0.05 at (0, 0.49, 0.40); smooth-union k 0.05. The one hard-ish edge on the form; it casts the shadow that makes the sockets read.
  5. Temples — subtract two ellipsoids at (±0.42, 0.58, 0.05), radii (0.08, 0.20, 0.22), smooth-subtract k 0.06. The temporal flattening that stops the head looking like an egg.
  6. Nose bridge — rounded cone from (0, 0.48, 0.40) r 0.035 to (0, 0.36, 0.46) r 0.05, smooth-union k 0.04. It descends into the fog and is what tells the eye "nose bridge and up".
  7. Sockets — subtract two ellipsoids at (±0.16, 0.43, 0.35), radii (0.11, 0.075, 0.12), pitched 10° down and yawed 8° outward, smooth-subtract k 0.03. Blank orbits: smooth concavities, no eyeballs, no lids.
  8. Cut plane — intersect with the half-space y ≥ 0.36 as a hard guard, but the visible cut is soft: height fog density rises exponentially below y = 0.44 so the form dissolves into the cloud rather than being sliced. Nothing of the head is ever seen below the nasion.

Resolve: domain warp p += uResolve * 0.12 * fbm(p * 3 + t) applied before evaluation, uResolve 1 → 0 over the condense beat. Shading: Lambert from a key at (−0.5, 1.0, 0.6), 5-tap ambient occlusion, 16-step soft shadow, a 6 % Fresnel darkening at grazing angles so the silhouette separates from the sky, no specular. Camera: eye at y 0.44, 2.6 units back, 24° vertical FOV, 4° pitch up. Budget: 64 steps desktop at full DPR up to 2, 48 steps at DPR ≤ 1.5 on phones, half-resolution render upscaled when the probe says so.

9.3 The clouds

Option For Against
Raymarched FBM volumetrics True scattering around the head; the most beautiful version 2–4 ms on a desktop GPU, 10 ms+ on phones; competes with the head's step budget; hard to keep deterministic across devices
Layered noise planes (4 tiling 2D FBM planes at depths with parallax, plus a "sea" plane at the cut height and the head shader's own height fog) Cheap everywhere (2D noise, no marching); deterministic; drift and pointer parallax are trivial; degrades to CSS textures for the no-WebGL still Flat if overdone; needs the height fog in the head shader to sell the "sinking"

Recommendation: layered planes everywhere, with the head shader's height fog doing the sinking. Plane depths z −1 / −2.5 / −4.5 / −7, parallax 1.0 / 0.6 / 0.35 / 0.2, drift 6 / 4 / 2.5 / 1.5 px/s, 4 noise octaves, tones between fog-1 and fog-3, pointer parallax ±8 px on the nearest plane only. The raymarched volumetric is an optional desktop-only upgrade tier behind the same frame-time probe, if the budget allows after the head is right.


10. The mind — persona

10.1 Three names

  1. The mind — no name. The interface already calls it "the mind" at the fork and in the dock; the persona speaks in the first person and never introduces itself. Opener: Ask me about ETS27 — the lineup, the days, the venue, the tickets. Strongest fit with the theme; zero mascot risk. Recommended.
  2. Ohm — ohm in mono. The unit of resistance, said aloud as the sound a mind makes at rest; three letters, fits a chip. Opener: Ohm here. What do you need for ETS27? A good choice if the dock wants a name to say "ask ohm".
  3. Cirrus — cirrus in mono. The high, thin cloud; the realm's own weather. Opener: Cirrus here. Ask me anything about the summit. Airy, pronounceable, no industry pun.

10.2 Voice and tone rules (all three)


11. Open questions for the owner

  1. Dates and venue. The live site already announces May 3-6, 2027 | Austin, Tx — confirm those dates are final, and name the venue and hotel block so the VenueCard and the hero strip can be real from day one.
  2. Persona. The mind (unnamed), Ohm, or Cirrus — or a name of your own. This also sets the dock label (Ask vs Ask ohm).
  3. How much of the standard site remains. Proposed: Home, Lineup, Agenda, Venue, Partners, Gallery, About (with past summits), Contact, Register. Anything from the ETS26 set to drop or add (the "ETS25 Speakers" top-level link, the "LoFi" footer link)?
  4. Data ownership. The lineup and agenda are currently Whova iframes; the mind cannot act on them. Is there a structured source (Whova export/API, a sheet, the WP portfolio type) we can make the single source for both routes?
  5. Registration path. Eventbrite again, or Whova registration, or native? This decides whether TicketTiers is a hand-off or a flow.
  6. The fork on return visits. Remember the chosen door by default (recommended), or always show the fork?
  7. The accent. signal #C1115A inherits the current active-nav raspberry; confirm, or pick another single colour (the blue alternative is noted in §6.3).
  8. The wordmark. Is there an SVG source for ets? The 27 lockup needs it for crisp rendering at every size.
  9. The coming-soon period. Should the opening and the mind ship first with a small catalog (dates, venue, call for proposals, register interest) before the lineup exists?
  10. Conversation retention and consent. Keep threads per session only (proposed), or persist for returning visitors; and which analytics/consent banner, if any.
  11. Merch tie-in. Should ETS27 merch keep the black world (amber/green phosphor) as the inverse of the site, or move to white as well?