Skip to content

Releases: prusa3d/PrusaSlicer

PrusaSlicer 3.0.0-alpha11

Pre-release

Choose a tag to compare

@lukasmatena lukasmatena released this 01 Sep 13:30

PrusaSlicer

Summary

This is the first public alpha release of PrusaSlicer 3.0.0. This release comes with completely redesigned internal architecture, new UI, new print profile system, full support of multiple beds and multiple projects and other improvements and bugfixes.

To let you enjoy the alpha without worries, the alpha builds save their profiles into the PrusaSlicer3-dev directory, so you may use the alpha side by side with the current release without ruining your production configuration. The configuration folder is different from what PrusaSlicer 2.x is using, meaning that PrusaSlicer 2.x and 3.x can run alongside each other without any conflicts.

Important note for Linux users: We are now using Flathub as the only official distribution channel of PrusaSlicer on Linux. This alpha version is available in flathub-beta repository.

A detailed change log follows. You can also read the respective article on our blog for a more concise version.

Before we start

While PrusaSlicer alpha builds are generally well polished and almost production ready, it is NOT the case this time. The amount of changes and the need for early feedback has forced us to release an actual alpha, which is expected to be unstable and not polished. What you are seeing is not a production build, this is an unfinished alpha which aims to present the general direction we are taking.

It is also worth noting that the alpha build is not feature complete (when compared to 2.9.6). We are still working on porting various things from PrusaSlicer 2.x and sadly, some of them have to wait for later releases to be fully ready. While we understand that this is a nuisance, a large part of the application was rewritten from scratch and reimplementing everything takes time and effort - PrusaSlicer has surprisingly many features.

You can find the list of unfinished features at the end of this change log.

Congratulations, PrusaSlicer!

Let us now congratulate PrusaSlicer - it is its birthday. Exactly 15 years have passed since Alessandro Ranellucci (@alranel) authored the first commit of this repository. To quote from the README which was a part of that commit:

Slic3r is (er, will be) an STL-to-GCODE translator for RepRap 3D printers, like Enrique's Skeinforge or RevK's E3D.

Notice the future tense. Given what Slic3r was capable of at the time, it was a bold statement. But it turned out that Alessandro was exactly right. What he and other contributors created has later become the core of one of the most widely used family of slicing applications. Let us wish PrusaSlicer all the best for the upcoming years and appreciate the time and effort that people thanklessly sacrificed to make it possible.

Internal architecture refactoring

We can continue with the history lesson. The project originally started in Perl and was later rewritten into C++ in several steps. This alone led to architectural compromises. In addition, the application originally did not support multiextruder printers, SLA printers, wipe tower, multiple beds, filament overrides and other cool features. As PrusaSlicer outgrew the original scope, many of these features were later added (as well as many others), and the project gradually became quite large. However, the architecture of the application was not ready for these big changes. Especially in the last couple of years, it was apparent that implementing anything is becoming more and more difficult because of various hacks which have piled up over time. PrusaSlicer showed classic signs of architectural decay, and it slowed the development down significantly. When we got to a phase where we would decide to rather not fix an obvious bug with the reasoning that the bug is better than what the fix would likely cause, we understood that it got way too far.

Therefore, we have decided to take the long postponed big leap and refactor the internals around current requirements. The amount of technical debt was so large that we made a hard decision to rewrite most of the UI code from scratch (despite knowing that developers usually regret it in the end). The new architecture is designed with carefully defined responsibilities, interfaces and data flow, it is better covered by tests, etc. The architecture of the slicing backend was kept (although substantial changes in the backend code were done as well). We have also improved our internal processes as we went. We are hoping that all this will untie our hands again and allow us to speedily deliver more new features.

As much as we understand that users don't have a reason to care about internals of the software, this is the most important change and it is what made the following improvements possible (and also others which are coming soon).

Multiple beds with different configs

We have introduced multiple beds feature in PrusaSlicer 2.9.0, although the implementation was purposefully minimal - especially regarding 3MF projects. We knew at the time that we were going to do a bigger update, so we decided to not save the bed data into 3MFs, and instead to infer the beds from positions of the objects. This was done so we wouldn't have to break forward compatibility of our projects twice, but only once.

