Skip to content
Alessandro Ranellucci edited this page Feb 8, 2017 · 4 revisions

Conditional G-code and arithmetic expressions parser

Language: C++ Difficulty: Easy-Medium

Implement a parser for conditional and arithmetic expressions within custom G-code. #3390


Port the GUI to C++

Language: C++ Difficulty: Easy

The GUI is coded in Perl using wxWidgets. The wxWidgets API is almost identical between Perl and C++. There are a couple things where we use the dynamic features of Perl which are trickier and interesting to port in C++.


Implement a better nesting algorithm

Language: C++ Difficulty: Easy

This can be done by porting SVGNest to C++. #3237


Fix bugs of the Boost.Voronoi library

Language: C++ Difficulty: Medium

The good but unmaintained Boost.Voronoi library has a couple minor issues affecting Slic3r's results. Interesting task for learning the Voronoi algorithm and how to troubleshoot a computational geometry issue. #2948


Wireframe printing

Language: C++ Difficulty: Medium

Implement the wireframe printing algorithm. #2274


Automatic part rotation

Language: C++ Difficulty: Medium

Automatically rotate a part to make some face of the part the bottom. #3047


Manual support creation

Language: C++/Perl/OpenGL Difficulty: Medium/Hard

Allow users to place and move support pillars by clicking in the 3D GUI. #3062


Refactor the TriangleMesh class and support non-solid walls

Language: C++ Difficulty: Medium/Hard

Replace the internal mesh representation (currently based on admesh) using an existing 3D mesh library or implementing a half-edge structure; only use admesh for fixing models. Keep non-solid walls and slice them as single paths. Bonus: import SVG paths and position them freely using the GUI for printing as single extrusions. #3560 #3523


Implement 3MF format read/write

Language: C++ Difficulty: Easy

Add the 3MF format for both reading and writing. #2811


Non-planar printing

Language: C++ Difficulty: Medium

Implement techniques for non-planar printing. #3442


Support surface colors and mixing extruders

Language: C++/Perl Difficulty: Hard

Read surface colors from AMF or OBJ and keep them throughout the slicing process in order to generate G-code for mixing extruders. #3546


Clean the libslic3r API and write bindings for it

Language: C++ + any Difficulty: Easy

Expose the internal algorithms of Slic3r as a library and write bindings for Python, Perl etc.


Write a Slic3r plugin for Grasshopper

Language: C++ Difficulty: Medium/Hard

Expose Slic3r functionality as many separate components that can be plugged in larger GH definitions (for example: slice a NURBS model in GH and feed the slices to the toolpath generation process in order to skip mesh generation, or provide flow calculation for people driving 5-axis robots with custom motion). This requires a fair amount of design work.