Reference Implementations
The Atanzo AI demo gallery shows the embed SDK in action across eighteen branded experiences spanning sports, health, and professional/field-service verticals. Each uses a real agent and a real guided-task or coaching flow, wired through a backend-for-frontend (BFF) so platform credentials never reach the browser. Use these as starting templates when building your own embed.
The demos cover two interaction modes and two transport configurations:
- Guided steps — the agent walks the worker through a numbered plan, advancing step by step.
- Immediate feedback — the agent watches continuously and offers coaching tips on a regular interval without a fixed plan.
- Video + voice — the worker's camera is published so the agent can observe their environment or technique.
- Voice only — the agent listens and responds without a video feed.
Every demo maps 1:1 to a canonical coaching preset (presetId) — the microsite pages send only the presetId (or, for the original launch set, an equivalent hand-built config) and the interaction mode, feedback cadence, video processor, metrics, and scorer all come from the trusted server-side row.
The Demo Gallery
Sports
| Brand | Skill | Interaction | Camera | Video processor | FPS |
|---|---|---|---|---|---|
| FAIRWAY/AI — "A coaching system for serious golfers." | Golf Swing Analysis | Immediate feedback | Environment-facing | yolo-pose | 15 |
| Baseline — "A court-side coach for the player without one." | Tennis Form Analysis | Immediate feedback | Environment-facing | yolo-pose | 15 |
| Diamond Mechanics — "Pitching mechanics, decoded." | Pitching Mechanics | Immediate feedback | Environment-facing | yolo-pose | 15 |
Health
| Brand | Skill | Interaction | Camera | Video processor | FPS |
|---|---|---|---|---|---|
| Restora — "Recovery, between visits." | Physical Therapy | Immediate feedback | User-facing | yolo-pose | 5 |
| REPSET — "A spotter that never blinks." | Exercise Form | Immediate feedback | User-facing | yolo-pose | 5 |
| Tend — "Practise the procedure before it matters." | Care Procedures | Immediate feedback | Environment-facing | yolo-pose | 5 |
Professional
| Brand | Skill | Interaction | Camera | Video processor | FPS |
|---|---|---|---|---|---|
| Cadence — "Real-time delivery coaching for executives." | Public Speaking | Immediate feedback, post-session report | User-facing | mediapipe-face | 5 |
| Handyman — "For everything you'd normally Google at 11pm." | Home Repair | Guided steps | Voice only — no camera | — | — |
| Counsel — "Practise the deposition before the deposition." | Deposition Prep | Immediate feedback, post-session report | User-facing | mediapipe-face | 5 |
| Spark — "Field coaching for HVAC technicians." | HVAC Field Service | Immediate feedback | Environment-facing | none | 5 |
| FireGuard — "Walk the NFPA procedure. Leave a defensible record." | NFPA 25 Inspection | Guided steps | Environment-facing | none | 4 |
| TrueClimate — "Commission every unit in range. Split or rooftop." | HVAC Commissioning | Guided steps | Environment-facing | none | 4 |
| StormProof — "Document the damage right. Get the supplement approved." | Storm Damage Documentation | Guided steps | Environment-facing | none | 4 |
| TopLine — "Catch every issue before the crew leaves. Prove the job's done right." | Final Quality Walkthrough | Guided steps | Environment-facing | none | 4 |
| Greenlight — "Surface the right occupancy checklist. Clear every checkpoint." | Occupancy Inspection | Guided steps | Environment-facing | none | 4 |
| PLUMBLINE — "Put the correct water-heater install sequence in every tech's ear." | Water Heater Replacement | Guided steps | Environment-facing | none | 4 |
| FULLPOINT — "Walk every inspection point. Rate each one, on every vehicle." | Multi-Point Inspection | Guided steps | Environment-facing | none | 4 |
| CLEARZONE — "Walk every treatment zone. Clear each one, on every stop." | Chemical Application Protocol | Guided steps | Environment-facing | none | 4 |
That's 3 Sports + 3 Health + 12 Professional = 18 experiences in total — one branded page per experience under src/pages/ in the demo microsite repo, each with a matching preset file in the coaching-catalog.
A few patterns worth noting when picking config for your own embed:
videoProcessorisn't uniformlyyolo-pose. The original launch set (Golf, Tennis, Baseball, Rehab, FormCheck, Care) runs pose estimation. Present and Witness runmediapipe-face(face/gaze tracking, not body pose). Spark and the newer field-service inspection verticals (FireGuard, TrueClimate, StormProof, TopLine, Greenlight, PLUMBLINE, FULLPOINT, CLEARZONE) runnone— those experiences lean on the agent's own vision sampling and the knowledge base rather than a continuous CV processor, and sample at a lower 4-5 fps accordingly.- Camera facing tracks the task, not the category. User-facing (front) camera is used only where the agent needs to see the person's face or posture directly at the device — Rehab, FormCheck, Present, Witness. Every other video experience, including all of the field-service inspection verticals, uses the environment-facing (rear) camera so the agent sees what the worker is looking at.
feedbackTiming: "post_session"applies only to Present and Witness — both deliver a single end-of-session report rather than live tips, since interrupting a rehearsal or deposition prep mid-flow would defeat the point.- Guided steps vs. immediate feedback splits along task shape, not vertical. Anything with a fixed procedure to walk (inspections, installs, home repair) uses
guided_steps. Anything that's open-ended practice with no fixed endpoint (swing mechanics, form checks, care drills, presentation rehearsal) usesimmediate_feedback.
The Pattern to Copy: the BFF
The part of these demos worth copying is not any individual brand page — it's how they get a session credential without ever putting platform credentials in the browser.
Browser Vite dev middleware BFF (Node) External API
| | | |
|-- POST /agent/session --->| | |
| |-- routes to src/bff.ts ->| |
| | |-- OAuth2 client-creds -->| POST /oauth
| | |<-- access_token ---------|
| | |-- POST /guide/session -->| (with presetId or full config)
| | |<-- session credential ---|
|<-- session credential ----|<-------------------------| |
- The browser only ever calls a same-origin session endpoint (
/agent/session) — never the external API directly. - In development, Vite's dev middleware routes that call to
src/bff.ts; in production this is whatever server-side handler your framework equivalent uses (an API route, a Lambda, a small Express service — anything that can hold a secret). src/bff.tsruns the OAuth2 client-credentials grant (POST /oauth) using partner credentials (client_id/client_secretor API key/secret) that live only in server-side environment variables, caches the resulting access token, then callsPOST /guide/sessionon the external API with either a full session request or apresetId.- The browser receives back only a short-lived LiveKit session credential — never the partner's OAuth credentials, and never a long-lived token.
This is the same shape described in Getting a Session Credential: your backend mints the credential, your frontend only ever holds the result. src/bff.ts in the demo microsite repo is a complete, working reference for that backend half — token caching, error propagation (upstream error codes like COACHING_MODULE_REQUIRED or PLAN_DISALLOWS_VIDEO are carried through with their HTTP status intact so the frontend can show a real message), and the two calls (/oauth, then /guide/session) in the order they need to happen.
Source files for each demo page are available through the Atanzo AI demo gallery (contact your account team for access) and make good starting points when building industry-specific embeds. Each page is a self-contained component that wires createSession, attachVoice, attachVideo, and the plan state machine together in a single file — but the BFF is the piece to lift wholesale.
Atanzo Coach — the Native Reference App
Atanzo Coach is a native reference implementation for iOS and Android, not a released product. It is not publicly deployed and there is nothing a customer downloads — it exists to demonstrate the same coaching experiences from the demo gallery above running in a native mobile shell instead of a browser, and to serve as a starting point for partners building a native embed.
A few things worth knowing about how it's built, all of which apply to a native embed of your own:
- One binary, every experience. There are no per-experience builds. A single app ships with the full catalog of coaching experiences baked in, and the landing screen switches between them at runtime — the same catalog documented in the table above (currently 17 of the 18; Storm Damage Documentation is the one experience not yet mirrored in the native app).
- It runs anonymously, the same shape as the web BFF above. The device never holds platform credentials. Instead, a partner-side proxy authenticates (app key + a random per-device end-user reference) and requests the session on the app's behalf, then hands the app only the resulting session credential — the native equivalent of the browser calling a same-origin
/agent/sessionendpoint instead of the external API directly. - It launches experiences by
presetId, the same mechanism described in Coaching Presets — the interaction mode, feedback cadence, video processor, metrics, and scorer all come from the trusted server-side preset row, not from anything the app assembles itself.
If you're building a native embed, treat Atanzo Coach the same way you'd treat the web demo gallery above: a working reference for the credential-handling pattern, not something to ship as-is.
Next Steps
- API & SDK Overview — Package map and architecture overview
- Getting a Session Credential — Backend token endpoint and
createSession() - Coaching Presets — The
presetIdmechanism used by both the demo gallery and Atanzo Coach