Given that regardless of what we do, using Marching Cubes on slice data means we cannot compute the exact intersection of the surface with the vertical edges of our cubes, in order to get realistic looking images, we must do a little smoothing. On approach to doing this is described in Taubin's paper[4] on smoothing without shrinkage. In the paper a method of smoothing called "Gaussian smoothing" is described. In order to perform a Gaussian smoothing operation on triangle mesh, you take each vertex in the mesh and find the average difference between that point and all the vertices of the triangles which include that point. You then adjust the vertex by some scaling factor of this distance (say .33). The problem with this method, is that given a closed object, this will always result in shrinkage. Take a circle approximated by line segments as a 2D example:

As you can see, once the smoothing operation is performed on all vertices, the circle will have shrunk:

(the green line represents the new location of the circle).

To counteract this effect, Taubin's paper suggests performing a second iteration of Gaussian smoothing, this time using a negative scaling factor slightly larger in magnitude than the one used on the first iteration (say -0.34 if on the first pass you used 0.33). This has the effect of pushing the shape back out again. Visualizing this is left as an exercise to the reader. In 3D, the result is a much smoother image. Whereas before we had this:

We now have this (after 90 cycles of non-shrinking smoothing):

Notice that not only is the foot much more smooth, but details such as toenails are appearing. This is because not only does smoothing make the image more smooth, in the horizontal direction, it makes the surface approximation more accurate. This is due to the fact that horizontally the shape more closely matches the original now that the stair-stepping/plateau effect has been eliminated and much of the overdrawn/underdrawn area has been eliminated.

Now on to decimation.