Skip to content

Fabian "ryg" Giesen (@rygorous), one of the coders of the legendary demoscene group farbrausch, has open-sourced on GitHub a repository with some of the group's work from 2001 to 2011.

There is a lot to discover in that repository. Its hundreds of C++, C and assembly files contain the source code of many of the tools that the group has been using internally during the last decade:

  • kkrunchy, the x86 executable compressor used by pretty much every scene group on 64k intros.

  • The werkkzeug3 engine, a seminal 3D engine with unprecedented procedural content generation techniques that spawned some of farbrausch's most successful productions.

  • lekktor, a tool for profiling, finding and removing dead-code sections. You can read more about it in this beyond fascinating blog post.

  • The V2 software synthesizer, still unmatched when it comes to generating procedural music and sounds in unreasonably small sizes.

On top of that, there's also the data files for some of farbrausch's award-winning productions, including:

  • fr-041: debris, the revolutionary demo that took Breakpoint 2007 by storm, in just 180kb. You want to watch this.

  • .kkrieger, a first-person shooter with Doom 3-like graphics in 96kb, also powered by the werkkzeug3 engine.

  • Several other intros based on RG2, such as fr-029: dopplerdefekt and fr-022: ein.schlag.

All in all, the public farbrausch repository is a masterclass on computer graphics and procedural content generation, and a living piece of history on the demoscene.

Unfortunately, not all of the code on the repository compiles out of the box. Most of it is out of date, but there's an on-going effort under the vs2010 branch to cleanup and update the different projects so they build cleanly on Visual Studio 2010. I'm sure pull requests to help with this task will be appreciated.

If you're having trouble finding your way around the code, @rygorous' ongoing series of blog posts are a great starting point.

Have feedback on this post? Let @github know on Twitter.

Need help or found a bug? Contact us.

Something went wrong with that request. Please try again.