Back to Bondlets

Documentation

REQUIREMENTS

Thronglets Project Status Board - Requirements

Project Codename: Thronglets Document Version: 1.0 Last Updated: 2026-01-24


Executive Summary

A web-based project status board inspired by the Black Mirror: Thronglets game aesthetic. Developer personas appear as yellow pixel creatures (Thronglets) who discuss the tasks and work they're doing. As tasks are implemented, items appear in a scrolling activity feed. The meta-twist: the characters are discussing building the very demo they exist in.


Core Concept

The Hook

Five developer characters (Jan, Dan, Priya, Marcus, Bill) are shown as Thronglet-style creatures on an isometric game board. They communicate via speech bubbles, discussing tasks, debating approaches, and celebrating completions. The project they're building is the application itself - creating a self-referential loop that's immediately obvious in a 2-minute demo.

Visual Reference

  • Source: Black Mirror: Thronglets (Netflix/Night School Studio)
  • Style: Retro pixel art, isometric perspective, yellow creatures
  • Fidelity: Exact clone of visual style (Bill Hartley to ensure authenticity)

Functional Requirements

FR-1: Thronglet Characters

IDRequirement
FR-1.1Display 5 Thronglet characters representing team personas
FR-1.2Each character has distinct visual differentiation (accessories, colors, poses)
FR-1.3Characters have idle animations (breathing, blinking, small movements)
FR-1.4Characters have emotion states (neutral, happy, frustrated, thinking, celebrating)
FR-1.5Characters positioned on isometric game board

FR-2: Speech Bubbles & Conversations

IDRequirement
FR-2.1Speech bubbles appear above characters when speaking
FR-2.2Bubbles display text with character-appropriate styling
FR-2.3Conversations follow a scripted sequence (JSON input)
FR-2.4Support for multiple characters speaking in turn
FR-2.5Typing animation effect for text appearance
FR-2.6Bubbles auto-dismiss after configurable duration

FR-3: Conversation Input Format

Conversations provided as JSON array:

json
{
  "conversations": [
    {
      "id": "conv-001",
      "trigger": "task-complete:FR-2.1",
      "messages": [
        {
          "speaker": "jan",
          "text": "Speech bubbles are working. Did we write tests first?",
          "emotion": "stern",
          "duration": 3000
        },
        {
          "speaker": "dan",
          "text": "They work, don't they?",
          "emotion": "smug",
          "duration": 2500
        },
        {
          "speaker": "priya",
          "text": "Let's add the tests now before we forget.",
          "emotion": "diplomatic",
          "duration": 3000
        }
      ]
    }
  ]
}

FR-4: Project Status Board

IDRequirement
FR-4.1Project description panel (title, summary, team)
FR-4.2Timeline visualization showing milestones
FR-4.3Burndown chart (visual progress indicator)
FR-4.4Scrolling activity feed showing completed items
FR-4.5Task items animate into feed as "completed"
FR-4.6Milestone markers with visual celebration when reached

FR-5: Audio & Sound

IDRequirement
FR-5.1Background ambient music (retro game style)
FR-5.2Speech bubble appear sound effect
FR-5.3Task completion sound effect
FR-5.4Milestone achievement fanfare
FR-5.5Character interaction sounds (optional)

FR-6: Web Server

IDRequirement
FR-6.1Simple HTTP server to serve static HTML/CSS/JS
FR-6.2Hot reload during development (nice to have)
FR-6.3Serves on configurable port (default: 3000)

Non-Functional Requirements

NFR-1: Technology Stack

ComponentTechnology
FrontendHTML5, CSS3, Vanilla JavaScript (no framework required)
GraphicsPixel art sprites (PNG), CSS animations
AudioWeb Audio API, MP3/OGG files
BuildNone required (static files)
ServerPython http.server or Node.js serve

NFR-2: Browser Support

  • Modern browsers (Chrome, Firefox, Safari, Edge)
  • No IE11 support required

NFR-3: Performance

  • Smooth 60fps animations
  • Load time < 3 seconds on decent connection
  • Responsive to window resizing (within reason)

Visual Design Specifications

Color Palette (Authentic Thronglets)

ElementColorNotes
Thronglet body#FFD93DSignature yellow
Thronglet outline#8B7355Brown/dark outline
Background#1A1A2EDark blue-purple
UI panels#16213EDarker panels
Text#E8E8E8Off-white
Accent#4ECCA3Teal highlights

Sprite Specifications

AssetSizeFrames
Character idle32x32 px4-8 frames
Character emotes32x32 px2-4 frames per emotion
Speech bubbleVariableStatic + tail variants
UI elements16x16 px (icons)As needed
Isometric tiles64x32 pxGround, decorations

Characters (The Five Thronglets)

CharacterPersonaVisual DistinctionTypical Lines
JanPrincipal EngineerGlasses, neat posture"Did we write tests?"
DanStaff EngineerMessy, relaxed pose"Ship it!"
PriyaSenior EngineerHeadphones, calm"Let's consider both approaches"
MarcusTech LeadLaptop accessory"What does the team think?"
BillGraphics DesignerBeret, artist palette"The pixels need work"

Meta Project Tasks (In-Game Content)

The characters discuss building the application they're in. Example task flow:

Task IDTask DescriptionConversation Trigger
M0-001Set up project structureCharacters discuss folder layout
M0-002Create character spritesBill shows mockups, team reacts
M1-001Implement speech bubbles"Look, we can talk now!"
M1-002Add idle animationsCharacters notice they're moving
M1-003Build activity feedFirst task appears in scroll
M2-001Add sound effects"Did you hear that?"
M2-002Connect conversation JSON"We're following a script!"
M3-001Complete demoTeam celebrates

Milestones

MilestoneNameDescription
M0FoundationProject setup, Bill's mockups, base HTML
M1Core MechanicsCharacters, speech bubbles, activity feed
M2PolishSound, animations, conversation system
M3Demo Ready2-minute demo video achievable

Deliverables

  • Static HTML/CSS/JS application - No build step required
  • Sprite assets - All character and UI graphics from Bill
  • Audio assets - Background music and sound effects
  • Conversation scripts - Sample JSON conversations
  • Web server script - Simple serve command
  • 2-minute demo capability - Runnable demo showcasing concept

  • Out of Scope (v1.0)

    • User interaction (clicking characters, etc.)
    • Persistent state / save games
    • Real-time data integration
    • Mobile responsive design
    • Accessibility features (future consideration)
    • Multiplayer / networked features

    Acceptance Criteria

  • Page loads and displays 5 Thronglet characters
  • Characters have idle animations
  • Speech bubbles appear and display conversation text
  • Conversations can be defined via JSON and played
  • Activity feed scrolls with completed tasks
  • Audio plays (music + sound effects)
  • Visual style matches Thronglets game aesthetic
  • Demo runs for ~2 minutes showcasing all features

  • Appendix: Reference Materials

    © 2026 Jonathan Leahy · v1.1.0