vibesync
A Raspberry Pi device that scores how well your music matches your next calendar event, and tells you what to play instead.
I designed and built vibesync solo, end to end: the Python client that reads Spotify, the Node server that calls GPT-4 and Google Calendar, and the 3D-printed hardware enclosure it all lives in.
Context
Who
Anyone whose focus gets derailed when their music doesn't match what they're about to do, prototyped through a persona: Maya, a graduate student who works from home and listens to music constantly.
What
A dashboard that syncs Spotify and Google Calendar data to score whether your current music matches your next event (0–100), then triggers AI-powered recommendations when it doesn't.
Why
Digital interactions often feel transactional and flat because they fail to capture the emotional energy, the vibe, that makes human connection feel authentic. Phone-based fixes make it worse: pulling out your phone to change the mood is what breaks focus in the first place.
Research
Maya
Graduate student · Works from home · Constant music listener
“I just need the right vibe, but finding it always pulls me down a rabbit hole.”
Background
Maya lives and works from home, and listens to music constantly; her playlist shifts widely depending on mood.
Pain point
Coming home hyped, she needs to shift into study mode, but switching music means opening her phone and getting lost scrolling. The fix becomes the distraction.
Goal
Transition between moods effortlessly, with music that matches her calendar automatically, without ever picking up her phone.
Before
Struggling to get into the right mindset. Music and upcoming tasks are out of sync, causing distraction and context-switching.
With vibesync
The dashboard surfaces a vibe match score and recommends tracks aligned to the next event.
After
Better focus without reaching for the phone; vibesync handles the transition.
Insight
The turning point was realizing the fix couldn't live on the phone. Any solution that required pulling out a screen to manage focus would just recreate the problem it was solving, so vibesync had to be a dedicated, ambient piece of hardware instead of an app.

The full interaction path, from opening Spotify to getting a vibe score.
Design
Initial ideas

Tech stack
Python Client
Python 3.x · Spotipy · Google Calendar APIPolls Spotify for the current track and pushes data via WebSocket.
Node.js Server
Node.js · Socket.io · OpenAI SDKOrchestrates data, calls GPT-4 for vibe analysis, broadcasts to the dashboard.
Dashboard
Next.js · React · TypeScriptRuns in Chromium kiosk mode on the Raspberry Pi.
APIs
Spotify · Google Calendar · GPT-4Track metadata, event context, and LLM-powered vibe scoring.

Hardware build
The physical form went through several enclosure iterations before landing on the final framed stand: a Raspberry Pi 4 connected via DSI ribbon cable to a 7" touchscreen, housed in a 3D-printed white frame.

Tucking in the wires behind the original device

Initial prototype using the screen's styrofoam packaging


1st and 2nd 3D print attempts, sizing was wrong both times


Outcome
A fully working physical prototype with a 3D-printed enclosure, demonstrated live at the 531 final project showcase.
Reflection
Designing beyond the screen
Design doesn't end at the screen; it includes the environment the user is in.
Engineering mindset
Learned how to design with an engineering mindset, working across hardware, firmware, and interface at once.
In-device playback controls
Next: play and change music directly from the screen, and let users curate their own playlists.
A slimmer form factor
Slim down the physical screen and move secondary info to a companion web app.
Next project
ScreenSense Lab →