Monday, January 28, 2013

Octet Truss Memory, Time and Dollar Costs

Cost for 3D Octet Truss Arrays
i j k time (s) stl (bytes) WSF ($)
1 1 1 1 1.47 73384
2 2 2 2 28.74 435384 2.61
3 3 3 3 173.32 1342184 4.99
4 4 4 4 873.20 3052984 9.46
5 5 5 5 2952.67 5826984 16.69
6 6 6 6 6694.16 9923484 27.32
This is a follow-up to the previous post on using the octet truss for topology optimization. The memory cost of performing the union of all the truss members in BRLCAD to generate stl files for printing was too large for the ToPy dogleg example so I generated a set of stl files for a range of arrays of octet truss unit cells. Then I uploaded them to shapeways to see how much they would cost to print in the white-strong-flexible nylon material. The table shows how long the python script took to execute, the size of the resulting stl file, and the cost to print the part on Shapeways in the white-strong-flexible material.

The size of the file and the cost to print the part scales linearly with the number of unit cells, however the time to perform the union shows quadratic scaling. This quickly becomes intractable for moderately sized arrays of cells.
Now I'm in need of a scalable algorithm to do fast boolean operations for constructive solid geometry.

Update: I had to add a frame around the bounding box of the parts to make them a bit more robust for cleaning and handling at Shapeways.
"it will break during unpacking/cleaning like this"

Update II: Here's the 6x6x6 part in Shapeway's white-strong-flexible:


  1. I updated the post to include a pic of the 6x6x6 octet truss cube w/frame that I ordered in the white-strong-flexible material. It's pretty neat to be able to go from graphics on the screen to part in your hand in such a short time.

  2. Well, here's one solution to the poor scaling of the Boolean union operations: don't do them! The methods demonstrated in that thesis use unit cells that have coincident surfaces in the stls so each unit cell is actually a manifold part that butts into its neighbor.

  3. Here's an interesting paper from some folks at MIT with a concept called OpenFab:
    We present OpenFab, a programmable pipeline for synthesis of multi-material 3D printed objects that is inspired by RenderMan and modern GPU pipelines. The pipeline supports procedural evaluation of geometric detail and material composition, using shader-like fablets, allowing models to be specified easily and efficiently. We describe a streaming architecture for OpenFab; only a small fraction of the final volume is stored in memory and output is fed to the printer with little startup delay. We demonstrate it on a variety of multi-material objects.

  4. Another neat one:
    The structure is made of flat, cruciform-shaped composite pieces clipped into a cubic lattice of octahedral cells. This structure is called a “cuboct” and is similar to the crystal structure of the mineral perovskite, a major part of the Earth’s crust.

    While the individual components can be disassembled for repairs or recycling, there’s no risk of them falling apart on their own, the researchers explain. Like the buckle on a seat belt, they are designed to be strong in the directions of forces that might be applied in normal use, and require pressure in an entirely different direction in order to be released.

    Cellular Composite Snaps Together