PRUSASLICER CHANGELOG

Version 2.7.2

29. 2. 2024

This is the stable release, bringing minor improvements and several bugfixes.

Improved Multi-Material Painting

We implemented several mechanisms to detect a non-valid Voronoi diagram, and by manipulating the input, we could ensure that the Voronoi diagram would be valid. We also reimplemented a significant part of multi-material painting from scratch, which, together with the changes above, should resolve all issues with spilled layers for multi-material segmentation.

Color Change (M600) Community-Driven Improvement

Previously, PrusaSlicer placed the color change (M600) right after the previous layer was finished. The default implementation of color change in pretty much all firmwares returns the nozzle to the exact same position as before the color change started. As a result of this behavior, a small blob of filament with the newly loaded color would get stuck to the print.

Our community, especially @Nohus, came up with a solution of placing the color change after moving to the next layer and position, which proved to be much easier and more universal solution than changing the M600 implementation on the firmware side. Thank you, Nohus, for your implementation and all of you who participated in testing his change.

Ramping Travel Moves: Smoother and More Efficient

We’ve replaced helical layer changes introduced in 2.7.1 with a more refined ramping profile. While the helical layer changes helped to reduce stringing, they sometimes caused color blobs and artifacts. With the new and refined ramping profile stringing is still mitigated without the disadvantages of the helical movements.

SLA Overrides

For SLA printing, we’ve introduced Material Overrides. This new feature, mirroring the flexibility of FDM slicing, allows to override selected configuration options from Print or Printer Settings in Material Settings. There is a new parameter page in Material Settings, which allows to check the parameters which would be overridden and to redefine their value.

A Farewell to Pearl

PrusaSlicer’s origin is based on the Slic3r project, which was originally written in Pearl scripting language. Over the years, we’ve rewritten nearly all of the code. First the slicing core, then the user interface. We have now rewritten all remaining unit tests still depending on Pearl into C++. Goodbye, Pearl. You will not be missed.

Version 2.7.1

14. 12. 2023

This is the stable release, bringing minor improvements and several bugfixes.

Binary G-code settings

The option Export as binary G-code was removed from Print Settings. Instead, there is a new option in Printer Settings named Supports binary G-code so it can be set at printer level. There is also a new global switch in Preferences->Other, which controls whether binary G-code will be generated for printers which support it. It is now much easier to turn the feature on or off without doing any changes in profiles.

Wipe tower weight

Wipe tower weight was added into G-code metadata so it can be easily displayed in the print statistics on the printer’s display.

Bugs fixed with respect to 2.7.0

Fixed the issue where when ramping travels were enabled, sometimes a perimeter was missing at the layer where the spiral starts.
Fixed a crash when selecting embossed text while an SVG tool is opened.
Fixed a case where helical layer changes could result in out of bed moves.
Fixed a case where helical layer change was enabled even when there was no retraction on layer change.

Version 2.7

8. 12. 2023

SVG emboss tool

In addition to the text embossing tool first presented in PrusaSlicer 2.6.0, it is now possible to emboss SVG images onto the models. The feature can be accessed through right button click and it allows similar options for projection and manipulation like the text tool. You can now just drag and drop an SVG logo, title, or even a QR code and merge it with an existing 3D model.

New Binary G-code format

G-code files are easy to read and interpret, but their downside is that the data is not saved efficiently and the file size is often very large. Compression of the file is problematic because the printers usually run on limited hardware and they may not have enough memory and/or CPU power to decompress it. Several solutions to the problem were proposed by members of the community, such as MeatPack encoding (utilizing the fact that the character set of a typical G-code is very limited) or heatshrink compression algorithm (designed to have very small memory requirements).

We are proposing a new standard for a binary G-code format for encoding and compressing ASCII G-code files (see the specification). The format is flexible and the encoding and compression of individual blocks is variable. We also provide libbgcode library which contains the routines to convert ASCII G-codes to binary and vice versa. The library is written in C++ and the repository includes bindings for Python.

