# SEQUA Engine ![SEQUA](artwork/SEQUA_GraphicIdentity.v1.png "SEQUA Engine") **SEQUA** : *Simulate Environments, Quantify Uncertainty, Adapt.* Environnement de création et d'exécution de mondes virtuels, piloté par l'intention de l'auteur, au-dessus d'un noyau déterministe et rejouable. Les moteurs 3D et les modèles IA sont des composants interchangeables. Documentation de référence : [docs/SEQUA_Engine_resume_complet_v2.md](docs/SEQUA_Engine_resume_complet_v2.md) ## Organisation du dépôt (monorepo) | Dossier | Rôle | Langage | |---|---|---| | [studio/](studio) | SEQUA Studio : `host/` (exécutable qui gère le Core et sert l'interface) + `ui/` (interface web) | C++20, TypeScript | | [core/](core) | SEQUA Core : projet, simulation déterministe, rejeu, intentions, orchestrateur, confiance | C++20 | | [3d/](3d) | SEQUA 3D : interface vers les moteurs 3D (adaptateurs, capacités, synchronisation) | C++20 | | [render/](render) | `sequa-render` : processus de rendu lancé par le Core, charge une bibliothèque d'adaptateur ([ADR 0009](docs/adr/0009-processus-de-rendu-lance-par-le-core.md)) | C++20 | | [engines/](engines) | Adaptateurs des moteurs 3D : `godot/adapter` + `godot/vendor/godot-src` (fork de Godot 4.7.2-stable) et `godot/vendor/godot-cpp` (10.0.0-stable), sous-modules ; `debug/adapter` (rendu 2D sans GPU, en images ou vidéo) | C++20 | | [platform/](platform) | Code propre à chaque système, partagé : lancement de processus enfants liés au parent (`process/`), arborescence des binaires et racine `sequa-root.json` (`layout/`) | C++20 | | [schema/](schema) | Contrat de données et protocole Studio↔Core | Protobuf / FlatBuffers | | [docs/](docs) | Documentation, décisions d'architecture (`docs/adr/`), spécifications des protocoles (`docs/specs/`), tutoriels (`docs/tutoriels/`) | Markdown | | [artwork/](artwork) | Identité graphique et sources visuelles | PNG | | [prototypes/](prototypes) | Prototypes jetables (ex. échange GPU rendu vers inférence), hors produit | C++ | | [cmake/](cmake), [scripts/](scripts) | Options de compilation, build et vérification locaux | CMake, PowerShell, Bash | Les moteurs eux-mêmes sont des sous-modules git, inutiles pour construire SEQUA : `git submodule update --init engines/godot/vendor/godot-src engines/godot/vendor/godot-cpp` pour travailler sur l'adaptateur Godot ([ADR 0007](docs/adr/0007-adaptateur-godot-dans-le-depot.md)). ## État Phase 0 : fondations. Le chemin de bout en bout existe sous une forme minimale : - le Core simule de façon déterministe un micro-mode 2D de démonstration (SIMULÉ), enregistre et rejoue les sessions, et sert le protocole Studio - Core 0.3 ([spécification](docs/specs/protocole-studio-core-0.2.md)) ; - Studio (`sequa-studio` et l'interface web) démarre ou rejoint le Core, recharge le Core recompilé par rejeu et pilote le rendu depuis son panneau Rendu ; - le Core lance `sequa-render`, qui affiche la scène simulée dans Godot (hébergé par LibGodot) ou l'écrit en images avec l'adaptateur de débogage ([protocole Core - rendu 0.2](docs/specs/protocole-core-rendu-0.1.md)) ; on joue dans la fenêtre Godot, les entrées traduites par l'adaptateur sont enregistrées par le Core ([ADR 0011](docs/adr/0011-entrees-du-joueur-captees-par-l-adaptateur.md)). Pas encore de rendu neuronal ni de carte de confiance. Seul Windows a été construit et testé ([ADR 0004](docs/adr/0004-multiplateforme-et-verification-locale.md)). ## Construire et vérifier Il n'y a pas d'intégration continue sur serveur : les vérifications se lancent localement. Voir aussi [docs/installation/](docs/installation/) pour les pages par plateforme (prérequis, compiler, lancer, installer, désinstaller). | Plateforme | Commande | Prérequis | |---|---|---| | Windows (build complet) | `.\scripts\build-all.ps1 [-Type debug\|release\|asan\|all] [-NoTests] [-Godot] [-SkipGodot] [-SkipUi] [-NoStop] [-Clean]` | Visual Studio 2022 avec outils C++ (MSVC, CMake, Ninja fournis), Python 3, Node.js 24, sous-modules Godot, GPU Vulkan | | Windows (un preset CMake seul) | `.\scripts\build.ps1 [-Preset ] [-Clean] [-NoTests]` | idem | | Windows, avant commit | `.\scripts\check.ps1` | idem + Node.js pour Studio | | Linux / macOS | `./scripts/build.sh []` | CMake ≥ 3.25, Ninja, GCC ou Clang | | Lancer SEQUA Studio (Core + interface) | `.\bin\windows-x64\debug\studio\sequa-studio.exe [--dev] [--watch]` | build complet | | Interface seule (développement) | `.\scripts\studio.ps1 [-Core ws://hôte:port] [-MockCore]` ou `./scripts/studio.sh` | Node.js 24 | | Windows, cuDNN pour l'inférence GPU | `.\scripts\install-cudnn.ps1 [-Version ] [-CudaMajor 12\|13] [-DryRun]` | CUDA Toolkit installé + GPU NVIDIA ; télécharge cuDNN (~1,3 Go), demande d'accepter la licence NVIDIA et définit `CUDNN_PATH` (utilisateur, sans droits admin) | Chaque script PowerShell affiche son aide avec `-Help`. Presets : `windows-msvc-debug`, `windows-msvc-release`, `windows-msvc-asan`, `windows-msvc-prototypes`, `linux-gcc-debug`, `linux-clang-sanitize`, `macos-clang-debug` (voir `CMakePresets.json`). Sous Windows PowerShell, si les scripts sont bloqués : `powershell -ExecutionPolicy Bypass -File scripts\build.ps1`. ## Licence [MPL 2.0](LICENSE). © Ange-Marie MAURIN - A2M Systèmes (https://a2msystemes.org)