Liteforms started as a subscription app for talking to branded holographic characters on dedicated Looking Glass hardware. It's since been rebuilt as an open-source, local-first web app that runs the same 3D avatar, voice, and language model in an ordinary browser tab, no headset, no install, no account. This case study covers the interface problems that transition raised, and how the current app answers them.
The original Liteforms sold a specific magic trick: a "living hologram" you could talk to, on hardware built for exactly that. The rebuild sells almost the opposite thing: the same character, with none of the requirements. Both had to feel like the same product to design for.


A character is really three separate model choices wearing one face: what writes the reply, what speaks it, and what hears you. Liteforms Web lets every one of those run locally in the browser or through a cloud provider, which meant the settings panel had to make three independent decisions feel like one coherent one, not a wall of unrelated dropdowns.
| Track | Runs locally in-browser | Or through a cloud provider |
|---|---|---|
| Language model | on-device Gemma 4 E2B, via ONNX/Transformers |
network OpenAI, Anthropic, Google AI, and others |
| Voice output | on-device Kokoro TTS |
network ElevenLabs and others |
| Speech input | on-device Distil-Whisper |
network Deepgram and others |
"The AI runs in your browser" is an unusual claim, and an unverifiable one unless the interface proves it. Choosing local providers means downloading real models (hundreds of megabytes) into the tab you're sitting in. The status panel exists to make that ordinary rather than alarming.
Each row names exactly what's loading (Gemma 4 E2B q8, Kokoro, Distil-Whisper) instead of a single opaque "loading AI…" state. A named thing downloading is legible; an unnamed one reads as a stall.
"Local models: 0%" is visible before anything has moved. Starting from a real number, rather than appearing only once progress exists, is what tells a user the app is working rather than idle.
The plain line under the panel, "All requests made directly from this browser," is the whole privacy pitch of the local path, stated once, in the one place someone is deciding whether to trust it.
The desktop era sold a small roster of fixed mascots, with a custom one available if you bought an enterprise tier. The web app inverts that: authoring a personality is the default action, and a single example character shows what's possible instead of standing in as one of many official choices.
Uncle Rabbit, Lil' Inu, and Android Andi each shipped with a fixed voice, look, and script, built by the team, not the person talking to them. A brand wanting something different paid for a custom build.
Name, pronouns, and a free-text personality prompt replace the roster. The default (Clawdia, a cranky lobster) exists to be immediately overwritten, not defended as the "real" character.
The product still has to work on the hardware it was named for. But it can no longer assume that hardware is present: the same layout renders as a flat chat window on a laptop and as a lightfield view with real depth on a Looking Glass display, without knowing in advance which one it's on.
Three working principles from redesigning around a platform the product no longer requires.
On-device inference has no server log a user can check. Naming the model and showing real progress is the only proof the interface can offer.
One good form for personality, name, and voice scales further than any fixed cast of characters ever could, and costs nothing to keep adding to.
Treat the plain browser tab as the real product and the lightfield as what it becomes on the right hardware, never the reverse.
Quick info about my services and process.
I offer end-to-end design support across UI/UX design, user research, design engineering, and Webflow development. I help turn early ideas into intuitive, polished digital products and websites, from research and strategy through design, prototyping, and launch.
Most projects are finished in 4–6 weeks, depending on scope. We’ll share a clear timeline before starting.
I guide you from discovery to launch, keeping you updated and involved at every step.
Contact me through my form. I’ll set up a call to discuss your goals and send a proposal.
Have more questions? Reach out anytime.