Hi 8th Wall Support Team,
I’m working on a prototype that combines:
- EI Framework – an OpenAI-powered storytelling loop that yields discrete “Events”.
- Three standalone WebAR mini-games (orbit-to-find-mark · hand-tilt-reveal · fly-and-grab).
- Dynamic 3D assets – each event’s user-photo is sent to Meshy AI → returns a GLB URL.
At runtime we:
– call /api/photo_event
→ get { event_text, gameplay_type, glb_url }
– inject the GLB into the scene and launch the matching gameplay A-Frame component.
Flowchart
Key questions
-
Architecture fit – Is it okay to run such a fully dynamic flow (async GLB download + hand-tracking + component hot-swap) inside an 8th Wall
xrweb
scene? -
Can OpenAI choose one of the three gameplay based on the generated Event? How to implement it between 8th Wall and Backend Server?
-
Best-practice for modular gameplays – current idea:
html
CopyEdit
<a-entity id="gameRouter"
ei-gameplay-router="type: gameplay2; glb: ./model.glb; label: '…';">
</a-entity>
- The router component removes/creates inner entities and adds one of three child components (
gameplay-orbit
,gameplay-hand-reveal
,gameplay-fly
).
Does this align with 8th Wall’s recommended pattern for memory/performance? - Asset streaming – Any limits or tips for repeatedly loading Meshy-generated GLBs (~2 MB each) into the same
xrextras-hand-anchor
?
Should we cache via<a-assets>
or callscene.renderer.compile()
? - Hand-tracking overlay – We currently attach the GLB to
xrextras-hand-attachment point="inner,palm"
.
Is there an official way to disable hand-mesh rendering but keep the tracking grip point? - Compatibility – Target devices are iOS + Safari/Chrome.
Any known gotchas with the combination: A-Frame 1.4.2 + 8th Wall XRExtras + dynamicgltf-model
attribute changes?
Demo
EI Framework
Gameplay 1
Gameplay 2
Gameplay 3
Thanks a lot for any guidance you can share!