24 Jul

What’s My Radius?

I recently purchased a large number of styrofoam balls as supplies for an upcoming build (about which I will post later). The plans for that build required the diameter of the styrofoam balls, to pretty high accuracy. Although the balls were nominally 4 1/2 inches in diameter, I had noticed in a craft shop that their products also had diameters listed in whole numbers of millimeters that were close to the inch ratings, but not precisely equal. Not only could I not find the millimeter diameters listed for this particular size, I needed to know which was closer to reality, the U.S. or the metric measurement. (I had a hunch that given the world-wide nature of manufacturing and the fact that only the U.S. does not use metric, the metric measurements were more likely to be accurate.)

Unfortunately, my calipers did not have long enough jaws to clamp down onto the styrofoam balls, as you can see above. So how could I accurately measure the diameter of the sphere? You can’t exactly stick a ruler through the ball, and even if you could, how would you locate two diametrically opposed points? There’s a nice trick with a circle, in which you pick any two points, and then draw a line through one of them perpendicular to the line between them. Where that line intersects the circle is diametrically opposite the other point. (This works because the hypotenuse of any right triangle inscribed in a circle is a diameter.) But is there a three-dimensional version of this?

Fortunately, I was not the first person to face this conundrum; you can find this exact question on Math StackExchange. So first I tried the “accepted” answer: find two planes at exactly right angles with each other (I used a bookshelf, checked for true with a square), shove the sphere into the corner where the planes meet, and measure the distance between the plane and the point of contact to get the radius. Clever, huh?

       

But in practice, it’s pretty difficult to see exactly where the sphere touches the shelf. As you can see in the photo above, it looks consistent with a 57mm radius but it also looked consistent with a 57.5mm or even a 58mm radius. I wanted to double check with a more accurate method.

Fortunately, there was another answer on that page, involving measuring multiple distances on the surface of the sphere (easy to do with calipers), followed by a rather lengthy and involved calculation. But a little experimentation and figuring arrived at the following method, which is pretty quick and simple, so I thought it deserved its own post.

First,

Materials
sphere to measure
compass
calipers
pins

pick a convenient, round distance that appears to be in the neighborhood of a third to a quarter of the way around the sphere; for my styrofoam pieces, I chose 90mm. Using calipers (or a ruler), set the compass to exactly this distance. Choose an arbitrary point on the sphere, and draw a circle with the compass. (You can just see the circle faintly in the picture below.) Now choose another arbitrary point on this circle. We want to find the two points on the circle at that same chosen distance away from this second point. So put the point of the compass on this second point, and draw two small arcs intersecting the circle, one on either side of the chosen point. Carefully measure the straight-line distance between these two points of intersection (not the distance on the surface of the sphere, i.e., use calipers, not a bendy ruler or measuring tape). I stuck a pin into each of the two points as an aid to positioning the jaws of the caliper precisely at those points, as you can see at left. Call that measured distance F; in my case, I got 101.2mm. Call the original chosen distance (the one you drew the circle and arcs with) A. Then the radius of the sphere is ½A√((4A²-F²)/(3A²-F²)). With my numbers, A = 90 and F = 101.2, this came out numerically to 56.495… Hence, I conclude that the actual diameter of the styrofoam balls is 113mm, just slightly below 4 1/2 inches (numerically it comes out to 4.4488 in).

To see exactly why this works and how the formula is derived, check out the StackExchange page. A very pleasant case of the math actually working out to solve a practical problem!

14 Apr

Call for Puzzles

Hey, I have recently become problem editor for the undergraduate Math Horizons magazine of the Mathematical Association of America. So I’d love if you have problems/mathematical puzzles to submit to the column. The official submission blurb follows, and of course you will be credited in the Magazine.

The Playground features problems for students at the undergraduate and (challenging) high school levels. Problems or solutions (including more elegant or extended solutions to Carousel problems) should be submitted to MHproblems@maa.org or MHsolutions@maa.org, respectively. Paper submissions may be sent to Glen Whitney, UCLA Math Dept., 520 Portola Plaza MS 6363, Los Angeles, CA 90095. Please include your name, email address, and school or institutional affiliation, and indicate if you are a student. If a problem has multiple parts, solutions for individual parts will be accepted. Unless otherwise
stated, problems have been solved by their proposers.

