This week assignment: 3D Printing & Scanning.

1- For the 3d Printing part i wrote a script to generate triply periodic minimal surfaces thorugh a set of equations that describes those surfaces. I wrote an implementation of the Marching -cubes algorithm in Rhino 5 (Python) to generate the meshes for 3d printing.

The algorithm worked very well with a wide range of equations to describe many of this surfaces (Schoen, Schwarz, etc) or for example, metaballs. The performance Of the algorithm is very slow basically because i use the brute force algorithm for polygonizing the scalar field.

Finally i choose the Gyroid Surface for 3d printing. The gyroid is a surface that has no planes of symmetry and no embedded straight lines. I think is the perfect example of an object that can be produced only by 3d printing.

2- For the 3d scanning part i decided to play with a kinect sensor trying to implement again the marching cubes algorithm. I used processing with OpenNI libraries to get the point cloud. Then i imported the point cloud to rhino evaluating every point to reconstruct the surface.

I use of the examples provided by the openni Library for processing as a template to implement the marching cubes algorithm, but after a couple of failed attempts (kinect was freezing after 10 seconds), i decided to export only the points and use my marching cubes algorithm.

The algorithm worked really slow because of the parameters to achieve an acceptable resolution for the 3d model. I choose a 512x512x512 voxels

resolution. each reconstruction took about 3.5 minutes.

Possible improvements for 3d scanning:

- Improve the algorithm so it can run faster (maybe try marching tetrahedrons).

- Work in a processing or Openframeworks version that doesn't crash (move to windows because i found that OPENKINECT , OPENNI libraries and the kinect sensor has problems with mountain lion).

-For 3d Printing , try other machines (maker bot , zcorp, nylon 3d printer, to compare results).