I've always seen programming computers as creative expression. As a developer-designer hybrid, I've spent my career in data and engineering-heavy domains at Google, the Obama 2012 campaign, Pivotal, and the U.S. Space Force (linkedin).
Creating the AI-native apps on this site helped me explore new types of user experiences, but also realize how design and engineering are evolving and merging together. That's led me to think that in this unexplored world, design needs to be in two places at the same time: 1) Redefining how users interact with machines, and 2) Creating the next wave of tools that enable this entirely new kind of software.
I've always seen programming computers as creative expression. As a developer-designer hybrid, I've spent my career in data and engineering-heavy domains at Google, the Obama 2012 campaign, Pivotal, and the U.S. Space Force (linkedin).
Creating the AI-native apps on this site helped me explore new types of user experiences, but also realize how design and engineering are evolving and merging together. That's led me to think that in this unexplored world, design needs to be in two places at the same time: 1) Redefining how users interact with machines, and 2) Creating the next wave of tools that enable this entirely new kind of software.
I created an AI-native app that re-imagines navigating Wikipedia with left and right swipes. With AI subtly working in the background, my app generates narrative arcs that entices users into new, unexplored territory.
I created an AI-native app that re-imagines navigating Wikipedia with left and right swipes. With AI subtly working in the background, my app generates narrative arcs that entices users into new, unexplored territory.
1. Designing Serendipity
Right swipes work something akin to a moving average — users can swipe as long as they like, and the app will act as a subtle guide that finds connections between ideas.
1. Designing Serendipity
What if a right swipe leads to something that is not intriguing? The user can swipe left and go to a broader, related subject, and keep doing that until they decide to swipe-right.
1. Designing Serendipity
Way-finding will be very different in the world we are entering. For this app, left swipes tend to eventually peter out. When that happens, a warning appears explaining the user has hit an epistimological ceiling.
1. Designing Serendipity
Way-finding will be very different in the world we are entering. For this app, left swipes tend to eventually peter out. When that happens, a warning appears explaining the user has hit an epistimological ceiling.
1. Designing Serendipity
Before I wrote any React Native code or sketched out ideas, I created a Python-based simulation of the user experience.
1. Designing Serendipity
I worked through most interaction design problems in code. Iterating on a design with a device in-hand is unparalleled.
1. Designing Serendipity
I wanted swipes to feel fast, simple, and infinite to the user. I created a simulation to help me figure out how to make preemptive LLM API calls asynchronously.
1. Designing Serendipity
Before I wrote any React Native code or sketched out ideas, I created a Python-based simulation of the user experience.
I worked through most interaction design problems in code. Iterating on a design with a device in-hand is unparalleled.
I wanted swipes to feel fast, simple, and infinite to the user. I created a simulation to help me figure out how to make preemptive LLM API calls asynchronously.
I'm fascinated by how emerging technology has the potential to transform how people interact with machines. This prototype explores the fusion of gestures and speech to interact with a locally-running LLM (gemma-2b).
I'm fascinated by how emerging technology has the potential to transform how people interact with machines. This prototype explores the fusion of gestures and speech to interact with a locally-running LLM (gemma-2b).
2. Fusing Gestures, Speech, and AI
The touch screen, keyboard and mouse now have viable alternatives that are untethered from physical devices: voice and gesture.
2. Fusing Gestures, Speech, and AI
The touch screen, keyboard and mouse now have viable alternatives that are untethered from physical devices: voice and gesture.
2. Fusing Gestures, Speech, and AI
The app uses a locally-running version of Google’s gemma2-b, enabling incredibly fast responses.
2. Fusing Gestures, Speech, and AI
I created a JS wrapper around MediaPipe’s open source gesture-capture library. This allowed me to experiment and iterate in code.
2. Fusing Gestures, Speech, and AI
A raised hand conveys intent to speak. That turns on the mic to capture speech, which is turned into text and sent to the local LLM, which streams back a response.
2. Fusing Gestures, Speech, and AI
The app uses a locally-running version of Google’s gemma2-b, enabling incredibly fast responses.
I created a JS wrapper around MediaPipe’s open source gesture-capture library. This allowed me to experiment and iterate in code.
A raised hand conveys intent to speak. That turns on the mic to capture speech, which is turned into text and sent to the local LLM, which streams back a response.