I got a very sad email from Technopolis last week, to bring the message that they will shut down the FabLab service. This was my home on Saturdays and I really loved to come there and experiment with my ideas. This was there email:
We hebben ondertussen de werking en de activiteiten van het FabLab onder de loep genomen, en met pijn in ons hart hebben we weloverwogen besloten om de Fablab-service stop te zetten.
Onze excuses voor het ongemak en bedankt voor je begrip.
In the mean time, we have investigated the activities of the FabLab and we made the well considered decision to shut down the FabLab service.
Our apologies for the inconvenience and thank you for the understanding.
So in honor of this sad day, I made a 3D model of a broken heart. Luckily, you need a non-broken heart first to create a broken one, so I can reuse it for Valentines Day in two weeks. I ordered a blue polished polyamide 3d print on i.materialise. If I receive the part, I will create a post with pictures of the model. My heart 3d models can be downloaded on Thingiverse…
Last week, I tried out the examples in the Kinect Developer browser toolkit. It seems that there are a couple of other software tool options for 3D scanning. I tried out Skanect which worked very well, but it doesn’t allow you to save the models if you use the free version. 130$ is a bit steep for fooling around with a Kinect sensor.
Luckily, there is another tool available: ReconstructMe. It worked great out of the box and got a very decent 3D scan of myself. My girlfriend stepped in to help point the Kinect scanner, while I was slowly rotating on a rotating bar stool. The scan just missed a small part on top of my head and there was a hole under my chin. But nothing that could not be fixed with a little mesh editing.
After exporting the STL-file, I opened up 123D Make, which is a very nice program for automatically creating laser cut plans from 3D objects. You can load a 3D model, decide how large your object needs to be and enter your laser cut material properties. Then it offers different construction techniques that will create a different effect. I chose radial slices for 2mm MDF to create a model with a height of 20cm.
The FabLab was closed this Saturday, so I had to find something else to do. My brother and I went to the games shop (Game Mania), because he wanted to buy a PS4. In the shop window I saw a second hand Kinect sensor for 39 euros. So I decided to try out some weekend DIY 3D scanning.
When I came home, I tried to plug in the Kinect into my computers USB port. Too bad, a Kinect has a connector that looks like a USB port, but isn’t one. The connector provides an additional 12V to the Kinect next to the 5V USB default. There is a Kinect to USB adapter, but it costs more than the Kinect itself and that would mean no 3D scanning this weekend. I looked on the internet and found an instructable to transform the Kinect plug to a USB plug.
What you need:
A Kinect of an Xbox 360
A spare USB cable (will be destroyed)
A spare 12V, 1.5A adapte
To provide the additional 12V to the Kinect, you need a 12V adapter with at least 1.5A. If the amperage of your adapter is higher than 1.5A, that is no problem. The Kinect will only draw as much current as is necessary, but the voltage needs to be correct. I found an old Lacie drive adapter which provides both 5V at 2.0A and 12V at 2.5A. When cutting off the Lacie connector, I found a white and a red wire and the cable shielding which is the ground. I measured the voltage between the ground and the red and white wires to make sure which one would be the 12V wire. The red wire measured 13.92V, which should be ok for the voltage regulator in the Kinect. We will not be using the white wire, so I clipped off the copper and taped it.
The second thing we need is our spare USB cable. Find an old printer cable or a USB connector from an appliance you don’t use any more. I used the computer link cable of my TI-83 calculator. The advantage of the cable was that the USB plug was connected to a PCB with a connector and the cable shielding ended in an actual wire, which gave me 2 ground wires for an easier connection. A normal USB cable will have 4 wires (black, white, red, green) and the cable shielding. My wires had a small connector clip attached, but you will need to strip the wires when you use a normal USB cable.
Now we can destroy the Kinect connector to expose 5 wires (brown, black, white, red, green) and the cable meshing. Clip off the cable meshing and strip the colored wires.
Now we can connect the USB wires, Kinect wires and the adapter wires. Connect the red, white and green wires of the USB cable to the corresponding colors of the Kinect cable. Connect the ground of the adapter to the black wires of the Kinect and the USB connector. Finally connect the 12V wire of the adapter to the brown Kinect wire. Use a soldering iron to make a good connection and then use heat shrink or electrical tape to shield the naked copper. Below, I made a wiring diagram that gives an overview of the connections. Your cable might not have the extra black cable, but then you will see the cable shielding, which can be clipped off.
After connecting the cables and taping each individual cable, we need to make sure that you will not be able to pull on the connections. I solved this by connecting the cables with zip ties and taping everything with electrical shape. It doesn’t look pretty, but it works.
Before connecting the Kinect to your computer, we need to install the drivers and the Kinect SDK. I use Windows 7, so I downloaded and installed the 64bit version of the Microsoft Kinect SDK v1.8. Additionally, I installed the Developer Kit, which contains some code examples for 3D scanning and skeleton tracking.
Finally it is time to connect your Kinect. Plug in the USB connector and if everything works, the green light of the Kinect should be blinking. To really make sure everything is installed correctly, go to the Control Panel via the Start menu. Type device manager in the search bar in the right upper corner of the Control Panel window. Click on Device Manager and it will open the Device Manager window. In the list, you should find the Kinect for Windows entry and if you expand the item, you should find the Kinect for Windows Audio, Camera and Device in the list.
Now we can test the Kinect using the Developer Toolkit Browser. Press the Start button and type Developer Toolkit Browser. Start the Developer Toolkit Browser v1.8.0 (Kinect for Windows). A window with a lot of code samples will start. Some of them can be run without having to compile anything.
The coolest sample is the shape game. It detects the body of up to two persons and displays this as a stick figure. The stick figure will mimic your movements so you can try to destroy the shapes that are falling downwards.
What I really wanted to try out is the 3D scanning possibilities of the Kinect. Find the Kinect Fusion Explorer-WPF in the list and click the run button.
I made a video of the skeleton Shape Game and 3D scanning example that I tried out. I scan my head in 3D, fill the holes in Meshmixer and prepare the mesh for 3D printing in Cura.
In my previous post, I showed some renders of the game I designed. During the weekend, I went to the FabLab and cut the files on the laser cutter to evaluate my design choices and tolerances. The thing that I was most unsure of was the hinges and the closing mechanism.
For the first iteration of my design, I was very pleased with the results. The virtual 3D assembly in Rhino really helped me to catch the obvious mistakes that I made.
The hinges work very well and they do not even need glue for the assembly. I did however needed to cut away some of the back panel near the hinge to allow the lid to be opened completely.
The closing mechanism worked, but my tolerances were off. I designed the cutout in the lid 13.5mm and the protrusion on the sidepanel 15mm. A difference of 1.5mm is apparently too large, so the mechanism did not work until I made the cutout slightly larger with a sharp knife and now it works perfectly. I can even turn the box upside down without the lid opening. However, I doubt that this mechanism will keep on working after 100 opening and closing cycles, especially in the soft MDF that I used. I think actual triplex would make this much more durable.
I will adapt my design files and try to cut the box again for verification, probably next Saturday. In the meantime, watch the movie of the final results and the laser cutting.
My brother in law showed me a cool board game with a very strange name: Hneftafl. The game is an old Viking game and I really liked playing it. The rules are short and easy to explain, so it can even be played by kids. I designed my own version of the game for laser cutting and created a rules one-pager that explains how to play the game.
The graphics are based on old Viking symbols and I used a Celtic knot as the border of the game board. I found a very nice HTML5 Celtic knot generator that allowed me to get the right border thickness for my board.
The game is played with 3 types of pieces: a king with a team of 12 protectors and a team of 24 opponents. In the versions of the game that I found online, the two opposing teams are just two Viking tribes in different colors. I thought it would be nicer to have 24 knights take out the 12 Vikings and their king. So I designed simple but nice looking playing pieces. For the historians among you, I am aware that Viking helmets did not have horns, but I just find horned Vikings cooler.
The next thing I designed was a hinged box to hold the pieces and a lid that serves as the game board. When I was scavenging for hinges and box closing mechanisms, I found a website that had a very nice design. The hinge is something that I had seen on multiple other designs already, but the closing mechanism is very cool. It consists of a cutout in the lid and a stick-out part of the side that is slightly larger than the cutout in the lid. The stick-out part has vertical cutting lines, that make it somewhat flexible and allow it to be clamped into the cutout of the lid. For now I just guessed the tolerances for my design and I will evaluate my choices when I manage to laser cut it..
To make sure all my designs were correct, I exported the vector drawings to pdf, imported them in Rhinoceros and virtually assembled the box. I had to start over 3 times because I got some detail wrong on the hinge design, so the virtual assembly was very useful. Now that my designs were assembled in 3D, I made some beautiful renders with the pieces in the starting position. These are my nicest Rhino renders yet.
The designs were created for 3mm MDF. You can download the designs below or on Thingiverse:
First, assemble the main box using parts 1, 2, 3, 4 and 5. Slide the tree parts (12) into each other and fit them into the slots of part 1. Now we can assemble the drawer with parts 6, 7, 8, 9 and 10. Glue the handle parts (11) onto each other and fit them in the slot on the front panel of the drawer (8). Finally, the subdividers of the drawers can be assembled. Slide the parts a (13) into the parts b (14) and place the subdividers into the drawer.
The best presents are useful, beautiful and home made. My uncle creates beautiful beech chopping boards that are made from a single plank. The planks are treated in a pressure oven to make sure that they remain straight. When he showed me the chopping boards, I really wanted to engrave images on them.
These are the results of the cutting boards I engraved:
Today, I designed a laser cut model of a rhinoceros, inspired by the designs of Atelier Pierre. In this post I share my Inkscape design files, and I will also explain how you can alter my design for a different material thickness or a different model size.
Open the rhino_formodification.svg file in Inkscape. Select all shapes and enter your desired width/height of your rhino model. Make sure to have clicked the lock symbol to lock the proportions of width and height. In my example, I changed the height to 150mm, which corresponds to a length of 330mm.
To make sure that we can place the rectangles in the correct position after deciding the material thickness, we need to add some guide lines to our drawing. Enable the snapping functionality and make sure to snap to edges and midpoints of bounding boxes. Create two vertical guides through the center line of the rectangles. Then, create a horizontal guide where the two rectangles meet. Guides can be created by clicking inside the measurement grid on the edges of the drawing area and dragging towards the drawing area. Keep dragging until the line snaps to the desired snapping points.
Sizing the rectangles
From the menu, choose Object>Transform to open the transform panel on the right. Select the rectangles one by one and and enter the desired width in the scale field. The height is not very important, because it can be manually adapted after repositioning the rectangles.
Repositioning the rectangles
Drag the rectangles to their original position, with their center line on the vertical guide and the bottom or top on the horizontal guide. Use the snapping functionality to make the positioning easy.
Select the rhino legs and the top two rectangles and drag them downwards. If you hold shift during the dragging, it only moves in vertical or horizontal direction. At this point, make sure that the rectangles stick out completely of the geometry. This is necessary for the boolean difference operation that we are going to perform. Select one of the rectangles and the shape it needs to cut into. Then, select Path>Difference to cut out the rectangle from the shape. Do this for all rectangles to obtain the final shape. Download this file to see the final result.
You need Python! And, when it is not installed on your computer, this post is for you. The instructions are for Windows users, because mac users have Python pre-installed and Linux users can figure out how to install Python on their own.
Go to the Python website and download the latest Python version. Currently, there are two major Python versions. The old Python, which is version 2.7.xx and the new Python 3.xx.xx. A lot of external libraries did not yet get a compatibility update for Python 3, so I use Python 2.7. More information about the differences between the two Python versions can be found here.
Once you’ve downloaded the installer msi-file, run the file and choose to Install it for all users. In the Select Destination Directory window, you have the option to choose where to install Python. I prefer to install it in C:\Python27\. This is a clean path without any spaces, which will make life easy when we start coding. Continue the installation until it has finished.
Now you have Python installed on your computer, but the system does not know where to find the Python executable yet. You will need to add two paths to your system path variable. And of course, windows makes that so easy that it is just 25 clicks away. Therefore, I made a video tutorial, so you can easily follow my instructions.
Now we know that we can run Python, we want to create our first Python script. Create a new text file on your desktop and call it ‘MyFirstScript.py’. Edit the file and add the following code:
print 'Let us create a truly unique program...'
print 'Hello, world!'
output = raw_input('Was this satisfying? (Y/N)\n')
if output == 'Y':
elif output == 'N':
print 'Tough crowd...'
print 'Following instructions is not your strength...'
This small program prints a message, asks a user for input and then responds based on the user input. To run your program, we need to start the cmd where we created the Python file. I told you to do this on your desktop, so we will start a cmd there. The easiest way to start a cmd in a certain folder is to shift-right-click in that folder and then choose ‘Open command window here’.
In the cmd window, type python MyFirstScript.py and press enter. The program will ask you a question and you can answer with Y or N. Confirm your answer by pressing enter and the program will respond. You just created your first Python program!
Something that always amazes FabLab visitors, is flexible wood. By laser cutting special patterns in the wood, it is possible to make the wood flex without breaking. Aaron Porterfield has created an instructable with different patterns to create flexible wood. The flexibility of the wood is dependent on the thickness of the wood, the shape of the pattern and the size of the pattern. If you want to read more about the physics, click here.
Today, I made some flexible Christmas ornaments for the Christmas tree. We will need some general geometry and of course the flexibility patterns. I will cut the ornaments in 3mm MDF. If you want to create flexibility patterns for other materials or another material thickness, you will need to experiment with the pattern dimensions.
Here are some pictures of the final result, with proof of flexibility:
All of the source files can be downloaded by following the links below. You can also download them on my Thingiverse page.
A pattern consists of a base geometry that is repeated horizontally and vertically. We will create the base geometry in Inkscape and use the translate functionality to repeat it. I will explain this for the line pattern, but the same method can be applied to create any pattern.
The goal is to create this interlaced line pattern. The lines are 20mm wide, the horizontal distance between two lines is 3mm, the vertical distance between 2 lines is 2,5mm.
Drawing a horizontal line
Draw a horizontal line using the Draw Bezier Curve tool . By holding ctrl when drawing ensures that you can only draw horizontal, vertical or diagonal lines. When you have clicked twice to make a horizontal line, Inkscape allows you to keep on drawing. To end your line, press enter. You should end up with something like this:
Setting the line length
To set the line length, use the Select tool to select your line. If you are in transform modus, you should see transform arrows around your line (see picture below). In the top toolbar, you can then set the width of your line, by selecting the correct units (mm) and changing the number next to W to 20. The height of the line is dependent on the stroke of the line and at this point we don’t care about that.
To create the interlaced pattern, we will need to duplicate and translate the line to its interlaced position. Because the line length is 20mm and the horizontal inter-line distance is 3mm, we need a horizontal translation of 11,5mm and a vertical translation of 2,5mm.
Press ctrl-D to duplicate your line on top of the old line. In the Menu bar, choose Object>Transform to open the Transform panel in the right sidebar. Select your line and enter 11,5mm as horizontal and -2,5mmm as vertical translation.
This should be the result, two interlaced lines, ready for the pattern!
Creating the pattern
First we will repeat the pattern horizontally. Select the two lines and set the horizontal distance to 23mm. Press ctrl-d to duplicate the two lines, then apply the transformation. Repeat this multiple times to get the desired width of the pattern.
The result will look like this:
Now we need to repeat the pattern vertically. Select all the lines and set the vertical distance to -2,5mm. Press ctrl-d to duplicate the two lines, then apply the transformation. Repeat this multiple times to get the desired height of the pattern.