Installation
Complete installation guide for DOOM Neuron and all dependencies.System Requirements
Hardware
- CL1 Hardware: Required for biological neuron training (or CL SDK for testing)
- GPU: CUDA-capable GPU recommended for faster training (CPU works but slower)
- RAM: 8GB minimum, 16GB+ recommended
- Storage: 5GB for dependencies + checkpoints
Software
- Operating System: Linux (Ubuntu 20.04+ recommended), macOS, or WSL2 on Windows
- Python: 3.8 or higher
- CUDA: 11.0+ if using GPU acceleration (tested with CUDA 13.0)
Network (for distributed training)
- Bandwidth: Stable local network for CL1 ↔ Training Server communication
- Latency: Under 10ms recommended for real-time neural feedback
- Ports: UDP ports 12345-12348 must be accessible
Installation Steps
Create Python Environment
Create and activate a virtual environment:
Always activate this environment before running DOOM Neuron:
Install Core Dependencies
Install all required packages from This installs:
requirements.txt:- vizdoom==1.3.0.dev2 - DOOM game engine
- tables - HDF5 file support for neural data
- tensorboard==2.20.0 - Training visualization
- opencv-python - Image processing
- torch - PyTorch for neural networks
- cl-sdk - CL1 hardware interface (commented, install separately)
Install CL SDK
Install the CL SDK for interfacing with CL1 hardware:Verify CL SDK installation:
If you don’t have physical CL1 hardware, the SDK can run in simulation mode for testing the architecture.
Verify VizDoom Installation
Test that VizDoom is correctly installed:VizDoom should display version
1.3.0.dev2.Configuration Files
DOOM Neuron includes several scenario configuration files:Scenario Descriptions
| Config File | WAD File | Description |
|---|---|---|
progressive_deathmatch.cfg | progressive_deathmatch.wad | Default. Similar to survival but kills don’t reset ammo count, encouraging proper ammo management. Includes movement tweaks to make training easier. |
survival.cfg | survival.wad | Classic survival scenario. |
deadly_corridor_1.cfg – deadly_corridor_5.cfg | deadly_corridor.wad | Curriculum stages where 1–4 ramp difficulty gradually, and 5 is the benchmark. Progress through 1-4 builds basic policies but may result in movement habits that underperform on 5 (straight running toward armor). |
Directory Structure
After installation, your project should look like:Environment Variables (Optional)
You can set these environment variables for convenience:~/.bashrc or ~/.zshrc
Docker Installation (Alternative)
For containerized deployment, use the provided Docker scripts:Network Configuration
For distributed training (CL1 on separate device), ensure firewall rules allow UDP traffic:Port Usage
| Port | Direction | Purpose |
|---|---|---|
| 12345 | Training → CL1 | Stimulation commands (StimDesign, BurstDesign) |
| 12346 | CL1 → Training | Spike data (timestamps, channels, waveforms) |
| 12347 | Training → CL1 | Event metadata (kills, damage, pickups) |
| 12348 | Training → CL1 | Feedback commands (reward-based electrical pulses) |
| 12349 | Training → Browser | MJPEG stream for visualization (optional) |
Testing Installation
Verify everything works with a quick CPU-based test:- VizDoom window opens (if
--show_windowis set) - Training episodes start running
- Console output shows episode rewards
- No error messages about missing dependencies
Troubleshooting
VizDoom Import Error
Problem:ImportError: No module named 'vizdoom'
Solution:
Ubuntu/Debian
CL SDK Not Found
Problem:ImportError: No module named 'cl'
Solution:
CUDA Out of Memory
Problem:RuntimeError: CUDA out of memory
Solution: Reduce batch size in PPOConfig:
ppo_doom.py
UDP Port Already in Use
Problem:OSError: [Errno 48] Address already in use
Solution: Kill existing processes using the ports:
Network Timeout
Problem: Training server can’t connect to CL1 Solution:- Verify CL1 interface is running first
- Check firewall allows UDP 12345-12348
- Verify IP addresses are correct
- Test network connectivity:
ping <cl1-host>
Next Steps
Quickstart
Get your first training session running
Configuration
Tune hyperparameters and feedback settings