8d90a25756b25a2f99c43446988c5538875c77d8
- keep-warm interval 600s -> 240s (avoids ~47s cold-start fallback) - local backend timeout 60s -> 70s (tolerates cold reload under 90s)
Le Mystere du Professeur Zacus
Zacus est en refonte vers un produit hybride unique:
- un jeu terrain fiable sur carte Freenove ESP32-S3,
- un studio auteur moderne en React + Blockly,
- un runtime portable "Zacus Runtime 3" compile depuis le YAML canonique.
Canon actuel
- Source narrative:
game/scenarios/zacus_v3_complete.yaml - Studio auteur:
frontend-v3/apps/atelier(monorepo pnpm + turbo ;frontend-scratch-v2/est abandonné depuis le hard cutover du 2026-05) - Hub game-master:
apps/zacus-hub(app SwiftUI native) - Gateway d'orchestration:
tools/zacus-gateway(FastAPI, port 8400) — compile le YAML → Runtime 3 IR et pousse aux cartes - Runtime portable:
tools/scenario/compile_runtime3.py+tools/scenario/simulate_runtime3.py - Cible hardware principale:
ESP32_ZACUS/idf_zacus(ESP-IDF, Freenove ESP32-S3) — submodule sur Gitea ;hardware/firmware(ancien build Arduino) est legacy - Plans et memoire:
memory/,plans/,todos/ - Architecture et cartes Mermaid:
docs/architecture/
Démarrage rapide
1. Bootstrap validation
bash tools/setup/install_validators.sh
bash tools/test/run_content_checks.sh
2. Compiler et simuler Runtime 3
python3 tools/scenario/compile_runtime3.py game/scenarios/zacus_v3_complete.yaml
python3 tools/scenario/simulate_runtime3.py game/scenarios/zacus_v3_complete.yaml
python3 tools/scenario/export_runtime3_firmware_bundle.py game/scenarios/zacus_v3_complete.yaml
3. Démarrer le studio React + Blockly
cd frontend-v3
pnpm install
pnpm test
# Bases de liaison : gateway (:8400), firmware (:80), hints (:8311), voice-bridge (:8200)
VITE_GATEWAY_BASE_URL=http://localhost:8400 \
VITE_ESP32_BASE_URL=http://zacus-master.local \
pnpm dev
4. Utiliser le shell canonique
./tools/dev/zacus.sh content-checks
./tools/dev/zacus.sh runtime3-compile
make runtime3-verify
make runtime3-test
./tools/dev/zacus.sh frontend-test
./tools/dev/zacus.sh frontend-build
./tools/dev/zacus.sh menu
Cartographie du dépôt
game/: scénarios YAML canoniques.audio/: manifestes audio et assets associés.printables/: manifestes et exports imprimables.kit-maitre-du-jeu/: matériel MJ et déroulé terrain.frontend-v3/: studio auteur (apps/atelier + apps/dashboard), monorepo pnpm + turbo. Webapp courante.apps/zacus-hub/: hub game-master (app SwiftUI native).tools/zacus-gateway/: gateway FastAPI (:8400) — orchestration studio/flash, compile YAML → Runtime 3 IR.ESP32_ZACUS/: firmware ESP-IDF (submodule Gitea), cible principaleidf_zacus.frontend-scratch-v2/: studio auteur React + Blockly (legacy, abandonné).hardware/firmware/: ancien firmware Arduino freenove (legacy).tools/: validateurs, compilateur/simulateur Runtime 3, shells d'automatisation.docs/: quickstart, architecture, benchmark OSS et runbooks.memory/,plans/,todos/: pilotage de la refonte.
AI Integration
Le projet intègre une couche IA pour enrichir l'expérience terrain :
- Voice pipeline : wake word (ESP-SR) → ASR → LLM → TTS (Piper / XTTS-v2) → speaker. Scaffold prêt, voir
docs/voice/VOICE_PIPELINE_GUIDE.md. - Vision : détection d'objets via ESP-DL pour indices contextuels.
- LLM hints : le Professeur Zacus répond aux joueurs via mascarade.
- TUI dev : script interactif d'orchestration →
python3 tools/dev/zacus_tui.py
Analyse complète : docs/AI_INTEGRATION_ANALYSIS.md
Sécurité & Déploiement
docs/SECURITY.md— audit firmware, HMAC auth, rate limitingdocs/DEPLOYMENT_RUNBOOK.md— procédures de déploiement terrain
Statut du projet
- Runtime 3 : compilateur + simulateur + export firmware bundle OK
- Studio auteur : React 19 + Blockly, 18 tests passing
- Firmware : sécurité P0 intégrée (HMAC, rate limit, safe OTA)
- Voice pipeline : scaffold ESP-SR prêt, TTS Docker validé
- Specs :
ZACUS_RUNTIME_3_SPEC.md,STORY_DESIGNER_SCRATCH_LIKE_SPEC.md
Documentation à lire
docs/QUICKSTART.mddocs/architecture/index.mddocs/AI_INTEGRATION_ANALYSIS.mdspecs/ZACUS_RUNTIME_3_SPEC.mdspecs/STORY_DESIGNER_SCRATCH_LIKE_SPEC.mddocs/benchmark-oss.md
Notes de refonte
- Le YAML reste la source de vérité pendant la migration.
- Le Runtime 3 devient le contrat portable entre studio, simulateur et firmware.
hardware/firmware/esp32/reste en lecture seule.- Les chemins legacy ne doivent être supprimés qu'après preuve de remplacement.
Licences
- Code: MIT (
LICENSE) - Contenu créatif: CC BY-NC 4.0 (
LICENSE-CONTENT.md)
Languages
C
48.1%
C++
28.8%
Python
14.3%
TypeScript
4.1%
Shell
2.4%
Other
2%