three.ws · lab
Demo pages
Pre-release features wired end-to-end so we can test them before they replace anything on the live site. Everything on these pages hits real APIs and real storage — no mocks.
USDZ & AR Quick Look
Load an avatar, generate a USDZ companion in-browser, push it to R2, and confirm iOS Quick Look opens the result.
BetaHalf-body XR
Enter WebXR with lower-body bones collapsed — the seated/VR variant Ready Player Me used to ship.
Beta@three-ws/avatar SDK
Drop-in <agent-3d> web component loaded from the npm SDK bundle, plus the programmatic AvatarCreator iframe.
Audio-driven lipsync → /lipsync/mic
Feed live mic audio through the viseme analyser and watch the avatar's mouth track your voice in real time.
In prodMulti-LLM brain → /brain
Send the same prompt to Claude, GPT, Qwen on Alibaba DashScope, Qwen3-Coder on ModelScope, and Llama on Groq. Side-by-side streaming, latency, and token usage.
In prodTTS-driven lipsync → /lipsync
Type any text, stream it through OpenAI TTS, and the avatar's mouth animates in real time via wawa-lipsync viseme detection.
3D walkaround → /walkaround
WASD + mobile joystick navigation with real Rapier physics and Recast navmesh. Click the ground to autopilot your agent there.
In prodERC-8004 registry browser
Live read of on-chain agent identities across Base, Ethereum, Polygon, and testnets via agent0-sdk. No keys, no signer.
Avatar button jump
A 3D avatar runs up and leaps onto a physical button. Spring physics squish and bounce the button on impact, then the sequence loops.
BetaTactile button (Gemini concept)
Heavy 3D cylinder button living in the scene next to the avatar. Volume-preserving squish, elastic recoil, shockwave torus, cinematic spotlight. GSAP via ESM.
BetaCreate page v2
Redesigned /create chooser: featured recommended card, distinct 3D previews, time badges, destination hints, live stats from /api/explore, and integration strip.
BetaThese pages are unlisted and noindex. They share the same backend as the live site but are intentionally separate from /create and /avatars/:id so the production flow keeps working while we test.