Inspiration
A year ago, my CTO and I were discussing AI chatbots. The tech was ready but the economics weren't - one AI per one user burned through API costs fast. I suggested flipping the model: what if instead of 1:1 conversations, you put one AI in front of many? Like a livestreamer. N viewers, one AI. The cost per interaction drops significantly, and the experience gets better with more people - same as real streaming.
Back then I didn't have the skills to build it. AI coding tools changed that, and Gemini 3's speed made real-time interaction feasible. The hackathon gave me a deadline.
What it does
AICast is a live streaming platform where every streamer is an AI. Four channels, four personalities, all live:
- Bob - High energy, chaotic, talks fast, reacts to everything
- Luna - Calm, philosophical, slow-paced, reflective
- Rex - Competitive, blunt, treats everything like a game
- Sage - Warm, gentle, treats everyone kindly
Viewers chat in real time and get voice responses. They can send Super Chats at three tiers ($2/$10/$50) and the AI reacts differently depending on the amount. Two games are playable directly in chat - Hangman and 20 Questions. There are 150+ expressions and animations available through slash commands. The AI also detects Korean, Spanish, and Japanese and responds natively. When nobody's chatting, the streamers talk on their own.
How I built it
Solo build. Gemini 3 Flash handles all chat and reasoning. It batches viewer messages and responds in groups instead of one-by-one - the way a real streamer scans chat. This small design choice makes the interaction feel much more natural.
Each streamer has 600+ lines of personality configuration - catchphrases, reaction patterns, donation behavior, greeting styles. Gemini 2.5 Pro handles TTS with a provider chain that falls back to browser speech synthesis if the API quota runs out.
The 3D avatars are procedural - no model files. A sphere with text-based kaomoji faces, spring-physics hair, and a state machine animation controller. 140+ expressions and 15 performance animations, all driven by tags that Gemini includes in its response.
The real-time system runs on SSE through Vercel's edge runtime. One event stream per viewer carries chat, audio, donations, game state, and idle behavior through an in-memory action bus. There's also a remote control API that lets external systems trigger streamer actions.
Challenges I ran into
TTS quota on the free tier runs out fast. Built a sliding-window rate limiter with automatic browser fallback. Making four personalities feel genuinely different took 600+ lines of prompt tuning each - a one-line system message doesn't cut it. Batch chat, donations, games, and idle speech all compete for the same AI pipeline, so I built a shared lock with a priority queue. SSE on Vercel edge has a 60-second connection limit, which required auto-reconnect logic without duplicate greetings or lost state.
Accomplishments I'm proud of
It works as a product, not just a demo. Landing page, live channels, viewer counts, donations, games - all functional. Four AI personalities that actually feel different from each other. 140+ facial expressions rendered on a sphere with no 3D modeling involved. 9,500 lines of TypeScript, one person.
What I learned
Personality engineering is harder than prompt engineering. Getting an AI to be consistently in-character across hundreds of interactions takes much more work than making it capable. Batching messages instead of processing them individually makes the AI feel more human. And working within constraints led to better results - I used a sphere because I can't do 3D modeling, and it ended up more expressive than a realistic model would have been.
What's next for AICast
Opening the platform so anyone can create an AI streamer and go live. Adding streamer-to-streamer interaction where two AIs talk to each other while chat watches. Real payment integration and creator revenue sharing.
Built with: Gemini 3 Flash, Gemini 2.5 Pro TTS, Next.js 16, TypeScript, React Three Fiber, Three.js, Tailwind CSS v4, Supabase, Vercel, Server-Sent Events, Web Speech API, Sentry
Built With
- gemini-2.5-tts
- gemini-3
- next.js-16
- react
- react-three-fiber
- sentry
- server-sent-events
- supabase
- tailwind-css
- three.js
- typescript
- vercel
- web-speech-api
Log in or sign up for Devpost to join the conversation.