This is a bit of an interdisciplinary question, but I suppose here is the best place to put it.
I am designing a 3D printed plastic toy with LEDs and knobs in Blender using Python. The LEDs are soldered to a long strip of flexible circuit board, which is weaved through the plastic structure.
The 3D shape in question is produced as follows. Take a unit 4D cube, and on all 8 of its faces, place the following 3D object: a 3x3x3 grid of rhombicuboctahedra, joined by square prisms. Project this 4D object to 3D using fisheye projection.
But for simplicity, let's focus only on one of the faces, ideally one of the more distorted ones. The model can be downloaded here: STL File.
Now, I want an LED on every triangle face of every rhombicuboctahedron of that face, all of them connected with a single strip of flexible circuit board.
Constraints
- The circuit board must touch the 3D surface
- the circuit board may not intersect itself when spread flat

- The circuit may not cross itself once folded onto the 3D body
- The strip may not go over the thin faces of the distorted prism.

My question is, how to reliably and efficiently design the shape of the flexible circuit board? I can usually get about 12 rhombicuboctahedra covered, but then as they become used up and the path within the grid becomes more and more constrained, I struggle to not run into the self-intersection problem.


