Workflow for rapid prototyping of 3D reconstructed surfaces, applications to rock artWritten by Paul Bourke
The following describes one of many possible pipelines for rapid prototyping (RP) 3D reconstructed surfaces. While some comments will be made regarding the reconstruction process, that is covered in other places. The RP system will be based upon the on-line service offered by Shapeways, but the printable models created will be applicable to any RP facility capable of supporting colour. Note that as with any documentation of this type it can become out of date as time goes on, new releases of the software etc. This is especially so since some of the workflows described here result from bugs or other inadequacies in the various software tools available. The software used here and version numbers are as follows:
The overall summary of the process is as follows
There are a number of software candidates for 3D reconstruction, while this is not intended to be a comprehensive survey or evaluation of the options, two of the main players to date are AutoDesks 123D Catch and PhotoScan. While 123D Catch is free, it is cloud based and thus problematic when working in the field. PhotoScan is modestly priced and has good cross platform support, unlike 123D Catch which is MSWindows only. For the purposes of this document PhotoScan is used mainly because 123D Catch has some major problems with its OBJ export which is often faulty, that is, it generates degenerate mesh triangles and other problems that adversely affect the RP process.Model editing
Most RP machine software place some expectations on the models being printed, Shapeways is particularly sensitive, overly so in the authors opinion. For example, models must be "watertight", otherwise referred to as manifold. There is often a minimum thickness realisable, and so on. As such, some care needs to be taken when preparing models. There are three places, at least, where editing can be performed. They are:
Before and after screen shots are shown below.
As a general rule the result of a 3D reconstruction is of arbitrary scale. At the time of writing when one uploads to Shapeways one may choose units of millimeters, inches, or meters. mm are recommended, after all, who still uses "inches"! Note: one cannot scale after uploading, a particularly frustrating aspect of Shapeways. Scaling can obviously be done in almost any 3D package, MeshLab is chosen here, the procedure is normally to scale to a unit bounding box, found in the "normals, curvatures and orientation" menu, followed by scaling to the desired size. The author also generally first translates the centroid of the object to the origin, found in the same menu: "Transform: move, translate, center".
Any rapid prototyping of the sort relevant here requires a solid object, to date the process has been working on a single infinitely thin mesh. There are a number of algorithms for doing this, a popular one being called the "rolling ball" algorithm, one imagines a ball (sphere) rolling around on the surface and the most distant point of the sphere from the surface defines an offset surface. The approach taken here is to use the "solidify" modifier found in Blender. Import the OBJ file, select the mesh and choose the "Add modifier" option.
The thickness required for a particular RP machine varies. The most common colour printer at the time of writing is the ZCORP, known as the "full colour sandstone" on ShapeWays. The author finds that 5mm is a safe minimum, noting of course that one gets charged per volume of model so the thinnest is usually desirable.Export for upload
Not all formats traditionally used for RP support colour let alone a textured surface, for example STL cannot define a colour surface. Shapeways supports a number of file formats for colour models, namely DAE, WRL, X3D, X3DB, X3DV. Some of these are antiquated (eg: WRL) and others are proprietary (eg: DAE), the author has found X3D to be have the most reliable support.
Note: Shapeways (at the time of writing) does not seem to be able to handle the (perfectly ok) zip files created by Mac OSX. That is, by selecting a folder or files and right clicking and choosing "Compress". The solution is to use the command line options of the UNIX based version of zip, namely:
zip outputfilename.zip -xi file1 file2 file3 ...