Snake
Watch Jev play snake, race it against Laya and Claude, and change how it plays by writing a rule.
Jev is ready to play.
House rules
Latest decision
Press “Let Jev play” and the odds for each turn appear here.
How it works
A snake only ever has three choices: turn left, go straight, turn right. That is the whole question, and it is why the bars beside the board are decisive rather than smeared — three options share the probability, not two hundred.
Before asking, code works out what each turn would do: what it moves into, the real walking distance to the food around the walls, and — the number a good player is actually tracking — how many squares would still be reachable afterwards, by flood fill. Jev cannot count or do arithmetic, so it is never asked to. It is handed the counts and asked the only question that needs judgement: is this food worth the room it costs?
One request, several moves
A call takes about a second whatever it carries, so asking per move would crawl. Instead each request also asks how far to commit — travel one square and think again, or run eight down a clear lane. That buys roughly three and a half moves per call, and the snake moves at whatever speed you set rather than at the speed of the network.
Code clamps that plan twice. Once to the squares that are genuinely clear, so a commitment can never kill the snake, and once to the distance to the food, so a long run cannot sail straight past it. Without the second clamp the snake committed to eight squares at a time and scored zero; with it, the same games score six while still averaging three and a half moves per call.
Write a rule, watch it take effect
Type an instruction in plain English. It joins the state on the very next move, and becomes its own yes-or-no question checking whether the chosen turn obeyed it. Nothing is retrained and nothing restarts. The hand-written bot, shown under each move, cannot do this at all — to change its mind you would edit its scoring function and redeploy it.
Race another model
The picker at the top swaps the engine. Jev, Laya, Haiku 4.5, Sonnet 5 and Opus 5 all receive byte-for-byte the same state. Jev and the Claude models are offered the same three turns; Laya is offered fewer, for the reason below. What differs otherwise is the shape of the answer and, for Laya, how many questions it is asked; the meters keep running so latency and cost are measured on the same game rather than asserted.
Laya is a second decision model, open source and free while in beta. It is asked only the turn, how far to run and whether each house rule was kept, because every extra question adds to the wait on each move. Each rule is quoted inside its question, since Laya takes instructions as plain text only. And it is offered only the turns that do not hit anything: given all three on fourteen positions with a dead end, it walked into it five times, although the option said the snake would die. Whether a turn hits a wall is something code already knows, so code keeps it. When only one turn is clear, code takes it and asks Laya only how far to run and whether each house rule was kept.
Measured on one identical position, same state, same three choices, one request each. A request can plan several moves, so on average a move costs less than this:
| engine | round trip | cost per request |
|---|---|---|
| Jev | 1,106 ms | $0.000053 |
| Haiku 4.5 | 3,705 ms | $0.001464 |
| Sonnet 5 | 6,142 ms | $0.004724 |
More than three times faster and twenty-eight times cheaper than the fastest Claude, on the same question. Run it yourself — the meters keep a separate rate for each engine.
One honest difference the panel labels rather than hides. Jev and Laya return a probability for every option, because that is what a decision model emits. A language model writes a single number it chose to write, so its confidence is self-reported — the panel head says which you are looking at. Treating those two numbers as the same thing would be the entire point missed. The plan clamps, the safety checks and the flood fill are the same whichever engine answers, so apart from Laya’s shorter list of turns, only the judgement changes.
See the request
Press Show request, beside the latest decision, and the panel opens onto the exact payload behind it. For Jev and Laya that is the state, every question with its instructions and criteria, and the raw typed answers with their probabilities. For a Claude model it is the request body, prompt and schema included, and the structured answer it wrote. It is the real thing, not a reconstruction.
The hand-written bot scores about 43 on this board. It also cannot be told anything.