This clock is redrawn from scratch every second by a flow matching model running locally in the browser.
Before the current generation of autoregressive image models like Nano Banana and GPT Image, if you prompted a model like DALL·E for an image of a clock it was typical for the clock to be drawn incorrectly or not displaying the time you specified.
So I set about trying to make an image model that would produce accurate clock faces and do so quickly enough that it could function as a clock in real time. Accuracy required adding bespoke penalty terms to the loss function to address successive failures of the model. Speed, especially on the mobile device I had to hand, required slimming the resolution down to 256×256 and distilling inference down to a single forward pass.
By default, the clocks are generated from a fixed latent noise tensor, which keeps the image more stable. But if you want to see the constrained variety the models are capable of, click the "Unfreeze latent" button to generate each image from its own noise tensor.