Estimated reading time: 10 minutes

It has been full 3 years since we started our in-house development of Slic3r, later adding Prusa Edition (PE) to make less confusion with the naming. However, the programs are radically different now, plus, the community keeps using the Slic3r and Slic3r PE interchangeably, creating a lot of confusion, making this an ideal time for renaming the application. Tom Sanladerer using the horrible Slick-three-arrgh pronunciation had nothing to do with it, I promise! 🙂

As of right now, the PrusaSlicer in-house team has 7 people with Vojtech in the lead. Their first big achievement was getting rid of the Perl to speed up the development and build process. Thanks to this, you can already see more forks of the PE Slic3r version. In total, we spent roughly 21,440 man hours on the program, made 5769 commits and 61 releases!

So, this is the start of the new chapter of slicer development in Prusa Research! One of the first things we are bringing in PrusaSlicer 2.0.0 is a completely revamped UI and MSLA slicing, but that’s not all. Dig into the article to find out more details. 😉 But if you can’t wait, you can try the new PrusaSlicer right now – download it in the new Drivers & Apps package. You can also use this direct link to the file or download from Github.

UPDATE: Since the update caused some confusion around transferring profiles, we would like to assure you that PrusaSlicer DOES NOT delete Slic3r PE profiles.

Transferring print profiles/presets

Do you have your customized profiles? Don’t worry about losing them. Profiles can be exported from the old Slic3r PE and imported into PrusaSlicer again.

It’s recommended to export Config bundle from Slic3r PE before you install PrusaSlicer. Open Slic3r PE and select File -> Export Config Bundle… and save the INI file.

Install new Drivers & Apps package (you can also use this direct link to the file) which include new PrusaSlicer. Open PrusaSlicer and select File -> Import -> Import Config Bundle…, select the INI file and your profiles are successfully imported.

If you don’t have Slic3r PE anymore, you can still find the profiles in [Drive]:\Users\[PROFILE_NAME]\AppData\Roaming\Slic3rPE or Slic3rPE-alpha or Slic3rPE-beta (depends on the previous version). There are three sub-folders: filament, print, printer. Copy the contents into matching folders in [Drive]:\Users\[PROFILE_NAME]\AppData\Roaming\PrusaSlicer and restart PrusaSlicer. Your profiles should be available now. On MacOS the path is: [DISK]⁩ ▸ ⁨Users⁩ ▸ [USERNAME]⁩ ▸ ⁨Library⁩ ▸ ⁨Application Support⁩ ▸ ⁨PrusaSlicer.

Table of contents

There are so many new and exciting features, so brace yourselves, this is going to be long!

Name change from Slic3r PE

This update is so huge we thought it’s the perfect time to rename Slic3r PE to PrusaSlicer.

Why?

First of all, the old name was really confusing. Even in our own materials, we often didn’t include the “PE” suffix and the community used Slic3r and Slic3r PE pretty much interchangeably. New users could mistakingly download Slic3r and wonder why it looks different from the screenshots in the 3D Printing Handbook and why it’s not configured for their Prusa printer. Speaking about the original Slic3r: with each update, Slic3r PE was moving further and further away from its original code. We’ve rewritten all of the Perl source code into C++ (more on that later). And especially with this update, there are so many differences that it seemed appropriate to make the name more distinct. Don’t worry, it’s open-source and you’ll find everything on our GitHub. And we’re still proud that our slicer is based on the original project written by Alessandro Ranellucci! We’ll keep merging cool features from upstream Slic3r when possible.

By the way, if you had to read some of the lines in this paragraph twice, then you understand why we thought it would be wise to change the name 🙂

User interface improvements

Slic3r was always known to be powerful and versatile, but some features were difficult to use, if not outright hidden behind obscure menus and dialogs. Our goal with the reworked UI was to expose all the power features while making the UI clear and simple to use at the same time – no easy feat!

Simple / Advanced / Expert modes

