# Infinity Icosahedron Mapping

I made an mirrored infinity icosahedron for an electronic music festival last year made up of a combination of mirrored acrylic panels, 3d printed structure, and WS2812b LEDs. When I made it, I didn’t fully understand mapping so I did not wire it up with that in mind and the pixel data directions is not as one continuous string and from what I have read this could pose a problem for mapping.

I am working on another Infinity mirror Diamond Polyhedron and I plan on actually figuring out how to apply the mapping to it to so I want to ensure I wire it correctly. Is it best to wire the data path as one continuous string for the whole shape?

And are there any more resources for understanding mapping? I have been playing around in the mapper but I do not understand how to create a 3d shape. I understand generating a 2D shape based on an array but am falling short when it comes to 3D.

I have zero Javascript knowledge so all the other forum posts about coding and mapping are going way over my head. Is it possible to use a Json array for this shape or does a custom code need to be written?

Here is a screenshot of the new shape I am working on.

And my icosahedron

1 Like

Let me see if I can help. Mapping this is fairly simple.

The first thing I would do, is unfold your geometric shape out onto paper flat. Each one of those side you want to install an LED on is Row and Column. Your map would look something like this…

map = [
//LED Strip 1
[0,0,1]
[0,0,2]
and so on.

Here the X, Y is the position of the LED strip one of the sides. The controller basically say give me the coordinates to light up. The Z function here is the number of lights in your strip mapped out. Yes is there other ways to do the math? Yes! I don’t know how to do that math exactly that way.

Second, you can map out the coordinates exactly. It would be pretty time intensive because of keeping track of the constantly changing X, Y, Z values because you’re plotting diagonally.

Let’s just say to plot this that way, your X, Y matrix is 12 x 12, starting at 0.
I would have a starting number position at 4-6 to the point. So…
LED String 1 : [4,0,0], [3,1,1],[2,2,2]…
LED String 2 : [0,5,0], [1,6,1] , [2,7,2]…
LED String 3: [6,0,1], [7,1,1] , [8,2,2]…

Hopefully this helps.

1 Like

Thanks, @DaveB - that’s a great start.