Skip to content

Build orchestration visualizer with retro game aesthetic #1

Description

@williamthorsen

Overview

Build Artifactory - a web-based visualizer that displays orchestration workflow progress as a retro pixel-art game with Donkey Kong aesthetics. This serves as a developer tool to understand orchestration status during active runs while being engaging enough to create buzz.

Problem

Orchestration currently produces timestamped markdown artifacts and a status.json file, but there's no visual way to understand what's happening during a run. Developers have to read files directly or mentally map the workflow.

Solution

A locally-running web application that displays orchestration progress as an animated factory/construction site with worker characters representing different agents (architect, planner, coder, reviewers). The spatial layout encodes the dependency graph, making the workflow structure immediately clear.

Key Features

Visual Design

  • Platform view (side-scrolling like Donkey Kong)
  • Pixel art workers with hard hats representing different agent roles
  • Color-coded artifacts as crates (blue=architecture, green=plan, yellow=code, red=findings)
  • Industrial aesthetic: girders, platforms, work lights, factory wall with iteration counter
  • Retro palette: CGA/EGA inspired colors, pixel fonts

Game Board Layout

  • Horizontal flow (left → right): Architecture → Planning → Implementation → Review → Simplifier → Holistic Review → Summary
  • Parallel review area: 4 reviewers stacked vertically at same horizontal position
  • Visual dependencies: Gates between stations open when dependencies complete
  • Fix cycle visualization: Coder walks backward when findings exist, returns after fixes

Interactivity

  • Click agents to see status details and current work
  • Click artifacts to read markdown content with syntax highlighting
  • Run selector to switch between orchestration runs
  • Real-time updates via polling (2-second interval for in-progress runs)
  • Static view for completed runs (no polling, just final state)

Architecture

Backend (Node.js/TypeScript)

  • Express server with REST API
  • GET /api/status - Returns current status.json
  • GET /api/artifact/:runId/:filename - Returns artifact markdown
  • Reads from ~/.ai/projects/{project-slug}/tickets/{ticket-id}/{run-id}/
  • Stateless file reading (no database)

Frontend (React + Excalibur.js)

  • React for UI shell (sidebar, modals, controls)
  • Excalibur.js game engine for sprite rendering and animations
  • Vite build tooling
  • TypeScript throughout

Data Flow

  • Frontend polls /api/status every 2 seconds
  • Detects state changes (phase transitions, new artifacts, criticality)
  • Triggers Excalibur animations via custom event system
  • status.json is source of truth - frontend only visualizes, never invents state

Implementation Phases

  1. Backend Setup - Express server, artifact path resolution, API endpoints
  2. Frontend Shell - React app, polling hook, UI components (sidebar, modal, top bar)
  3. Excalibur Game Board - Scene setup, station positioning, camera controls
  4. Character Sprites & Animation - Agent actors with animation states (idle, working, walking, carrying)
  5. Artifacts & Fix Cycles - Artifact crates, fix cycle loops, iteration counter
  6. Interactivity - Click handlers, run selector, pause/resume controls
  7. Visual Polish - Proper pixel art, particle effects, lighting, CRT scanline effects

Tech Stack

  • Frontend: React 18+, TypeScript, Excalibur.js, Vite
  • Backend: Node.js 18+, TypeScript, Express
  • Dev Tools: pnpm, Prettier, ESLint, strict TypeScript

Success Criteria

Functional:

  • ✅ Visualizes all orchestration phases accurately
  • ✅ Updates in real-time during active runs
  • ✅ Shows final state for completed runs
  • ✅ All agents and artifacts are clickable
  • ✅ Markdown rendering works correctly

Aesthetic:

  • ✅ Retro pixel art style with engaging animations
  • ✅ Clear spatial encoding of workflow dependencies
  • ✅ Smooth 60 FPS rendering

UX:

  • ✅ Camera follows active phase automatically
  • ✅ Intuitive click interactions
  • ✅ Responsive controls (pause, refresh, run selector)

Next Steps

See detailed implementation plan in comment below.

Metadata

Metadata

Assignees

No one assigned

    Labels

    featureAdded or improved external functionality

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions