3D Printing


WS 2018






Note: This page is for a course from a previous semester.
Find a list of current courses on the Teaching page.

In this practical course, students will implement various stages of the geometry processing pipeline, required to get from a 3D model to a printed object.

For the software components we will build on top of the geometry processing and rendering project OpenFlipper. Inside OpenFiller we will implement all required steps like mesh cleanup and toolpath generation for the 3D-Print manufacturing process. The generated algorithms can then be tested on three Ultimaker 2 printers which are available for the practical.

3D Print Pipeline

The manufacturing process for 3D printing consists of several steps that prepare the model for printing and then translate slices into movements for the printhead.

Model Preparation

Fitting the model into the print space and translating it onto the build plate is the most obvious task before printing. The rotation of the object is an important factor on the print time, material consumption and the surface quality. Meshes with thin geometry that is below the printer resolution need to be automatically fixed to yield a correct printing result.


The process of slicing cuts the 3D object into a set of 2D slices. Each slice can then be converted into movements for the print-head, called GCode. An optimal GCode converts the parametric slices into thick walls and leads the print-head in an efficient pattern through the print.


Printing solid models is often a waste of material and time, thus most printed objects are hollow. However, to maintain a certain structural integrity, objects are not printed completely hollow, but are filled using a pattern. The inserted pattern can range from a simple grid to a hexagon-pattern or even a more complex infill structure.

Support Structure

Most 3D-Printer struggle with object parts that are steeper than a certain angle. In these cases, the resulting print has uneven surfaces and lacking quality at these areas. Using a support structure, such that the printer is not printing overhangs into thin air but onto a supporting structure can improve the result. However, support structures also damage the surface they support and leave marks when removed. A good balance between stability and impact on the print quality and time has to be found

Software Engineering

The course will teach the participants how to develop a complex project using software engineering techniques. Based on the 3D-Printing pipeline, tasks will be given out to address each of the previously mentioned steps in the pipeline. Each step starts with implementing a basic version of the algorithm followed by a more in-depth look at each problem. Envisioned algorithms and techniques can be tested on one of the three Ultimaker 2 printers.


  • Students have to know C/C++ programming.
  • We strongly recommend the Geometry Processing lecture


Course Schedule
Date Title Content Material
Kickoff Meeting Topic assignment
Disclaimer Home Visual Computing institute RWTH Aachen University