Slic3r, one of the most popular slicing apps, is 10 years old. The very first public Github commit was made on September 1st, 2011 and this seemingly insignificant event transformed the world of 3D printing forever. At that time, it was a very simple, yet powerful piece of open-source software that allowed users to transform regular 3D objects into a G-Code; a set of machine instructions a 3D printer understands. Something the growing RepRap community truly desired back in that time. And without Alessandro Ranellucci’s Slic3r, our PrusaSlicer would be probably very, very different.
When worlds collide
10 years can be a long time, especially in a rather young industry like 3D printing – compare it to the automotive business reaching all the way to the 1860s and ‘70s. The cornerstone of 3D printers available to a common man was the introduction of the RepRap project (in 2005) lead by Adrian Bowyer, the father of open-source self-replicating machines. However, hardware is one thing. You also need the software. Something that translates three-dimensional objects into a set of instructions.
Enter Alessandro Ranellucci, architect and software developer based in Rome, Italy. Two seemingly opposite worlds gave birth to the software any 3D printer enthusiast probably at least saw, or, more likely, used at some point: Slic3r. What was the driving force behind the development? It’s eerily similar to many other stories in the RepRap field. Alessandro was looking for a cheap and convenient way to make physical models. Those were, in his case, architectural models. And RepRap caught his eye. Ten years ago, the situation with DIY and open-source printers was very different than it is today. Very little was user-friendly, pre-compiled, fully-featured, documented and ready to download. Alessandro wasn’t very satisfied with then-available slicing tools (like skeinforge written in Python), so he set out on a journey to make his own. Thus, on September 1st, 2011, Slic3r was “born” and its FAQ starts with a simple question “Yet another RepRap slicer?” followed by a laconic answer: “Yes.”
From humble beginnings…
The first 0.5.0 release had no 3D preview, only a very simple GUI. The configuration was spartan (to say the least) and in the default settings, the app expected you to use a 3mm filament – something very common at that time. However, it already had five infill patterns – rectilinear, line, Hilbert curve, Archimedean chords, and Octagram spiral. Alessandro later admitted that building a slicer for FFF machines is much more difficult than SLA slicers – you need to calculate paths, retractions, infills…
The very first release of Slic3r (0.5.0)
So, while the initial release was rather slim in terms of functionality, it quickly gained enough traction to draw in other people from the community. More than 20.000 people downloaded each release. Users began to share their ideas, bug reports, and general feedback, so Slic3r could rapidly expand with Alessandro remaining the single main developer. Less than a year after the original release, Slic3r 0.8.1 brought something that could be already called a print bed preview – however, it was only 2D. Jo Prusa liked the direction in which Slic3r was headed and started preparing printer profiles for Alessandro’s software – and he even met him in Prague. The result was this delightful interview shot in 2012 using a GoPro at Vyšehrad, a historic fort in Prague, Czech Republic, not far from the HQ of the then newly established Prusa Research.
Introducing Slic3r PE, PrusaControl and PrusaSlicer
Fast forward to November 1, 2016. A new fork, called Slic3r Prusa Edition 1.31.2, is released into the wild – the release is prepared by our new software developer Vojtěch Bubník. Just like the original Slic3r, even our “PE” was prepared by a one-man-army. And the reason why we forked the Slic3r project? The release log reads: “We at Prusa3D decided to push the Slic3r development forward at a higher pace, meaning that our Slic3r Prusa Edition now contains features, which are not yet implemented in the official Slic3r.”
As Prusa Research’s business picked up the pace, we needed to accelerate the development of Slic3r. The entire code was kept open-source, exactly as the initial commit changelog states: “…so the authors and maintainers of the official Slic3r are more than welcome to integrate our changes and extensions into the official Slic3r.”
Slic3r PE 1.31.2
We had dozens of ideas on how to push Slic3r further. However, first, Vojtěch had to chew through a lot of Perl code, because fully understanding it was key. As Jo told Alessandro in the interview: “You have a very good copy protection – you wrote it in Perl.” Also, Slic3r was programmed as a single-thread application, which meant it was rather slow. This is why one of the first tasks was to bring in support for parallel calculations. Vojtěch remained the sole Slic3r PE developer for two years, with the occasional help from other people in the company. Finally, in 2017, the team expanded to four people and later to the current eight programmers and two testers. While this has greatly expanded the possibilities of what can be done, it also means the release cycles are longer because the entire team has to synchronize their work – and with the growing complexity of the software, everything needs to be tested more thoroughly.
As Slic3r PE grew and continued to become more and more user-friendly, we felt like there’s a chance for a major leap. With version 2.0.0, Slic3r PE was completely rewritten in C++ and received a noticeable overhaul, which gave us the opportunity to rename it to a more practical PrusaSlicer – that was in May 2019. Now, five years since the original Slic3r PE release and 12852 commits later, the new build is a whole different beast. Which build? Glad you asked! On September 1st, 2021, we released an alpha version of PrusaSlicer 2.4.0 to celebrate the 10th anniversary of the original Slic3r. Time flies.
PrusaControl is now discontinued, but some features were merged into PrusaSlicer
We still do our best to make every new version more featured-packed and user-friendly (which means that, e.g., some actions are now automated compared to older versions). We’re improving the tools, settings, the GUI, we even added profiles for 3rd party 3D printers. We really want PrusaSlicer to be the slicer for everyone. Oh, by the way, do some of you still remember PrusaControl? The streamlined slicing app based on Slic3r? Ah, memories…
10 years ago today I pushed the first commit of #Slic3r. It was the beginning of a long journey for me, for an entire community of wonderful creative people and for #3Dprinting in general. Happy birthday Slic3r and long live #Opensource! pic.twitter.com/sw6xA026Wc
— Alessandro Ranellucci (@alranel) September 1, 2021
What a commit-ment! 🙂
The power of open data
The last stable release of Alessandro Ranelluci’s Slic3r is version 1.3.0 from May 2018. Even though there haven’t been any newer stable releases, Slic3r lives on (through “automated development builds”) even three years later. Slic3r is still being discussed, there are new pull requests and forks. It is a prime example of how deeply open-source concepts and 3D printing are intertwined. Communities, enthusiasts, cooperation and common goals are the main things that push this industry forward. If you jumped into 3D printing recently, just imagine how things were eight years ago when the ability to generate supports was something brand new. And you couldn’t even take a look at the object from all sides, because the print preview was only 2D. We’ve come a long way.
An old saying goes that sometimes if you need something, you often have no choice but to do it yourself. Alessandro’s work is a clear example of this. Despite maybe a bit rocky start, Slic3r quickly became a fan favorite slicing tool for many, many years.
So here are our deepest thanks to Alessandro. The 3D printing world would be a much different place without Slic3r. Grazie!