Saturday, 30 April 2011

Since the 2D Sierpinski Carpet projects nicely into 3D to give the Menger Sponge, and the 2D Sierpinski Triangle similarly up-dimensions to give the Sierpinski Pyramid, it seems obvious to try to get a 3D version of another famous 2D fractal construction, the Koch Snowflake.

A number of people have probably tried this over the years, but I haven't seen anyone manage it. The snag is that the "obvious" solution doesn't work. We're taught that the Koch Snowflake outline is created by assembling triangles, but if we try to use the most obvious triangle-based solid, the tetrahedron, we fail ... starting with a single tetrahedron and adding half-scale copies to each side initially produces a six-pointed profile, but after that it all goes horribly wrong (book, page 20). People have tried offsetting the positions of the daughter pieces to try to keep the shape looking interesting, but it's kinda cheaty.

So the secret to creating this "impossible" solid is not to use a standard approach. "Step One" is to understand that the Koch Snowflake doesn't have to be made out of triangles, it can also be built from hexagons (book, Figure 3.13, page 26), and "Step Two" is to remember that the simplest Platonic Solid with a hexagonal profile is the cube ... when viewed corner-on.

The rest turns out to be simple. Take a cube, apply a 3×3 grid to each face to divide it up into 27 smaller cubes, and throw away the eight corner-pieces. Then do the same thing for each of the smaller remaining cubes, and repeat.

The resulting fractal solid (diagrammed as Figure 37 in the book) has a crosslike fractal pattern on each of its six faces, and shows a perfect Koch Snowflake silhouette when viewed from each of the original cube's eight corners.

A 3D Koch Snowflake ... paperweight

I have one of these that I'm using as a paperweight. It's perhaps not the prettiest of fractal solids, but I suppose that it's not bad for something that wasn't really supposed to exist.

Sunday, 17 April 2011

The "Diamond Eye" is a fractal that I snuck into the book at the last minute as a small pagespace-filler without a title or figure number (on page 31). As a result, it's probably too small to see properly.

At first sight, this fractal looks like a fairly intricate (but unsignificant) crystal growth pattern with two competing seed types (in this case, clusters of horizontally- and vertically-aligned diamonds).

Iterations 3-5

We start with a horizontal diamond-shaped space, and add our first piece, a vertical diamond smaller than the original by a ratio of the square root of three (1.732-something). It wedges exactly across the centre of the space (top diagram, middle), and then we can’t go any further, so we switch to the second configuration. Scaling down by another factor of root[3], we can fit two horizontal diamonds into the left and right corners of the original space (top, right). Switching back to vertical mode, we can then wedge in four more smaller copies of the shape, and switching back to horizontal again lets us shove in a further eight. As the number of iterations increases we end up with a single solid mass of vertical diamonds growing out from the centre, competing with a hollow shell of horizontal diamonds growing in from the perimeter.

Iterations 6-8

Here’s what you end up with when you’ve carried out so many stages that you effectively have a single, solid, frozen block (click to enlarge).

Fractal Rhombic Mesh

The important thing here is the shape of the boundary between the two “crystal” types. You can’t really see it too well in the above diagram, so we’ll colour the horizontal and vertical diamonds differently to emphasise the boundary.

Rhombic Koch Snowflake (interior and exterior)

Aha! And this is when we realise that what this “dual diamond” construction is really doing is sneakily growing a Koch Snowflake (I would have put "Rhombic Koch Snowflake" as this post's title, but it would have given away the punchline).

The internal network of cross-crossing diamond-ey shapes are still a bit distracting, so we’ll delete one of the two components. We’ll delete all the vertical diamonds and leave just the horizontals.