EmotionWave

See how the world feels, in real time.

Visit Website
September 12, 2026 EmotionWave update: the world's mood now has actual emotions, and I learned my ML pipeline had been silently dead for weeks

When I launched EmotionWave here, it reduced the whole world to one number between -1 and +1. Negative news made the site dark and minor, positive news made it golden and major. It worked, but it flattened everything. A world that is angry and a world that is grieving felt exactly the same.

That changed this week. The site now classifies headlines into seven emotions (anger, disgust, fear, joy, sadness, surprise and neutral) and blends them into what I think of as a world emotion. Anger paints the particles deep red, fear pulls them violet, joy goes gold, and mixed states blend. The music follows too, so the dominant emotion picks the scale, with a little hysteresis so it does not flip-flop between polls. Right now the world reads as muted anger, which honestly checks out.

Two things I learned that might be useful to others.

First, I benchmarked three emotion models against real headlines from my own feed before committing, and the results were the opposite of what the paperwork suggested. The nicely MIT-licensed model was useless, it called 88 percent of headlines neutral, including one about Iran threatening retaliation. The Apache-licensed one was worse in a scarier way, it labeled that same Iran headline as joy with 93 percent confidence. Imagine the site glowing happy gold during a crisis. The only model that actually understood headlines has no license stated at all. I went with it anyway for a free art project, but it was a good reminder that a model card tells you nothing about how a model behaves on your data. Test on your own inputs before you build.

Second, while running that benchmark I discovered my existing HuggingFace integration had been silently dead for weeks. HF moved their inference endpoints, both of my URLs stopped resolving, and because I had built graceful fallbacks the site just quietly degraded to keyword matching and nobody noticed, including me. Graceful degradation is great until it gracefully hides that your ML is gone. I have made peace with the irony that the resilience I was proud of was also the perfect camouflage for the bug.

The whole thing is open source if you want to poke at the aggregation or the color math. And if you visit, tap the music on, the emotion-driven scales are half the point now.

Comment

June 15, 2026 EmotionWave is live: a website that turns the world's news sentiment into color and sound.

I just shipped EmotionWave, and it is a bit different from my usual projects because it is not really a tool, it is an art piece.

The idea came from being tired of doom-scrolling. I wanted a way to feel the mood of the world instead of reading headline after headline. So I built a site that reads the sentiment of global news every 30 seconds and turns it into what you see and hear. When things are calmer it drifts toward cool blues and soft major chords, and when the world tenses up it darkens and slides into minor. It never snaps between states, it eases from one mood to the next, and that slow drift ended up being my favorite part.

Under the hood it pulls news from GDELT plus a Hugging Face sentiment model, and the front end is Nuxt with Three.js for the particles and Tone.js for the generative audio. It is open source and co-created with AI, which is how I build most things these days.

A screenshot of EmotionWave

I will be honest that this one has no business model, it is just something I wanted to exist. But it taught me a lot about running ML inference on a budget and keeping a 24/7 site resilient when the data sources rate-limit you.

If you give it a look, tap the start music button because the audio is half the experience, and headphones help. I would love to hear what mood it shows you when you open it.

Comment

About

I wanted to feel the world's mood instead of doom-scrolling it. EmotionWave turns live global news sentiment into shifting color, motion and ambient sound.