Segfault Garden – Binary of Babel

This is our first ever demo, which got second place at Alternative Party 2010.

Some key facts:

  • Yes, it really does use all those languages. Even COBOL.
  • It runs on 64 bit Linux only, and is extremely picky, it does not work on all the developers’ machines either
  • We’re fairly certain that this evokes quite a lot of undefined behavior in the various runtimes.
  • None of the team members had prior demoscene experience
  • Due to lack of time we had to drop some ideas, including a Prolog effect (which would just have printed “YES” or “NO”)
  • There were some interesting integration problems, including the fact that two of the languages required ownership of the main function (which we also needed to ourselves)
  • All effects use software rendering, OpenGL is only used for compositing and cube texturing.

I had an interesting discussion just after showing the demo on the main screen, which I replicate here for posterity.

– “Great job, but you are crazy to use COBOL.”

– “As far as I know, this is the first ever 3D engine coded in COBOL.”

– “That’s because everyone else would have just shot themselves.”

Update 2010-10-10

We have released the full source code to this demo. Get it here.

Now we can also reveal that the raytracing language was Pov-ray’s scene description language (which is Turing-complete). At the start of the demo it spawns Pov-Ray to draw the sequence to image files in the background. These images then shown. So it really is real time and not an animation. Sort of.

The scene was tuned so that on the compo machine Pov-Ray finished rendering the sequence roughly one second before the end of said sequence. So there really was not a lot of tolerance. If you run it yourself and your machine is even slightly slower than mine, it will fail.

Tags: , ,

8 kommenttia - “Segfault Garden – Binary of Babel”

  1. J.Salo Kirjoittaa:

    You wouldn’t have better resolution copy hanging around? That’s too damn small!

  2. brr Kirjoittaa:

    So what was the language for the raytracing? 🙂

    This is cool!

  3. jussip Kirjoittaa:

    You can view a higher resolution version on Youtube. The actual resolution of the demo was quite low, so Youtube’s version is surprisingly close to the original.

    The language that was used for raytracing will be revealed eventually. But not yet.

  4. basscadet Kirjoittaa:

    Surprise language is GNU Octave?

  5. jussip Kirjoittaa:

    There was going to be an Octave effect, but we had to drop that because Octave simply could not embedded the way we needed it to.

  6. LLB Kirjoittaa:

    Nice idea! I guess it was not easy to mix all those languages.
    But why “>2000 processes”?

  7. jussip Kirjoittaa:

    Bourne Shell does not offer a C api. You have to spawn it anew every frame.

  8. Sir Garbagetruck Kirjoittaa:

    I still think the most awesome thing is that your COBOL routine ran (: I mean, that’s … so 70’s (: