Der Menger-Schwamm ist eines meiner liebsten Fraktale. Die Regel für die Rekursionsregel ist denkbar einfach und lässt sich noch einfacher für zwei Dimensionen formulieren: Nimm ein Quadrat, unterteile es in neun gleiche Quadrate, indem du Seiten drittelst. Dann lösche das mittlere der neun Teilquadrate. Diese Regel wendet man wiederum auf jedes Teilquadrat an. In drei Dimensionen unterteilt man einen Würfel in 27 kleinere gleiche Würfel und löscht die sieben zentralen Würfel.

Nicht ganz so einfach ist es, Bilder von diesem Objekt zu erzeugen, das tendenziell eine unendlich große Oberfläche und ein Volumen von Null besitzt. Das Problem: Die Anzahl der Würfel steigt mit den Iterationen exponentiell an. Wenn man den Schwamm naiv "Stein auf Stein" zusammensetzt, macht ein handelsüblicher PC schnell schlapp: Nach dem ersten Lochen muss der 3D-Renderer noch 20 Würfel berücksichtigen, nach dem zweiten Lochen 202 und so weiter; nach dem fünften Iterationsschritt ist man schon bei bereits 3.200.000 Würfeln angekommen! (Achten Sie mal drauf: Die Bilder, die man im Internet findet, enden in der Regel bei der vierten oder fünften Iteration.)

Das Mittel der Wahl ist daher ein anderes: Man schreibt eine Funktion, die dem Renderer für eine gegebene Iterationsstufe sagt, ob an einer Stelle im Raum Würfelmaterial ist oder Luft. Der Renderer "fragt" also die Funktion nur für die Stellen, die ihn interessieren. So lässt sich im Prinzip jede Iterationsstufe visualisieren.

Allerdings werden die Löcher natürlich auch immer kleiner und sind daher schon nach der siebten Iteration nur noch zu erahnen. Sieben Iterationen sehen so aus:

menger 7 iterations

menger04

Und sechs Iterationen sehen so aus:

menger

menger02

Andreas Loos