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.