There was a time when you couldn’t make endless copies of a song. If you tried to play a recording, then record the copy you’d just played, then record that copy, after a few iterations it would all just turn into noise.
Same thing with images. If you scanned or photographed an image, then printed it, then made another scan, and repeated this a few times, you’d be left with nothing but snow.
This was the analog world we used to live in. Now of course we’re in a digital world, where you can make endless copies of things, because there are lossless digital formats.
Today I was talking to somebody who makes 3D scanners (exotic devices that do 3D scans of physical objects), and I had a sudden inspiration. I was thinking about the 3D printer I have at home, and I realized that if he were to scan an object I had made on my 3D printer, and I tried to 3D print the result, the shape would turn to mush after a few iterations. Just like it used to be for music and pictures.
And then I had a sudden inspiration. I said “Why can’t we do digital 3D printing?” In other words, why can’t we 3D print something losslessly, so that if we scan it, we get a perfect copy, no matter how many times we scan → print → scan → print, and so on.
But how do we do this? Well, let’s think about how much information we’re talking about here. Assume we have a reasonably accurate 3D printer — one that can print things to 0.1 mm accuracy.
Suppose I print a fairly complex object on this 3D printer. Let’s say it’s a famous sculpture that can be described on my computer as a polygonal mesh of 10,000 vertices. That means I need to encode 10,000 points. A point needs three numbers, for its x, y, and z coordinates. Each number needs about 16 bits (for the geeky among you: since one unit is 0.1 mm, 16 bits suffices to give an accurate position up to a length of 6.5 meters).
So we’re talking 16×3 bits × 10,000 points, or about half a million bits.
If our 3D printer can build up a model by depositing melted plastic filament with 0.1 mm accuracy, then we can “wiggle” that filament from side to side as we lay it down, so that it represents a zero bit when it wiggles to the left and a one bit when it wiggles to the right. This wiggling will make the filament take up twice as much room, so we need to make space for 1,000,000 bits.
But at a resolution of 0.1 mm, 1,000,000 bits takes up only 10mm × 10mm × 10mm, or one cubic centimeter.
Which means we can fill our 3D printed model with copies of this one cubic centimeter solid texture, made by our wiggling process. Even a fairly small fragment of the printed model will contain multiple copies of this information. If the printed model is scratched, gauged, cut into pieces or even smashed, we will still be able to recover the 500,000 bits of information that represent the 10,000 vertices that describe the model’s surface.
We don’t need to continue this wiggling all the way to the surface. The model can have a thin shell of solid material, so that if you look at it from the outside you will see only a smooth surface, just like the original sculpture.
I’m going to try some experiments along these lines with my little home 3D printer. If I succeed, then I might just help 3D printing to truly enter the digital age.