Because the new internals are built around the idea of multiple beds, it is now possible to have multiple beds with different configurations in one project. It is even possible to mix different printers in one project (#13619, #13729, #13858, #13877). We have also removed the limit of 9 beds per project, which was applied in PrusaSlicer 2.9.x for technical reasons (#13866, #14381).

multiple-beds

Multiple projects

Thanks to the big overhaul we did, it is now possible to open multiple different projects in one PrusaSlicer instance (#3882, #11007, #12690). The individual projects can be switched using tabs in the top toolbar. The projects share very little context - open dialogs, active tools, etc. are kept per project.

Redesigned UI

While UI changes are always a controversial topic, we have decided that it is time to do a complete overhaul. The UI of PrusaSlicer 2.x was generally a bit intimidating for new users, and many features were hidden. The new UI strives to be more user friendly, but still provide easy access even to the more advanced features - although not everything that we have planned is finished as of this first public alpha.

Let’s take a quick tour!

First of all, there is a new sidebar at the very left, where you can switch between Slicing, Connect and Printables (#13927). The panel also allows access to application Preferences and houses the PrusaAccount login button. (The online features are not mandatory and if you are only interested in slicing, you can opt out from all of them - more on that later.)

Let's further look into the UI on the 'Slicing' tab, which is where most of the work typically happens. We have decided to stop misusing the object list for various things such as object-specific settings, layer range settings, etc. Instead, you now see the object list on the left-hand side, and it serves as an overview of what your project contains, which beds are sliced and similar. The panel grows so it does not obscure more of the scene than necessary, and it is also collapsible when the user does not want to see it at all.

painting-rendering-downscaled

The right panel contains controls related to the currently selected item. When a bed is selected, it allows you to change profiles and settings. When an object is selected, object-specific settings are shown instead. When a tool like Variable Layer Height or Paint-on supports is opened, the right panel is the place where its controls are (PrusaSlicer 2.x used in-scene dialogs, which were a bit intrusive).

The right panel still allows the user to tweak some of the most frequently used configuration options, but unlike in PrusaSlicer 2.x, the list is now configurable. You can add any config option into “favorites” (by checking a star icon in settings) which makes it appear in the right panel. This was long requested by the community (e.g. #1267, #8320, #11105, #12690) and we believe that many non-power users will now have no reason to open the “big” settings at all.

PrusaSlicer_R9aS59fg5y

There are many smaller improvements: For example, it is now possible to filter profiles based on filament type or even using fuzzy search (#9303, #11494, #14264). We have modernized 3D rendering to use a PBR-like material render pipeline with ambient occlusion and cast shadows (this is configurable in Preferences and it can be turned off when graphics resources are limited, or if someone simply does not like it). We have also added a "View cube" control to rotate the camera (#4410, #13096), which you can find it in the bottom-left corner (the reason were hesitant about adding it sooner was our fear of possible copyright infringement - we did it now after receiving an explicit approve from the copyright holder).

Both Light and Dark UI modes are supported. Unlike PrusaSlicer 2.x, the styling is now applied even to in-scene dialogs (which had a common look before) and it is generally much more consistent across all three supported platforms. The mode can be switched manually in the Preferences dialog (automatic detection fr...

Read more

PrusaSlicer 2.9.6

Choose a tag to compare

@lukasmatena lukasmatena released this 25 Jun 20:52

PrusaSlicer

This is final release of PrusaSlicer 2.9.6, introducing ColorMix feature. Please, read change logs of 2.9.6-beta1 and 2.9.6-rc1 for more detailed description of the new features with respect to 2.9.5.

Changes with respect to 2.9.6-rc1.

  • Toolpath moves between FLUSH_START and FLUSH_END tags are now not shown in the G-code preview.
  • Fan speed was incorrectly being restored to the value belonging to wrong filament when toolchange command was prepended by whitespace.

Please note that profiles for INDX printer are not bundled with the application, they will be released through an online update (Configuration -> Configuration Wizard).

PrusaSlicer 2.9.6-rc1

PrusaSlicer 2.9.6-rc1 Pre-release
Pre-release

Choose a tag to compare

@lukasmatena lukasmatena released this 17 Jun 14:48

PrusaSlicer

Summary

This is the first release candidate of PrusaSlicer 2.9.6. Read the change log of 2.9.6-beta1 to see complete list of changes compared to 2.9.5.

The release candidate saves its profiles into the regular PrusaSlicer configuration directory. When you first run it, it will search for all configurations produced by alpha or beta versions and offer to create a copy of the latest one.

Improvements with respect to 2.9.6-beta1

  • Use area-dominant extruder instead of the default one when applying "Maximum width of a segmented region".
    Incorporate filament_load_time and filament_unload_time into cooling slowdown logic.
  • Fan speed is restored to the speed used before a custom toolchange g-code.
  • There are new custom G-Code tags ;EXCLUDE_E_START and ;EXCLUDE_E_END allowing to define sections that aren't incorporated into filament consumption.
  • There are new custom G-Code tags ;FLUSH_START and ;FLUSH_END allowing to define a section for nozzle cleaning. Filament consumption inside this section is shown in the right panel as flush.
  • Track flush and wipe tower filament consumption per extruder and display per-extruder weight in the right sidebar.

Bug fixes with respect to 2.9.6-beta1

  • Fix missing total toolchanges in binary G-code metadata.
  • Fix early line wrapping in the ColorMix dialog.
  • Fix rendering artifacts in the ColorMix dialog.
  • Fix insufficient bridge anchoring in some cases.
  • Fix excessive cooling slowdown in multi-tool prints.
  • Fix toolchange time added to wrong layer in the layer time visualization in some cases.
  • Fix ignoring custom G-Code tags if there is white space before semicolon.

Translations

  • Updated POT.
  • Update CS, DE, ES, FR, IT, PL dictionaries.
  • Updated SLO dictionary (PR#15364, thanks to @jernejp21).

PrusaSlicer 2.9.6-beta1

Pre-release

Choose a tag to compare

@lukasmatena lukasmatena released this 26 May 10:47

PrusaSlicer

Summary

This is the first beta release of PrusaSlicer 2.9.6. This release introduces ColorMix - our variation of FullSpectrum, which is a community feature that "mixes" different filaments colors by alternating materials between layers.

To let you enjoy the beta without worries, the beta builds save their profiles into PrusaSlicer-beta directory, so you may use the beta side by side with the current release without ruining your production configuration.

Note that Linux builds are distributed through Flatpak only (flathub-beta), and that their release is couple of hours delayed compared to the github release.

ColorMix

The complete story is beyond the scope of this change log and it is described in a separate blog post and there is also a dedicated video.

The idea of creating illusion of color by alternating different-colored filaments was prototyped by community in the recent months, most notably in ratdoux's fork of OrcaSlicer. Other PrusaSlicer forks like BambuStudio and OrcaSlicer have also taken up the idea. We now bring our own implementation into PrusaSlicer.

kuzely chameleon

When using a multicolor printer, there is now a new button in the right panel, just below Filament dropdowns. This button opens a dialog where you can add virtual extruders, each corresponding to a mix of existing extruders in specified ratios. Once virtual extruders exist, you can use them like normal extruder - assign them to volumes and use them in multimaterial painting. The slicing backend takes care of the rest. Most of the implementation is completely new, except for several fragments of the UI code which were taken from BambuStudio.

598064701-fda82d58-25e0-4ad6-901c-a0f1ed9bead3

We spent quite a lot of time and effort on the color-mixing model, because we were not happy with present implementation. The result is available as a separate MIT-licenced module prusa-fdm-mixer, so anyone can keep building on top of it, just like we did.

PrusaSlicer 2.9.5

Choose a tag to compare

@lukasmatena lukasmatena released this 19 May 13:25

PrusaSlicer

This is final release of PrusaSlicer 2.9.5, introducing substantial improvements in SLA slicing pipeline. Please, read change logs of 2.9.5-beta2 and 2.9.5-rc1 for more detailed description of the new features with respect to 2.9.4.

Bugfixes with respect to 2.9.5-rc1.

  • macOS specific: Fixed a crash when logging out of Prusa Account.

Translations

  • Updated ES dictionary.

PrusaSlicer 2.9.5-rc1

PrusaSlicer 2.9.5-rc1 Pre-release
Pre-release

Choose a tag to compare

@lukasmatena lukasmatena released this 11 May 15:13

PrusaSlicer

Summary

This is the first release candidate of PrusaSlicer 2.9.5. Read the change log of 2.9.5-beta2 to see complete list of changes compared to 2.9.4.

The release candidate saves its profiles into the regular PrusaSlicer configuration directory. When you first run it, it will search for all configurations produced by alpha or beta versions and offer to create a copy of the latest one.

Improvements with respect to 2.9.5-beta2

  • Configurable toolchange ordering: There is a new config option in Print Settings -> Multiple Extruders -> Advanced -> Toolchange Ordering. It configures whether the number of toolchanges should be optimized by starting each layer with the same tool that the previous layer ended with (which is how it worked before), or whether the sequence of toolchanges on adjacent layers should be exactly the same (if possible). The latter means there are more toolchanges, but multicolor models generally look better because previous layer has time to cool before being printed on.

  • Moved couple of SLA parameters to Expert mode.

Translations

  • Updated POT.
  • Update CS, DE, ES, FR, IT, JA, PL dictionaries.

PrusaSlicer 2.9.5-beta2

Pre-release

Choose a tag to compare

@lukasmatena lukasmatena released this 23 Apr 04:21

PrusaSlicer

Summary

This is the first public beta release of PrusaSlicer 2.9.5. This release brings mostly SLA updates, namely significantly refactored SLA slicing pipeline, which improves slicing speed and memory usage for many projects that previous versions had problems with. Several other improvements to be used with the upcoming SLX printer were also added.

To let you enjoy the beta without worries, the beta builds save their profiles into PrusaSlicer-beta directory, so you may use the beta side by side with the current release without ruining your production configuration.

Note that Linux builds are distributed through Flatpak only (flathub-beta), and that their release is couple of hours delayed compared to the github release.

For people awaiting news on PrusaSlicer 3.0.0, there is a short status section at the end of this change log.

Improvements with respect to 2.9.4

  • In previous versions, SLA support slices were generated by using core slicing algorithms on their 3D meshes, which often took a long time because the meshes are not always slice-friendly due to self-intersections and other defects. Because the supports are composed of cylinders, spheres and cones, the resulting slice is made of conic sections (and their parts). PrusaSlicer now takes advantage of this and calculates the slices analytically, which is typically much faster.
  • Instead of storing all slices for the SLA supports in memory, the slices are now calculated on-demand during rasterization step. This means that only several SLA support slices are in memory at a given time, which reduces memory footprint. This and the preceding improvement allow PrusaSlicer to finish slicing of many projects where 2.9.4 ran out of memory or the user out of patience. The time speedup is especially noticeable with heavily supported models, where it can be more than twice as fast when compared to 2.9.4.
  • Added material overrides for these SLA print settings: faded_layers, support_critical_angle, support_max_bridge_length, support_max_pillar_link_distance, pad_wall_slope, support_small_pillar_diameter_percent and support_max_bridges_on_pillar.
  • Access token exchange with Printables is reworked.
  • Maximum print height check in SLA now accounts for tower hop height.

Bugs fixes with respect to 2.9.4

  • Linux specific: Fixed crash in webview in a specific scenario (#15343).
  • Fixed a small UI glitch in SLA tilt parameters - options were not graying out as they should when Use tilt was toggled.
  • Fixed incorrect tooltip on "custom parameters" fields (#15033).
  • Fixed a rare crash in Config Wizard

Infrastructure

  • Linux specific: Flatpak runtime updated to GNOME 50 (#15345).

PrusaSlicer 3.x status

Many of you know that we are working on a bigger release (PrusaSlicer 3.0.0), and you are probably eager to get your hands on it. We are sorry to keep you waiting and we admit that the work is taking longer than expected. There is massive amount of technical debt that we need to get rid of to allow future maintenance of the application. We are now fully focused on that, along with developing new features.

We are also sorry that we are not very active in our GitHub issue tracker lately - for the same reason. We plan to get back to it when the new slicer is released and make things right again. We hope that the work we are doing now will allow us to release more frequently in future and get back in touch with our community.

At this stage, we can confidently say that the 3.x groundwork is well in place and most features are ported. We are currently finalizing the UI and bugfixing. The time to release it now counts in weeks (although there may be more than four). The previous time estimates we worked with internally proved not very accurate, so we will rather not be more specific now.

Thanks for your understanding.

PrusaSlicer 2.9.4

Choose a tag to compare

@lukasmatena lukasmatena released this 07 Nov 15:15

PrusaSlicer

This is final release of PrusaSlicer 2.9.4, introducing support for junction deviation for Marlin Firmware. The release is functionally equivalent to 2.9.4-rc1. Please, read change log of 2.9.4-rc1 for more detailed description of the new features.

PrusaSlicer 2.9.4-rc1

PrusaSlicer 2.9.4-rc1 Pre-release
Pre-release

Choose a tag to compare

@lukasmatena lukasmatena released this 04 Nov 16:41

PrusaSlicer

Summary

This is the first release candidate of PrusaSlicer 2.9.4. This release focuses on the integration of Junction Deviation for Marlin 2 firmware. The Junction Deviation feature improves motion planning around the corners of an object, reducing printing time while maintaining surface quality.

The release candidate saves its profiles into the regular PrusaSlicer configuration directory. When you first run it, it will search for all configurations produced by alpha or beta versions and offer to create a copy of the latest one.

Junction Deviation Integration and Improved Time Estimation

This release integrates full support for Junction Deviation (JD) for Marlin 2 firmware. A new Junction Deviation setting (Printer Settings -> Machine Limits > machine_max_junction_deviation) will automatically output the M205 J G-code. The internal Time Estimator and G-code Viewer have been updated to simulate the JD algorithm, providing significantly more accurate time estimates and realistic speed visualizations. Note: If machine_max_junction_deviation is set to 0, the classic Jerk logic will be used for calculations, and the JD feature will be disabled. Junction Deviation (JD) is now enabled by default for the CORE One L. This begins the phased rollout of JD for other printers with future profile updates.

ActualSpeedJD_Jerk

Bugs fixed

  • Fixed an Arachne bug where the simplification of closed extrusion paths could produce extremely small G-code segments, which could lead to visible print artifacts on curved surfaces. The issue was originally investigated by @sethml in #11811. This fix was ported from OrcaSlicer. Fixes #11807 and #11573. Thanks to @sethml and @Noisyfox.

Translations

  • Updated POT.
  • Update CS, DE, ES, FR, IT, JA, PL dictionaries.

PrusaSlicer 2.9.3

Choose a tag to compare

@lukasmatena lukasmatena released this 12 Sep 15:31

PrusaSlicer

This is final release of PrusaSlicer 2.9.3, functionally equivalent to 2.9.3-rc1. The release candidate saves its profiles into regular PrusaSlicer configuration directory. When you first run it, it will search for all configurations produced by alpha or beta versions and offer to create a copy of the latest one.

Summary of changes with respect to 2.9.2

  • New "Consistent Surface" cooling: Smarter logic for improved outer wall quality on fast layers.
  • Short travel acceleration: Reduces ringing by slowing only the shortest travels on external perimeters.
  • Custom G-code parameters: Define your own variables in profiles for flexible G-code customization.

Please, read change logs of 2.9.3-rc1 and 2.9.3-beta1 for more detailed description of the new features.

Changes with respect to 2.9.3-rc1

Translations

  • Update JA dictionary.
  • Updated Ukrainian localization (thanks to @DrFOXUA).