LivingKioskUse now
← All displays

Koi

A koi pond seen from above, where the fish swim like fish: each one is a spine of fourteen points following its head, with a swim wave that grows toward the tail, so the head stays steady and the tail does the work. They steer clear of each other and of the banks, and now and then one rises and leaves a ripple. The water is a shader laid over a painted pond floor, bending the view with swell and ripples, pooling caustics on the bottom, and glinting with a low sun or the moon.

Koi by day: six koi in orange, gold and white-and-red swim through green water webbed with caustic light, among lily pads — two carrying pale blossoms — with pebbles along the banks and a few petals on the surface.
DayGreen water, caustics on the floor, blossoms on the pads.
Koi at night: the pond in deep blue-black, the fish faint shapes beneath the surface, a soft patch of moonlight glinting on the water at upper left, and blossoms still pale on their lily pads.
NightThe same pond in moonlight, the fish gone dim.

How the fish swim

Each koi is simulated, not animated. A spine of fourteen points follows the head, with a swim wave applied on top that grows toward the tail. Soft steering keeps the fish apart and off the banks, and every fish has its own size, pattern and depth — the deeper ones are murkier and fainter.

If you self-host

Self-hosted, read-only container. Koi makes no outbound request at all, ever — every fish and every frame is computed in the browser. Because nothing is fetched, it can also be built as a pure-static site for any CDN or file host.

What it wants

A time of day — day, dusk, or night — and, if you like, a fish count and a seed. Everything scales from the screen’s own shorter side, so the same URL works on a 16:9 panel, a portrait tablet, or a phone.

Setup

Put Koi on a screen.

A browser is genuinely enough — the Mac app and Fully Kiosk below are conveniences, not requirements.

Any screen

nothing to install
  1. Open the display in whatever browser the screen already has.
  2. Go full screen: F11 on Windows and Linux, ⌃⌘F on macOS.
  3. Or give it a browser of its own, which is what a dedicated panel wants: chrome --kiosk <url> — on macOS, open -a "Google Chrome" --args --kiosk <url>.
  4. Turn off display sleep in the machine’s power settings and walk away.

Mac desktop

LivingKiosk app
  1. Get the app and its install steps at livingkiosk.com/mac. It isn’t notarized yet, so macOS asks you to approve it once.
  2. Menu bar → Library… and pick a display for each screen.
  3. Configure… on any screen for its reload schedule, dim, and saved configs.
See the Mac app →

Wall tablet

via Fully Kiosk
  1. On any Android tablet, install Fully Kiosk Browser.
  2. Settings → Web Content → Start URL: the display’s address.
  3. Under Device Management, keep the screen on and set a dim schedule so it isn’t glaring at 3am.
  4. Turn on Start on Boot so a power blip brings the display back by itself.
fully-kiosk.com →

Displays are ordinary web pages, so anything that can hold one open works: a Raspberry Pi on a monitor, a retired iPad, a Fire tablet, the browser built into a TV.

Configuration

URL parameters.

Everything below, plus a live preview and a URL builder that writes the link for you, is at koi.livingkiosk.com/setup.

ParameterDefaultMeaning
koi7How many fish are in the pond, 1–24.
speed1A multiplier on how fast everything moves, 0.2–3. Clamped, not rejected.
pads6How many lily pads float on the surface, 0–16. Some carry a blossom. 0 leaves open water.
petalsonon or off. Blossom petals that drift down and land on the water, each leaving a small ripple.
timedayday, dusk, or night. Dusk is warm with the low sun on the water; night is dark and blue, with the moon.
dim0Neutral darkening overlay, 0–0.8 (fleet-wide convention).
seed—Pins which fish, where they start, and where the pads and pebbles lie, so the same URL always begins the same way.

Koi is open source under the MIT licence. Run it yourself with one command. The source opens to the public soon.