Regarding comparison of ASCII vs binary G-code sizes, the result depends on the contents of the G-code. Our testing shows that using binary G-code reduces the size by about 70 % on average. Using arc fitting (described above) at the same time can reduce the size even further. Following chart shows the comparison for 10 randomly selected 3MF projects:

The support for the new .bgcode file format was implemented in PrusaSlicer, including its export, loading configs, previewing G-code or file associations. Exporting binary G-code can be enabled in Print Settings->Output options->Export as binary G-code. An option to convert ASCII G-code to binary (or the opposite) has been added into File menu.

To print a binary G-code, it has to be supported by firmware of the printer. For Original Prusa MINI, MK4 and XL printers, this is supported since version 5.1.0-alpha2. It is necessary to update printer firmware before using the binary G-code format.

We would like to thank Scott Vokes (@atomicobject) for his work on heatshrink and
Scott Mudge (@scottmudge) for developing and maintaining MeatPack.

More improvements

  • Custom G-code editor
  • Cancel Object feature
  • Improved user interface
  • Generate Wi-Fi credentials for your MK4 / MK3.9 / XL / MINI 3D printer for easier network connection
  • PrusaConnect print host is now available for Original Prusa MINI printer

Version 2.6.1

6. 9. 2023

Improved Arrange Tool

The Arrange feature has been significantly improved and it is now able to place objects inside concave areas formed by other objects.

Currently there are three distinct levels of geometry handling, which can be selected using a drop-down in the Arrange dialog:

  • Fast – essentially the old behavior considering only the convex hulls of each object
  • Balanced – still reasonably fast profile considering the full shape complexity of objects which are not being arranged and the convex hull of the currently arranged object.
  • Accurate – considers the full shape complexity of each object at all circumstances

“Balanced” profile produces very similar results to “Accurate” in most cases but it is typically faster by multiple orders of magnitude.

As another improvement, arbitrary bed shapes are now supported.

Cut Tool Improvements

New cutting mode is now available in the Cut tool. Dovetail mode automatically creates a tongue-and-groove connection that allows sliding one part into the other. The geometry of the connection is adjustable in the Cut tool dialog. Also, a new connector type was added (Snap).

Text Embossing Improvements

The Emboss tool introduced in 2.6.0 now allows much better projection on curved surfaces. The feature is accessible through a Per glyph orientation checkbox in the the Emboss dialog. When checked, the individual glyphs are (perpendicularly) projected along a curved line on the surface. The idea was inspired by the implementation in BambuStudio.

Version 2.6.0

20. 6. 2023

Organic Supports
In this release, we are presenting our significantly improved implementation of tree supports, which we call ‘Organic supports‘. We choose a new name for our supports because of their distinctly smooth shape and several differences in their behavior. Our implementation is an evolution of the tree supports by Thomas Rahm, which are significantly improved tree supports originally from Cura. We would like to thank Ultimaker Cura and Thomas Rahm for the effort they have invested into the problem.

In contrast to the previously common implementation of tree supports, the branching of our Organic supports is smarter and we made them straighter (shorter), smoother, and more stable. The cross-section perpendicular to the branch axis is guaranteed to be circular, and the algorithm automatically uses double perimeter walls for the trees where needed (this is configurable).

The Organic supports are easily removable, do not scar the surface, and are fast and cheap to print. Models can now be printed in orientations that were previously unthinkable (mirroring SLA printing capabilities) and supports for even the most complex shapes are typically easy to remove. Organic supports can be manually enforced or blocked using the Paint-on supports tool.

Automatic FDM Support Painter
PrusaSlicer now has an automatic painting tool for defining areas requiring supports, factoring in various aspects like the model’s center of mass, bed movement, potential extruder collision, material, and bridging. It can also automatically detect if a print requires supports and alert the user in the case they are not enabled.

Text embossing tool
The new Text tool lets you insert, manipulate, and edit text as a 3D object. This provides a convenient way to customize models and add elements such as notes, signs, or serial numbers directly in the slicer.

