Python Quoridor game engine with Gym environment for RL
Project description
🧠 Quoridor-RL: A Multi-Agent RL Environment for the Quoridor Board Game
Quoridor-RL is a Python-based simulation environment for the Quoridor board game, compatible with the Gymnasium API and multi-agent RL training using Ray RLlib. It also includes a 3D interactive web viewer built with Three.js, and supports human interaction, imitation learning, and deployment on Hugging Face Spaces.
✨ Features
- ✅ Fully rule-compliant 2- and 4-player Quoridor engine
- ♻️ Multi-agent training support (Ray RLlib)
- 🎮 Human-agent interaction mode
- 📈 Episode logging for imitation learning
- 🧠 Gymnasium-compatible environment
- 🌐 3D visualization in the browser (Three.js)
- 🚀 Hugging Face Space ready
📦 Installation
Python Game Engine
pip install quoridor-sim
JavaScript Viewer
cd web-viewer/
npm install
npm run dev
🧪 Quick Start: Training with Ray RLlib
from ray.rllib.algorithms.ppo import PPOConfig
from quoridor.env import QuoridorEnv
config = PPOConfig().environment(env=QuoridorEnv, env_config={...})
algo = config.build()
algo.train()
See training_examples/ for full MARL setups.
🌍 Web Viewer The web UI is built with Three.js and supports:
- Live replay of RL episodes
- Human-vs-agent gameplay
- Drag-and-drop wall placement
- API polling or WebSocket update
Launch
cd web-viewer/
npm run dev
📊 Observation & Action Spaces Observation Shape: (C, 9, 9) Channels:
- Player positions
- Opponent positions
- Goal rows
- Horizontal/vertical walls
Action Discrete:
- 0–3: move in cardinal directions
- 4–N: place wall at encoded location and orientation
See docs/observation_action.md for details.
🧠 Imitation Learning Support
Episodes are logged to JSONL or .npz with:
observations,actions,rewards,next_observations,dones
Compatible with HumanCompatibleAI/imitation:
imitation-train expert_demos.npz --algo=bc
🚀 Hugging Face Space You can deploy the environment and viewer together on Hugging Face Spaces.
Example layout:
huggingface-space/
├── app.py # Gradio or Flask API server
├── assets/ # Quoridor model data
└── web/ # Built JS assets
📜 License
MIT License. See `LICENSE`.
🤝 Contributing Pull requests and feature suggestions are welcome! Please open an issue to discuss major changes first.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file quoridor_env-0.1.5.tar.gz.
File metadata
- Download URL: quoridor_env-0.1.5.tar.gz
- Upload date:
- Size: 39.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.11.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
67d7d30ffd9db2b13a46d3dbd2539c5d5c7d6e7ec142f218bbe098bebb4e8dfa
|
|
| MD5 |
f9adb13cf7df2224cedeb6c5d3ed22bc
|
|
| BLAKE2b-256 |
4450a664515ec0f2357e20c61065cee2f9e24b480849a199a500c252473d33e2
|
File details
Details for the file quoridor_env-0.1.5-py3-none-any.whl.
File metadata
- Download URL: quoridor_env-0.1.5-py3-none-any.whl
- Upload date:
- Size: 20.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.11.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4fe09f9419b3578ad83fe78d518f340f047273c0cd22833b9731fde215b4b55f
|
|
| MD5 |
e507c759db28877feab2a5cd15041815
|
|
| BLAKE2b-256 |
bdc5d76b9aee0da05cf333fa9796bc9d06456636b6315b9651b8fd4a229ead4b
|