Inspiration
The inspiration for Lumina came from a simple question: What if our AI interactions felt less like a chatbot and more like a shared dream? Most AI applications are utility-driven or purely conversational. We wanted to create something more visceral and artistic—a "lucid dreaming companion" that weaves a rich tapestry of sight, sound, and story in real-time. We were inspired by the concept of "Dream Logic," where the surreal and the unexpected are celebrated as creative opportunities.
What it does
Lumina is a multimodal narrative engine that guides users through an interactive, surreal dreamscape:
- Multimodal Input: Users can interact via text, voice, or by uploading images of their surroundings, which Lumina instantly interprets as part of the dream's setting.
- Interleaved Output: For every segment of the journey, Lumina generates:
- A brief, poetic narrative segment.
- A vivid visualization of the scene using Imagen 3.
- Lifelike voice narration using Google Cloud TTS.
- Infinite Choice: The story is non-linear; the user's choices and sensory inputs directly influence the emotional tone and direction of the dream.
How we built it
Lumina is built on a robust Google Cloud stack:
- Brain: Gemini 2.0 Flash (via Vertex AI) handles narrative generation and multimodal reasoning, processing text, image, and audio bytes in a single context.
- Vision: Vertex AI Imagen 3 generates high-fidelity illustrations of the dreamscapes.
- Voice: Google Cloud Text-to-Speech (Journey Voices) provides emotive narration.
- Frontend: Streamlit was used to create a responsive and immersive web interface.
- Infrastructure: The application is containerized with Docker and deployed on Google Cloud Run for serverless scalability.
Challenges we ran into
- Multimodal Orchestration: Synchronizing text, images, and audio while maintaining low latency was a challenge. We had to balance the high fidelity of Imagen 3 with the need for a responsive storytelling feel.
- JSON Reliability: Getting the LLM to consistently output perfectly structured JSON (containing the story, image prompt, and choices) required robust prompt engineering and custom parsing logic to handle markdown code blocks.
- Audio Processing: Integrating real-time voice input in a web environment (Streamlit) while ensuring byte-level compatibility with Gemini's multimodal window required careful handling of MIME types.
Accomplishments that we're proud of
- Sensory Synergy: We are incredibly proud of how the text, visuals, and audio come together to create a unified mood. It doesn't feel like three separate tools; it feels like one "voice" telling a story.
- Developer Accessibility: We built a "Lite Mode" using the Google GenAI SDK and offline TTS (
pyttsx3), allowing developers without immediate GCP access to still experience the core story engine.
What we learned
- Hallucinations as a Feature: In most AI apps, "hallucinations" are a bug. In Lumina, they are a feature. We learned to lean into the unpredictable nature of LLMs to enhance the "dream-like" feel.
- The Power of Interleaving: Providing multimodal feedback simultaneously creates a significantly deeper emotional connection than simple text-based chat.
What's next for Lumina
- Streaming Dreams: Implementing the Gemini Live API for real-time, low-latency voice interruptions.
- Persistent Memory: Integrating Firestore to give dream characters persistent memories across multiple sessions.
- Shared Spaces: Enabling multi-user sessions where friends can influence a shared dream together.
Log in or sign up for Devpost to join the conversation.