Experiments · EXP-001
Chaining two providers without human intervention
A texture produced by SketchLab goes into a Scene Creator world as a material. The ordering, the upload of the missing input and the retry happened without intervention.
Question
Can a project declare that one provider's output is another's input, and have the system work out the ordering and the data transport without a person stepping in?
Hypothesis
If inputs are identified by the hash of their content and the resolver orders requests by dependency, chaining works without manual coordination and without binaries travelling inside the JSON. It is a technical form of M2: the consumer starts when its minimum input exists, and a change upstream propagates to whatever depends on it (F2).
Setup
- Project:
examples/aaa3-chain/chain.experience.jsonfrom Experience Creator. - Local providers: SketchLab (
sketch.png) and Scene Creator (scene.glb), on branches implementing chained inputs. - Scene Creator's request declares
inputs: [{ name: "albedo", assetId: … }], pointing at SketchLab's output.
Result
The GLB produced by Scene Creator embeds SketchLab's PNG byte for byte, and its material samples it as a texture. The resolver ran the producer first, the provider answered missing_inputs, the client uploaded the image and retried, all without human intervention.
Limitations
- A single documented run, with local rather than deployed providers.
sketch.pngneeds Chromium on the server; in a deployment without it, the chain fails at the first step.- We did not test what happens when the producer fails halfway with several consumers. The design says consumers do not call their provider, but it has not been measured.
How to reproduce it
# with both providers running locally
AAA3_SKETCHLAB=http://localhost:3001/api/aaa3 \
AAA3_WORLDFORGE=http://localhost:3002/api/aaa3 \
npx tsx scripts/aaa3-e2e.ts
# or with the resolver
AAA3_PROVIDERS='{"sketchlab":{"url":"…"},"worldforge":{"url":"…"}}' \
npm run aaa3:resolve -- examples/aaa3-chain/chain.experience.json --out chain.zip