A living vertical spire where AI agents work as fantasy characters
A pixel-art desktop application built in Godot 4 where each floor is a project,
each agent is a fantasy character class, and the tower breathes with real
orchestration data. Emerald at the roots, indigo at the summit.
scroll to explore
Tower Architecture
Vertical spire with hexagonal floors that morph under load
ephemeral -- ad-hoc sprint
permanent -- orchestrator
permanent -- gateway
permanent -- terminal substrate
permanent -- supervisor (base)
ground
Permanent floors hold their configured position. Always visible, even when idle
(candles dimmed, agents sleeping). Configured via YAML.
Ephemeral floors materialize when the orchestrator registers agents for an unconfigured
project. Build animation: bricks assembling + magical shimmer. Dissolve after 60s of inactivity.
Side cross-section shows one edge of each floor at a time.
The wall is "cut away" like a dollhouse to reveal interiors. Rotate with Q/E to see other edges.
Edge width scales with polygon size. A dodecagon edge is visually wider than a hexagon edge.
Busy floors literally take up more horizontal space.
Floor height is fixed (48px internal). The tower grows vertically
(new floors) and horizontally (polygon expansion).
Polygon Morphing
Floors start as hexagons and expand as composite load increases. Vertices lerp outward over ~0.5s. The floor visibly breathes.
composite_load =
0.4 x agents
+
0.3 x throughput
+
0.3 x cost
each normalized to 0.0 -- 1.0
Hexagon
load 0.0 -- 0.2
⟶
Octagon
load 0.4 -- 0.6
⟶
Dodecagon
load 0.8 -- 1.0
Character Classes
Seven fantasy archetypes mapped to AI agent roles
The orchestrator assigns each agent a role (what it does) and a provider (which model). The UI maps roles to character classes with distinct sprites, animations, and workstations.
⚗
Alchemist
Code Generation
Goggles, apron, bubbling flask. Stirs the cauldron when working, holds up a glowing potion when reporting.
Cauldron + ingredient shelves
✎
Scribe
Code Review
Quill, magnifying glass, ink-stained fingers. Writes furiously during review, presents an annotated scroll on completion.
Lectern + scroll rack
✪
Archmage
Architecture / Planning
Tall hat, ornate staff, flowing robes. Gestures at star charts when designing, summons a constellation diagram when reporting.
Star chart table + crystal orb
☤
Wardkeeper
Testing / QA
Shield emblem, rune-etched armour. Maintains warding circles, runes glow green on pass, shatter red on failure.
Warding circle + test runes
📖
Librarian
Research / Context
Spectacles, floating tome, book stack. Pages turn themselves while researching. Presents a compiled codex when done.
Towering bookshelf + reading desk
❖
Enchanter
Orchestration / Router
Glowing hands, thread and web motifs. Weaves visible connection threads between agents. The orchestrator made visible.
Enchanting table + connected threads
★
Apprentice
General Worker
Simple robe, satchel, eager posture. The default class for unspecialized agents. Earnest and adaptable.
Size: 16x16 or 24x24 per frame at 320x180 internal resolution.
Frames per class: idle (4f), walking (6f), working (6f), reporting (4f), stunned (4f) = ~24 frames.
Palette swap shader produces tier and provider variants at runtime. One texture per class, swapped via LUT. Zero duplicate art.
Phase 1: Placeholder sprites (coloured rectangles with class icons). Polished pixel art is a parallel workstream.
Tier System
Two visual axes: Power Level x Provider Affinity
The character class sets the silhouette. Power level drives intensity of effects.
Provider affinity drives colour and element theme. They combine freely -- any class, any power, any provider.
Power Levels
Level
Palette
Outline
Particles
Workstation
Models
1 -- Novice
Muted, desaturated
none
None
None
Basic wooden desk
Haiku, Flash, local small
2 -- Adept
Saturated base
1px subtle
1px glow
None
Polished + candle
Sonnet, Pro, GPT-4o-mini
3 -- Master
Rich + metallic
2px pulsing
2px pulsing
Sparse sparkles
Enchanted + floating candles
Opus, Ultra, GPT-4o
4 -- Grandmaster
Gold/silver threads
3px animated
3px animated
Orbiting motes
Arcane altar + rune circle
Future frontier models
5 -- Legendary
Chromatic / iridescent
full halo
Full aura
Trail + distortion
Throne + celestial orrery
Reserved -- headroom
How They Combine
Power level is a float (0.0--1.0) in config. The shader reads it directly for smooth glow intensity. Only particle systems and prop swaps are discrete breakpoints.
Novice + ArcaneHaiku Alchemist
Muted amber robes, no glow, basic desk. Clean and humble. The workhorse.
Pale blue robes, no glow, basic desk. Crystalline but subdued.
Master + PrismaticUltra Scribe
Deep crystal blue with silver threads, refracting light shards. Geometric brilliance.
Sprite count stays at 7 (one per class). Everything else is shader + particle config.
Adding a 6th provider or 6th power level needs zero new sprite art.
Output Layers
Three levels of detail -- floating runes, spell scrolls, raw terminal
All three layers share one data pipeline (SSE events into OutputBuffer) and just render it differently.
Same agent, same data, three presentations.
T27Remote orchestrator streaming -- SSH tunnel or network transport
Design Principles
Five tenets that guide every pixel
1
The Tower is Alive
Everything breathes, pulses, and responds to real data. Idle floors dim.
Busy floors swell. Agents animate contextually. Nothing is static decoration.
2
Showcase First, Dashboard Second
Visual storytelling takes priority over information density. If something can
be communicated through animation, colour, or spatial metaphor instead of a
label, prefer the metaphor.
3
Layers of Detail
Three levels everywhere: glance (floating runes, floor size), focus (spell scroll,
status overlay), and power-user (raw terminal, keyboard shortcuts). Don't force
detail on people who want ambiance.
4
Fantasy Vocabulary, Real Data
Every UI element has a fantasy name and aesthetic -- spell scrolls, quest boards,
enchanted nameplates -- but the data underneath is real and accurate. The theme
enhances comprehension, never obscures it.
5
Texture Over Flatness
Parchment has grain. Stone has moss. Panels float and flutter. Every surface
has material presence. The pixel art style is a medium, not a limitation.