Introduction: Design and Build a 2,000,000,000x Scale Buckyball Model

Last month, a friend forwarded me a paper authored by some researchers at the Hasso-Plattner-Institute in Potsdam, Germany. The paper discussed the development and use of a piece of software called TrussFab (website, full paper), which can take a shape and generate a set of 3D-printable connectors that will allow an enterprising individual to build a sturdy structure out of plastic soda bottles.

My mind immediately jumped to molecules - how fun would it be to make a giant molecular model building set out of bottles and 3D printed connectors? In particular, the molecule that came to mind was the buckyball - famous, elegant, ball-ish.

Unfortunately, TrussFab is not yet available for public consumption. But: unlike a more complex structure like a chair or a table or a giant dome with adorable cat ears, all of the "struts" in a buckyball are identical. So, can we use this to design connectors for a bottle buckyball to the delight of children everywhere*?

*Spoilers: yes. Specifically, this buckyball is destined for the NC State Science and Engineering Festival, a large science outreach event in the late spring.

To do this, you'll need the following things, each of which will be addressed in later steps:

  • A CAD program you're familiar with (I used FreeCAD: free, open-source, Linux compatible).
  • A 3D printer (or access to a 3D printing service, like Shapeways, a local library, or a local Makerspace).
  • 20 ounce soda bottles (at least 180 of them)
  • Hot glue or machine screws/washers.
  • Some tools (drill, bits, socket for machine screws, etc).

Read on for more!

Step 1: Buckyball Background

Buckminsterfullerene (or "fullerenes" for short, or "buckyballs" for short AND fun) are one of the few molecules recognized, in at least some way, by almost everyone. For a long time, two allotropes of carbon (molecules containing only carbon atoms with different bonding arrangements) were known - graphite, which is composed of large, flat chicken-wire-like sheets of carbon, and diamond, composed of tetrahedral carbon atoms. The fullerenes C60 and C70, discovered in 1985, were the first additional allotropes of carbon discovered since Antoine Lavosier confirmed diamonds and graphite were both pure carbon over two hundred years earlier (in 1772).

The story of the buckyball is one of those amazing felicitous discovery stories that really showcases the human side of science. The discoverers, Harry Kroto, Robert Curl, and Richard Smalley were trying to study "polyynes," a carbon-containing class of compounds which are quite troublesome to prepare by "normal" wet-lab chemical methods. So, they decided to try blasting sheets of graphite with a laser, and feed the resulting debris into an instrument called a mass spectrometer that can "weigh" individual molecules. They consistently observed two signals corresponding to C60 and C70 (creatively dubbed the Lone Ranger and Tonto). After considering the possibility that the mystery molecules contained curled-up pentagons, a call to the Rice University math department resulted in a realization:

We were sitting in Rick Smalley's office. We were extremely high, on a roll at the time as you might imagine, only just recovering from the realisation of what the bloody thing might be. Jim Heath [a student of Smalley’s] and I and almost certainly Sean O'Brien [another student of Smalley’s] and probably Bob Curl too were there. Rick was definitely not there at the time and that is why Jim was sitting in Rick's chair at Rick's desk when the phone rang. Jim answered it. Then a sort of stunned expression came over his face and Jim said ‘It's a soccer ball’, or he may have said ‘He says it's a soccer ball’. I am pretty sure he did not say ‘It's a soccer ball’. This appeared to be a return call from a mathematician that Rick must have called up earlier in the day to ask what the structure might be.’

Further evidence confirmed this, and the three scientists won the 1996 Nobel prize for their work. Also, bonus points for getting this published in Nature:

We are disturbed at the number of letters and syllables in the rather fanciful but highly appropriate name we have chosen in the title to refer to this C60 species. For such a unique and centrally important molecular structure, a more concise name would be useful. A number of alternatives come to mind (for example, ballene, spherene, soccerene, carbosoccer), but we prefer to let this issue of nomenclature be settled by consensus.

What better molecule to make a physical, tangible model out of? It's a beautiful molecule with a captivating story that even elementary school kids are at least somewhat familiar with!

Plus, imagine the fun of assembling a seven-foot tall model made out of recycled materials.

Step 2: Connector Construction: Cartesian Coordinates

I'm going to spend a lot of space detailing how I built the connector, since I am a CAD novice and this parttook me the longest time to get right. If you just want the STL/FreeCAD files to print the connectors, skip to step 5.

The first step in building the connector is to locate a list of the cartesian coordinates for all 60 vertices of the truncated icosahedron. The first place we might look, Wikipedia, is not much help. It provides a mixture of grade-school facts ("This geometry is associated with footballs (soccer balls) typically patterned with white hexagons and black pentagons") and information useful to someone with an advanced degree in the subject ("Cartesian coordinates for the vertices of a truncated icosahedron centered at the origin are all even permutations of: (0, ±1, ±3φ), (±1, ±(2 + φ), ±2φ), (±2, ±(1 + 2φ), ±φ)").

