
Type
Master's Graduation Project
Year
2025
Jan - Apr (4 Months)
Individual + 2 Supervisors
Generative AI, Generative UI, Design Futures, Design Fiction, Multi-Agent Systems.
The Context
Objectives
This project's objective was to move beyond theory and demonstrate a tangible alternative to the static, app-based interface. Employing a Design Futures methodology along with Design Fiction, my goal was to bridge the gap between current technological limitations and a preferred future for user interaction. This dual-focused approach led to two primary deliverables:
A Functional Proof-of-Concept: A working, voice-driven prototype that validates the core interaction model by interpreting user intent and dynamically generating a UI using current technology.
A Diegetic Prototype Video: A key Design Fiction artifact that communicates the long-term vision of a seamless, instantaneous, and truly adaptive interface, unhindered by present-day constraints.
Is this the best we can do?
For decades, home-screen interfaces have remained fundamentally unchanged: a passive, app-centric model that forces users to adapt to the system.
Identifying the problem
This approach works for many good reasons, which is why we've used it for 40 years. But it assumes users know exactly which apps to use, how to use them, and in what order.
Designing for the future?
So then how do we go beyond incremental improvements and rethink the way we interact with our devices?


Design × Futures
What could this mean for user interfaces?
I can't be the first one to try, right?
Before I got to start working on my solution, I analyzed some tools and devices that have attempted to change how we interact with interfaces. I chose three interesting different products that target different needs to understand the strengths they offer and the limitations they faced.

Vercel’s v0 can transform plain-text descriptions into working React components, making it a powerful tool for developers. Yet its focus remains front-end prototyping, not complete end-to-end experiences, and it still assumes a developer in the loop.

Natural by Brain Technologies Inc. takes a more radical stance, abandoning the app grid entirely in favor of dynamically generated interfaces from natural language. But its closed architecture and limited extensibility make it feel less like a platform and more like a specialized search engine.
Rabbit R1 positions itself as an AI-powered personal assistant with a “Generative UI” that adapts to the user. It’s impressive, but its scope is bound to a fixed set of predefined tasks, leaving no room for dynamic, extensible orchestration.
Taken together, these tools hint at something larger, a future where the interface itself is ephemeral, summoned only when needed. But none fully bridges the gap between intent and execution.
Creating Genie

Squashing early assumptions
The objective was to challenge preconceived notions, refine the project direction, and build a stronger foundation before moving into development.

Early Development
Early ideation focused on establishing a multi-agent architecture to understand the sequence and agent requirements.

The initial design phase established the system's architecture by mapping out three key components:
A Supervisor Agent to interpret user intent and delegate tasks.
Specialized Worker Agents (e.g., weather, stocks) to retrieve data from public APIs.
A UI Generation Process to transform the retrieved data into visual components.
Preprototyping
Before writing production code I built two parallel, low-cost artifacts
tldraw sketches that explored layout and interaction states (how a generated UI collapses, expands, or hands control back to the user)
n8n workflow prototypes that encoded voice → action sequences.
The tldraw frames validated the basic logic involving the multi-agent architecture; the n8n prototypes validated layout affordances, voice input to intent parsing, worker sequencing, and the structured JSON the frontend would consume. These artifacts reduced risk before investing in the full stack.


Development Phase
Genie is built with:
n8n, implementing LangChain-style workflows for agent coordination
OpenAI, for natural language understanding and task parsing
Supabase, as the backend to store data
React, to generate real UI components in response to user intent

n8n
Multi-Agent AI workflow. n8n implements LangChain JS.

Supabase
A PostgreSQL based database to store widget metadata

OpenAI
Large Language Models used: o3-mini & 4o.

React
React.js framework to generate widgets.
System Architecture

Frontend Architecture


Backend and Multi-Agent Architecture
The multi-agent architecture in Genie is built entirely within n8n. The Supervisor workflow receives the parsed user voice input and decides which Workers to activate. For example, a travel-related request might trigger Calendar, Flight Search, and Weather Workers in sequence.

Genie employs specialized worker agents that interact with specific third-party APIs. Due to time constraints during development, only the following agents were fully implemented:
Calendar Agent: Manages Google Calendar interactions, allowing users to create and retrieve calendar events.

Stock Agent: Utilizes the Alpha Vantage API to fetch real-time stock information, providing timely financial insights.

Weather Agent: Fetches current weather information via OpenWeatherMap API.

Following task completion by the Supervisor Agent and worker agents, the Coder Agent which is powered by OpenAI’s o3-mini model, receives structured task outputs and generates the appropriate React widget code. The generated React code adheres to a standardized structure for dynamic content and interactive elements, such as icons from Lucide, and visually appealing styles using TailwindCSS. After code generation, the Coder Agent automatically commits these new widget files directly into the GitHub repository, triggering frontend updates.

Results and Limitations
While the Design Futures methodology enabled the creation of a functional proof-of-concept and clarified practical avenues for generative AI-driven interfaces, several critical limitations emerged during the development process:
Performance constraints: The current technological infrastructure for running large language models (LLMs) and multi-agent systems (MAS) introduced latency issues. Genie’s dependence on cloud-based processing results in significant delays of 15 to 40 seconds per task, detracting from the envisioned fluid user experience.
Consistency in UI design: Although LLMs excel at generating functional code, aligning their outputs with established design standards or style guides required extensive manual intervention and iterative refinement.
Framework maturity and stability: The rapid evolution and relative immaturity of frameworks like n8n and LangChain introduced frequent capability shifts, incomplete documentation, and unstable integrations, complicating development.
A working demo of Genie is demonstrated in the video below.
Design Fiction







