github prusa3d/PrusaSlicer version_2.8.0-alpha5
PrusaSlicer 2.8.0-alpha5

pre-releaseone month ago

PrusaSlicer

Summary

This is the first public alpha release of PrusaSlicer 2.8.0 (previous alphas were internal). This release introduces Prusa Connect integration and many more improvements and bugfixes.

To let you enjoy the alpha without worries, the alpha builds save their profiles into PrusaSlicer-alpha directory, so you may use the alpha side by side with the current release without ruining your production configuration. The alpha will ask whether it should import a configuration from previously run PrusaSlicer versions on the first start.

An important note for Linux users: The binaries will not run on newest Ubuntu 24.04 (and possibly other latest distributions). This problem will be solved shortly in the next alpha/beta.

Prusa Connect integration

Prusa Connect is our online system to control printers from the browser and distribute print jobs among them. Starting with this release, Prusa Connect is accessible directly from PrusaSlicer to streamline the workflow. A login box was added to the right of the top bar, which will open a browser window and let you log in with your Prusa Account credentials. When the login is successful, one more tab (Prusa Connect) will appear in the top bar. This tab will present your Prusa Connect dashboard and all features that you are used to.

image

When logged in, PrusaSlicer keeps track of the status of your printers and it also knows with which of your printer profiles they are compatible (printer model, MMU capabilities and nozzle diameter are checked). When a printer compatible with a given printer profile is in Prusa Connect, a little colored dots will appear in the printer profile dropdown in the right panel, displaying current status of that printer. The summary of the state of connected printers is shown just below the dropdown.

When ready to export G-code, a 'Send to Connect' button appears in the right panel. Clicking this button will open a dialog window presenting all your Connect printers compatible with the current project and allowing you to send the generated G-code to one of them:

image

To streamline the workflow in the other direction, there is an extra button in Connect labeled "Set as current", which is shown for every printer. Clicking it will switch back to Plater tab and select first compatible printer profile automatically. The language settings and light/dark mode in the Prusa Connect tab is automatically switched so they match what is currently selected in PrusaSlicer.

Previous way of sending G-codes to Prusa Connect using a physical printer profile is deprecated. Users should stop using physical printers for Prusa Connect, although the support will be maintained for some time. Nothing changes with regard to PrusaLink or the other print hosts.

Note that logging in or using Prusa Connect is completely optional. PrusaSlicer will work fine without the login, as it has worked before. We are considering to add a Preferences checkbox to hide the login box completely to not bother people who intend to never use it anyway. Your feedback is welcome.

Improved UI

We have decided to do several tweaks to the user interface. It is by no means a complete redesign, so the controls are mostly where you are used to find them. The most visible change is the top bar. The system menu was removed (on Windows and Linux only) and it is now accessible through a separate button at the very left of the top bar. The settings tabs are now larger and styled. The larger top bar allowed us to integrate the Search field into it, so it is readily accessible and it looks the same regardless of which tab is active (unlike in previous versions). The right part of the top bar features the Simple/Advanced/Expert switch (which is newly a dropdown) and the PrusaAccount login box.

Next, both sliders in the Preview have been completely reworked and are now part of the 3D scene, instead of being placed in a neighboring panels. Apart from looking nicer and more modern, removing the side panels means that the canvas size is larger. It also comes with a nice benefit that switching back and forth between the 3D view and Preview no longer shifts the view, so the transition is more comfortable.
Credits go to BambuStudio, whose sliders were used a starting point for the implementation (although we later ended up rewriting most of it to fit current PrusaSlicer architecture).

image

Topping the list of the UI improvements, the spacing and icon size in the toolbars in the scene was slightly changed. The toolbars are now nicer and look less cramped.

Improved G-code Viewer

The integrated G-code Viewer has been significantly reworked to improve its performance. Less data are now transmitted between the CPU and GPU and more of the work is now performed on the GPU side.

Furthermore, G-code Viewer is now able to visualize actual speed. The printer accelerates and decelerates when direction changes, so even though the required speed is set to a given value, it takes some time to reach it (if it is reached at all). The acceleration limits are (as they always were) configurable in Printer Settings -> Machine limits and PrusaSlicer always calculated with the acceleration and deceleration phases to get precise time estimate, but it did not allow to visualize them.

image

Note that the same disclaimers as for precise time estimates hold. If the machine limits are set incorrectly (in the sense that the printer uses different values), both the time estimate and the real speed visualization will not align with reality. Also, the actual speed visualization is not available for firmware flavors for which slicer does not allow setting the machine limits.

In addition, when moving the horizontal slider, there is a new popup dialog showing the data that G-code Viewer has about current segment, including the actual speed profile:
image

Single Perimeter for top and bottom layers