Texts can be embossed, debossed, or even used as a modifier. However, the tool even offers the ability to make the text follow curved surfaces. To change the text position, you can simply drag it on the object’s surface. The text editor automatically imports the font library installed on your device (all TrueType fonts should work).Even after closing the Text tool, the text remains fully editable. The same goes for re-opening 3MF project files. You can also create and save text styles to reuse them in future projects.

Improved Cut tool
The Planar Cut tool has been available in PrusaSlicer for a long time. It is handy for preprocessing huge models that don’t fit the build volume or which are too complicated to print in one piece. With this release, we are extending its functionality.

You can newly cut the model at any angle. Defining the precise cutting angle can be done both by a 3D gizmo or by simply drawing a cutting plane by dragging the left mouse button while holding down the Shift key. If the cutting plane intersects the model in several different regions, you can select which parts to cut and which to keep connected by right-clicking on them.

You can select if the cut part should be placed on the bed with the newly created flat surface. You can also choose to keep the alignment of the parts, for example, for printing with a multi-tool printer.

Adding connectors and dowel pins
We understand how important it is to assemble the final parts together with an emphasis on precision and simplicity. That’s why we added an option to define various types of connectors. You can control the depth, size, and tolerances of each connector and the negative hole.

Measurement Tool
PrusaSlicer now includes a measurement tool for gauging distances between vertices, edges, and planes. You can also use it to measure angles, and to scale objects uniformly by editing the measure distance.

Dynamic overhang speed (and dynamic fan speed on overhangs)
This feature lets you slow down the print speed when printing overhangs, which enables better cooling when it’s needed. The algorithm calculates extrusion overlap with the previous layer and applies speed calculated from the overhang slowdown function. Users can control the shape of the overhang slowdown function via four input points – each point has an extrusion overlap value expressed as a percentage of the full width, and desired speed on such overlap. The speeds in between the control points are calculated via linear interpolation.

Similarly, users can create custom fan speed curves, so that extreme overhangs get increased cooling. Of course, with some polymers, too much cooling will negatively impact the mechanical properties.

Extending sparse infill
A long-standing issue was connected to bridging solid infill printed over sparse infill. The shape of such infill islands was only determined by what was above, and the infill lines were often inadequately supported as a result, leading to mid-air extrusions and possibly failed prints. PrusaSlicer now extends the lines of the bridge infill so that their ends are supported by the sparse infill on the layer below. The bridge infill is now always using ‘Thick bridges’. The new algorithm works for all infill types. The comparison image below shows exactly the same model (a cube with a counterbored hole in the top face).

Improved Ensure vertical shell thickness

PrusaSlicer 2.6 improves the handling of vertical shell thickness on sloping surfaces. Previous versions used rectilinear infill to address thinning walls and potential holes in steeply sloped areas. The latest version now identifies regions where short rectilinear lines could cause vibrations and surface artifacts, replacing them with a concentric infill. This method often leads to 10-15% shorter print times without compromising quality.

Other new features

  • Option to avoid crossing curled overhangs
  • Exporting STL objects with boolean operations
  • Assigning tool heads to different features
  • Idle temperature settings for multi-tool printers
  • Wipe tower stabilizing cone
  • One-click import from Pritables.com
  • Template filament profiles
  • New experimental support for SLA
  • One-file vendor profile enables adding new printers without a new PrusaSlicer release
  • G-Code thumbnails can now be exported in JPG and QOI formats
  • SLA hollowing is now up to 10x faster
  • SLA time estimate is now more accurate for the Original Prusa SL1S Speed
  • New and updated 3rd party printer profiles
  • Arrange’ and ‘Fill bed with instances’ functions now take into account skirt and brim
  • More intuitive Klipper firmware support
  • Opening 3MF files now gives the option to import the geometry only
  • New “PrusaConnect” host type with pre-filled URL
  • It is newly possible to set acceleration separately for external perimeters, solid infill and top solid infill
  • ‘Set Number of Instances’ now works when multiple objects are selected
  • Optional scrolling to mouse cursor rather than screen center