shipwithjev

Catalog / Games & real time

0137GitHub

jev-piano

Jev can’t write a note, but with the right questions it improvises piano.

LamplighterPaul/jev-pianoREADME ↗
# Jev at the piano

**Experimental.** Jev cannot generate text, or code, or a single note. It answers typed questions
with probabilities and nothing else. So this hands it a piano and asks it questions.

Describe a mood — *a slow, sad waltz* — and it plays, continuously, deciding as it goes.

**Live at [jev-piano.zammitpaul.com](https://jev-piano.zammitpaul.com).**

## An X collaboration

This started on X. [@BaselAshraf81](https://x.com/BaselAshraf81) tried to make Jev play the piano,
found that it would not, and put five dollars on whoever could.
[@LamplighterPaul](https://x.com/LamplighterPaul) reckoned that given some music theory it would
find the next chord quite happily. So we are building it together.

We think it is possible. We are trying.

## Run it

```sh
npm ci && npm run build
TYPESAFE_API_KEY=... npm start        # http://localhost:8787
```

Add `TYPESAFE_API_KEY_2` (and `_3`, `_4`…) to rotate over several keys: calls go round robin, and a
key that comes back rate limited stands aside for the next one. `TYPESAFE_API_KEYS` also takes a
comma-separated list. `GET /api/health` reports how many it found.

The piece is signed when it is settled, and a phrase is only made for a piece that verifies, so a
brief can never reach Jev without first being asked whether it is safe to play. Set `PIECE_SECRET`
when more than one process serves the site; one process makes up its own.

## Why "it cannot play piano" was the wrong test

The obvious experiment is to feed Jev the notes so far and ask for the next one. That cannot work,
and not for any musical reason: [Jev](https://typesafe.ai) is a System One model whose entire API is
`{state, questions} -> probabilities`. Three question types — yes/no, pick one of these, score on
this scale. It has no way to emit a note, the 

Also filed under Games & real time

  1. 0607

    2048Jev: Jev plays 2048

    Built a demonstration of Jev playing 2048. Note: It might not always win. :)

    @TheRealRajdeep · Games & real time

  2. 0603

    System 1 Speedcuber: a Rubik's cube agent

    A speedcubing agent built on Jev and Laya ModernBERT-421M, with real-time 3D state, temporal memory and calibrated move probabilities instead of a solver.

    @harsha_varma02 · Games & real time

  3. 0597

    Astra and Jev play Minecraft

    A video letting Astra plan and Jev act inside Minecraft, with an outcome the creator didn't expect.

    @MatinSenPai · Games & real time

  4. 0593

    Jev Kitchen

    Inspired by @heystefan_: name a dish or a cocktail, and its ingredients rise out of a pile of stickers. ⚡ Jev judges every search in half a second 🎨 ~1,000 illustrations by FLUX.1 [dev], run locally through ComfyUI 🧠 Claude Opus 5.5 built it all and redrew the illustrations

    @nelsonpklark · Games & real time