10 Apr

Gengzhi Goblets

One might think that having produced prototypes of the Gengzhi Goblets, our work is just about done to produce sufficient quantity (roughly 300 of each) to serve as G4G13 giveaways. The question comes down to materials and expense. If the Gengzhi Goblets are actually to be used as measuring cups, then they need to be made from a food-safe material. There are not many options in the online 3-D printing world for food-safe materials. Other than bulky, heavy ceramic materials, I found just the Nylon PA12 from Sculpteo, and ordered a set of cups from them. The total came to over $200 for the set, clearly making 3D printing of 300 sets prohibitive.

For larger-quantity production, the industry standard appears to be injection molding, and there’s no difficulty in obtaining food-safe plastics from that process. So that’s the avenue I pursued in this case. The most economical supplier I found was Firedrake, although their lead times seem to be a bit longer than some other manufacturers. Ideally, you should be finalizing your designs at least three months before you need the items.

However, the next difficulty turned out to be that injection-mold designers don’t want an STL file, typically made up of hundreds or thousands of tiny triangular facets. They prefer STEP files, which consist of many fewer, more structured geometric elements: rectangular solids, cylinders, Bezier curves, and the like. And it’s an entirely different collection of programs for creating and manipulating STEP files. I did some modeling in FreeCAD (free and open-source), but ultimately had difficulty with intersections of two curved surfaces (e.g., in the attachment of the handle to the cup body) in that program, and so completed the cups in OnShape, (online, closed-source, but free for non-commercial use).

Many of the basic steps are similar in flavor with these “computer-aided design” programs. I could still import the STL from SageMath, but now I fit a Bezier curve to one ridge of the cup. Then I could make multiple copies of the ridge by rotating around an axis down the center of the cup, and then sweep out a surface from one ridge to the next. That created a membrane, which I had to thicken to a wall as before. Then I created a handle as a rectangular solid and used Boolean operations to unify it with the cup. To beef up the attachment to the cup I also combined in a half of an elliptical cone at the junction. Finally I could emboss the letters and puncture the hole in the handle (by Boolean-subtracting a cylinder). The final models look something like this:

Note, you can see that in such a design you typically include small bevels at most of the edges, and you also very slightly angle (by a few degrees) all of the “vertical” surfaces so that the piece will unmold more easily.

When your design checks out, you just send it off to the injection molding firm, and they do their magic from there. Here’s the mold that Firedrake produced,

and the completed Gengzhi Goblets have just arrived!

10 Apr

Portion Prototyping

By exploring the theory, the following shapes arose as a natural G4G13 giveaway: a regular 13-gon prism, a cup with octagonal cross sections whose octagon sides scaled with height as √(1-h³), and a cup with pentagonal cross sections with sides scaling as h3/2. The largest octagon and pentagon would be sized to have the same area as the 13-gon, which we saw would guarantee that the octagon cup (or “Gengzhi Goblet,” as we’re calling them) would have 3/4 the volume and the pentagon goblet would have 1/4 the volume. So we would scale the 13-gon goblet to have volume equal to that antiquated measure, 1 U.S. cup, or about 236 cubic centimeters.

You can actually do all of the above for any proportion of height of the measuring cups to diameter of the measuring cups. When I started the implementation phase, I was thinking one-to-one, so rather than height and radius of the cups being equal as in the design phase, I produced cups whose height and diameter are equal. So they all ended up taller and thinner than the images in the design post, but that doesn’t affect the intrinsic volume relationships.

To create prototypes, I had access to an XYZprinting Nobel 1.0a SLA 3D printer. The software for this printer likes to import STL files. To convert the mathematical concepts generated in the design phase to STL files, I chose to use the free, open-source software package SageMath. First, I needed to calculate the height of all three cups and the (maximum) radius of each cup. The maximum radii differ because we want the area of the largest cross section of each of the cups to be identical, but the relation between radius and area differs slightly for each of a pentagon, octagon, and 13-gon. You can see the details of those calculations in a separate post. In any case, once the height H and pentagon radius r5 (say) have been computed, here’s how you get an STL file for the pentagon cup. We need a parametric surface whose radius goes as h3/2. In SageMath we execute def r(h): return r5*h^(3/2). To get the cup, we define def Px(h,t): return r(h)*cos(t), def Py(h,t): return r(h)*sin(t), and def Pz(h, t): return H*h. Since (cos t, sin t) parametrizes a unit circle as t varies from 0 to τ = 2π, Px and Py parametrize a circle of radius r(h), and Pz just stretches the height out to the desired value. Now, you might object that this parametrization yields a solid with circular cross sections, and you would be right; but we recover the desired pentagonal cross-sections by deliberately limiting the number of mesh points that SageMath will use to produce its plot:

