What is the Taste Constellation?
The Taste Constellation is a new visualization built into Orphea's music analysis page. It treats your musical identity as a network: every track you've analysed becomes a node, every tag that appears on two or more tracks becomes a bridge, and every track is tethered to a central "you" hub rendered with your own avatar.
When you open a track's analysis, the constellation automatically plots that track inside your existing network. If the track shares tags with what you usually listen to, it lands close to your cluster. If it doesn't, it drifts out to the edge with a dashed tether — a visual signal that you're in discovery zone.
We built it because every "music taste visualization" we tried felt static: a bar chart of top artists, a radar chart of audio features, or worse — a percentage score that reduces your entire taste to a single number. None of them could answer the question we really had: how does this new track fit into everything else I listen to?
Try it yourself — live demo
Here's a live, interactive preview with a simulated user library (no signup required). Drag any bubble to reshape the network · tap a bubble to isolate its connections · the red lines trace every path between the analysed track and the rest of the library.
How the graph builds itself — no AI needed
The Taste Constellation is built entirely from data that already exists in your account. No GPT call fires when it renders. That matters for two reasons: it's instant (every tap feels immediate), and it's free to run at any scale.
Here's the build pipeline, end to end:
- Input 1 — your library: the last 40 tracks you've analysed, pulled from
track_analyses. Each row already carries a mood vector, a genre label, and a quadrant from Orphea's four-axis analysis engine. - Input 2 — the current track: the one you're actively looking at. We reuse its tags, mood tags and community tags exactly as they are in the page.
- Bridge detection: any tag that shows up on 2+ tracks becomes its own node. Tags that only appear once are dropped — they don't create connections, so plotting them would just clutter the canvas.
- Edges: every track is tethered to the "you" hub, and every track is also tethered to each of its bridge tags. The combination produces the Obsidian-style spider pattern where clusters form naturally around shared tags.
- Match score: we count how many of your library's strongest tags appear on the current track. If the overlap is low, the track is marked as a discovery and parked further from the hub.
Obsidian-style physics: Coulomb, Hooke, gravity
If you've ever opened Obsidian's graph view and stared at notes drifting into clusters, you know the feeling we were chasing. Under the hood, that's a force-directed graph: each node is simulated as a tiny particle, and three physical forces shape the layout in real time.
- Coulomb repulsion — every pair of nodes pushes each other away with force proportional to
1/r². This is what keeps the graph from collapsing into a single point. - Hooke springs — every edge acts like a spring with a rest length (~90 pixels in our case). Too close and the spring pushes back; too far and it pulls nodes toward each other. Shared tags naturally cluster the tracks that carry them.
- Central gravity — a tiny global force nudges every node toward origin so the graph doesn't drift off-screen over time.
Every frame, the simulation runs four sub-steps of these three forces, integrates velocity with damping (0.76 — stable enough to settle, loose enough to feel alive), and honours any pinned coordinates. When you drag a bubble, its fx/fy get locked to your cursor position; on release, physics takes over again and the network reshapes itself.
Our implementation runs 100% in the browser with zero external dependencies (no d3-force, no vis.js). It's roughly 80 lines of TypeScript and handles 40+ nodes at 60 fps on mid-range phones.
Tap to isolate: reading a tangled graph
When your library crosses 20+ tracks, the graph starts to look like spaghetti. That's honest — your taste is a tangle of overlapping influences — but it's hard to read at a glance.
The fix: tap any bubble to isolate its subgraph. Every node that isn't a direct neighbour fades to 20% opacity; every edge that doesn't touch the selected node fades to 5%. The node you tapped plus its immediate connections stay at full brightness, and a small info card slides up in the corner with artwork, title, and artist.
Tap the same node again — or click empty canvas — to clear the selection. Press Esc once to clear, twice to exit the modal.
Discovery detection: when a track lives outside your bubble
Not every track you analyse is going to match your usual taste, and we wanted the graph to reflect that honestly. When we build the layout, we count how many of the current track's tags already exist in your library's top bridges. If the overlap is below ~40%, we flag the track as a discovery and the visualization responds:
- The current track node is initialised far from the hub (top-right corner instead of near centre).
- Its tether to the "you" hub turns thin and dashed — a universal "this connection is weak" visual signal.
- A small cyan sparkle ring is drawn around the node to mark it as a discovery.
The physics engine then takes over. Shared tags tug the discovery track toward the clusters it has weak overlap with, so you can still see some connections to your library — but the overall layout makes it clear that this track is visiting from elsewhere.
This is also why the constellation is a better answer than a match percentage. A number says "33% match". The graph shows you which 33% — which exact tags, which specific tracks in your library are already halfway toward the new one.
Taste Constellation vs. Spotify Stats and Last.fm Charts
There's no shortage of music-stats tools. Spotify Wrapped, Last.fm scrobble charts, Stats.fm — they all show your music history in one way or another. Here's where the constellation sits among them:
- Spotify Stats — Top tracks, top artists, minutes listened. Aggregates only; no notion of relationships between what you listen to. Good for showing off, bad for understanding.
- Last.fm Charts — Scrobble frequencies over time, with a tag cloud per artist. Still linear — you can see what you play, not how your picks relate to each other.
- Stats.fm / Musicscape — Beautiful aggregations of listening sessions, but everything is displayed as a timeline or a bar chart. Tracks never touch each other.
- Orphea's Taste Constellation — The first visualization we know of that plots relationships between tracks as first-class citizens. Tracks cluster by shared tags; discoveries drift outward; the new song you're studying is always at the centre.
If you want raw stats, Spotify Wrapped wins. If you want relationships — how your taste hangs together and where new music fits in — the constellation is built for that exact question.
Three moments where the constellation genuinely helps
We've been using this internally for a few weeks before shipping. Three patterns keep coming back:
- "Is this song actually for me?" You discover a new track on a friend's playlist, analyse it, and glance at the constellation. If it's connected to two or three of your existing tags, you know it's safe to add. If it's drifting alone with a dashed line, you're entering new territory — interesting, but keep expectations open.
- "Which of my tracks should I share with this friend?" Tap the track you want to talk about. Every neighbour with bright red lines is a candidate. These are the tracks in your library that share the most tags with the one on your mind — natural conversation bridges.
- "Am I in a rut?" If your constellation has 40 tracks and they all orbit the same 3 tags, that's a signal. Time to follow the edges outward, try a discovery, let a dashed tether pull you somewhere new.
How to see your own constellation
The Taste Constellation ships on every analysis page — no toggle, no premium gate, no hidden menu. To see yours:
- Analyse at least 3 tracks. We need enough data to build meaningful tag bridges. One track won't produce a graph; three already starts to cluster.
- Open any analysis page. The constellation card sits directly under "Pourquoi tu kiffes ce son" — you'll see a compact preview with your avatar in the centre.
- Click to expand. The card opens into a fullscreen modal with draggable nodes, subgraph isolation, and the full tag-bridge network.
- Drag, tap, explore. Move bubbles around to spread the graph. Tap a track to read its info card. Follow the red lines to see what's closest to whatever you're currently analysing.
If you haven't analysed much yet, start with five tracks you love — ideally from different moods. The graph gets exponentially more interesting once tags start overlapping.
Frequently Asked Questions
Ready to discover your Music DNA?
Connect your streaming account, run your first scan, and see what your music says about you.
Try Orphea — Free