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
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.
vibesync is a dashboard that syncs Spotify and Google Calendar data to understand whether your current music matches your next event. A vibe score (0–100) tells you at a glance how well your track matches your upcoming task; a mismatch triggers AI-powered recommendations to get you in the right headspace.
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
What I learned
- Design doesn't end at the screen — it includes the environment the user is in
- Learned how to design with an engineering mindset
Next steps
- Have music playing and changed directly from the screen
- Let users curate their own playlists
- Slim down the physical screen, move secondary info to a companion web app
Next project
ScreenSense Lab →