Summary
This is the third public alpha release of PrusaSlicer 3.0.0.
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.
Restructured 'Add printer' workflow
The whole workflow related to adding printers was redesigned (the "favorites" system presented in the first two 3.x alphas was a temporary solution from the beginning). In this release, the user has to add every printer which they want to use - there is a dedicated "Add printer" button in the printer selection dialog (#15676). The button opens a wizard-like dialog where the user can select a printer and create a named local profile (#15603).
When adding a printer, one can also configure it as "physical" printer (add an IP address, etc.) in the same dialog. Therefore, the locally added printer has a name, configuration (nozzles and sheet) and optionally the "physical" data. Selection of the printer preset itself is now separate from selection of the hardware configuration, and it got a dedicated drop-down in the right panel. See the following screenshot:
Furthermore, there is a new tab in printer configuration dialog, which shows current state of printer connected to Prusa Connect. Selecting a printer from this list uses live configuration of the printer and selects an appropriate configuration and compatible printer preset. (Changing the nozzle to one which is not currently installed is not possible at this point.)
Note that this is still not the final state of how the synchronization with the printer will look, so stay tuned.
Known issue
Under certain circumstances, users of the previous alphas may run into a known and harmless UI glitch, shown in the picture - a "nameless" printer shown on the first start. The changes we did are not completely compatible with configuration left behind by the previous alpha, and while we strive to maintain compatibility between stable releases as much as reasonably possible, handling these edge cases on alphas when features are still under development is not always meaningful way of spending time. If you run into this issue, you can safely ignore it.
Material database support
The Filament selector dialog has a new tab, which allows to select a filament from MDB instead of selecting a logical profile. When PrusaSlicer is connected to Prusa Account, it shows which materials are tagged as favorites in Prusa Connect and allows to filter the view accordingly. Material database is now bundled with the application, it does not not auto-update currently.
SLA printing
Prusa SL1 and SL1S SPEED profiles are restored, SLA slicing and export works from the UI and the CLI, and the SLA support points and hollowing tools were ported to the new UI. Note that current state is equivalent to PrusaSlicer 2.9.4 - the performance improvements introduced in 2.9.5 are yet to be ported.
3D mouse support (#15784)
Support for 3D mouse is now ported from PrusaSlicer 2.x, including free camera rotation. The 3D mouse settings are now in Preferences. On Linux, spacenavd is used when installed (also versions older than 1.0). While the functionality was already present in PrusaSlicer 2.x, it is not just ported - several things were slightly changed (mostly regarding the flexibility of configuration).
Print Goals
The new Print Goals dialog lets the user declare a single intention of what they want to print. This works as a shortcut for setting many different configuration options. It does not modify the underlying slicer configuration; it only overrides it as long as the selected goal is active.
In this alpha we provide print goals for vase mode, soluble supports, and breakaway supports. Vase mode is available for all printers; soluble and breakaway supports require a multi-material printer.
For example, turning on vase mode overrides the perimeter count to 1, sets top layers to 0, and so on. Unlike in PrusaSlicer 2.x, these changes are not permanent and can be reverted simply by disabling the print goal.
The print goals are user-configurable and implemented as Lua plugins, so it is possible to create and share your own print goal configurations. It also means that the override values can be calculated dynamically from the current configuration, which opens the door to many more possibilities.
The Print modes are Lua plugins internally, which opens door to further customizations of the idea.
Plugin marketplace
PrusaSlicer 3.0.0-alpha11 introduced Lua-based plugin system. We now introduce Plugin Marketplace - an online catalogue of plugins you can browse right inside the application (Menu -> Plugins -> Plugin Marketplace). Any plugin can be installed with a single click, and the marketplace shows which plugins you already have and when an update is available. Anyone can download an use a plugin, publishing requires signing in using a Prusa Account.
Every plugin bundle is cryptographically signed and its signature and checksums are verified before installation. Note that the plugin API is still experimental and may change between alpha releases. There are currently just two plugin interfaces, but more will come in future.
The marketplace is now first released to the public and it is therefore empty - we hope that you will not leave it at that for too long. The marketplace contains documentation on how to create a new plugin. Signing is done conveniently using PrusaSlicer CLI options, publishing is handled using the marketplace interface. Note that plugins go through a basic review before being published, to avoid publishing a malicious plugin. While Lua itself is reasonably well sand-boxed, an extra layer of security does definitely not hurt.
"Extruder Assignment" table
While PrusaSlicer allowed to assign extruders to individual features for a long time, the options were buried in Print Settings and were difficult to discover and use. There is now a new dedicated dialog that allows quick and easy access to these options. You can find it in the right panel and we hope that it will make setting up a multi material project much easier.
Window transparency can now be adjusted
There is a new option in Preferences which allows to set the Object list and right panel partially transparent. This may be helpful when working with big projects where keeping track of all the beds and objects can be difficult.
Other improvements with respect to 3.0.0-alpha12
- Loading and saving of 3MF projects and preset files is faster thanks to switching to libdeflate-based compression.
- The internal web view is more robust: its data is isolated and pruned, and initialization failures are handled better.
- G-code Preview: visibility of the toolbar options (travels, wipes, seams, etc.) is now saved and restored between sessions (#15616).
- Color mix dialog: virtual extruders are labelled with filament names, tooltips were replaced with inline descriptions, and filament ratios are now ensured to sum up to 100%.
- Color dropdowns now show the extruder icon with all colors of a multicolor (virtual) extruder.
- Filament Settings: the Material & Temperature page was reorganized so that all temperatures fit without scrolling. Cost, density and spool weight moved into a new "Cost & Weight" group (#15887).
- Preset updater: update checks only download small index archives, which makes them much faster. Full vendor data is downloaded only when a vendor is installed, and installation is more robust (staging on the same volume, atomic renames, version validation, cleanup of leftovers).
- Preset updater: update checks now also run periodically in the background.
- Preset updater: more specific error reporting when an operation fails, improved progress reporting and cleanup of leftover directories.
- The Purging volumes (wiping) dialog was ported to the new UI.
- Debug and trace logging can now be enabled in release builds.
- Object list: parts (volumes) can be reordered by drag and drop within an object.
- Profiles: print preset features are now available as variables in preset conditions.
- Painting tools: the minimum brush radius was lowered to 0.1 mm, and the seam and fuzzy skin painting tools gained the "Height range" fill (e.g. to paint the first layer only).
- Object list: added context menus for objects and parts, including a new "Rename" item.
- A warning is now shown when slicing, and in the Color mix dialog, when a virtual extruder mixes different filament types (e.g. PLA and PETG). The Color mix dialog layout is also more compact.
- Wipe tower improvements for tool changer printers: new maximum print speed for the wipe tower, de-retraction after a tool change is spread over the start of the purge line (and shown in the Preview), no more travelling back over the purge line and across the tower, and travels inside the wipe tower now use the print retraction and Z-hop.
- Profiles: preset evaluation errors now show the location in the YAML file where the problem likely is.
- Files can be opened from ZIP archives (drag and drop, File -> Import -> Import ZIP archive, downloads and opening from the OS). When an archive contains more files, a dialog lets you choose which ones to open, and whether to open projects as projects or as geometry only.
- The "Apply" buttons of the Simplify, SLA support points and Hollow and Drill tools moved to a bottom bar of the tool window. The Arrange and Cut tools use the same style.
- Localization: many phrases were fixed (typos, sentence case, consistent naming), and the dictionaries were updated.
Bugfixes
- Fixed ToolMarker being toggled together with ToolChange in the G-code Preview.
- Fixed frozen tooltips staying visible after their parent was hidden.
- Fixed a solid first layer being generated for the frustum of the connector of a cut object (#15833).
- Fixed cut-off checkboxes and incorrect height of action buttons (#15712).
- Fixed material usage being shown incorrectly on smaller displays (#15648).
- Fixed the layout of the vendor list in the Preset Updater dialog. Vendor thumbnails are now cached.
- Fixed a CLI crash when multiple events were received after
--preset-update-add-localfinished. - Fixed misaligned long project names in the "Recover project" dialog by adding a horizontal scrollbar.
- Fixed a malformed User-Agent header in HTTP requests and in the communication with Prusa Connect.
- Fixed a crash when adding a part to a shape added from the gallery (#15668).
- macOS specific: Fixed the "Preset Sources & Updates" menu item missing the "&" character (#15685).
- G-code Preview: the "Wiping" button was visible even when no wiping was used.
- Configuration passed by
--loadthrough CLI was not applied when slicing 3MF projects. - Show an error instead of crashing when presets cannot be copied into the data folder. An incomplete vendor copy is now retried on the next start.
- Fixed overlapping text and controls in the Color mix dialog.
- Fixed Shift+LMB selection not working in the object list (#15664). The object list was rewritten.
- The Welcome dialog could be skipped by opening Preferences from the left sidebar.
- Fixed small close buttons and overlapping texts in the object settings overrides dialog, which did not scale with font size (#15879, #15889).
- CLI: Fixed a crash when slicing a STEP file.
- Long-running jobs now fetch a fresh access token when they need it, so the token does not expire during them.
- Fixed a crash in the Preset Updater when deleting an installed vendor whose printer was selected last.
- The notification about new vendor offers was shown repeatedly, even for vendors that were only available for installation.
- Filament shrinkage compensation was not used in some cases. The check for unused tools was fixed (#15844).
- Fixed thumbnails sometimes not loading.
- Fixed a crash when settings became valid again while slicing warnings were shown.
- 3MF import: the units of the 3MF file were ignored, so some models were 1000x smaller (#15699).
- 3MF import: nested transformations were applied in the wrong order.
- Fixed a crash when using the rectangle selection on very small objects.
- Fixed text wrapping in the "Invalid settings" dialog. Opening Preferences from the dialog now works.
- Fixed issues in the transformation gizmos (rotation was not finalized, and the Preview interfered with the reference frame).
- Fixed a race condition in background slicing which could lead to a crash.
- Fixed an Arachne crash when Boost.Polygon produced a Voronoi diagram with crossing edges (#14421). Thanks to @2tefan for the test case (PR #15774).
- INDX: Used filament did not account for the G27 R parking retraction, so object material usage was calculated incorrectly with tool changes.
- Keyboard shortcuts were processed while a modal dialog was open.
- Fixed per-tool overrides not being cleared in the Print tool settings, and incorrect tooltips and validation ranges of spin boxes.
- Arrange: show a warning instead of failing when there is nothing to arrange.
- Fixed a focus frame being drawn around context menus and other windows after editing a text input.
- Object list: beds were not updated after a part was added, removed or had its type changed. The "Out of bed" section stayed hidden when an object was inserted into an empty list.
- Fixed assert failures when exporting to files with some extensions (e.g.
.gco,.GCODE). - "Reload from disk" did not keep the meters/inches unit conversion, so reloaded objects were shrunk 1000x (#16026).
- macOS specific: Removed the invalid trailing slash from the bundle identifier, which broke icon resolution in third-party launchers (#15579, #15818). Thanks to @iammattcoleman (PR #15709).
- Modifiers, negative volumes and support blockers were loaded as printable parts from 3MF projects saved by PrusaSlicer 2.2 and older.
- Fixed an invalid assert in spiral vase mode.
retract_layer_changeandavoid_crossing_perimetersare now forced off in spiral vase mode. - Fixed extruder clamping for single-slot printers.
- Removable drives: fixed threading, eject and drive lookup issues. Linux specific: fixed G-code export to a USB drive (#15843).
- A false notification about failing to read the non-Prusa vendor profiles was sometimes shown at startup.
- The notification offering to install non-Prusa vendors was only shown after restarting the application. The preset updater now waits for the access token and checks again on login/logout.
- Fixed horizontal scrolling of the Preset Updater dialog.
- Binary G-code: only G0-G3 lines are now compacted. Other commands (e.g.
G12 Quick_Clean) had their spaces and letter case mangled. - 3MF loading errors (e.g. malformed files saved by PrusaSlicer 2.3.0-rc1, #5577) are now reported to the user instead of being replaced by a generic message.
- Profiles: presets using the
feeder.single_modecondition failed to load on printers without a feeder (MMU). - Legacy 3MF loader: out-of-range bed indices are now ignored. Thanks to @5un9hun for participating in our responsible disclosure program.
- Fixed a stack buffer overflow in the
digits()/zdigits()placeholder functions. Thanks to @5un9hun for participating in our responsible disclosure program. - File downloader: fixed path traversal through the downloaded file name. Thanks to @5un9hun for participating in our responsible disclosure program.
- Printables: the requested count of copies is now clamped.
- File downloader: redirects are now restricted to HTTPS.
- Windows specific: File downloader no longer creates files with reserved device names (e.g.
COM3.gcode). - Fixed a crash when the layer height was set to zero. Layer heights below 0.01 mm are now reported as an error (#15899).
- Fixed a crash when slicing with a wipe tower and a very small first layer height.
- Fixed a crash when editing a preset after saving a preset of another kind (e.g. "Revert changes" in Printer Settings after saving user printer and filament presets).
- Fixed a crash when switching to a printer with fewer material slots.