Hacktastic

A blog about design, math, and failure

code · mathematics · 3D printing

Pairs of packable scutoids

There’s a new shape in town!

In a new article Scutoids are a geometrical solution to three-dimensional packing of epithelia in the journal Nature, a group of scientists just introduced a new shape that they have dubbed a “Scutoid”.

To learn more about scutoids and their shape, watch Matt Parker’s excellent explainer and construction video:

To make a 3D model of this new shape, we created a simple “polyloft” module in OpenSCAD that lofts from one polygon to another. This enabled us to transition from a pentagon to a hexagon (with an extra point in the middle) to construct a scutoid shape. Here is the code for the polygonal lofter, since I’m sure we’ll need to use it for something else in the future!

module polyloft(A,B){

 /// DEFINE POINTS //////////////////////////////////////////////

 // points at kth level
 function points(k) = [ for(i=[0:len(A)-1]) go(A[i],B[i],k/steps) ];

 // recursively list all points up to level n
 function allpoints(n) = (n==0 ? points(0) : concat(allpoints(n-1),points(n)));

 // all points
 // listed ccz starting with bottom slice and going up
 allpoints = allpoints(steps+1);

 /// DEFINE FACES ///////////////////////////////////////////////

 // quads at kth level
 function quads(k) = [
     for(i=[0:len(A)-1])
         [ i+(k-1)*len(A),(i+1)%len(A)+(k-1)*len(A),
           (i+1)%len(A)+len(A)+(k-1)*len(A),
           i+len(A)+(k-1)*len(A) ]
];

 // recursively list all quads up to level n
 function allquads(n) = (n==0 ? [] : concat(allquads(n-1),quads(n)));

 // all quads
 // listed ccz starting with bottom slice and going up
 allquads = allquads(steps);

 // top and bottom faces
 top = [ for(i=[0:len(B)-1]) i+len(A)+(len(A))*(steps-1) ];
 bottom = [ for(i=[0:len(A)-1]) (len(A)-1)-i ];

 // all faces
 allfaces = concat([bottom],allquads,[top]);

 /// DEFINE POLYHEDRON //////////////////////////////////////////

 polyhedron(
 points = allpoints,
 faces = allfaces
 );

}

Once the polylofter was in place, it was just a matter of defining the vertices at the top, bottom, and middle of the scutoid. A little math helped us create two identical scutoids that next together perfectly:

You can see the full code, customize the code to create your own unique scutoid shapes, and download free scutoid models for 3D printing at our Thingiverse page:

Don’t have a printer, or want something fancy? You can order solid or hollow pairs of these scutoids at affordable 50% scale from our Shapeways shop:

Published July 2018

Comments

  • Gary Gorby Aug 30, 2024

    Can 4 of them fit together as well?

Have something to add? Email me or discuss on Bluesky.