We have ported an option to use single perimeter for (top) solid infill layer. The feature can be configured in Print Settings -> Only one perimeter and based on the configuration, it results in single perimeter on all solid infill layers, on top solid infill layers or on topmost solid infill layers. This generally leads to improved visual look of the printed object, without sacrificing structural rigidity.

This is a frequently requested feature, which was first implemented in SuperSlicer, ported over to OrcaSlicer and then reimplemented in BambuStudio. We have ported the code from BambuStudio with only small changes. Even though we ended up not using the original SuperSlicer implementation, we would like to thank to everyone who implemented the feature there and who worked on a PR with the port (#10648), namely @supermerill, @vovodroid, @mjonuschar. Thanks also go to @bambulab for rewriting the feature later.

Related to #7986, #9854, #10346, #10868, #11654, #11965, #12263.

New system profile updating system

Since Slic3rPE 1.40 (released six years ago), PrusaSlicer has a built-in profile updater. Its task is to deliver read-only "system" profiles, which are fine tuned for the given printer and filament, sparing the user from having to tweak the individual parameters. The database of profiles has been growing ever since, and it contains many profiles, both for Prusa products and products from other vendors.

We have now split the profile database into several profile "repositories". Profiles are updated only from repositories that PrusaSlicer is subscribed to. The repositories are selected at the beginning of the Configuration Wizard. The transition of your previous configuration requires no action on the user's side, the repositories are automatically selected based on your currently installed profiles.

This change is motivated by several internal reasons, but it also brings the following benefits:

  • Configuration Wizard loads faster, because it generally processes less data.
  • Notifications informing about an existing update are only shown for your active repositories. E.g. if you only use SL1 printer, you are not disturbed by notifications about updated filament profiles, which are not relevant to you.

Offline updates

We have also covered the problem of updating system profiles on computers without internet connection. Not connecting a computer to the internet is an obvious security measure in environments where data leaks would pose a problem (which is in most contexts, maybe apart from casual hobby printing). However, the profile updater in PrusaSlicer relied on internet connection and there was no way of updating the profiles on such off-the-grid stations. They had to rely on undocumented and very user-unfriendly copying of configuration folders, transferring settings as config bundles, etc.

It is now possible to download a file containing the configuration update for a given repository from our website (note that the URL and the website are also in an alpha stage). This file can then be loaded as an "Offline repository", and the configuration process treats is the same way as it would use an online update. This gives the user a possibility to update profiles by transferring this file to the off-the-grid computer on a removable drive, distribute it using a local network storage, etc.
These files can be loaded (and removed) also in the Configuration Wizard. PrusaSlicer remembers path to the loaded files and it tries to use them anytime when configuration update is triggered.

Seam improvements

Placement of seams is not a very well defined task, and it has many solutions. After the last big batch of changes in the seam placing algorithm (in 2.5.0-alpha2), the placing of seams was detrimental on various models.

In this release, the seam-placing algorithm was significantly changed to improve the results. We also did some other changes which allow the seam placing algorithm to do a better job. To name the most visible improvements:

  • The ordering of perimeters was optimized to avoid unnecessary long travels between individual loops.
  • To further reduce long travels, in some special cases where there are two external perimeters the seams are placed in roughly the same spot.
  • The previous algorithm for aligned seams produced the seams from discontinuous "seam chains" picked heuristically on the object's surface. Consequently, the old algorithm needed to fit a curve through the resulting seam points to achieve an aesthetically pleasing result. This worked for some models but produced worse results on others, where a strange "wiggling" appeared in places where a straight line was expected. This was particularly noticeable on very simple cylindrical models. The new seam aligning algorithm avoids this issue by employing a simpler strategy, more similar to the one used before 2.5.0-alpha2. It plans the seam from the bottom up, snapping to sharp corners. This approach generates several possible seams and selects the best one based on visibility criteria.
  • One of the improvements in 2.5.0-alpha2 was the use of a seam visibility metric for seam placement. This worked well for seam hiding and the new algorithm still uses the visibility metric as the main criterion to pick the best seam possible.
  • Previously, a single algorithm with different optimization criteria was used for both the aligned seam and the rear seam. This meant that the rear seam placement suffered from the same issues as the aligned seam algorithm (notably the artifacts produced by curve fitting). Another reported issue with the rear seam algorithm was that it had no notion of object center. In many use cases it is desirable that the seam is not only in the rear part of the object but also centered. Now there is a completely new separate algorithm for rear seam placement that tries to satisfy both criteria (rear and center).
  • The nearest seam algorithm is now fully separated. It now simply first searches for the nearest corner to the previous position. If there is none it picks the nearest point on the perimeter.

The changes are related to issues #12759, #11433, #11190, #9649, #8867, #8512, #8443, #8107, #6346, #2761, #11914 and fix most of them.

Other improvements with respect to 2.7.4

  • When multi-material painting is applied on an object, it is now shown in the 3D scene even when the multi-material painting tool is not opened.
  • When using a Physical Printer profile, a new "Physical printer" tab will be shown in the top bar. Clicking it will show the website accessible at the physical printer URL (such as OctoPrint dashboard). This is supressed when the print host is Prusa Connect, which now does not need the physical printer profile at all (as described above).
  • PrusaSlicer is now able to control heated chamber temperature (using M141/M191 G-codes). There are two new parameters in Filament Settings: minimal and nominal chamber temperature. The nominal temperature is the temperature of the heated chamber, minimal temperature is the temperature which has to be reached before the print starts. Setting minimal temperature to a lower value than nominal allows to start the print while the chamber is still heating up. In case of multi-extruder printer, the setting for the first filament is applied.
  • Shrinkage compensation option was added in Filament Settings. There are two new configuration options in Filament Settings -> Advanced -> Shrinkage compensation, one for compensation in XY plane, the other for Z. The values define relative compensation values (percents). When using multiple filaments with different compensation values in one print, the compensation is not applied and the user is notified about it. The feature is independent on the already existing XY compensation in Print Settings, which is absolute and does a geometric offset instead of relative scaling of the geometry.
  • Template filaments are now in a separate section in the Compare presets dialog.
  • When switching from a printer preset with modified value of a custom G-code, the custom G-code configuration option is not selected to be transferred to the new preset by default. Transferring custom G-codes between different profiles is almost always undesirable and doing it by mistake usually leads to bad or failed print.
  • There is a new option Prefer clockwise movements in Printer Settings. Enabling this option reverses direction of perimeters, tree supports structures etc.
  • Until now, the command line interface allowed to load config from INI or 3MF file or modify the individual values, but it was not possible to use CLI to select a profile from the list of installed profiles, which was only possible through the GUI. New command line options were now added to query currently available profiles and to use config from an installed profile for slicing. The new parameters are:
--query-printer-models                                    # prints a JSON containing list of currently installed printer profiles
--query-printer-models --printer-technology SLA           # The same, but filters SLA printers (FFF is also possible)
--query-print-filament-profiles --printer-profile "name"  # prints JSON with a list of filament profiles compatible with a given printer profile

--print-profile --material-profile --printer-profile      # Used when slicing. Loads configuration from the given profile.

With multi-material prints, you can provide multiple filament profiles to the --material-profile parameter by separating them with a semicolon. All of the parameters are compatible with the --datadir parameter which can be used to set custom configuration folder.

Bug fixes with respect to 2.7.4

  • Warning triangle informing about broken model was not refresh after 'Reload from disk' (#4682).
  • Fixed a crash during G-code generation when using binary G-code (#12390).
  • Category "Undef" does not show in Unsaved Changes dialog anymore.
  • When a printer profile is installed using the Configuration Wizard, it no longer overwrites user printer profiles with the same name if such profile exists (#3888).
  • When saving a modified preset under a name matching an existing preset, they changes were not saved (#10716).
  • Prevented saving of a new preset with a name that differs from an existing preset only in case (related to #6798).
  • Fixed incorrect loading of filament override values when loading config from specific G-code files.
  • Compare preset dialog did not respect compatibility conditions correctly.
  • Fixed occasional error during slicing (related to Voronoi diagram generation) (#12385).
  • Colorchanges are no longer loaded from 3MF when loading 'Geometry only'.
  • Fixed a crash when adding a colorchange after a specific sequence of actions.
  • Fixed a crash when importing certain SVGs (#12627).
  • When using Cut function to cut an object which already had dowels from a previous cut, a dowel would sometimes move to an incorrect position (#12206).
  • Fixed issues with negative volumes when cutting an object (#10850).
  • Fixed incorrect direction of travel at the end of the external perimeter when Arc fitting was enabled and wipes disabled (#12427).
  • When slicing objects painted by the painting tool, the slicing backend previously generated warnings about differing bed temperatures even for filaments which were not actually used.
  • Fixed incorrect calculation of skirt separation (#12621, thanks to @djdelorie).
  • Fix a crash when repeatedly cutting an object with dowel connectors.
  • Slowdown on overhangs was incorrectly applied to non-overhanging parts of the extrusion.
  • It was not possible to select an embossed text or SVG in the scene after a very specific sequence of actions.
  • Unicode characters in the 3D scene dialogs and notifications were rendered as question marks when PrusaSlicer was run in a language which does not use them (e.g. Czech characters would not show when PrusaSlicer was set to English) (#11331).
  • Fixed incorrect label in the preview slider when spiral vase mode was used (#12420).

Architecture, infrastructure

Starting with this release, only GTK3 Linux builds are provided. We no longer support GTK2. It is outdated and not shipped with Linux distros for a long time, so dropping the support should not prevent anyone from using the software. Supporting two different versions of the toolkit is tedious and it is time to move on.

Don't miss a new PrusaSlicer release

NewReleases is sending notifications on new releases.