If you ever used Winamp in the 90s or early 2000s for that matter, then you might have semi-accidentally stumbled upon the mysterious word of Plush.


And, even if you did not for some peculiar reason or another, then you most certainly have seen the “Credits” in the “About Winamp” dialog.


Alright, so what is Plush exactly? Plush is tiny real time software renderer written in the mid-to-late 90s by Justin “time compiler” Frankel of Winamp (Nullsoft) fame.


I thought to myself that it would be fun little side-project to turn it into a single file library, then compile it down to web assembly via Emscripten and see how it fares in a relatively modern browser.

It’s worth pointing out the fact that I refrained from making any significant changes or optimizations, other than fixing a few compiler warnings, so that everything compiles in a relatively tidy fashion. I hate compiler warnings flooding the screen.

Only something written in C can still compile after being untouched for so many years. This is a fact, of life, and it’s not something up for a debate. Imagine having to compile anything written in C++ that is more than a few years old. Good luck with that. C++ rots at an incredible pace, in fact the more modern, the faster and more accelerated is the rot.


As per usual, many kudos to Suzanne for putting up with me and volunteering as a test subject.

You can check out the web version of the demo above by clicking here.

Source Code

If you are feeling adventurous, or nostalgic, or both at the same time, you can find the full source code and instructions on how to compile the demo over at