# Menger Sponge Generator [duplicate]

## Challenge

My challenge, is for you to generate a Menger Sponge based on the level/iteration given. You need to draw it in 3d, anyway you can.

Examples

Inputs: 0, 1, 2, 3

Outputs:

## Background Information

What is a Menger Sponge

In mathematics, the Menger sponge (also known as the Menger universal curve) is a fractal curve. It is a three-dimensional generalization of the Cantor set and Sierpinski carpet

Properties

See https://en.wikipedia.org/wiki/Menger_sponge#Properties (too long to copy and paste)

How do I construct the sponge?

1. Begin with a cube (first image).

2. Divide every face of the cube into 9 squares, like a Rubik's Cube. This will sub-divide the cube into 27 smaller cubes.

3. Remove the smaller cube in the middle of each face, and remove the smaller cube in the very center of the larger cube, leaving 20 smaller cubes (second image). This is a level-1 Menger sponge (resembling a Void Cube).

4. Repeat steps 2 and 3 for each of the remaining smaller cubes, and continue to iterate ad infinitum.

The second iteration gives a level-2 sponge (third image), the third iteration gives a level-3 sponge (fourth image), and so on. The Menger sponge itself is the limit of this process after an infinite number of iterations.

Credit

## Good Luck!

Remember this is the shortest program wins!

• @HyperNeutrino 3d is now required, so it's not a duplicate. Commented Jun 13, 2017 at 21:13
• you shouldn't change the question when 2 of us answered Commented Jun 13, 2017 at 21:16
• @Jenny_mathy I don't have a choice since doing it in 2d is already a question. Commented Jun 13, 2017 at 21:17
• I'm voting to reopen simply because this is no longer a dupe. However, you will need to tighten up the spec to allow us to onow exactly what kind of 3d output you want Commented Jun 13, 2017 at 21:17
• Since 3D is now required (invalidating existing answers), I think the question is now unclear. There is a lot you need to specify for 3D including but not limited to viewing angle, projection, lighting, shading. Commented Jun 13, 2017 at 21:18

anyway.. here is the 3D answer

# Mathematica, 15 bytes

#~MengerMesh~3&


new built-in in Mathematica 11.1

input

3

output

• Can you add a try it link? Commented Jun 13, 2017 at 21:16
• Why don't you just post it on codegolf.stackexchange.com/questions/40104/sierpinski-carpets since your code generates Sierpinski Carpets (2d menger sponges), not Menger Sponges, which my challenge is about. Commented Jun 13, 2017 at 21:43
• I answered the 3D question ,too.Next time just ask "one" question in order to receive one answer Commented Jun 13, 2017 at 21:47
• Why would you ever need a built-in function to do that either then now? Commented Jun 13, 2017 at 22:06
• @NoahCristino Ask that to all 5000 of Mathematica's builtins :P Commented Jun 18, 2017 at 2:30