MOTHERSHIP

A Krishna you can talk to.

Indian spirituality runs on visual and emotional cues, and a text box was never going to carry it.

The companion had to be seen, heard and felt on a phone: a custom 3D Krishna brought alive from the audio itself, a designed voice and personality, per-user memory, and guardrails that hold character under attack.

3,000
beta users
50,000
interactions
~3s
end-to-end latency
6
emotional states

How we achieved this.

The avatar had to feel alive.

We designed Krishna from scratch as a VRM, with custom shaders that give him an identity of his own while staying true to the iconography. He renders on a phone with none of the magic lost. The aliveness pipeline came before everything else, because nothing matters if the avatar feels dead.

  • Audio to phonemes to VRM blendshapes, aligned to the voice's chunk timings
  • A five-phoneme mouth runtime with frame-lerped lipsync
  • Blinks, breathing and expression states reacting through the interaction

He sounds right and stays in character.

Indic words carry meaning in how they sound, and voice models built mostly on English get them wrong. A Krishna who mispronounces a mantra loses the room in one sentence. We built a pronunciation layer between the language model and the voice, so names, mantras and verses sound the way a devotee expects, while the subtitles stay readable for everyone else.

The character took as much design as the code. Krishna is a friend first and a teacher second, rooted in the scriptures and the traditions that read them, and he keeps every answer to a few warm sentences. The harder problem was keeping him whole. People argue with him, test him and try to pull out his instructions, and every attempt gets an answer from Krishna, never from the software.

  • Sanskrit and Indic names pronounced correctly, with readable subtitles
  • A personality written for the voice and grounded in scripture
  • Tested against adversarial users before launch

He remembers you.

The companion says "last time we spoke you mentioned your father" like someone who was actually there. Memories are scoped per user and stamped in human time, so recall feels like a relationship rather than a database lookup.

  • Reflections written asynchronously, so memory never costs response latency
  • Temporal grounding that tracks context across days and weeks
  • LangGraph state with Mem0 and Qdrant vector storage underneath

Real time, and sustainable at scale.

Two constraints ruled the systems work, presence and unit economics. A companion that loses money on every conversation stays a demo. The shipped stack streams voice and text end to end in about three seconds, at a cost per conversation low enough to monetize.

One product ships to two targets, WebGL for reach in the browser and Unity for native quality.

  • Workarounds for strict mobile-browser autoplay and chunk queue rules
  • Complete-audio fallback pipelines built specifically for iOS Safari
  • Subtitles and audio held in sync across sub-second queues

An agent alone is a tech demo.

Around the companion we designed the product harness: open conversation, daily practice, Gita readings and light gamification. They all share the same context and memory, so every session deepens one continuous relationship. That continuity is the product.

Krishna was the hardest place to start. What we learned here became the base of our companions work, characters with their own face, voice and memory, for any persona worth talking to.

  • Supabase auth with atomic credit consumption
  • Waitlist spam protection, with deep PostHog and Pixel analytics
  • In-browser FFmpeg watermarking for private recording shares

Parallel proof of work

Explore how our core modules are deployed across different operational architectures.