Inspiration

Trying to find the perfect song to fit the mood while trying to work out at the gym, or while getting ready to go on a drive usually ends in choosing the same song you always do. Playlists don't fix this problem; having to update each playlist manually and deciding between random shuffle, algorithmic shuffle(always the same songs), and just picking a song from the playlist manually also aren't the best way to solve this problem. We faced this problem everyday and decided to brainstorm ways to have a better system: one that learns from your preferences.

What it does

AeroMind Music Player uses CLAP(Contrastive Language-Audio Pretraining) to find music by sound instead of tags. By simply typing a genre or mood like "aggressive" or "heavy", you can filter a list of songs that closely match those terms. Those candidates are then re-ranked by a simulated fruit-fly mushroom body which learns based on single user preferences. Each song lights up a sparse pattern of 2000 Kenyon cells, and every skip (−1) or listen-through (+1) rewires their learned weights. It learns your preferences to actual songs, not just for that particular genre, so all of your future searches are ranked based on past data.

How we built it

We decoupled a Python/FastAPI backend and a Next.js/React frontend. The backend handles deterministic 5-segment CLAP audio embeddings and a custom-built numpy mushroom body. The frontend uses Tailwind CSS to recreate retro glassmorphism to fit the Aero theme.

Challenges we ran into

Blending the two systems mathematically was quite challenging; CLAP cosine scores are clustered tightly, which require strict minmax normalization and epsilon guards. Properly seeding and persisting the random sparse expansion of Kenyon cells across sessions was also a major debugging hurdle.

Accomplishments that we're proud of

We made a neural network visible in the player. Skipping a track instantly lets you watch a cluster of cells light up and shift weights. We are also proud of the Frutiger Aero CSS without cluttering the UI, we feel like the theme looks almost perfect.

What we learned

We learned the fundamentals of neuromorphic computing and biological plasticity rules. On the engineering side, we learned the value of using a strict API "fixture mode" to build the frontend and backend entirely separately with a spec with rules without blocking each other.

What's next for AeroMind Music Player

We want to expand the brain's sensory inputs to include real world context like time of day and local weather, allowing it to learn situational preferences. We also plan to integrate multilingual query support to make the search universal.

Built With

Share this project:

Updates

Submission history