To lower the learning curve for beginners, we introduce the Simple mode. Here, the user interface resembles the UI of Prusa Control (which is now obsolete, by the way). Complex features like the modifier meshes are hidden, and only a basic subset of parameters is shown to the user.

In the “Advanced” mode more parameters are shown, and in the “Expert” mode all the power features of Slic3r are accessible. To make the learning of parameters easier, we color coded them

Green – safe to be tinkered with by a beginner

Yellow – advanced user may want to modify these parameters

Red – expert settings most of which should only be touched if you’re making a profile for a new printer

New toolbars, icons, and shortcuts

Both the top and left toolbars have been re-worked. We’ve re-drawn all of the icons and implemented support for vector icons. So moving forward, all icons will be in vector format with pretty much infinite resolution. All of the tools in the toolbar (and some more) also got handy shortcuts. You can display them in the Help – Keyboard shortcuts window and of course, we have a shortcut for that 🙂 (Shift+?)

Old top toolbar (Slic3r PE 1.41.2)

New toolbars (PrusaSlicer)

Everything directly in 3D view

Remember how double-clicking on a model opened up a new window with a 3D preview, where you could add modifier meshes, cut the model in half or change specific settings? Well, all of this can now be done directly in the 3D view!

Also, PrusaSlicer now displays print bed models with textures!

Move, rotate and scale gizmos + object manipulation sidebar

We added new object manipulation gizmos for translation, rotation and scaling along all three axes, anisotropic scaling is supported as well. Rotation gizmos snap to the inner ticks spaced at 45 degrees and to the outer ticks spaced at 5 degrees.

When holding the Shift key, the translation changes with 1mm steps, while scaling changes with 5° steps.

Multiple objects may now be selected by holding down the Shift key, and they can all be manipulated as a group. All objects can now be selected with CTRL+A. Holding Alt and dragging the mouse will deselect objects within a drawn rectangle.

You can choose to view the object manipulation values in either World of Local coordinate system.

Object list, scene hierarchy, and instances

The object list in the right sidebar now displays a hierarchy of objects, their instances, object’s parameters, object’s volumes, and modifier meshes. This way, you can quickly get a clear idea of the project structure and what settings were changed for specific models. The object list is only visible in the Advanced and Expert mode.

An exclamation mark is shown in the object list next to a model containing errors (gaps, cracks, intersecting triangles). Clicking on the exclamation mark icon sends the object to the Netfabb service for repair (works on Windows 10 only).

A model instance can now be set as a separate object through the right-click context menu or by simply drag-and-dropping it away from the parent object in the object list panel. Breaking the link between the parent and instance object lets you, for example, change the scale of the copy.

New instances can now also be created by simple copy & paste (CTRL+C, CTRL+V)

Custom supports

Slic3r has always been rather generous with supports – and for a good reason. It allows even complete beginners to print pretty complex geometry right out of the box. If you use the auto-generated supports, your model will be certainly printable. But with some models, the algorithm may place them in hard to reach places, resulting in tedious removal of support structures from hard-to-reach spaces.

The model context menu (right-click on a model) now lets you create support blockers and enforcers. Support blockers are useful when you’re generally happy with the automatic supports and you simply want to exclude some areas which either don’t need supports or might create really hard to remove supports.

Support enforcers work the opposite way. Turn automatic supports off and select specific parts of your model which will need supports.

MSLA slicing

With the release of our Original Prusa SL1 resin 3D printer, we’ve added masked SLA (MSLA) mode into PrusaSlicer. As far as we know, PrusaSlicer is the first high-quality open-source MSLA slicer available. While it may seem that SLA and FFF slicers are very similar, in reality, the two technologies share just one thing – they work slice by slice. This would honestly deserve its own article, but let’s try to keep things short. To make MSLA slicing work we implemented the following:

Automatic pad and tree support generation

Manual editing mode for tree supports

SLA print, material and printer settings

Rasterizing layers into PNG images using the Anti-Grain Geometry library

3D anti-aliasing

Layer preview (including camera/object clipping)

