Chat Creatures: AI Kiosk Platform

An AI-powered voice kiosk platform I built at Interactive Knowledge. Each deployment is a themed character that visitors talk to using natural speech. I built the React frontend (167 of 196 commits) and contributed to the headless Drupal 11 CMS. Built with React, OpenAI, Google Cloud TTS, and Web Speech API.

ReactViteTypeScriptOpenAI APIGoogle Cloud TTS
Video demonstration of the Chat Creatures: AI Kiosk Platform project

Overview

Chat Creatures is an AI voice kiosk platform I built at Interactive Knowledge. Museums, festivals, and public venues deploy themed AI characters that visitors can talk to using natural speech. The platform has two codebases: a React frontend kiosk application that I built, and a Drupal 11 headless CMS that manages character personas and configuration.

Frontend Kiosk (React + Vite)

I built the frontend kiosk application from scratch and remain the primary developer, responsible for 167 of 196 commits (85%). A colleague contributed the remaining 15%, including some character theming and animation work.

The kiosk handles speech recognition via the Web Speech API, conversation management through OpenAI GPT-4o-mini with tool calling, and text-to-speech output through Google Cloud TTS or ElevenLabs depending on the deployment. Each character loads its persona configuration from the CMS at runtime.

In December 2025, I did a major refactor to support CMS-driven persona creation. The goal was zero-code character deployment: define a persona in Drupal, and the kiosk picks it up automatically. This involved replacing 16 useState calls with 3 Zustand stores, extracting custom hooks for chat handling, speech recognition, and audio playback, and building a TTSServiceFactory that abstracts across TTS providers. Chatbot.tsx went from 1,017 lines to 358. I added 147 Vitest tests during the refactor.

CMS Backend (Drupal 11)

The Drupal backend was built by the rest of the team on the IK upstream. I contributed 8 commits focused on the Drupal 11 upgrade, persona theming infrastructure (mapping 44 Drupal fields to 19 CSS variables for CMS-driven styling), and config sync.

Deployments

  • Geary the Guide: EarlyWorks Children's Museum, Huntsville, AL. A gear-themed guide for kids. Tiered language modes adjust complexity based on visitor age. First production deployment.
  • Athena and Apollo, The Oracles: LEAF Festival, Black Mountain, NC. A pair of alien characters inside 12-foot inflatable art installations, differentiated by persona configuration.
  • Humphrey the Water Thrifty Camel: City of Cedar Park, TX. A water conservation mascot that looks up local watering schedules using function calling. Uses Google Cloud TTS.

Tech Stack

ReactViteTypeScriptOpenAI APIGoogle Cloud TTSWeb Speech APIDrupal 11Node.jsSQLite

Interested in working together? I'm always open to discussing new projects and opportunities.

Related Projects

✉️ Let's Connect

Get in Touch

Have an AI project in mind or need a secure, reliable system built? Let's talk.