Playground/Arcade/Meteor dodge
API ACTIVITY

Usage & budget

PLAYGROUND SAFETY LIMITS

Steady requests. Visible limits.

0 active · 0/20 queued

Browser: one start every 1.2 seconds (at most 50/minute), up to 2 active calls and 20 waiting. Shared by examples in this tab. Waiting requests cancel when their run is stopped; a full queue rejects new work without an API call.

Server: 60 requests per rolling 60 seconds and 2 concurrent calls per key, per server instance. Other tabs using the same key share that instance’s allowance. This in-memory safeguard resets on restart and is not a distributed or account-wide quota.

Source: playground policy in lib/requestRateLimit.ts. TypeSafe may impose separate limits. Provider HTTP 429 pauses calls until its reported reset; without a reset time, retry requires your action. HTTP 402 is a budget/billing failure, not a pacing limit. No automatic retries or background replay.

Your TypeSafe API key

Import your key to override the shared server default.

Saved on this browser until removed or site data is cleared. Masked on screen; sent only with Jev requests through this app. The saved value is never displayed.

Connecting
Arcade

Jev plays Meteor dodge

Five lanes of falling rock. The game counts how far each lane stays clear; Jev changes lanes or holds.

WORKSPACE GUIDE

Meteor dodge

Fly a ship through five lanes of falling meteors and survive as long as possible.

Lanes aheadJev choiceLane change

What you provide

A seed and a player: Live Jev, the scripted rule, the random baseline, or you on the keyboard.

What happens

Each row the game computes, for each move, whether the ship would crash, how many visible rows stay survivable, and how many lanes remain open at the edge of view. Live Jev answers one choice question over the legal moves.

What you get

Rows survived and each row's choice with its probabilities, compared with the random baseline on the same seed. Runs stop at 150 rows or on the first hit.

Walk through a run

  1. 01

    Pick a player

    Scripted demo and Random baseline run locally. Live Jev uses the configured key, one request per row.

  2. 02

    Play a seed

    The seed fixes every meteor, so every player faces the same field. The next row is highlighted.

  3. 03

    Compare the score

    Rows survived sit beside the random baseline on the same seed. Open a move to see each lane's look-ahead.

Try this

Try a seed where the random baseline dies early, then see whether Live Jev survives all 150 rows.

Execution limits

The game computes a nine-row look-ahead for each move. Jev chooses one offered move. The world keeps one survivable path, so a crash is a decision error.

Explore the example. Check the evidence.
Code computes the consequences. Jev picks the move.

Before every move, the game works out what each legal action would do: crash or not, distance to the goal, and a short look-ahead where noted. Jev reads those facts and chooses one action from the offered set. It is a reactive choice, not a planner, and a malformed answer plays a safe fallback that is counted separately. Scores are compared with a random baseline on the same seed, which sees the identical world.

Scripted demo

Ready · move 0 of 150

Scoreboard

seed 1
Rows survived0
Random baseline, this seed
81
Random baseline, mean of 20 seeds
36.1
Scripted rule, this seed
150

Setup

A short hand-written rule plays locally. Not Jev, and no model call.

The seed fixes the whole world, so every player faces the same game. Live runs are capped at 150 moves and send at most one request a second.

The decision

Lanes aheadJev choiceLane change

No moves yet

Press Play or One move. Each move shows the facts the game computed for every legal action and the choice that was made.

Move log

0 moves
Lanes aheadJev choiceLane change

No moves yet

Every move lands here with who chose it: Jev, a forced move, a fallback, the scripted rule, random, or you.