Recruitment Office — an office simulation in pixel art

2026

An isometric office simulation: twenty people call, type, talk and ring the bell for every placement. TypeScript, Canvas and Web Audio.

Recruitment Office is a recruitment agency you look at from an angle above, with the front walls taken away as in a doll's house. There are three rooms: the open office floor with the recruiters, the back office with IT and administration, and the directors' office. The floor also has a kitchen, a lounge corner, a phone booth, a reception desk and a printer. You do not play anything; you watch twenty people go through their working day.

The twenty are two directors, a team lead, ten recruiters, an office manager, four IT people and two people in the back office. The names are made up. Each of them is a small 3D model about 39 blocks high. The models are drawn in the browser as pixel art in eight directions, with their own hair, face and clothes, and some with glasses, a headset or a badge. Walking, sitting, typing, calling, talking, drinking and cheering are poses of the same model. The desks with their screens, phones and mugs, the plants, the bookcase and the walls with their windows are made the same way.

One second is a minute on the office clock, and the week runs from Monday to Friday. Most people come in between a quarter past eight and ten past nine and say good morning; the office manager and the directors are there earlier. At a quarter past nine the recruitment team stands in a circle for the stand-up, and IT has one at its own desks. At half past twelve everyone has lunch: at the high table in the kitchen, on the sofa, at their own desk or out for a walk. At two the team lead meets the managing director at the round table, and on Friday at half past four there are drinks. Between five and half past six everyone goes home; the night passes quickly.

In between, everyone chooses what to do from their role and how sociable they are. Recruiters call at their desk, walking by the window or in the phone booth. People fetch coffee or water, print, stop for a chat at someone's desk, and the help desk comes by to fix a computer. The directors walk the floor. A call with a candidate can end in a placement: the recruiter shouts it, walks to the brass bell on the wall and rings it. Confetti flies and the colleagues cheer. The panel counts the week's placements.

What people say appears in speech bubbles, in Dutch or English: over 120 single lines and 22 short dialogues, some of them jokes. Phone calls have a blue bubble. Whoever talks can be heard as babble at their own pitch: syllables through two vowel filters, and thinner on the phone. In the background the office radio plays a jazz piece of its own in F major in AABA form over 32 bars, with electric piano, a walking double bass, brushes and a vibraphone that makes up its melody from the chords again on every repeat. The phones, the bell, the applause, the coffee machine, the printer, the door chime and the typing can be heard too. Everything is made live with the Web Audio API; there are no sound files.

The light follows the clock. The windows show sky, clouds and the houses across the street. Patches of sun move across the floor, late in the afternoon the light turns warm, and at night it is dark and only the screens glow. The wall clock shows the simulation's time.

You can drag the view and zoom in and out, on a phone as well. Point at someone and you see their name, job and what they are doing. The simulation can pause and run at three or ten times the speed. There is no game engine: it is TypeScript on a Canvas 2D, about 44 kB gzip. Walking routes are found with A* over a grid of 4 by 4. Unit tests in Vitest check, among other things, that every chair and every spot can be reached and that a whole working day runs without anyone getting stuck. End-to-end tests run in Chromium, Firefox and WebKit.

Technologies

TypeScript Canvas 2D Web Audio API Vite Vitest Playwright

More of my work

Browse the full portfolio or read the blog.

More work