Skip to content

typesafe-mario

Experimental controller where Jev picks NES inputs for Super Mario Bros. from structured emulator RAM and telemetry, not screenshots.

Demoprototype

Overview

TypeSafe Mario lets Jev choose controller inputs for the original Super Mario Bros. The model never sees screenshots: the harness converts emulator telemetry and RAM into compact, object-centric JSON with Mario's motion, jump trajectory, upcoming enemies, terrain, measured response delay, recent control results and episode progress. Jev chooses one of a small set of actions (noop, right, right_jump, right_run, right_run_jump, jump, left), the emulator advances several frames, and the loop repeats.

A dashboard shows the chosen action, full probability distribution, confidence, latency, jump probability, danger score, reward and parsed state, and every decision is logged to JSONL. A state-demo command shows exactly what would be sent without calling the API. The goal is reaching the flag in World 1-1 without dying. No ROM is included.

What the decision model decides

TypeQuestionAnswers
ChoiceWhich controller action should Mario take now?noop · right · right_jump · right_run · right_run_jump · jump · left

How it works

  1. Parse emulator RAM and telemetry into structured JSON.
  2. Ask Jev to choose an action.
  3. Advance the emulator several frames.
  4. Log the decision and repeat.

Strengths

  • No screenshots; compact structured state.
  • Full per-decision logs for analysis.
  • Inspect model input without spending API calls.

Caveats

  • Experimental; success rate not stated in the excerpt.
  • Requires your own legally obtained ROM and a TypeSafe key.

Getting started

pip install -e ".[mario,dev]", set TYPESAFE_API_KEY, then typesafe-mario play --env SuperMarioBros-1-1-v0 --frames-per-decision 8

At a glance

Type
Demo
Status
prototype
Language
Python
Runtime
emulator harness + dashboard
Has code
yes

Use cases and integrations

How curated lists describe it

  • Gaming: TypeSafe/Jev agent that plays Super Mario Bros. from structured emulator state, choosing each action from emulator-derived features.

    yibie/awesome-jev
  • Super Mario Bros. from structured emulator state.

    AnotiaWang/awesome-decision-models
  • An experimental NES Mario controller that gives Jev structured emulator RAM and telemetry instead of screenshots.

    logicrw/awesome-jev-projects
  • Super Mario Bros. agent choosing actions from structured emulator state.

    cobanov/awesome-jev
  • A TypeSafe/Jev agent that plays Super Mario Bros. from structured emulator state.

    hellogumbo/awesome-jev
  • Jev picks NES controller inputs for Super Mario Bros. from emulator state, with no screenshots.

    MrJev/awesome-jev

Frequently asked questions

Does Jev see the screen?

No, it receives structured JSON from emulator RAM and telemetry.

How often does it decide?

Every eight emulator steps by default.

Is a ROM included?

No, you must supply your own legally.

Related projects

  • Real-time bot battles where you write a fighter's strategy in plain English and a System One model pilots it several times a second.

    ProjectbetaTypeScript
  • Bot that plays Red Alert 2 web skirmishes, with code handling mechanics and a decision model making stance, threat and timing calls.

    ServicebetaPython
  • Multiplayer 3D science-fantasy version of Houston's River Oaks District with Jev-powered NPC companion, chauffeur and smart drive.

    ProjectbetaTypeScript
  • Browser 3D planetary rover sandbox where a TypeSafe controller chooses the next action from complete candidates, versus a baseline.

    ProjectbetaTypeScript
  • Doom runs as a spacecraft payload over real flight software; Jev pilots from the ground every half second while Claude reviews.

    ProjectprototypePython
  • Minecraft agent where Hermes plans, Jev picks one bounded action at a time and a Mineflayer harness validates and executes.

    ProjectprototypeJavaScript