pent = parametric_plot3d((Px, Py, Pz), (0,1), (0, tau), plot_points=[40,6]) followed by pent.show() produces the following.

(It might seem fishy that you use 6 points in the t-direction of the mesh to get 5-sided figures, but note that t=0 and t=τ, the first and sixth points, actually represent identical points because of the &tau-periodicity of the circle parametrization.)

The other two shapes are similar, although you have to be careful with the prism; since it has a corner, you can arrange that as h goes from 0 to 1/2, r goes from 0 to r13 while z stays put at 0, and as h goes from 1/2 to 1, r stays put at r13 and h goes from 0 to H. In SageMath, this looks like def r(h): return min(r13,2*h*r_13) and def Fz(h, t): return max(0, 2*(h-0.5)*H). Here are images of the resulting plots:

       

To get these plots out of SageMath as STL files, the commands look like:

p_stl = pent.stl_ascii_string()
pfile = open('/path/to/your/file','w')
pfile.write(p_stl)
pfile.close()

Unfortunately, these STL files are not ready to print directly; they consist of just a “membrane” with no real thickness. To make something printable, we need to thicken them up and add handles and labels and such. There are many possible packages one might use to do that; I chose MeshMixer, a free but closed-source program from AutoDesk. MeshMixer has a tool called “Offset” (that is only available when you have a surface selected) that is tailor-made for turning a surface into a thick wall. However, to keep the top lip of the cup flat, you should first mirror the cup as in the left picture below, then use an Offset of 2mm in the “Normal” direction, and slice off half of the result to get something looking like the right-hand picture below.
       
You can then use the rectangular solid primitive to add a handle. It’s floating separate from the cup, so you have to cut open some apertures on the cup and handle, and then use the “Bridge” and/or “Erase & Fill” tools to join them.

           

Finally, once the handle is fully attached, you can use MeshMixer’s letter embossing facility to add the caption on the handle. (I’ve also used some Boolean operations to cut a hole in the end of the handle.)

Now you could transfer the resulting STL to XYZprinting’s software, but in my experience the support-generation code in their software is not as reliable as that in MeshMizer. So under Analyze, use the “Overhangs” tool to generate supports. Now transfer to XYZprinting and have it “slice” and print the model to get your prototype!
       

05 Apr

Boxtahedral Tower

Materials
763 6″ cardboard boxes:
232 each of 3 colors,
67 plain
2000 twist ties with beads
packing tape, roughly 1 mile

At last the day came for the installation of the Boxtahedral Tower at the Golden Gate Stem Fair. Here are all of the materials waiting to be set up.
The build started off smoothly, with double rows of interlaced boxes quickly turning into trusses.
       
The struts came together to form the top peak, which by the end of the first day, had turned into a tetrahedron.
       

On the second day of construction, the first of the so-called “unknown unknowns” hit. Here’s the construction at the end of that day:

Doesn’t look much different, does it? If you notice, though, it’s up on chairs now. When we simply tried to lift it up there at the beginning of the day, the horizontal members all but fell apart. When we tried to figure out why — after all, the struts had tested out pretty rigid in prototyping — we discovered that the packing tape barely stuck to the paint. It stuck very well to the untreated cardboard, but basically pulled right off of the paint. And it had never even occurred to test whether the tape stuck differently to painted or plain cardboard. So, to make a long day two short, it was spent solely on replacing the centers of horizontal struts with unpainted boxes, which took the tension beautifully, so that at the end of the day we were at the point we expected to be five minutes into the day.

The third day brought another unknown: the ceiling height. Turns out there was not five meters of height available in the venue. Fortunately, we could quickly scale down the bottom level by half, so that it became just the top half of an octahedron (which has a hexagonal footprint). So here’s a half-size triangular face waiting to be inserted under the tetrahedron (in place of one of the chairs). (Oh, and that means that the materials list above specifies more than was actually used, since it’s for the full tower as planned.)

