Bibliothèque sequa::3d (espace de noms sequa::three_d), sans dépendance à un moteur : interface I3DEngineAdapter, tampons et négociation des capacités, synchronisation de la scène par deltas versionnés tout ou rien (SceneState, snapshot), demandes d'image et mesures communes. NullEngineAdapter (SIMULÉ) pour les tests. Types provisoires en attendant le format du schéma.
SEQUA 3D
SEQUA Engine en bref
SEQUA : Simulate Environments, Quantify Uncertainty, Adapt. SEQUA Engine est un environnement de création et d'exécution de mondes virtuels, d'abord pour le jeu vidéo, où l'auteur dirige un monde par l'intention, le ressenti et les règles plutôt que par des paramètres. Il est composé de quatre couches : Studio (outil de création web), Core (source de vérité), SEQUA 3D (seule porte vers un moteur 3D) et des moteurs 3D interchangeables (Godot, puis Unreal, puis un moteur maison).
Référence : docs/SEQUA_Engine_resume_complet_v2.md
Rôle de SEQUA 3D dans l'engine
SEQUA 3D est la couche d'interface 3D, propriété de SEQUA. C'est par elle, et par elle seule, que SEQUA parle à un moteur 3D (§7). Elle contient :
- le contrat de données (
NeuralFrameContext, état du monde, commandes, mesures, §5.6) ; - la synchronisation à sens unique du projet SEQUA vers le moteur ;
- la négociation des capacités : chaque moteur déclare ce qu'il sait produire (profondeur, normales, identifiants d'objets…) ;
- l'interface
I3DEngineAdapterque chaque moteur implémente ; - la traduction des mesures (temps, VRAM, confiance) vers un format commun.
Elle n'expose aucun concept propre à un moteur (nœuds Godot, acteurs Unreal). Les adaptateurs vivent dans engines/ (ADR 0007).
État
Phase 0. Bibliothèque sequa::3d (include/sequa/3d/, espace de noms sequa::three_d) :
| Élément | Fichier | Rôle |
|---|---|---|
I3DEngineAdapter, EngineConfig, validate_request |
adapter.hpp |
Interface que chaque moteur implémente : capacités, démarrage, deltas de scène, images |
FrameBuffer, BufferSet, EngineCapabilities, negotiate |
capabilities.hpp |
Négociation des capacités : tampons accordés et manquants |
SceneDelta, SceneCommand, SceneState |
scene.hpp |
Synchronisation à sens unique, versions croissantes, tout ou rien, snapshot pour (re)démarrer un moteur |
FrameRequest, FrameResult, FrameMeasurements |
frame.hpp |
Demande d'image et mesures dans un format commun |
NullEngineAdapter |
null_adapter.hpp |
SIMULÉ : adaptateur sans moteur, pour les tests et comme référence de comportement |
PROVISOIRE : types C++ écrits à la main, en attendant le format du contrat (Protobuf ou FlatBuffers, voir schema/). Les tampons GPU eux-mêmes n'y sont pas encore : ils arriveront après le prototype d'échange GPU entre rendu et inférence (§5.6). Les visuels se limitent pour l'instant à des primitives.
Construire
Construite avec le reste du dépôt : voir core/README.md.
Licences
- SEQUA 3D : MPL 2.0.
- Aucune dépendance externe pour l'instant.
- Les adaptateurs vers des moteurs propriétaires (Unreal) n'entrent que comme plugins facultatifs, l'adaptateur seul étant ouvert (§10.2).