Inspiration
We were inspired by the “reading the room” problem: presenters often feel something has changed in the audience but can’t pinpoint when or why. We wanted a tool that turns that fuzzy feedback into measurable signals and actionable coaching.
What it does
Our project enables presenters to quantitatively evaluate the effectiveness of a presentation by turning audience webcam signals into a post-presentation report. Audience members run a lightweight client that detects facial emotion signals and attention (e.g., distracted vs focused) and logs them as timestamped JSON. After the presentation, the host aggregates everyone’s logs and generates a dashboard/report with charts (dominant emotions, engagement over time) plus “flagged moments” where emotion spikes or attention drops—so the presenter can jump to those timestamps and learn what worked and what didn’t.
How we built it
Client-side capture (Python): A webcam logger using OpenCV for video frames and MediaPipe FaceMesh for head pose/attention (focused vs distracted), plus FER/TensorFlow for emotion detection when enabled. It writes structured, timestamped JSON per user (e.g., top emotions + confidence + distracted flag). Shared data collection: Each client saves to a local user_data/ log and (optionally) syncs it to a central GitHub repo using a token-based git add/commit/pull --rebase/push flow. Presenter dashboard (Web): A React + Vite + TypeScript dashboard with pages Home / Report / Summary. It loads the aggregated JSON, renders visualizations (bar/line/donut-style charts), highlights key timestamps (“flags”), and offers downloads (JSON/CSV) for deeper analysis. AI insights: The dashboard can call the Gemini API to turn raw metrics + flags into concise coaching blurbs and a full written summary.
Challenges we ran into
We had some challenges around dependencies and managing different packages. We also has some difficulty with the audio transcription for our dashboard working accurately and reliably.
Accomplishments that we're proud of
We're proud of being able to collaborate with one another to solve these difficulties create a product that reflects our original vision.
What we learned
We learned how to use Gemini API, Google AI Studios, different computer vision algorithms, and overall become more proficient in working collaboratively to create these cool projects.
What's next for Mood metrics
We were thinking about maybe implementing another function that allows the presenter to choose the type of presentation (e.g., informational, informal talk, etc.), so that certain emotions that are often perceived as bad can be put more into context. For instance, "sad" is bad but if the presentation's goal was to make people emotional, it's a good thing.
Log in or sign up for Devpost to join the conversation.