Tag Archives: 3D modeling

Caching 3D Printing Production for Economies of Scale

3D printed object made with netfabb
Image by Creative Tools licensed under Creative Commons Attribution 2.0 Generic (CC BY 2.0).

In a recent piece in Locus Magazine, Cory Doctorow discusses the economic and copyright consequences of a manufacturing model in which 3D printing enables production runs of zero, tens, thousands or millions of objects. The article mentions that the limited production capacity of 3D printing companies makes large production runs troublesome, but there is another problem with the economics of this kind of mass production: 3D printing is still quite expensive, and there are not significant economies of scale. The main cost driver for 3D printing is probably machine time, and printing a thousand model rabbits requires a thousand times as much machine time as printing one.

In large scale search – and many other internet services and computational domains – have a similar problem: computing a result can be quite expensive. Perhaps 3D printing services should adopt the same solution used in search (computation): caching. In caching, the results for commonly submitted queries (computations) are stored in a cache. Future results for a cached query can then be generated cheaply by returning copies of the cached result rather than rerunning the expensive computation needed to generate a result from scratch. Without such caching, search and other large scale internet services would be very significantly (3x-10x?) more expensive.

Maybe companies like Shapeways which operate a 3D printing service could use caching to significantly reduce costs? When a sufficient number of orders for an object have been made – or are anticipated – they print a mold, and produce future copies from the mold(s) rather than on the 3D printers. Just as in computational world, such caching could be performed entirely behind the scenes, and just as in the computational world, it could significantly reduce the cost producing commonly requested objects.

Casting is already a limited part of the 3D production process – on Shapeways, silver objects are exclusively produced using lost-wax casting.

As a footnote, perhaps what draws me to both 3D printing and computer science is the shared computational aspect. One of my current 3D projects concerns an object which is entirely procedurally (computationally) generated. So far that has required about two weeks of Erlang programming for a custom extension to Wings3d.

Parallels between software development and 3d model development

I have been using Wings3d recently to construct a 3d model of something I would like to print on a 3d printer. It is very interesting.

I have nearly finished my model, and one of the things I realize now is that I spent a long time working on one part of the model early on, only to see now that it represents maybe 10% of the volume of the finished whole. But when I started, I was focused on this one piece, and put a lot of detail into it. Now that detail is hardly visible in the final model. Worse, the extra detail results in a very large number of polygons for that one piece, with a number of negative consequences. I should have done a rough sketch of the whole model at the beginning, then I would have understood where I should focus my time.

It’s a bit like software development, accelerated. Some important themes in common are:

  • Employ rapid prototyping at the beginning to understand the problem and what the important elements of a solution should be (see previous paragraph).
  • Big components can require a lot of maintenance. If you put a lot of work into a part of the system, you can make it beautiful and reusable. But you can also make it bloated, full of unseen problems, and hard to fix or adapt to new uses. For example, part of my model is a hand. When I originally constructed the hand, I made it too thin, but I also added a lot of extra faces to get a smooth surface. Later, I realized I had made it too thin. Then all those extra faces bit me, I had to take care to move them all to make the hand wider.
  • Maintain modularity and decoupling. I have had some problems with Wings3d incorrectly applying transformations to selections containing multiple bodies. To get around that, I merged the separate parts of my model into a single body fairly early in the construction process. That helps the transformation problem, but now it will be hard to reuse the separate parts of the model.