And thanks to the cheerful diligent participation from all of the people pictured below, including the director of the Golden Gate STEM Fair, Marcus Wojtkowiak, (but also many others pictured and not pictured, too numerous to list), we completed the world-premiere installation of the Boxtahedral Tower.You can see it’s just about brushing the ceiling.

And here’s the obligatory shot looking up at the ceiling in the center of the structure. One of Studio Infinity’s finest constructions!

05 Apr

Crowdlearning

In addition to the main, planned build at the Golden Gate STEM Fair, and thanks to donations of materials from Primed Minds, there was also a do-it-yourself/take-home table at the STEM Fair. Participants produced such towers as this one:

However, this column isn’t mainly about the inquisitive fun that participants at the take-home table had, or the specific structures they built, or the interesting fact that you can build oct-tet type configurations with rectangular solids of any proportions (not just cubes), even though all of those things are interesting and worthwhile. It’s about the fact that you can always learn something from anyone, and that inspiration can strike anywhere.

I ran headfirst into these facts after I had returned to Studio Infinity headquarters from the STEM Fair and was putting away all the materials from the take-home table that nobody had claimed. Fortunately, I had waited a day to do this and was feeling refreshed and less inclined to just toss materials in the garbage bin. When I opened up one of the construction units that a visitor to the table had made, my first reaction was “Oh, this person didn’t quite understand how to put the unit together.” But my second reaction was “Oh, this person put the unit together in a simpler, faster way than we were suggesting!” So the rest of this post is the recipe for “Boxtets v2.0: The Wisdom of Crowds.” (Compare to the original recipe for Boxtets.)

Boxtet v2.0
unassembled cardboard box
4 twist ties or pipe cleaners

Of course, the particular innovation documented here must have stemmed from some specific visitor or group of visitors working together; but since I have no way of knowing the particulars, I just have to credit the discovery to the “crowd.”

Begin to assemble the cardboard box as normal, but before closing up the bottom, insert two pipe cleaners each protruding from two corners. Select corners so that there is a reasonable length of the pipe cleaner protruding from the box at each end. Then seal up the bottom as normal. Pull the pipe cleaners taut on the inside, so an equal amount protrudes at each end. Similarly, before sealing the top, insert two pipe cleaners each protruding from two corners. Seal the box up the rest of the way, and you have a Boxtet, constructed much more quickly than before.

 

       

One caveat about using these Boxtets: if you only attach to one end of a given internal pipe cleaner, that pipe cleaner could pull out from its other end. So you may want to connect it to a wooden bead on the outside of the box if it’s not connected to anything else. Any pipe cleaner which is connected to other Boxtets on both ends will be fine.

05 Apr

GGSF: Prep

A brief post about the importance of prepping and prototyping for a build, and a couple of things that came up in the prep for the Golden Gate STEM Fair event. First, there’s just the sheer volume of supplies for such an event. Here are lots of beads getting outfitted with twist ties, for example. Also, to make the sculpture look more attractive, the boxes needed to be painted, 300 each of three colors.

More importantly, you get a feel for the structural characteristics of your medium. Experience (and physics) show that some sagging of horizontal members in a structure like this is inevitable, but full-scale stress tests like this one revealed that the stiffness of the struts varied greatly depending on their orientation. With the top row of boxes vertical as shown, the sag was acceptable, but rotated 90° (about the long axis), the struts were far less rigid, with all of the edge-to-edge joints acting like hinges.

As a result, additional methods of attaching boxes edge to edge needed to be developed. First, the boxes could be assembled with two flaps still sticking out, like so:. That way the flaps could be taped to the adjacent boxes in the structure. The cubes are still positioned edge-to-edge, just linked more securely. And second, for making the double diagonal row of boxes along the middle of each truss, we could just slide the flaps from adjacent boxes into each other, like this:
These changes produced very rigid struts, as you can see in the picture below, leading to high confidence going into the Golden Gate STEM Fair build.

05 Apr

Boxtahedral Trusses

