Adlib
Imagine you need to present to a group of 100 people but have no slides prepared. Or you suddenly had a great idea during your team's daily standup but had no materials prepared to visualize your approach. OR..., you just want to present with the latest and greatest technology.
We present ADLIB!!
How it Works
As you speak, our Rust and Tauri app listens through your laptop mic. Silero VAD detects speech, and Whisper (small.en) transcribes it locally, entirely on-device with no cloud round-trip. It emits a live partial transcript every 600ms, so the system can react before you even finish a sentence.
That transcript, along with the current state of the on-screen canvas, is fed to Luna, our LLM-based decision agent. Instead of generating text, Luna outputs structured tool calls like draw_chart, show_photo, and update_node to edit a persistent 4-tile canvas in place. Correcting one bar in a chart patches just that bar instead of redrawing the whole thing.
Before any edit lands, it passes through code-level guardrails, not prompting. Numeric data must have actually been spoken aloud, and any destructive action must quote the exact words that requested it, verified against the real transcript.
When Luna asks for an image, we first search a local MobileCLIP embedding index using cosine similarity. If nothing matches well enough, we fall back to generating one live with SDXL-Lightning on Baseten, which takes 1 to 2 seconds, and the result is cached for reuse. Logos and icons are only ever looked up by name, never generated, since a wrong logo is worse than no image at all.
The whole pipeline, from speech to rendered pixels, runs in under 2 seconds. The final rendering happens in a Tauri webview with real font-metric measurement, so text never overflows its box.
Challenges we Faced
Low latency!! We specifically built Adlib fully using Rust to achieve lower latency speeds with our responses. However, much of the bottleneck came from the network and waiting on API calls. That's why we spent a lot of time implementing small code-based optimizations, effectively managing rate limits, context windows, and more, all while learning tons along the way!
Achievements
Our proudest moment was when we were able to configure out charts and diagrams to be created on the fly, and through the user's voice, they can modify the existing data points and components of a diagram live on the canvas. This was super cool!
Where we hope to take Adlib next
Polishing! With these types of applications there are always tons of edge cases and validations that need to be done, so continuous improvement is our goal and some time soon we hope to get Adlib out to the public for general use!


Log in or sign up for Devpost to join the conversation.