Tier 2 · Surfaces · Product

Try → configure → download → integrate.

These surfaces are the product. Each names presence fields it renders.

Live demo full · wow moment

Talk to a companion: listens → thinks → talks. Cursor proximity leans in.

FieldUse
presence.statelistening / thinking / talking / idle
presence.saymodel or local reply text
presence.setAttentionpointer distance
status linelocal vs live qualifier

File: index.html#live. Empty: placeholder “Say something…”. Error: local fallback + honest status.

Configurator / starter full

Pick creature (free-first), state chips, theme swatches, size 80–240, say line. Export snippets + downloads.

Renders: type, state, theme, size, say string, Glim.freeTypes hint.

Activation CTAs: Download free starter · Download glim.js. Events: config_type, copy_code, download_*.

Gallery menagerie full

Forty-three cards; broadcast state; Free 8 filter; auto-cycle. Lazy GPU contexts.

Renders: catalog id/name/cat/why, presence.state broadcast, free badge, --cmood.

Click → pick; double-click → configure. Try-before-buy for non-free — license separate.

API postcard panel

mount · setState · say · react · setTheme · on · destroy
Glim.freeTypes

Maps 1:1 to presence.d.ts.

Pinned corner companion full

Fixed bottom-right orb + speech bubble — the canonical embed pattern.

Renders: small presence, bubble copy, decorative default.

Offline example full

example.html + glim.js — click to cycle() / react. Works without network.

Hard gate: free path hands a working file.

Feedback + signals panel

Interest taps, optional email/note, kill criteria note, copy signals from localStorage. Not an ops console — maker telemetry on-device.

Internal / ops

cut No human queue in the library pipeline. Studio intake is email/intent — not a built console (LATER).

Reach surfaces → Open example.html