The emulator

The watch,
before the watch.

Every interaction gets tested here first, in pixels, where changing your mind costs nothing. This is the Essential Watch OS running today, a 128 by 64 monochrome panel driven by the same mode machine the firmware will use.

EMULATOR 1.1 · 128×64 LOGICAL · 3× FULL-RES · HANDJET

Click or tap the watch to focus it.

Controls

ActionKeyboardTouch
Crown rotate up↑Tap crown, top
Crown rotate down↓Tap crown, bottom
Crown pressEnterTap crown, middle
Button 1, selectZTap upper pill
Button 2, backXTap lower pill

Hold any key or button for half a second for a long press. From the watch face, a long press of the crown opens the menu.

What is simulated The game loop, the mode state machine, simulated heart rate and heading, piezo-style beeps and chimes, and every gesture: click, double press, long press, rotation. What is not simulated yet: the mode cycle from the v6 spec, BLE notifications, and real sensor behaviour. The screen runs a 128 by 64 monochrome panel at 30 frames per second.
Under the hood

Close to the pixel buffer.

No framework, by conviction. A firmware simulation wants the same shape as firmware, so the emulator borrows the structure of an embedded GUI.

Kernel

WatchOS class

Holds the drivers: audio, graphics, simulated sensors, input feedback. Runs the frame loop and manages the active mode, the way a microcontroller loop() would.

Screens

Mode classes

Every screen inherits from one abstract Mode base: home, menu, stopwatch, timer, alarms, workout, compass, info. Adding a mode is copying a class and registering it.

Hardware

SimulatedSensors

Mock heart rate, battery, and heading today. On real hardware these become I2C readings, and the modes do not know the difference.

Track the next emulator milestone

Archive

Earlier builds.

Three prototypes came before the emulator on this page. They are frozen where they landed, single files with no shared code, kept because the wrong turns are part of the record.

2025-11-20

Emulator 1.0

The baseline. A 128 by 64 monochrome panel, cyan on black, a game loop and a Mode class hierarchy in one HTML file. This is the architecture the current build inherits.

Open 1.0

Concept

Emulator 2.0

The same panel with a wider mode set: menu, stopwatch, workout, compass, alarms, info. A grey case, a blue OLED, and a mode stack instead of a flat registry.

Open 2.0

2026-04-27

Emulator 3.0

A large round canvas, touch first, chassis rendered in CSS. It explored more pixels and a finger instead of keys, and earned the conclusion that the 128 by 64 restraint is the product.

Open 3.0