Fortunately, the Internet is amazing, and as is often the case, someone else has done the hard part already.

Throw the coordinate list into a spreadsheet. Now, since the list of coordinates is not necessarily sorted in a meaningful way, we need to do that ourselves. First, we can translate one point to the origin by picking a point, and subtracting its coordinates from the coordinates of every other point. Here's what that looks like for the first four points:


Next, we need to be sure that we're choosing four points that are adjacent to each other (one in the center, and then the three that form the pentagonal and hexagonal edges. To do this, we can use the 3D version of the Pythagorean theorem (D = sqrt(ΔX2 + ΔY2 + ΔZ2)) to calculate the distance between each point and our newly translated-to-the origin point. For instance, here's what that would look like with the four translated sample points from the previous example:

XYZD from (0,0,0)

These four points are non-adjacent (relative to the "origin point"), since the distances are all different. Fortunately, now we can sort the whole table by the calculated origin-to-point distance to "pull out" the adjacent points.

XYZD from (0,0,0)

And that's it! Now we have the coordinates we'll need to build a solid part with the correct geometry. This technique will work with any uniform polyhedron, as all of their vertices are identical.

Step 3: Connector Construction: Build the Basic Shape

For the connector design part of this project, I used FreeCAD. I have a (very) limited amount of experience with 3D modeling, so this may not be the most efficient way to do this - but it worked for me! Start up FreeCAD, create a new document, and switch to the "draft" workbench.

Now, create a line. Enter the starting coordinates as the origin (0,0,0), and the final coordinates to be one of the three other points you selected. Copy and paste that line to create two new copies.

Select one of the other copies of the line. On the bottom left-hand side of the screen, you should see two tabs saying "view" and "data." Click "data," and scroll down until you see an option for "end." Click the arrow to expand it, and replace the current ending coordinates with the coordinates for the second point. Repeat for the other line and the last set of coordinates.

What you should see is a "Y"-shaped structure. This will define the geometry of the rest of the part.

Step 4: Connector Construction: Make It Solid

Next, we'll need to create three circles that will be used to form the meaty bits of the connector. The way FreeCAD works is that you need to define a plane to draw on, but none of the default view planes align with our connector properly.

To get an appropriate plane, we'll need to use the WorkFeature addon. If it isn't already installed, you'll need to use the addon installation guide (or you can go to Tools→Addon Manager, then find "workfeature" in the list and install). If you're not seeing the "Work Features" tab in the lower left, go to Macro→Macros... and run the start_WF.FCMacro macro.

Now that WorkFeature is enabled, click one of the lines, then control-click to select the end vertex of the line. Select the "Plane (Point, _|Axis)" button, and a plane will be created normal to the line. Select the face of the plane by clicking on it, then click the Select Plane button - the "grid" of the draw plane should align itself with the WorkSurface plane. You can delete the WorkSurface folder now, the displayed plane will just get in the way.

Now, create a circle. Enter (0,0,0) for the center coordinates. For the radius, you'll need to choose a value that makes sense for your choice of struts. I'm using standard PETE soda bottles, for two reasons - one, they're readily available; and two, they have about the same inner diameter as a half inch PVC slip connector in case I ever want to upgrade my educational model into a chicken coop or hobby greenhouse.

The outer diameter of a half inch PVC pipe is 21.3 mm, so use half that value for the radius (10.65 mm).

Repeat for the other two lines.

Now, switch to the "Part" workbench. Selecting one circle at a time, use the Extrusion tool to turn the circles into cylinders. I found 26 mm to be just about long enough.

If you look at the top of the connector, there's a big gap in the middle. To fill it, create a sphere at the origin, with a radius matching that of the cylinders (10.65 mm).

Step 5: Connector Construction: Embellishments and Finishing

Before you finish with the connector design, there's a few more improvements you might want to make. If you view the connector from the top, you should be able to see two wide angles and one small angle. The small angle is the pentagonal angle, and the large angles are hexagonal. I made some final improvements to the connector by doing the following:

  1. Label the parts to keep track.
  2. Fillet the end faces of each cylinder to round them off - this will make it easier to insert them into the bottles later.
  3. Use the polygon tool to add two small pentagons and one hexagon to the end face of each cylinder.
  4. Extrude those polygons (1 mm forwards, 2 mm reverse) to form pentagonal and hexagonal prisms.
  5. Use the Cut tool to make pentagonal and hexagonal holes.

