🎲 VTT Data-Manager-Visuel#
Local-First · Desktop · Steam P2P · Souveraineté numérique
VTT-DMV est une application desktop tout-en-un pour les Maîtres de Jeu de jeux de rôle sur table.
Elle fusionne trois familles d'outils dans une seule app :
| Création de monde | Table virtuelle spatiale | Outils de table |
|---|---|---|
| Wiki structuré (lieux, persos, orgas…) | Rendu 2D canvas/WebGL | Jet de dés |
| Relations typées et valuées | Tokens draggable, brouillard de guerre | Traqueur d'initiative |
| Templates de propriétés par genre | Import de maps, calques | Marqueurs d'état, compteurs |
🔑 Philosophie#
100% local. Toutes les données et images vivent sur le disque dur du MJ. Pas de cloud, pas de compte, pas de serveur.
Le soir de la partie, les joueurs rejoignent instantanément via le réseau P2P de Steam — sans config IP, sans port forwarding. Le MJ garde la souveraineté totale sur son univers.
┌──────────────┐
│ Disque MJ │ ← Toutes les données, zéro cloud
└──────┬───────┘
│
┌──────┴───────┐
│ Steam P2P │ ← Les joueurs se connectent en un clic
└──────────────┘
🧱 Stack technique#
| Couche | Technologie | Rôle |
|---|---|---|
| Shell desktop | Tauri v2 | Fenêtre native, accès système, signatures |
| Frontend | SvelteKit 5 + Vite | UI réactive, rendu 2D |
| Backend Rust | Tokio | Tâches async, réseau, fichiers |
| Base de données | SurrealDB 3 (SurrealKV) | Graphe embarqué, multi-modèle |
| Réseau P2P | Steamworks SDK | NAT traversal, lobby, invitations |
📁 Structure#
├── src-tauri/ # Backend Rust (binaire Tauri)
│ ├── src/
│ │ ├── main.rs # Point d'entrée
│ │ ├── lib.rs # Commandes Tauri
│ │ └── infrastructure/
│ │ ├── db.rs # SurrealDB embeddé
│ │ ├── network.rs # Steamworks P2P
│ │ └── mod.rs
│ ├── Cargo.toml
│ └── tauri.conf.json
├── frontend/ # Frontend SvelteKit
│ ├── src/
│ │ ├── routes/ # Pages (SSR/CSR)
│ │ └── lib/ # Composants, stores
│ └── package.json
├── DOCUMENTATION/ # PRD, SPECs, ADRs, audits
├── backlog/ # Tâches, milestones
├── Makefile # Commandes de build
└── CHANGELOG.md
🚀 Quick start#
Prérequis#
- Rust 1.85+
- Node.js 22+
- npm 10+
- Steamworks SDK (optionnel — pour la feature réseau P2P)
# Installer les dépendances frontend
cd frontend && npm install && cd ..
# Lancer en mode développement
make dev
# Builder le binaire standalone
make build
Avec Steamworks (nécessite le SDK)#
# Activer la feature steamworks
cargo build --release -p vtt-dmv --features steamworks
📋 MVP — 13 fonctionnalités#
| # | Feature | Statut |
|---|---|---|
| F01 | Base de données de monde souveraine (13 types d'entités) | 🔨 En cours |
| F02 | Workspace spatial 2D avec tokens draggable | ⏳ Planifié |
| F03 | Réseau P2P Steamworks zéro-config | ⏳ Planifié |
| F04 | Steamworks optionnelle (mode hors-ligne) | ✅ ADR rédigé |
| F05 | Gestion des médias (images, cartes) | ⏳ Planifié |
| F06 | Éditeur de token | ⏳ Planifié |
| F07 | Brouillard de guerre | ⏳ Planifié |
| F08 | Initiative tracker | ⏳ Planifié |
| F09 | Jet de dés (3D physiques) | ⏳ Planifié |
| F10 | Calques de map | ⏳ Planifié |
| F11 | Portée / mesure de distance | ⏳ Planifié |
| F12 | Marqueurs d'état et compteurs | ⏳ Planifié |
| F13 | Sécurité Payload Router | ⏳ Planifié |
📚 Documentation#
Toute la doc est dans /DOCUMENTATION :
- 10 - Produit → PRD, roadmap, guide utilisateur
- 20 - Technique → SPECs, glossaire, sécurité, veille
- 30 - Décisions → ADRs (Architecture Decision Records)
- 40 - Exploitation → Runbooks, audits
🛠️ Commandes Makefile#
| Commande | Description |
|---|---|
make dev |
Lancer Tauri + SvelteKit en mode dev |
make build |
Builder le binaire release |
make fmt |
Formater Rust + JS |
make lint |
Linter Rust + JS |
make test |
Tests Rust + frontend (vitest) |
📝 Licence#
MIT © 2026 — Projet open-source.