So this arrived today, and I threw a temporary set of lights into it, actually a few attempts (first a 150 strand wrapped around a cardboard tube, then a 300 strand wrapped around a pool noodle). A quick map based on Cylinder pixel map and I had something interesting, but of course… few patterns that ‘did it right’. Since I have plans for a handful of these ‘lamps’, I’ll likely be adjusting patterns to work well with it.

One thing to decide: what’s Z? I did Z as height , but now I’m rethinking this, as I suspect many patterns would look better if it was Y as height. To be played with more…

Added: I added some boundary pixels, adding ‘far corners’ for X and Z, to make the cylinder ‘taller’, which helped, and then I realized that’s MAYBE not the right way, maybe I should be transforming, by adjusting the scale (since it’s a narrow but tall shape), so my Y should just be scaled up… Otherwise the corners bring the relative X and Z in closer (since the overall 0…1 remains, but then the X and Z are in tight) More to be played with. One way the map handles it, patterns don’t need to care, the other way the patterns have to be aware of the weird shape (not a square/cube) This will be fun. Ultimately, it’ll be a good way to see how far I can push some patterns to work in 3D and be interesting.

```
function (pixelCount) {
var map = [];
numloops=24
for (i = 0; i < pixelCount; i++) {
c = i / pixelCount * Math.PI * 2*numloops
map.push([Math.cos(c),i/pixelCount,Math.sin(c)])
}
map.push([-3,0,-3])
map.push([3,0,3])
return map
}
```