Once you're done adding any enhancements/labels, select all the disparate parts and create a union of all of them. Congratulations, you're done! Be sure to save the FreeCAD file so that you can alter the dimensions later, if your printer or choice of filament requires a little fine-tuning.

Once satisfied, export the final union as an STL (or other format suitable for 3D printing).

I've included both the FreeCAD save (this'll let you change the dimensions if you need to) and the STL files for both the connector and little "plugs" that can be printed in colored PLA and glued into the holes, as you'll see in the next step.

Step 6: Connector Construction: Print It!

Now the connector is ready for printing. I printed with Hongdak White PLA filament, with an extrusion temperature of 200 degrees and a bed temperature of 60 degrees. I oriented the concave side of the connector down, and printed with 0.2 mm layer height, 30% infill, and three walls.

With the steep overhanging angle of the connector arms, supports are necessary. In order to keep the bottom surface smooth enough to fit without too many problems, I found that a 50% support top interface worked well. I didn't have any adhesion problems, but still printed with a skirt just in case.

Each connector weighs about 12 grams (including support and skirt). 12 of them can fit on an 8x8 build plate with decent arranging. All 60 will need more than 700 grams of filament, so be sure that you have enough!

Now, scrape and pry the support off. I did not sand down or do any additional finishing, because the fit was perfect just as they were printed (for the most part - it turns out bottle necks are less uniform than I thought, but more on that .ater). A little bit of roughness on the bottom surface isn't detrimental, as the extra ridges will "grip" the inside surface of the bottle neck.

I'm using these for an outreach activity, so I took the extra step of printing green and red colored plugs to label the pentagonal and hexagonal edges. A few drops of cyanoacrylate glue will keep them firmly in place.

Step 7: Bond Building: Dumpster Diving

Now that we have the "atoms" printed, we need to make some bonds. Going with the TrussFab model, this giant buckyball will require 90 "bonds" made of 180 plastic bottles. I decided to use 20 ounce soda bottles, for a few reasons.

  1. Two-liter bottles, my initial first choice, are less common.
  2. Water bottles come in a great number of different form factors, and are generally pretty flimsy. Most even advertise that they are manufactured from less plastic, in an attempt to make consumers feel less guilty about the appallingly wasteful nature of bottled water
  3. I work at a university where every building has at least one vending machine that dispenses 20 ounce sodas.

If you have a college or university near you, you might as well treat it like a bottomless source of empty plastic bottles.

For collection, there are two options. One, take a long, meandering walk through campus, carting around a plastic bag full of empty soda bottles, or; contact the head of the university's recycling program and ask where they take all the recycling (this is extra convenient if he's your neighbor - if you're reading this, thanks, Lee!).

Just remember some basic dumpster-diving tips:

  • Wear shoes you don't care too much about.
  • Wear gloves, unless you like sticky trash-hands.
  • Beware of insects - wasps love dumpsters, and mosquitoes love to breed in trash water.

When collecting the bottles, I rejected any that showed signs of damage (cracks, "creases" in the plastic, etc.). Soda bottles seem to come in two different varieties - Coca-Cola products come in bottles that are slightly taller, and PepsiCo products come in bottles that are slightly shorter. I collected both, because I wasn't sure what I'd get more of.

After about one week of collecting, thorough rising, and a bit of drying, the bottles were ready to be joined.

BONUS GRAPH: I recorded how many of each type of soda bottle I collected, in case you were curious. Apparently we really love Mountain Dew in this neck of the woods.

Step 8: An Aside: Adhesive Assessment

If you're just interested in making the thing, feel free to skip to the next step. TL;DR? Screws > glue.

To join the bottles together, I ended up using a similar method to the one outlined in the TrussFab paper: drilling a pilot hole in the center of the bottom of the bottles, and using a machine screw with nut to hold them together. But isn't the journey just as important as the destination?

Here's what we have to work with: first, there are two different "form factors" for soda bottles - Pepsi products (Pepsi, Mountain Dew, Lipton, Crush, etc.) have shorter, stouter bottles, and Coke products (Coke, Sprite, etc.) have slightly taller bottles. Second, American soda bottles have a very different design than the European models shown in the TrussFab paper:

In the TrussFab images, it's clear that the soda bottles they use have a symmetrical concave "dome" on the bottom of the bottles - a screw placed in the center of this dome would effectively prevent the two bottles from bending in the middle. American bottles have five symmetrical gear-like "teeth" arranged around the center of the bottle. To complicate factors further, the Coke bottle teeth don't interlock well due to their shape, and the Pepsi bottles have a little nub of plastic that prevents the teeth from making full contact.

