Ecosystem

Imitation learning

Lun'Gula

replay → model.

Status
On pause
Version
0.4.0July 2026
Since
2025
Stack
Python · ONNX · LSTM · DirectML
Repository

Gula · gluttony

Feeding on replays without end, until the game itself is absorbed.

Game replays hold thousands of hours of expert behavior: split-second decisions, movement paths, strategies nobody ever writes down.

Lun'Gula decodes them, turns them into feature sequences and trains a model to reproduce that behavior. Each game only needs a replay decoder and a state encoder: the dataset, training, model and export are shared.

LSTM layers
2
decoder to write per game
1

Architecture

How it works

A four-stage pipeline, from raw replay to exported model. The compute backend is detected automatically (CUDA, DirectML, ROCm, MPS or CPU). Adding a game means writing two classes and registering them in the CLI.

Reads the replay and the beatmap and turns them into a sequence of game states

Sliding windows: the context in, the next action out

2 layers, AdamW optimizer, MSE loss, separate validation set

Portable format, usable from Python, Node.js or C++

Where it stands

Checked in October 2026

Done

  • Generic framework: one decoder and one encoder per game
  • osu! decoder (.osr and .osu)
  • 2-layer LSTM model
  • Training loop with validation
  • ONNX export
  • Hardware detection: CUDA, DirectML, ROCm, MPS, CPU
  • lungula train CLI
  • Continuous integration

In progress

Nothing yet

Next

  • A full osu! streaming session, driven from the panel
  • Training on a large corpus (target: 1,000+ replays)
  • Model validation and benchmarking