Ok, all of the ingredients were in place to plan a large-scale construction for the Golden Gate STEM Fair: cubical units that can attach at edges and the theory linking them to the oct-tet lattice. I just needed to put it all together into a plan for something interesting and substantial that could be built out of lots of 6″ cubes (but not too many). Since height is a key factor in drawing attention, a nice round figure of 5 meters seemed like a good goal height for the structure. But what to build?

(Note that this post is intermediate between the MakeStream and the MathStream; there’s not much theoretical going on here, but neither is anything physical getting built. Instead, this post is about planning and modeling, so I will leave it in MakeStream and tag it as “virtual.”)

A first natural structure to build in the oct-tet lattice is an oct-tet truss, comprised of a row of octahedra with the tetrahdedra that bind them together.
Notice that there end up being four parallel chains of struts that extend straight along the truss, at the top, bottom, and both sides. That observation means that oct-tet trusses (perhaps unsurprisingly) proceed along the strut directions of the oct-tet lattice. In other words, we should be able to connect the trusses up at the same angles (60°, 90°, 120°, etc.) as the struts of the oct-tet lattice.

So, the possibility presented itself of using oct-tet trusses to build a large-scale model of what’s going on in the oct-tet lattice itself. The simplest subunit that shows some of the key aspects of the oct-tet lattice is a regular tetrahedron atop a regular octahedron. This is also about the most efficient way to achieve height in the oct-tet lattice; making just a single tetrahedron is more efficient, but to get a five-meter-tall tetrahedron, the individual trusses would have to be so long, it’s doubtful they would be sufficiently rigid.

So that’s how the plan for the Boxtahedral Tower at the Golden Gate STEM Fair was hatched. It would be a regular tetrahedron atop a regular octahedron, designed to be five meters tall. Now I just needed to make sure the trusses made out of boxes would connect the way I wanted, and I needed a model of the whole structure to double check part counts and to use in informational materials.

My first go-to geometry modeling tool is GeoGebra, so I fired that up and started constructing cubes. I was able to create enough to get a good view of a 60° joint between two trusses (green and purple in this shot).

But at this point, it was just taking too long per cube added, given back-of-the-envelope calculations showing there would be about a thousand cubes in all. Plus the GeoGebra interface was just beginning to slow down noticeably with so many objects. So I needed a better way to do the modeling. The answer turned out to be a free tool called VoxelBuilder. This is explicitly designed to manipulate colored cubes in a 3-d lattice, and with a bunch of rapid-fire pointing and clicking, I was able to generate this convincing rendering of the final tower.

A couple of caveats: In order to get a model this large entirely onto the screen, it’s necessary to extend the limit by which VoxelBuilder allows you to zoom out. To do that, you need to install Node.js on your system, clone the VoxelBuilder Git repository onto your system, change line 351 of the file index.js from var tooFar = distance > 3000 to var tooFar = distance > 30000, run npm install; npm start in your VoxelBuilder directory, and then connect to your running copy at http://localhost:8080. Also, you should be aware that VoxelBuilder currently limits the rotations you are allowed to do on your model (basically, you can’t look at it “from underneath”), so to get the image above I had to print the model in a different orientation and then rotate the resulting image.

But these technical obstacles overcome, I had all of the pieces necessary to plan the event.

05 Apr

Cuboxtahedron

Materials
6 boxtets

Here’s a very pleasant first construction to make with your boxtets. To link two boxtets together at a vertex, first make sure that the two vertices are snug up against each other — don’t leave any space. Then twist the two (long ends) of the twist ties together tightly, roughly four half-twists. (I recommend always twisting clockwise when building, as it makes taking them apart easier; then you can always twist counterclockwise when disassembling.)

To make the cuboxtahedron, first connect three boxes in a triangle. Then note that two edges of connected boxes make a sort of “V.” Turn that “V” into a triangle by adding a fourth box. Do the same with the other two “V”s formed by the original triangle, and then bring all three of the new boxes up around top where their opposites sides will meet to form their own triangle, which you should fasten together.

And voilĂ , you have the cuboxtahedron!

Why do I call it that? The inner shape of this structure, consisting of one face from each boxtet and the triangular spaces among them, is a well-known semiregular polyhedron called a cuboctahedron. In our case, it’s missing more than half of its faces, but nevertheless creates a surprisingly rigid, symmetric, and pleasant structure for our simple construction. If you have more boxtets, you can continue attaching more of them at the vertices — see what happens when you do!