Fortunately, in a beautiful example of interoperability, the Coke bottles have an "innie" compatible with the Pepsi bottle's "outie," and the Coke teeth fit superbly into the Pepsi teeth. My first idea for joining was to use hot glue - I've had some success using hot glue to bond plastics before, as the heated glue can often soften the plastic, creating a pretty decent bond. Also, hot glue can form a nice thick bead, allowing good contact between the limited surfaces of the bottle "teeth." So that's what I tried at first.

Unfortunately, I soon discovered that hot glue only seemed to do great job at forming a bond to the surface that it's applied to "fresh," straight out of the glue gun. When I used hot glue to join the bottles together, I discovered that though the joint seemed strong, the bottles snapped apart when left stressed for an extended period of time. Specifically, I left the first buckyball I built assembled over 48 hours, and came back to a giant pile of amorphous carbon. Under closer inspection, many bottle pairs had snapped in half, shearing the glue off of one bottle cleanly, leaving all of it well-adhered to the other. Clearly, this was a problem in need of a solution.

So, I tried several other types of glue. Cyanoacrylate glue (like Superglue), expanding polyurethane glue (like Gorilla Glue), and good old-fashioned two-component epoxy. To test their fitness, I joined bottles with each of the glues by:

  1. Preparing the surfaces as directed by the glue manufacturers (sanding, moistening, etc.)
  2. Applying a bead of each type glue in a daisy-like pattern on one bottle (see picture),
  3. Joining the two bottles together, wiggling them to ensure complete contact,
  4. Flipping the assembly over to allow the glue to flow onto the "clean" bottle side,
  5. Placing the assembly in a cardboard tube, and applying a weight (a filled bottle of spaghetti sauce, weighing 1.35 kg) for the recommended "clamp time."

Unexpectedly, all of those glues did worse than hot glue. The pictures of the buckyball I assembled were joined with hot glue, which does an adequate job but clearly won't hold up under outreach conditions.

So, if you're doing this from scratch, I'd highly recommend using screws instead, which is what the rest of the instructions are based on.

Step 9: Bond Building: Container Connection

To build the bonds, you'll need:

  • 180 clean, dry soda bottles
  • 90 machine screws with nuts (I had ¾ inch-long #8-32 screws handy)
  • 180 washers (I used #10 x ½ inch bonded neoprene washers, which I already had laying around)
  • 5/8 inch paddle bit (or other suitable drill bit)
  • Drill (not pictured)
  • Long screwdriver
  • Long socket wrench (that matches the hex nuts for the screws, for me that was an 11/32 bit).
  • Small, powerful magnet (optional, but helpful).

Before you start drilling holes, check the fit of the bottles! Some bottles didn't fit the connectors, which I was not expecting. I didn't check before I connected all the bottles together and had to file down the inside of a bunch of bottle necks. Learn from my mistake, and check the fit beforehand.

To begin, drill two small holes in the center of the bottom of each bottle. For the screws I have, the pointy bit of a 5/8 inch paddle bit creates the perfect size hole. Fit a washer onto one of the screws, and use the long screwdriver to carefully insert it into the hole in the first bottle. Ideally, the fit will be pretty tight - you might have to actually drive the screw into the hole.

Holding the driver, slide the other bottle onto the screw. The toughest part of this is seating the washer properly - I did it by sticking a small neodymium magnet to the inside of the socket wrench. Place it close enough to loosely hold the washer, but far enough away that it won't pull it off the screw. Insert the washer onto the screw with the socket/magnet trick. Holding the socket extension, turn the screw with the screwdriver to tighten.

Repeat 89 times.

Step 10: Build That Buckyball!

We've got the "atoms," we've got the "bonds" - time to make a molecule!

To start, assemble a pentagon by inserting five "green" pentagonal connector ends into five bottle necks. To be sure that they'll fit properly, always choose the same side for the pentagons. (I picked the left green arm, as viewed along the red hexagonal arm). Arrange these in a pentagon, so that the convex "outside" of the atom connector is oriented up. Connect the ends into a pentagon. Press lightly to flatten.

Make eleven more pentagons. This will use up all sixty connectors, and sixty of the ninety bottles.

Connect two of the pentagons via their "red" hexagonal end. Add two more bottles to the adjacent red ends, then bridge those two connectors to make a hexagon. Flip it over so you can build it from the "inside."

Keep adding pentagons like this, layer by layer, to grow the structure. Eventually, only the top pentagon will remain.

For the top, add the last set of five connectors to the last pentagon. One by one, connect them to the last open sites at the top of the structure - be gentle! The last two connections may require some careful maneuvering to get together, but it's quite possible to do yourself!

Congratulations! You are now the proud owner of a physical, tangible model of one of the most interesting molecules of the 20th century. Enjoy!

If you decide to do this, I'd love to see your pictures!

Untouchable Challenge

Runner Up in the
Untouchable Challenge

Explore Science Contest 2017

Participated in the
Explore Science Contest 2017