Zipping and sending the archive over the network to the printer

Firmware uploader

Accurate print time estimation for the SL1 printer

Exporting STL file with embedded supports

Color change directly in PrusaSlicer

Prusa Control’s “Color Print” feature has been integrated into PrusaSlicer. You may now insert the M600 “pause for filament change” code at layers which you marked with the layer selection slider in the print preview screen. A preview is displayed instantly so you’ll see exactly how your model will look with color-change. I can’t believe how many times I’ve accidentally set the color change one layer off, so this fast preview is a really handy feature.

Perl source code was rewritten to C++

Slic3r was initially written in a scripting language Perl. Perl is powerful and it certainly sped up the initial Slic3r development. However, these days Perl is being replaced by Python or Ruby and it’s increasingly difficult to find contributors. Debugging Perl / C++ combination is difficult, and there is no Perl binding for the current wxWidgets UI library that Slic3r uses. We had to pay the technical debt and ditch Perl to move forward, which meant to rewrite quite a lot of user interface code from Perl to C++ in one shot. To make the transition faster, we dropped some of Slic3r’s features:

Printing over a serial line (USB)

2D toolpath preview (but you can still orient the camera to look from the top, Shortcut is the “1” key)

These features may be re-implemented in the future.

Project file

File – Save Project now saves a 3MF file containing all objects, settings, modifiers and their parameters. It’s essentially a complete snapshot of PrusaSlicer. When you open a project file on a different computer, it should still produce the same G-code. We chose 3MF over AMF, because it’s a modern format supported by Microsoft 3D Builder and Cura, but we still support AMF import. And yes, this feature was already present since Slic3r PE 1.40, but it was buried in the export menu as “Export plater as 3MF/AMF”.

Other new or improved features in no particular order

HiDPI support – Correct scaling on high-resolution displays

Time & material use estimate is now calculated before export

Background processing – redesigned to work reliably, only those slicing steps that were invalidated by the user action will be re-sliced

Multi-material improvements – easier assigning of colors and more

Split top/bottom infill pattern setting – thanks to @supermerill

Octoprint upload queue – sending to Octoprint would previously block the user interface

“Slice now” and “Export” buttons merged into a single button

Shortcut buttons added to the right of profile selection boxes (similar to upstream Slic3r, thanks to @alexrj)

(similar to upstream Slic3r, thanks to @alexrj) Command line processing – upstream code by @alexrj and @lordofhyphens

Support for OctoPrint Cancelobject plugin – thanks to @supermerill

Anisotropic scaling – hold CTRL and drag one points of the scaling gizmo (not corners) to adjust the scale of the model in one axis

PrusaControl is now discontinued

Due to the sheer number of changes, both in UI and the code itself, PrusaSlicer is perfect for both beginners and advanced users. As a result, PrusaControl (which hasn’t been updated for months) is now obsolete. If you got used to its user interface, we believe the transition from PrusaControl to PrusaSlicer will be quick and smooth. Plus, you will be able to enjoy regular updates of the application and slicing profiles.

What’s next?

Undo / Redo is on the top of our to-do list. However, it’s not easy to implement it efficiently and we’ll take our time to do it right. Hollowing for (M)SLA is a great way to reduce resin use and we hope to implement it soon. And we want to get back to the basics too and optimize the FFF slicer kernel for print time and print quality.

We’ve also set PrusaSlicer as the default application for opening .3MF files in Windows, to make opening these files a bit easier and faster.

So as you can see, our work on our slicer is ongoing and we keep adding new tweaks, fixes or features every day. Slic3r PE has always been a powerful tool, and our aim is to take all these advanced features and make them available and accessible to a wider audience. I hope you like the new design and new things under the hood. So feel free to go ahead and explore the new PrusaSlicer – and don’t forget to share your comments and ideas so we can make it even better!

But enough talk – download the new PrusaSlicer 2.0.0 in the Drivers & Apps package (You can also use this direct link to the file or download from Github.) and let us know how you like it!