madewithlaya

Catalog / Tools & apps

0090GitHub

Laya clears Super Mario Bros. 3 World 1-1 on a DGX Spark: 207 decisions, frames verified

Unmodified Laya weights, real NES emulation via Stable Retro, text observations from RAM, model-driven jumping. 27.5 s of game time at 16.79 ms median inference.

Open source ↗ github.comcostfree, localtime16.79 ms median inference
cv/laya-plays-smb3README ↗
# 🍄 Laya plays Super Mario Bros. 3

**COURSE CLEAR. 207 decisions. Every frame verified.**

[](pyproject.toml)
[](https://github.com/NandhaKishorM/laya)
[](docs/mario.md)
[](https://github.com/cv/laya-plays-smb3/releases/tag/v0.1.0-world1-clear)

[Laya](https://github.com/NandhaKishorM/laya) cleared Super Mario Bros. 3 World 1-1 on a DGX Spark.
**27.50 seconds of game time · 16.79 ms median inference · unmodified model weights.**

<a href="https://github.com/cv/laya-plays-smb3/releases/download/v0.1.0-world1-clear/laya-world1-1.mp4"><img src="docs/assets/level-clear.gif" alt="Recorded ending of the verified World 1-1 run: Mario jumps into the goal card and the game displays COURSE CLEAR" width="512"></a>

*Real emulator footage at original game speed. Text observations from visible-state RAM;
fixed rightward movement, model-driven jumping. One selected stochastic run in stepped mode.*

[Watch the full run](https://github.com/cv/laya-plays-smb3/releases/download/v0.1.0-world1-clear/laya-world1-1.mp4) · [Release & evidence](https://github.com/cv/laya-plays-smb3/releases/tag/v0.1.0-world1-clear) · [Reproduce it](#quick-start) · [How it works](#how-it-works)

</div>

## Why put a decision model in Mario?

Because a probability distribution is much more interesting when the wrong answer walks into a pit.

This is a small experimental playground for **model-driven game control**: native Laya inference
on an NVIDIA DGX Spark, real NES emulation, structured observations, and an unusually inspectable
trail of decisions. The interesting part isn't just whether Mario survives—it's seeing **what the
model was told, which action it favored, and whether that action arrived in time**.

- **Real SMB3, not a look-alike.** Stable Retro + FCEUmm run the game; the harness owns the control

Also filed under Tools & apps

  1. 0005

    laya-mlx plays Snake at 60 decisions per second

    介绍比Jev快50倍,在你设备上跑的laya-mlx! 只在你的设备上占用最高1G内存 Laya是一个开源的类似于Jev的,基于文本输出概率的分类系统 我将其移植到MLX,并且做了一些性能优化! 视频中就是这个模型在我的本地M3Max上玩贪吃蛇 这个模型能够以每秒决策60次的速度玩贪吃蛇! https://t.co/31KGUiNunb

    @mizorewww · Tools & apps · free, local · 60 decisions/s

  2. 0112

    Laya on Axera AX650 and AX8850 edge NPUs, under 70 ms

    AXERA-TECH's conversion of all three Laya checkpoints for its edge AI chips, reported at latency under 70 ms per decision on AX650/AX8850.

    AXERA-TECH · Tools & apps · free, on-device · < 70 ms on AX650 / AX8850

  3. 0099

    laya-mcp (PerryLink): a warm sidecar that fixes Laya's silent truncation and constant noul

    MCP server plus HTTP sidecar: token-budget preflight that reports what would be cut, a persisted calibration store, structured errors, and a noul fix (P(true) 0.5 → 1.0).

    @PerryLink · Tools & apps · free, local

  4. 0097

    Gomoku against Laya-MLX: you play black, the model picks white's move from six candidates

    Local 15x15 Gomoku on Apple Silicon. Rules in Python, board in the browser, every AI move one real Laya choice over up to six candidates, probabilities shown. No Gomoku training.

    smile-magic · Tools & apps · free, local