SyncThinkDesignSTD

Expériences · EXP-001

Chaîner deux fournisseurs sans intervention humaine

Une texture produite par SketchLab entre comme matériau dans un monde Scene Creator. L’ordonnancement, le téléversement de l’entrée manquante et la nouvelle tentative se sont faits sans intervention.

Date
Statut
Vérifié
En lien avec
F2, M2, I5

Question

Un projet peut-il déclarer que la sortie d’un fournisseur est l’entrée d’un autre, et le système peut-il régler l’ordre et le transport des données sans qu’une personne intervienne ?

Hypothèse

Si les entrées sont identifiées par le hachage de leur contenu et que le résolveur ordonne les demandes par dépendance, le chaînage fonctionne sans coordination manuelle et sans que les binaires voyagent dans le JSON. C’est une forme technique de M2 : le consommateur démarre quand son entrée minimale existe, et un changement en amont se propage à ce qui en dépend (F2).

Dispositif

  • Projet : examples/aaa3-chain/chain.experience.json d’Experience Creator.
  • Fournisseurs locaux : SketchLab (sketch.png) et Scene Creator (scene.glb), sur des branches qui implémentaient les entrées chaînées.
  • La demande adressée à Scene Creator déclare inputs: [{ name: "albedo", assetId: … }], qui pointe vers la sortie de SketchLab.

Résultat

O1Observation

Le GLB produit par Scene Creator intègre le PNG de SketchLab octet pour octet, et son matériau l’utilise comme texture. Le résolveur a d’abord exécuté le producteur, le fournisseur a répondu missing_inputs, le client a téléversé l’image et réessayé, le tout sans intervention humaine.

Limites

  • Une seule exécution documentée, avec des fournisseurs locaux et non déployés.
  • sketch.png requiert un Chromium sur le serveur ; dans un déploiement qui n’en a pas, la chaîne échoue dès la première étape.
  • Nous n’avons pas testé ce qui se passe quand le producteur échoue en cours de route avec plusieurs consommateurs. La conception prévoit que les consommateurs n’appellent pas leur fournisseur, mais ce n’est pas mesuré.

Comment la reproduire

# avec les deux fournisseurs lancés en local
AAA3_SKETCHLAB=http://localhost:3001/api/aaa3 \
AAA3_WORLDFORGE=http://localhost:3002/api/aaa3 \
npx tsx scripts/aaa3-e2e.ts

# ou avec le résolveur
AAA3_PROVIDERS='{"sketchlab":{"url":"…"},"worldforge":{"url":"…"}}' \
npm run aaa3:resolve -- examples/aaa3-chain/chain.experience.json --out chain.zip
Les dépôts sont privés ; la procédure est publiée en vue du jour où ils ne le seront plus.

← Toutes les expériences