A local, closed-loop Doom agent project exploring visual perception, replay capture, imitation learning, evaluation, and conservative action control.
The project is deliberately honest about its current stage: it is an experimental learning system, not a finished autonomous player. The current source tree supports browser-to-agent observation, passive scouting, candidate tracking, replay logging, and bounded controller experiments.
This project is my practical route into AI training and data annotation. Doom provides a compact environment for learning the full loop:
- Observe frames and identify useful visual evidence.
- Label actions and outcomes consistently.
- Train a policy from recorded demonstrations.
- Evaluate the policy against held-out sequences.
- Document failure states and improve the data.
That workflow connects directly to the work I want to do professionally: careful annotation, evidence-based evaluation, guideline application, and clear reporting of limitations.
-
discover: inspects non-sensitive metadata without gameplay input. -
scout: captures frames passively for later review. -
baseline: runs a bounded benchmark controller and records actions. -
closed-loop: tracks conservative visual candidates and records structured replay events. -
Browser extension and local bridge for connecting the game tab to the Python agent.
-
Perception tests covering the current candidate-detection layer.
-
Optional Unsloth decision-training data preparation, with replay holdouts and action coverage checks. Model training and gameplay gains remain unverified.
-
Reusable training dataset: 159,890 verified examples, referenced gameplay images, preserved validation splits, provenance, and a local CPU vision/language adapter trainer. Full training is running; gameplay improvement remains unverified.
-
Nightangel training progress: meaningful progress recorded under the owner account, with complete repeated verification recorded in GitHub Actions.
-
Nightangel overnight training watchdog: built October 11, 2026 to keep local training awake, detect an exited trainer, and resume from a compatible checkpoint.
The latest retained doom_policy_v4 training report records:
- 87 training sequences
- 18 validation sequences
- sequence length of 32
- best validation loss of 0.5767 at epoch 9
Important limitation: the report uses a time-block holdout from one episode. Episode-level generalization cannot be claimed until additional independent demonstrations are recorded.
- Start
run_bridge.bat. - Reload the unpacked browser extension and attach the Doom tab.
- Install the agent requirements in a Python environment.
- Begin with non-playing discovery:
python agent/agent.py --mode discover- Capture a passive sample:
python agent/agent.py --mode scout --seconds 20Only enable live action during short, bounded tests after reviewing the captured evidence.
agent/- perception and controller codebridge/- local browser bridgeextension/- browser extension filestests/- focused perception testsWORKLOG.md- chronological public build log.github/workflows/verify.yml- automatic verification after each push
Meaningful sessions are recorded through small commits, dated build-log entries, and automatic test runs. The exact routine is documented in CONTRIBUTING.md so the public history shows evidence of real progress rather than artificial contribution activity.
Large replay frames, trained model binaries, local environments, and temporary output are intentionally excluded from version control. The Unsloth guide covers controller decisions and the broader verified human gameplay archive, with local exports and protected evaluation recordings.
No seed phrase or private key is needed or stored. Secrets, user profiles, local browser data, model binaries, and raw replay captures must not be committed.
Draft annotated gameplay includes the video, CVAT XML, label schema, provenance, and transfer checks. E1M1 mission source documents the longer recording selected for the next annotation task. Annotation quality review is pending.