VAGOsolutions/SauerkrautLM-Doom-MultiVec-31k
SauerkrautLM-Doom-MultiVec-31k 31,645 human gameplay demonstration frames for training the SauerkrautLM-Doom-MultiVec-1.3M DOOM action classifier. This dataset was recorded by a human player in VizDoom's SPECTATOR mode across 4 recording sessions totaling approximately 2 hours of gameplay in the defend_the_center scenario. Each frame includes the ASCII game view, real VizDoom depth buffer data, and soft action labels derived from keyboard input. Dataset Structure… See the full description on the dataset page: https://huggingface.co/datasets/VAGOsolutions/SauerkrautLM-Doom-MultiVec-31k.
<img src="Logo.png" width="500" height="auto">
SauerkrautLM-Doom-MultiVec-31k
31,645 human gameplay demonstration frames for training the [SauerkrautLM-Doom-MultiVec-1.3M](https://huggingface.co/VAGOsolutions/SauerkrautLM-Doom-MultiVec-1.3M) DOOM action classifier.
This dataset was recorded by a human player in VizDoom's SPECTATOR mode across 4 recording sessions totaling approximately 2 hours of gameplay in the defend_the_center scenario. Each frame includes the ASCII game view, real VizDoom depth buffer data, and soft action labels derived from keyboard input.
Dataset Structure
Each sample contains:
Soft Action Scores
Action labels are soft distributions, not hard one-hot labels. When the human presses multiple keys simultaneously (e.g., forward + shoot), both actions receive high scores (0.85), while inactive actions receive a baseline of 0.05. This provides richer supervision for KL-divergence training.
ASCII Encoding
Each frame uses 10 brightness characters: " .:-=+*#%@" (dark to bright). Bright characters indicate nearby solid objects; dark characters indicate distant or empty areas. Row separators (\n) preserve the 2D spatial layout.
Recording Setup
Usage
from datasets import load_dataset
dataset = load_dataset("VAGOsolutions/SauerkrautLM-Doom-MultiVec-31k")
train = dataset["train"]
print(f"Samples: {len(train)}")
print(f"Features: {list(train.features.keys())}")
# Inspect a sample
sample = train[0]
print(f"ASCII frame length: {len(sample['text'])} chars")
print(f"Action scores: {sample['scores']}")
print(f"Depth bins (first 10): {sample['depth_bins'][:10]}")Train with this dataset
# Clone the project
git clone https://github.com/VAGOsolutions/doom-multivec.git
cd doom-multivec
pip install -e ".[dev]"
# Train the classifier
python scripts/train_classifier.py \
--data VAGOsolutions/SauerkrautLM-Doom-MultiVec-31k \
--output output/my-model \
--epochs 10 \
--batch-size 32 \
--lr 3e-4Associated Model
This dataset was used to train [SauerkrautLM-Doom-MultiVec-1.3M](https://huggingface.co/VAGOsolutions/SauerkrautLM-Doom-MultiVec-1.3M), a 1.3M parameter ModernBERT-Hash classifier that achieves 178 frags in 10 episodes of VizDoom's defend_the_center, outperforming GPT-4o-mini, Nemotron-120B, Qwen3.5-27B, and Gemini Flash Lite combined.
Citation
@misc{SauerkrautLM-Doom-MultiVec,
title={SauerkrautLM-Doom-MultiVec-1.3M: Playing DOOM with 1.3M Parameters},
author={David Golchinfar and Daryoush Vaziri and Alexander Marquardt},
url={https://huggingface.co/VAGOsolutions/SauerkrautLM-Doom-MultiVec-1.3M},
year={2026}
}License
Apache 2.0 License.
DOOM is a registered trademark of id Software LLC. This project is not affiliated with or endorsed by id Software.
