Limitless: Universal AI Game Agent
Limitless is a high-performance, vision-only foundation model agent designed to learn and play any commercial video game. It uses a ResNet50 backbone to map raw gameplay pixels directly to virtual controller actions.
Features
- Universal Simulator: A Gymnasium-compatible environment that captures any game window and sends inputs via a Virtual Xbox 360 Controller.
- Vision-Only Generalist: No game-specific IDs or embeddings. The model learns pure visual-to-action mapping, allowing for zero-shot potential across different games.
- Robust Extractor: Automatically extracts controller states from gameplay videos, even with semi-transparent overlays (e.g., Cuphead, Ready or Not).
🛠️ Installation
1. Prerequisites
- Python 3.10+
- ViGEmBus Driver: Required for virtual controller support. Download here.
- NVIDIA GPU: Recommended for high-speed training and inference.
2. Setup
# Clone the repository
git clone https://github.com/haumlab/limitless
cd limitless
# Install the package
pip install .
Usage
Once installed, you can use the limitless command directly.
1. Extract Data
Extract actions from your own gameplay videos.
limitless extract --input "path/to/videos" --output "dataset/my_game"
2. Train the Model
Train the "Limitless" model on one or multiple datasets.
limitless train --dataset dataset/readyornot --dataset dataset/cuphead
3. Run the Agent
Run the trained agent on a live game window.
limitless run --window "Cuphead" --model limitless_latest.pth
4. Test on Video
Visualize the model's predictions on a video file before running it live.
limitless test-video --video "gameplay.mp4" --model limitless_latest.pth
Technical Architecture
- Backbone: ResNet50 (Pre-trained on ImageNet).
- Policy Heads:
- Buttons: Multi-label classification (Sigmoid + BCEWithLogitsLoss).
- Sticks: Regression (MSELoss) for LX, LY, RX, RY axes.
- Input: 224x224 RGB frames.
- Output: 14 Buttons, 4 Stick Axes.
Safety & Isolation
Limitless is designed to be non-intrusive:
- It uses a Virtual Gamepad (vgamepad) and does not touch your physical mouse or keyboard.
- It captures screen data via
mssand does not inject code into game processes.
License
MIT
Metadata
Release files for limitless-ai 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| limitless_ai-0.1.0.tar.gz | 59.6 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| limitless_ai-0.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 144.7 kB
Release files / limitless_ai-0.1.0.tar.gz
| Download URL | limitless_ai-0.1.0.tar.gz |
|---|---|
| Size | 59.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
c2cdd41800c9ea07963d5d4f0024c4ef448ada28aab313e7caeb6b0e28a95692
|
|
BLAKE2b-256 checksum How to use checksums |
34462b0f21e306212d75e657cff6964d5800be5596f58f1759703815e1bf8b9b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.14.2
|
Release files / limitless_ai-0.1.0-py3-none-any.whl
| Download URL | limitless_ai-0.1.0-py3-none-any.whl |
|---|---|
| Size | 85.1 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
a822237c2e5c99a0cfaa171406b11cf01ffe23a36c0384df4cb700625a6ded53
|
|
BLAKE2b-256 checksum How to use checksums |
bca0a0897d6759b01567b0ea9e70f64b5c8ef276d7a1be5f03ad3a53eb86f9cc
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.14.2
|