3D printing


curve extrusion

not machinable ?


first test

second test

3D scanning





Buddha reconstruction


structured light



possible improvements


3D Scanning and Printing


This week assignement is

3D printing

This assignement is an opportunity for me to make a wind turbine prototype that's in my head for many years:
a combined windturbine darrieus / savonius. Vertical wind trubines Darrieus have many advantages:

but they have one big drawback: they do not start all alone.
hence the idea to combine this type of wind turbine with a savonius that it has a poor performance but starts very easily at the slightest breath of wind.


I chose using OpenSCAD because I like this software and I know it well.

Curve extrusion

The challenge was to make the exterior blades, which combine extrusion rotation (standard feature in OpenSCAD) and an ofset change depending on the altitude.
After explorating, I finally succeeded by using the "hull" function.

Module coil () {
for (i = [0: zstep: _height])
hull () {
pallet (i);
pallet (i-zstep);

finally, the whole machine is made.

the scad file can be parametrisable.
For printing, I export a STL file

not machinable ?

This model is not achievable by traditional manufacturing methods, because areas are inaccessible for tools:

in this section at mid-height of the machine, we see savonius blades (center) that are inaccessible for cnc subtraction


For generate GCODE, I use Slic3r wich is actually the standard generator for repraps
I tried to print without support, but with a wide brim to secure the piece to the plate, so that the cantilever does not cause it to tilt:

print Settings> Skirt and Brim> = 10mm Brim

first test

For the cantilever, this test is conclusive: thanks to active cooling fans, our asimov printer have no trouble printing large overhang

But I forgot to adjust enought thikness for the savonius blades, so the part broke quickly.

second test

So I improve the thickness of the savonius blades .
The wind turbine is strong enough now.

I clean the smalls filament with a dremel equiped with a plastic brush.

3D scanning

For this second par of the week's assignement, I explore several 3D scanning techniques


Meshlab is not a scanner software but it's a mesh editor, very usefull for filtering and reconstruct mesh from points clouds.

in my version of meshlab (in packs of ubuntu 12.04) meslab can not open files. ply ascii 1.0,
due to a problem of localization (language) : bug

the solution is to open with the option:
$ LC_ALL = C meshlab

Here a short tutorial for the basics of mesh reconstruction


This technique derived from aerial photography allows us to deduce a 3D shape of several 2D views of an object taken from different angles.

it can be accurate and is quite practical in that it uses a single camera as a sensor.
it is thus adaptable to different scales of objects. By cons it is difficult to implement because the mathematical calculations are complicated.

A commercial version of this technique is available online recently with autodesk 123Dcatch, gratis bud not functional under linux (!) .
But there are free solutions...


this library is simple ...
I compile and play with the examples, but I did not understand how to use it from my photographies...


MicMac is a sofware developped by IGN (French National Geographic institute)
It looks very efficient.
I found some ressources about it in french and english.

Additionaly, I found a graphical interface that I don't succed to use.

This software is a bit complicated, I only succed to made example work :

Buddha reconstruction

This is the sample project provided with the software:

This is one of the 30 images of th sources data.

the cloud of points in meshlab : wee can see that this sofware is very efficient.
This allowed me to test the reconstruction meshlab with the filter "Surface reconstruction poisson" .

The result is quite beautyfull. some strange artefacts appears, I think because I don't set well the poisson reconstruction params.
But for using my photos as sources, I have to learn better the process...


I try visualFSM that seems to be simple.
But I fail to made it work.
even with a tutorial...

experience with structured light

This technique offers several advantages:

I had discovered this technique by visiting the P Prime institute in Poitiers (france),
in which is used to measure the deformation of materials.

I downloaded and explored the Neil's program , to see how far I could go.
As I was at home without the tools to take a captures, I started focusing on the treatment of capture files for producing an stl file.

treatment process

Accustomed to processed images, I found it simple to handle most of the data in this form, before processing in stl.
The starter files are "diffs.png" and blended recomposed picture of empty zone scan.

Treatments were made in gimp, but some could be automated, especially with the opencv library (already used in Neil's program ).
For the transformation from png to stl, I used the program png_stl
the last step (visible in the picture) was to apply a "smooth" modifier in blender.
The result is not so bad, even if the smoothness of the surface is still lacking.


Back in the lab, I installed a device for experimental shooting :
- a video projector
- HD webcam (logitech HD1080)

after a few adjustments, particulary manual adjustment of the camera via guvcview, I got the following images:
./coord teapot/teapot.png 0 /dev/video2

the empty background :
./coord teapot/empty.png 0 /dev/video2

I mixed these images : subtraction then addition of teapot to "lighten only", then re-background subtraction:

And finally, some manual cleanings:

At the end, the file is converted in STL :
. / Png_stl teapot / teapot teapot.clean.png / 5 teapot.stl

in meshlab :
Filters > Smooth... > Laplacian smooth =10
Filters > Remeshing, simplification and construction > Quadratic Edge Collapse Detection
with parameters :
reduction : 0.3
quality : 0.7
optimal position of simplified vertices = on
post-simplification cleaning

possible improvements

the STL file result is encouraging.
But we can improve the shooting:

full black (of ambiant light) during shooting will give better pictures

To avoid parallax, it's possible to use a prism to refract image for camera in the projector's axe,
, use a same focal for projector and camera and have a larger resolution for camera than projector.

To reduce noise, multisampling (horizontal top>bottom, horizontal bottom>top , vertical left>right and right>lef) can clean informations.

using Kinect

The kinect sensor is adapted to scan forms a human scale.
I used OpenKinect (freenect) with utility "fakenect record", which produces raw capture as png image.
The raw scans are very noisy and with holes related to the infrared projection shadow areas.

To improve rendering, I stacked scans "darken only" in gimp.
after a few manual adjustments I got a file can almost clean

after transformation with Neil's stl utility (png_stl) I got a usable 3D file

In blender, I added here also a "smooth" filter and "solidify" to export a printable stl file.
(It is true that it will have been better if I had been to the hairdresser)
My ego is not developed enough for me to print my effigy, but I validated that this file is printable :