Remix.run Logo
magicalhippo 13 hours ago

Ah metaballs, flashback to The Gathering '97 when it was just becoming all the rage in the demo scene. The intro gene[1] by Fudge was the first time I saw it.

As a novice programmer I had just managed to implement my first triangle rasterizer, more or less on my own, and was blown away when I saw gene.

Shout out to echo (the programmer in Fudge), really cool dude who took a lot of time out of his busy party schedule getting their two prods ready to explained a lot of things to me. I had no IRL friends who knew programming, so the one on one was really invaluable.

[1]: https://www.pouet.net/prod.php?which=911

gdubs 13 hours ago | parent [-]

Ah, this is amazing thank you. I had dug and dug for some demoscene examples for the video. It turned out to be quite difficult to find many of these sources, especially the early Japanese stuff.

Despite having recently done a video on The Connection Machine, the Links-1 was new to me – and I basically did a double take to learn that they had this parallel ray-tracing super computer back then. Sadly, there's not a ton of documentation beyond a couple of brief papers.

Thanks for watching!

magicalhippo 11 hours ago | parent | next [-]

Didn't have much time to comment earlier, so an addendum.

The intro gene was the first time I had seen real-time metaballs. The implementation, and AFAIK all real-time metaballs in the demo scene at the time, relied on the Marching Cubes[1] algorithm, detailed by Paul Bourke here[2].

At the time the algorithm was patented, though up here in the Scandinavia that was not something that would hold back some teens. You can see the characteristic artifacts of the Marching Cubes algorithm in most demos.

In general metaballs is just one example of using isosurfaces for rendering[3]. Other typical applications is in visualizing partial differential equations, for example computational fluid dynamics. Often it's easier to formulate equations which govern the volume rather than the surface, and you use an isosurface technique to extract the surface you're after.

A point echo of Fudge told me was that a metaball doesn't have to have a strictly positive influence, you could have one which has a negative influence. I think this is what's going on with the red metaball scene in the gene intro.

Nice video, was fun to learn the origins of one of my beloved demo effects.

[1]: https://en.wikipedia.org/wiki/Marching_cubes

[2]: https://paulbourke.net/geometry/polygonise/

[3]: https://en.wikipedia.org/wiki/Isosurface

gdubs 5 hours ago | parent [-]

Oh that's interesting because I would have assumed the demoscene stuff would have done some kind of direct signed distance field rendering and skipped the marching cubes part.

And yea I remember the patent being in effect for so many years. The Spore creators got around it by using the "ear clipping" algorithm.

Negative Metaballs are really fun — included them in our app I mentioned at the end of the video. But they date all the way back to Blinn's paper!

magicalhippo 12 hours ago | parent | prev [-]

Another example I recall off-hand is Jizz[1] from TBL from the same year, though I found it later. Sports a smashing goa trance soundtrack.

[1]: https://www.pouet.net/prod.php?which=2