Thursday, October 16, 2014

Nano blocks for printing


My friend Dave Benson (Univ. of Aberdeen) used nano blocks to build by hand a 3D mathematical object, namely a cubic surface. The process is pretty much the same as what the printer does, building up the surface layer by layer from the bottom to the top. Below are Dave's specifications. I hope to try this on the printer soon after my return. (That is, I will use the lazy's person's method for surface creation.)

Thanks Dave!

Here is the Magma code I used for producing the cubic surface in Nanoblocks:
R<u,v,w>:=PolynomialRing(RealField(8),3);
U:=2^(1/2)*u;
V:=6^(1/2)*v;
W:=(4*3^(1/2))*w/5;
x:=(3*U+V+2*W)/6;
y:=(-3*U+V+2*W)/6;
z:=(W-V)/3;
f:=R!(81*(x^3+y^3+z^3)-189*(x^2*y+x*y^2+x^2*z
+x*z^2+y^2*z+y*z^2)+54*x*y*z+126*(x*y+x*z+y*z)
-9*(x^2+y^2+z^2)-9*(x+y+z)+1);
g:=R!(3/5-u^2-v^2);
[[[(1+Sign(Evaluate(f,<i/20+1/40,j/20+1/40,k/20+1/40>)))
*(1+Sign(Evaluate(g,<i/20+1/40,j/20+1/40,k/20+1/40>)))/4
: i in [-16..15]] : j in [-16..15]] : k in [-13..26]];

The last line turns the equations into a set of matrices of zeros and
ones describing the layers, much like 3D printing. In each layer, the
ones are where both f and g are positive; the role of g is only to
intersect with a cylinder. The line defining f gives the equation of the
cubic in (x,y,z) coordinates. But this equation has a symmetry of order
three permuting x, y and z, so the cubic would point diagonally away
from the origin. I really wanted it to point upwards, so u, v, and w are
rotated from x, y, z by a transformation given in the first few lines.
The final piece of information you need is that nanoblocks are only 4/5
as high as they are long and wide, which is why the definition of W in
terms of w has a spurious looking factor of 4/5 in it. Hope that helps.

The particular equation of the cubic that I chose is the "Clebsch
diagonal cubic." In general, a nonsingular cubic surface has 27 lines on
it, over the complex numbers. This is one where all 27 of the lines are
real.

No comments:

Post a Comment