## Why is 3D printing such a powerful way to make solid objects?

Journalists often ask me what is special about 3D printing.  So I answer them.  And then they don't print what I say.  The reason is that they are frightened by mathematics, or that they think that their readers are.

But you RepRap Blog readers eat mathematical arguments for breakfast.  So here, for the record, is the answer:

Why is 3D printing such a powerful way to make solid objects?

To answer this question we first have to ask another: “In what ways can the shape of a solid object be complicated?”

Often things just get more complicated the more of them there are. If you are a bank with a million customers who have account numbers and your computer has to sort them into order, then that is a more complicated problem than it would be if you only had a thousand customers.

But shapes aren't just complicated like that. They can be complicated in two other ways as well.

This picture (thanks to my old friend John Woodwark for the idea for this) shows all three ways that shapes can be complicated:

1. First there is “combinatorial” complexity – that is the lots-of-bank-account-numbers complexity: a gear wheel has more bits to it than a triangle does;
2. Second there is “analytical” complexity – triangles are made of straight lines, which have simple equations. But complicated curved shapes have correspondingly complicated equations;
3. And third there is “dimensional” complexity – a triangle is two-dimensional, but a pyramid is three-dimensional.

These three complexities are independent. You can have any mix of them.

But if you want a computer to control a machine to make shapes automatically, then dimensional complexity is the most difficult complexity to deal with. This is because, as the number of dimensions increases, the very nature of shape changes. Here are just a couple of examples:

1. If you have some points round a 2D circle you can visit them in order one after another; but if you have some points on a 3D sphere, there is no order that places them one after another; and
2. If you have a piece of string, you can tangle it in 3D (as any kitten will be able to demonstrate); but a piece of string in 2D is simpler, and so cannot be tangled.

Bearing this in mind, lets look at the difficulty of getting a computer to control machines to make something automatically in two ways: by cutting the thing from a solid block, and by 3D printing the thing layer by layer.

Here is a turbocharger from a car engine. And the object top left with the yellow tip is a cutting tool that is removing material from a solid block to reveal the turbocharger like a sculptor chiselling a block of marble. To make the turbocharger the computer has to figure out how to move the yellow cutter.

Rather surprisingly (as we live in a 3D world) the cutter can move in five dimensions. These are the normal three: left-right, front-back, and up-down, plus rotations about those directions. The rotations are needed because the cutter must twist to cut the shape. That totals six dimensions, but rotation about the axis of the cutter itself doesn't count, which leaves five dimensions.

The computer controlling the cutter needs to work out how to move it around in that five-dimensional space. And not only that, it has to make sure that no part of the cutter (like the conical bit at the top where it attaches to the cutting machine) collides with any un-cut part of the raw block, or with the turbocharger being made.

This is a very very difficult mathematical and computational problem, and we still (2013) can only solve it for some shapes, even though we know the computer should theoretically be able to be cut out others that we can't (at the moment) solve.

Now let's look at the turbocharger being made on a 3D printer. This will start at the bottom and build the first layer of the turbocharger. Then it will move up a fraction and build the next layer. And so on.

The right hand picture shows a layer about half way up, and this is all that the computer has to deal with at each stage – a 2D problem, not a 5D one.

It is very easy to program a computer to deal with such 2D shapes, and – for this reason – 3D printing machines can make any shape that the physics of the machine can handle, no matter how complicated that shape is. And, unlike with cutting, there is no problem of collisions. The computer always knows that it can move the 3D printer freely above the layer being printed, because there is nothing there yet.

(In reality, a tiny amount of 3D has to be dealt with: a 3D printer has to put disposable support material under any overhangs, because it can't build layers on thin air. But this is a very easy calculation to do. The computer works out the 2D slices starting at the top of the object and goes downwards. At any level the support material needed is the shape of everything in the layer above minus the shape of everything in this layer. When the computer has done all this, it then reverses the order and builds from the bottom up.)

This simplicity of the computing and mathematics of 3D printing is the reason that it is humanity's most powerful manufacturing technology: the computer controlling a 3D printer will always have a much easier problem to solve than a computer cutting out the object being made, no matter how complicated the object is. And because of that, 3D printing is by far the most versatile way we have to make things.

Don't forget the fourth dimension, volume. X/Y/Z positioning tells it where to move, but you need precise control of the volume of plastic being put in those locations to produce accurate geometry. As with the Z axis, the X/Y coordinates are (currently, usually) generated with the goal of simplifying the E axis movements, but the leaps in quality we've made in the last few years (just the other day, I was printing 20-micron layers) would not have been possible without the move to stepper-driven extruders that we can control with comparable precision to the other axes.

You are absolutely right - rate of volume deposition is another dimension that needs to be controlled, as of course, are time and one or two temperatures. But all those are not an aspect of geometric complexity - they are dimensions in the sense that mass, length, and time are dimensions in the analysis of a scientific formula. When 3D printing, the spatial relationships that have to be manipulated are two-dimensional, whereas when cutting those relationships are five-dimensional.

That's six degrees, not dimensions.

and of course 3D printing can create shapes not only with less computational complexity than a CNC mill's Gcode generator, but also shapes that are totally infeasible to produce, such as objects with captive holes unreachable by a toolhead unless a custom one is made simply to cut that hole, and some other shapes that would require a milled workpiece to be turned over and the mill re-zeroed before cutting. That goes without even mentioning the material/energy efficiency.

This is a nice article on the versatility of 3d printing vs. other computer-aided manufacturing methods, but I was hoping to see a broader comparison to all other manufacturing methods (not just ones involving computers driving machines), including ones driven by hand like resin casting. I think that would speak more to the general audience.

It is both six degrees and six dimensions. They are orthogonal.

All forms of moulding and casting are secondary technologies; they need a primary manufacturing technology like cutting or adding to make the master or the mould. And it doesn't matter if the manufacturing is being done by a computer or by a person - the complexity of the problems are the same.

Based on your description, it seems to me that the best way to do z axis motion would be different from the best way to do x and y axis motion. But from the designs I've looked at ( mainly delta robots because I like delta robots ) it seems to be the fasion to treat all three axes the same. When you watch a 3d print video you see all sorts of skittering back and forth in x and y, at astonishing speeds. In contrast, the z axis motion is like the minute hand of a clock. You have to watch for it to see it. So why not design your printer to take advantage of that difference? I'm fairly new here but I would think I would have seen a hint somewhere.

Based on your description, it seems to me that the best way to do z axis motion would be different from the best way to do x and y axis motion. But from the designs I've looked at ( mainly delta robots because I like delta robots ) it seems to be the fashion to treat all three axes the same. When you watch a 3d print video you see all sorts of skittering back and forth in x and y, at astonishing speeds. In contrast, the z axis motion is like the minute hand of a clock. You have to watch for it to see it. So why not design your printer to take advantage of that difference? I'm fairly new here but I would think I would have seen a hint somewhere.

You are right. And the vast majority of designs do just that, using fast timing belts for X and Y, and slower screw drives for Z.

And it's five significant dimensions, even though technically there are six. But rotation about the cutting tool axis doesn't count. And degrees of freedom and dimensions are mathematically the same thing. Check out work on configuration spaces for more details.