Canonical benchmark brief

02. The 9-to-5 — Office Life Simulator

Back to all prompts
# 02. The 9-to-5 — Office Life Simulator

A real-time top-down office simulator. Characters — each an AI-generated inline SVG — walk between departments, sit at desks, and perform role-specific tasks. The viewer watches a little world breathe, or presses a button to trigger a specific event. The aim is to see whether a model can build a self-consistent simulation with shared resources, dependency chains, and expressive SVG art simultaneously.

## What to make

A single-page, real-time office simulation rendered in SVG. The camera is fixed top-down (2D). The office is a floor plan with named zones. Characters move between zones, perform tasks, and interact with shared resources. A clock in the corner shows simulated time. An FPS counter and task-completion counter are always visible. Buttons in a bottom bar let the viewer trigger events.

The 8-hour workday (9 AM – 5 PM) is compressed to **15 seconds of real time** (1 real second ≈ 32 simulated minutes).

### The office floor plan

```
┌──────────────────────────────────────────────────────────────┐
│  RECEPTION         │        OPEN PLAN (Engineering)           │
│  (intern desks)   │   desks, whiteboards, monitors         │
├──────────┬─────────┴──────────────────────┬─────────────────┤
│ MEETING  │     KITCHEN / BREAK ROOM       │   EXECUTIVE     │
│ ROOM 1   │  coffee machine, fridge, table │   CORNER        │
│          │                                  │  (CEO desk)    │
├──────────┴─────────────────────────────────┴─────────────────┤
│ HR DESK    │    SALES FLOOR (3 desks)   │   STORAGE        │
│            │    phones, deal boards       │   printer,       │
│            │                              │   supplies       │
└──────────────────────────────────────────────────────────────┘
```

### The five characters

Each character is a hand-crafted inline SVG (no external files). Flat/minimalist style, warm palette, immediately recognizable silhouettes.

| Character | Starting zone | Accent | Tasks |
|---|---|---|---|
| **Alex** (Engineer) | Open Plan | Blue | Code review → standup meeting → lunch → debug incident |
| **Sam** (Sales) | Sales Floor | Green | Cold call → demo prep → presentation → close deal |
| **Jordan** (HR) | HR Desk | Amber | Review resumes → interview prep → conduct interview → file paperwork |
| **Riley** (Ops) | Storage | Orange | Restock supplies → fix printer → prep meeting room → coffee delivery |
| **Casey** (Intern) | Reception | Yellow | Greet arrivals → fetch coffee → shadow meeting → reorganize storage |

### The task system

Each character has a **queue of tasks**. Tasks have:

- **Duration** — simulated minutes at the workstation
- **Location** — which zone the character must be in
- **Prerequisites** — conditions that must be met first
- **Animation state** — what the SVG character does while working

**Alex (Engineer):**
1. Arrive at desk (walk from entrance, 8 simulated minutes)
2. Code review (typing animation, 30min) — prerequisite: coffee
3. Standup meeting (walk to Meeting Room 1, 15min) — prerequisite: another team member is present
4. Lunch (walk to kitchen, eating, 60min)
5. Debug incident (urgent red glow, 20min) — fires once per day at a random time

**Sam (Sales):**
1. Cold calls (phone animation at desk, 20min)
2. Demo prep (slides animation, 15min)
3. Presentation (walk to Meeting Room, 25min) — prerequisite: projector turned on
4. Close deal (celebration or disappointment animation, 10min)
5. Update CRM (typing, 10min)

**Jordan (HR):**
1. Review resumes (reading at desk, 25min)
2. Interview prep (organizing, 15min)
3. Conduct interview (walk to Meeting Room, 20min) — prerequisite: room is available
4. File paperwork (typing, 12min)

**Riley (Ops):**
1. Restock supplies (walking, 15min)
2. Fix printer (tool animation at printer, 12min) — queue system
3. Prep meeting room (setup animation, 10min) — prerequisite before any meeting
4. Coffee delivery (carry animation, 8min)

**Casey (Intern):**
1. Greet arrivals (wave at reception, 15min)
2. Fetch coffee (carry, 10min) — delivers to Jordan before interviews
3. Shadow meeting (observe in Meeting Room, 15min) — prerequisite: meeting is happening
4. Reorganize storage (sorting, 12min)

### Shared resources

| Resource | Zone | Capacity | Behavior |
|---|---|---|---|
| Coffee machine | Kitchen | 1 at a time | Queue forms. Brewing takes 5 simulated minutes. Coffee lasts 1 task. |
| Projector | Meeting Room 1 | 1 | Riley turns it on before Sam can present. Toggle animation. |
| Printer | Storage | 1 | Jobs queue. Printing takes 8 simulated minutes. Flashes when done. |
| Kitchen table | Kitchen | 3 seated | Characters wait, leave when done. |
| Meeting chairs | Meeting Room 1 | 6 | Riley sets up before meetings. |

### The simulation clock

- **9:00 AM** — All characters walk in from entrance to starting zones.
- **9:30 AM** — Task queues begin filling.
- **12:00 PM** — Lunch wave. Characters stagger naturally; not everyone leaves at once.
- **1:00 PM** — Post-lunch return. Walk speed visibly slower.
- **3:00 PM** — Afternoon slump. Occasional yawn animation.
- **4:30 PM** — Wind-down. Desks clear.
- **5:00 PM** — Day end. Characters walk out. Stats panel: "Day complete — N tasks finished."

Loops back to 9 AM after 8 seconds. Runs indefinitely.

## Viewer controls

A bar at the bottom of the screen has two buttons. Pressing either triggers an event immediately regardless of the clock.

**Emergency Meeting** — All characters immediately drop what they are doing and rush to the Executive Corner (CEO's office). They gather in a cluster, a brief "discussion" animation plays (2 seconds), then they return to their desks and resume their task queues. This tests how gracefully the model handles interrupt handling and task queue resumption.

**Lunch Break** — Triggers the lunch sequence immediately. All characters currently not in a meeting walk to the kitchen, queue for the coffee machine and table, eat (eating animation), and then return to their desks. Characters mid-presentation or mid-interview finish their current task before joining. This tests capacity management and staggered timing on the shared kitchen resource.

## Always-visible HUD

Top-right corner of the screen:
- **FPS** — current frame rate, updates every second
- **Tasks done** — count of completed tasks across all characters
- **Sim time** — current simulated time (e.g. "10:42 AM")

## Hard requirements

- Runs from a single `index.html`. No build step. No external image files — all characters and furniture are inline SVG inside the HTML.
- Smooth at 60fps with 5 characters and all zone interactions.
- No network calls at runtime.
- Keyboard: Space pauses/resumes. R resets to 9 AM.
- The SVG art must be self-consistent across all 5 characters — same proportions, same palette, same animation vocabulary.
- `manifest.json` lists any CDN URLs used (none expected).
- Honor `prefers-reduced-motion`: replace walking animations with instant teleports. Disable looping ambient animations.

## Visual rules

- **Top-down.** Characters approximately 20px tall. Clear silhouettes.
- **Palette:** Warm neutrals — cream walls, light wood desks, dark charcoal furniture. Each character has one accent color.
- **Zone distinction:** Each zone has a subtly different floor tone and furniture arrangement.
- **Animation vocabulary:** walk (bob + translate), sit (static at desk), type (small vertical oscillation), talk (scale pulse), wait (subtle sway), celebrate (scale up briefly), urgent (red glow pulse). Exactly one animation state per character at a time.
- **State indicators:** A small speech-bubble floats above a character when blocked waiting for a prerequisite.
- **No gradients on floors.** Shadows are simple offset rectangles.