Radxa ROCK 5 ITX+ (recommandé)
ARM RK3588, 8-32 GB RAM, NVMe, 4x HDMI out, 2x RJ45 2.5G. Accélération matérielle MPP. ~150 EUR. Profils matériels →
L’écosystème SimStudio se compose de deux parties :
Le produit commercial pré-assemblé (mini-PC avec SimServer pré-installé) s’appelle SimBox.
SimServer est une application Docker-first qui s’exécute sur n’importe quelle machine Linux. Plus besoin de dispositif dédié : un simple PC, un mini-PC ARM ou un NUC Intel suffit. Un ESP32-S3 USB bridge (~5 EUR, PCB 2 couches, USB-C) assure la communication directe avec les nodes de simulation via ESP-NOW.
SimServer se déploie en une seule commande via Docker Compose :
docker compose up -d| Service | Rôle | Image |
|---|---|---|
| Caddy | Reverse proxy, TLS automatique (certificats auto-signés pour IPs locales) | caddy:2-alpine |
| SimServer API | API principale, logique métier, WebSocket temps réel | kersim/server (FastAPI + uvicorn) |
| MQTT | Bus de messages entre services et nodes (Eclipse Mosquitto) | eclipse-mosquitto:2 |
| Redis | Cache, sessions, pub/sub interne | redis:7-alpine |
| go2rtc | Agrégation de flux caméras (RTSP, RTMP, WebRTC) | alexxit/go2rtc |
SimServer fonctionne sur n’importe quelle machine Linux avec Docker, mais les performances d’encodage vidéo varient selon le matériel :
| Profil | Accélération | Machines types | Encodage |
|---|---|---|---|
| CPU only | Aucune | RPi 4/5, PC générique | FFmpeg software (1-2 flux 1080p) |
| Intel VA-API | GPU intégré Intel | Intel NUC, mini-PC x86 | FFmpeg VA-API (4+ flux 1080p) |
| RK3588 MPP | NPU/VPU Rockchip | Radxa ROCK 5 ITX+ | MPP hardware (4+ flux 4K) |
Radxa ROCK 5 ITX+ (recommandé)
ARM RK3588, 8-32 GB RAM, NVMe, 4x HDMI out, 2x RJ45 2.5G. Accélération matérielle MPP. ~150 EUR. Profils matériels →
Intel NUC / mini-PC x86
Intel N100/i5, 8-16 GB RAM, NVMe, HDMI, RJ45 2.5G. Accélération VA-API. ~150-300 EUR. Profils matériels →
Raspberry Pi 4/5 (budget)
ARM BCM2712, 4-8 GB RAM, microSD/NVMe (Pi 5), 2x HDMI. CPU only. ~80-120 EUR. Profils matériels →
SimServer centralise tous les flux de la simulation :
graph LR CamPoE["Caméras IP PoE"] -->|RTSP| Studio CamUSB["Caméras USB"] -->|USB/UVC| Studio SimCam["SimCam (smartphones)"] -->|WebRTC| Studio SimPilot["SimPilot"] <-->|WebSocket| Studio Nodes["Nodes"] <-->|ESP-NOW via USB bridge| Studio MQTT["MQTT (Mosquitto)"] <-->|pub/sub| Studio
subgraph Studio["SIMSERVER (Docker Compose)"] direction TB S1["Mixage vidéo / audio"] S2["Overlay paramètres"] S3["Enregistrement"] S4["Scénarios"] S5["Journal / Export"] end
Studio -->|HDMI| Salle["Salle simulation"] Studio -->|HDMI| Regie["Régie formateur"] Studio -->|HDMI| Debrief["Salle débriefing"] Studio -->|NVMe| Storage["Stockage"]
style Studio fill:#4a90d9,color:#fff style SimPilot fill:#50b87a,color:#fff style Nodes fill:#d94a4a,color:#fffLorsqu’un SimServer est présent, il remplace le coordinateur ESP32 externe comme point d’accès WiFi et comme pont vers les nodes (via l’ESP32-S3 USB bridge connecté en USB-C à la machine hôte).
Le mode régie est le cœur du dashboard SimStudio.
| Layout | Description |
|---|---|
| Plein écran | 1 caméra sur toute la surface |
| Deux vues | Split horizontal ou vertical |
| Trois vues | 1 principale + 2 secondaires |
| Quatre vues | Grille 2×2 |
Les layouts sont configurables indépendamment pour chaque sortie HDMI.
SimServer permet un mixage audio indépendant par sortie HDMI :
| Sortie | Usage type | Mix audio |
|---|---|---|
| HDMI 1 | Salle de simulation | Audio ambiance seul |
| HDMI 2 | Régie formateur | Ambiance + retour micro |
| HDMI 3 | Salle de débriefing | Audio mixé complet |
Sources audio : micro USB/boundary, audio des caméras IP (RTSP), SimCam. Contrôle de volume par source, VU-mètres en temps réel, mute individuel.
Superposition en temps réel sur les flux vidéo :
| Action | Effet |
|---|---|
| Play | Démarrer ou reprendre le scénario |
| Pause | Suspendre le scénario (les nodes se figent) |
| Stop | Arrêter la simulation (retour à l’état initial) |
| Enregistrer | Démarrer/arrêter l’enregistrement de tous les flux |
| Étape suivante | Forcer le passage à l’étape suivante |
| Override vital | Modifier manuellement un paramètre vital |
| Déclencher événement | Injecter un événement (choc, alarme, etc.) |
| Marqueur | Poser un marqueur temporel pour le débriefing |
La timeline graphique du scénario affiche les étapes passées, en cours et à venir, avec les paramètres vitaux prévus et les conditions de transition.
Le mode débriefing permet de rejouer la simulation enregistrée :
docker compose pull && docker compose up -dSimServer embarque une base de données légère (SQLite) pour :
Plusieurs SimServers peuvent coexister dans un même organisme. Le SimHub est un concentrateur multi-sites qui supervise l’ensemble des SimServers, avec multiplexing et diffusion vidéo inter-salles. Voir aussi le mode multi-salles pour la configuration.
| Composant | Technologie |
|---|---|
| Langage | Python 3.14 |
| Framework web | FastAPI (ASGI, uvicorn) |
| Temps réel | WebSocket natif + MQTT (Eclipse Mosquitto) |
| Reverse proxy / TLS | Caddy (certificats auto-signés automatiques) |
| Vidéo | FFmpeg (CPU), GStreamer (accélération matérielle) |
| PTZ | ONVIF (python-onvif2), VISCA over IP |
| Streaming | HLS (débriefing), RTSP (caméras IP), WebRTC (SimCam) |
| WiFi AP | hostapd |
| ESP-NOW bridge | ESP32-S3 USB bridge (PCB 2 couches, USB-C, ~5 EUR) |
| Cache / pub-sub | Redis |
| BDD | SQLite (WAL mode) |
| Déploiement | Docker Compose |