Thursday, May 7, 2009

Story of a lucky open-source programmer

When I was a student, one of my first hacker project was the badly-called Goom visual effect generator. Incidentally it was also the time I discovered the Linux OS, so I ended up making it a plugin for XMMS, the most popular MP3 player at the time, and released it Open Source.

It became quite popular, being among the best ones available for Linux. I can write pages about its extremely optimized SIMD assembly heart, which made it one of the first true 32 bits advanced plugin (compared to the rotating color palette oldies), but that is not what made it so popular. It became so widely used because of its very simple API and pure C code.

Nowadays, you can launch VLC, mplayer, gstreamer based players (like Totem or Firefox), or Xbox Media Player, and see that Goom already is installed on your computer. You can download it for Windows Media Player, iTunes, Winamp, etc. I'm not responsible for a single one of this ports. I just made goom an easy to integrate, dirty, but pure C code, hidden behind this simple API:

File goom.h

void goom_init(int width, int height);
void *goom_update(short *sound); /* returns RGB buffer. */
void goom_close();

I made no money for years from this project, except a few $15 donations, being able to eat like three time at Mac Donald's. But it helped me more that I could possibly expect.

The first job I found, I found it because one of the open source addict responsible for selecting applications knew Goom. It allowed me to work on exciting graphical research projects for years.

Later, a guy with money needed a guy which knows to program cool stuff. This guy knew Goom, wanted me to improve it, ended up hiring me to write a complete 3D engine.

Give something, you should always hope to be given back one day!

No comments:

Post a Comment