Inspiration

We were inspired by the rubber duck debugging method - a technique used by software engineers, in which they explain their code out loud to an entity like a rubber duck to be able to catch their own mistakes. We thought that this approach of talking through one's problems could be extended to far more than just debugging code. In fact, it could even be therapeutic to talk through one's problems. Thus, The Quack Council was born: a council of five rubber ducks who respond (and judge) your problems, offering helpful advice and solutions.

What it does

The core function of The Quack Council is the therapy chat - users can type or speak whatever's on their mind to our council of ducks. Then, a biometric sensor detects the user's blood pressure and heart rate, determining the best type of advice and tone with which to respond. Our council of ducks then provides advice, each with a distinctive voice and personality. Overall, it provides the user with an emotional outlet, as well as a diverse array of perspectives about their problems. We also offer a second mode inspired by the traditional rubber ducking technique, which allows users to debug their code with our friendly rubber ducks.

How we built it

The Quack Council isn't just a software component - it incorporates both software and hardware to create an immersive outlet. We used Presage through the Swift SDK to collect biometric data from an iPhone camera sensor. We built, deployed, and delivered our application on CloudFlare, which enabled seamless integration of this biometric data with our backend server. Our backend used FastAPI, and determined the user's mood and stress level to pick the ideal duck agents who would respond. On the React/Node.JS frontend, the user could type in text or use our speech-to-text functionality, and we'd generate a response to their input in the selected agents' personalities using the Gemini API. Next, we responded with a distinctive voice for each duck using the ElevenLabs API. Finally, we connected to a speaker and coloured lights attached to each physical rubber duck, responding to the user's query and emotions in real time and leading a dynamic conversation.

Challenges we ran into

We ran into a few challenges with the Presage API. Since it didn't yet provide support for MacOS, we found a creative workaround and used their Swift SDK instead, allowing us to take the opportunity to work with a new set of technologies and languages. We then routed the collected biometric data back to our backend FastAPI server through the use of Cloudflare.

Accomplishments that we're proud of

We're proud that we were able to combine both software and hardware in our hack, and that we were able to make a couple people laugh with our ducks' creative personalities.

What we learned

We learned that there's a creative solution to every problem, and that debugging is a lot easier with AI.

What's next for The Quack Council

More modes (beyond therapy and debugging modes), and a wider range of customizable duck personalities.

Built With

Share this project:

Updates