PlayJev
PlayJev: Qwen3.5-0.8B fine-tuned to play ten browser games from raw pixels, one forward pass per move with a probability per option.
Overview
PlayJev is Qwen3.5-0.8B-Base fine-tuned to play ten classic browser games (Tetris, Snake, Pacman, a racer, Space Invaders, Sokoban, a Mario clone, a Flappy Bird clone, Breakout and 2048) from raw pixels. One 448-pixel frame goes in, one forward pass runs, and a probability over the game's listed moves comes out, read from option letters with no generated text; the README reports 43 ms per move on an H200. The model never sees the game's name, and moves are shuffled in training so position carries no information.
The README contrasts this with other Jev-style game demos that feed text, such as parsed emulator RAM or one line per frame. The game loop executes the argmax, and per the list summaries, low-confidence steps can be handed to a search program. Weights and all training records are on Hugging Face, each game is plain HTML5/JS with a small hook shared by training and demo, and a reproduce script rebuilds the model from teachers through three DAgger rounds. A live demo plays all ten games.
What the decision model decides
| Type | Question | Answers |
|---|---|---|
| Choice | Which move should be made given this game frame? | — |
How it works
- Capture one 448 px frame and the list of legal moves.
- Run one forward pass to get move probabilities.
- Execute the argmax move.
- Hand low-confidence steps to a search program (optional).
Strengths
- Plays from pixels in real time.
- Open weights and training data.
- Fully reproducible pipeline.
Caveats
- Single-frame input; no temporal context in this release.
- Speed figure is on an H200.
Getting started
python -m playjev.play snake --policy local --ckpt OmniJev/PlayJev-0.8B --episodes 1At a glance
- Type
- Service
- Status
- research
- Language
- Python
- Runtime
- PyTorch, headless Chromium
- Has code
- yes
Use cases and integrations
How curated lists describe it
Gaming: open 0.8B vision-language model that reads one 448 px game frame, returns a probability over the moves the game lists in a single forward pass with no generated text, and hands its low-confidence steps to a search program, across ten browser games.
yibie/awesome-jevQwen3.5-0.8B-Base fine-tuned to play ten browser games from 448 px frames: one forward pass per move, a probability over the game's option list read off the option letters, no generated text. Open weights and a demo of all ten in the browser.
AnotiaWang/awesome-decision-modelsOpen 0.8B vision-language model that reads a 448 px game frame and returns one move from the game's typed option list with a probability on each, one forward pass and no generated text; the game loop executes the argmax, the confidence gates an optional handover to a search program, and the weights and a ten-game browser demo are public.
cobanov/awesome-jevPlay ten browser games from the screen with a 0.8B open model that returns a probability over the game's legal moves in one forward pass, no text generated.
hellogumbo/awesome-jevMultimodal decision model that plays browser games from raw pixels, with weights and a hosted demo.
MrJev/awesome-jev
Frequently asked questions
What input does the model use?
A single 448 px game frame and the list of moves.
How fast is it?
43 ms per move on an H200, per the README.
Are the weights open?
Yes, on Hugging Face along with the training records.
Related projects
- jev-visual★ 317
Educational MLX project scoring typed questions about one image with Qwen3.5-0.8B on Apple Silicon, with game demos.
ModelresearchPython StartLux's open typed decision models from 0.8B to 27B plus a 35B-A3B MoE, reading text, JSON or images up to 256K tokens.
ModelresearchPython- clash-jev★ 36
Clash Royale bot on a real phone with no trained policy: vision builds a JSON state and Jev picks strategy, card and square each second.
ProjectprototypePython Browser driving game where Florence-2 captions dropped images and Jev decides whether the car stops, slows or continues.
ProjectprototypeTypeScriptAutonomous PlayStation 2 agent that captures emulator frames, asks Jev for the next action, and injects virtual controller input.
ProjectprototypePythonBrowser arcade games (2048, runner, chess, Flappy Bird, Sudoku) where small decision models choose each move from text options.
ProjectprototypePython