ADR 0009 (Proposée) et spécification du protocole Core - rendu 0.1. Le Core projette le monde simulé (micro-mode 2D, SIMULÉ) en deltas SEQUA 3D (sequa::core_render) et les pousse après chaque tick qui change la scène (RenderHub, observateur de LiveSession) ; il lance et supervise sequa-render (RenderSupervisor : lié au Core, relance après plantage). sequa-render charge une bibliothèque d'adaptateur par un point d'entrée C versionné (3d/adapter_library.hpp), applique les deltas et rend les images ; codec JSON provisoire partagé dans 3d/wire. Adaptateur Godot en DLL et nouvel adaptateur de débogage (engines/debug/adapter : vue de côté en images PPM ou vidéo via ffmpeg externe). Protocole Studio - Core 0.3 : render/start, render/stop, render/status (Core et Studio host). Mesuré avec Godot : transport tick -> delta reçu p95 ≈ 0,3 ms (critère 4 ms).
sequa-render
Processus de rendu de SEQUA (ADR 0008, ADR 0009). Le Core le lance et le supervise ; il se connecte au Core par WebSocket, charge une bibliothèque d'adaptateur (sequa_godot_adapter, sequa_debug_adapter), applique les deltas de scène poussés par le Core et rend les images. Il ne contient aucune logique de produit et ne dépend d'aucun moteur.
Spécification : docs/specs/protocole-core-rendu-0.1.md.
| Fichier | Rôle |
|---|---|
src/main.cpp |
Options, boucle : deltas reçus → apply() → render_frame(), mesures toutes les secondes |
src/core_link.* |
Client WebSocket : poignée de main, deltas poussés par le Core empilés pour la boucle |
src/adapter_library.* |
Chargement de la bibliothèque d'adaptateur, point d'entrée C versionné |
Lancer (par le Core)
# Godot, fenêtre de jeu (preset avec SEQUA_BUILD_GODOT_RUNTIME)
.\build\windows-msvc-prototypes\core\sequa-core.exe --render godot
# Sans fenêtre : vue de côté en vidéo à 10 images/s (ffmpeg facultatif, sinon images PPM)
.\build\windows-msvc-debug\core\sequa-core.exe --render debug --render-headless --render-fps 10 `
--render-options '{\"output\": \"build/render-debug.mp4\"}'
État
PROVISOIRE : JSON, pas d'interpolation entre deux ticks, pas de reconnexion (une connexion perdue arrête le rendu après le délai de grâce, le Core le relance), pas encore de tampons de rendu (étape 5).
Licence
MPL 2.0.