CLI tool
prusa3d/PrusaSlicer avatar
prusa3d/PrusaSlicer

PrusaSlicer: a G-code generator for FDM and mSLA printers

G-code generator for 3D printers (RepRap, Makerbot, Ultimaker etc.)

9,377 stars2,359 forksC++AGPL-3.0

At a glance

What is it?
PrusaSlicer turns 3D models into printer instructions, supports Prusa hardware and machines from other manufacturers, and ships a command-line interface for automation. The catch is that Linux users get it only through Flathub.
Who is it for?
Adopt PrusaSlicer if you print on Prusa hardware or want per-layer control and a CLI for automation, and install it from the project page or Flathub rather than building from source. Skip it if you need a distribution package for Linux outside Flathub, or if you want a slicer that is not tied to one vendor's ecosystem.
Can I use it commercially?
Yes, with strict conditions. AGPL-3.0 is a network copyleft licence: if people use a modified version over a network, for example as a hosted service, you must offer them its source code under the same licence.
Is it still maintained?
Yes. The repository last received commits 9 days ago.
What is it written in?
Mainly C++, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on September 29, 2026, and from our analysis. They are not legal advice.

Editorial analysis

What PrusaSlicer solves, and for whom

A 3D printer does not read an STL. It reads G-code, a list of movement, temperature and extrusion commands. PrusaSlicer is the program that converts a model into those commands, and it handles both FDM printers, which melt filament, and mSLA printers, which cure resin. The README states that it is developed by Prusa Research and that, apart from Prusa printers, it supports machines from a wide variety of manufacturers. That second clause is what makes it more than a vendor utility: the configuration wizard covers third-party printers, so an Ender 3 owner can use the same slicer as someone with a Prusa MK4.

The intended audience is broad. A hobbyist wants to load a model, pick a profile and print. A workshop wants to slice a folder of parts without opening a window, which is where the command-line interface comes in. Someone doing multi-material work needs the tool to coordinate several extruders on one print. The README lists multi-material printing, painting, cutting and arranging objects, multiple projects with multiple beds, and a 3D preview of the generated instructions as the main features. The project is written in C++ and assumes a compiler that supports C++20, so building it from source is a developer task, not a user one.

How the slicing pipeline is put together

The repository layout tells you where the work happens. The slicing backend relies on Clipper by Angus Johnson for polygon boolean operations and offsets, and on Eigen for basic types and linear algebra. Those two libraries carry the geometry: Clipper resolves overlaps and insets, Eigen handles the numeric side. The GUI uses wxWidgets for windows and events, but most of the interface is a custom OpenGL toolkit built on the Yoga layout engine and Dear ImGui, which the README describes as making it platform-independent. The deps/ and bundled_deps/ folders hold the rest of the dependency list.

That split matters when you evaluate the tool. The geometry engine is separable from the interface, which is why a headless CLI is possible at all. The trade-off is weight: a C++ application with Clipper, Eigen, wxWidgets, Yoga and Dear ImGui linked in is not a small binary, and the build pulls a long dependency list. The README does not state memory requirements or slice times, so any figure you see elsewhere is not from this source.

Settings are hierarchical. The README describes parameters that affect the whole print down to single-layer adjustments, which is the mechanism behind variable layer height: a global profile, then per-object or per-layer overrides on top. Modifiers and painted supports are the same idea applied to geometry rather than layers.

Installing PrusaSlicer and slicing a first model

The README is explicit that the recommended installation method is the project page at prusa3d.com/prusaslicer, where you download and install by following the instructions there. For Windows and macOS you can alternatively download directly from the GitHub releases page. For Linux, the README states that PrusaSlicer is currently distributed exclusively through Flathub, which is a real constraint rather than a preference: there is no distribution package path documented in this README.

On Linux, the README points to the Flathub listing for com.prusa3d.PrusaSlicer. The repository itself gives no flatpak install or run command, so follow the instructions on that Flathub page rather than a command copied from here.

If you would rather build from source, the README points to doc/Build.md and notes the C++20 requirement. That path is aimed at developers.

For a first real use, open PrusaSlicer and run the configuration wizard to pick your printer. Then drag an STL onto the plate. The README lists painting, cutting and arranging as in-app operations, so you can reposition the model before slicing. Choose your filament profile, then slice. The result is the G-code, which you can inspect in the 3D preview before sending it to the printer. The README says PrusaSlicer supports a wide range of ways to send prints, so the exact button depends on your setup. If you want to automate this, the README states you can make use of the command-line interface to use PrusaSlicer without GUI in your automation setups; the specific flags are not documented in the README, so read the CLI help output before scripting it.

Where PrusaSlicer gets in the way

The Linux distribution story is the clearest limitation. Flathub exclusive means no native package in the README's instructions, so environments where Flatpak is unavailable or unwanted have to fall back to building from source with a C++20 toolchain and the full dependency set. That is a meaningful barrier for a print farm running on a locked-down distribution.

Second, the release stream is not uniformly stable. The recent releases include version_3.0.0-alpha12 and version_3.0.0-alpha11 alongside version_2.9.6. The alpha tags are development builds. If you need predictable output across a farm, pin to the stable release line rather than the newest tag, because slicing parameters can change between versions and the same model may produce different G-code.

Third, the project is tied to one vendor. Prusa Research develops it, and the README's integration story runs through PrusaConnect and Printables. That is convenient if you are in that ecosystem and irrelevant or mildly annoying if you are not. The README does not document a rollback procedure for firmware or profile changes, and it does not describe what happens when a printer profile is missing from the wizard, so those are gaps to resolve in the discussions page rather than in the documentation.

Finally, the README does not state minimum hardware requirements. On a laptop with integrated graphics, the OpenGL-based interface is the part most likely to feel slow, and you will not find a stated baseline in this repository's README.

PrusaSlicer against Cura and OrcaSlicer

The most common comparison is with Cura. Both take a model and emit G-code, and both support non-Prusa printers. The difference in approach is the settings model. PrusaSlicer exposes parameters from the whole print down to single-layer adjustments and lets you paint supports and modifiers directly on the model, which is a geometry-first workflow. Cura's profile system is organized around print intent and material profiles, and it is a general-purpose slicer not owned by a printer manufacturer. If you want per-layer and per-object control, PrusaSlicer's hierarchy is the more direct fit; if you want a slicer with no vendor association at all, Cura is the neutral choice.

OrcaSlicer is the other name that comes up. It is a separate project rather than a mode of PrusaSlicer, so the decision is about which fork's calibration and profile ecosystem you want, not about a setting inside one application. This article does not cover OrcaSlicer's internals, and the PrusaSlicer README says nothing about it.

Slic3r is the historical alternative, and it is not really a competitor: the README states that PrusaSlicer is originally based on Slic3r by Alessandro Ranellucci and the RepRap community. Choosing between them is choosing between an actively pushed descendant and its ancestor.

Licence, upgrades and what maintenance costs you

PrusaSlicer is licensed under AGPL-3.0. The practical implication for most users is none: you download and run it. The implication appears if you modify the source and offer it to others over a network, because the AGPL's network clause is broader than the GPL's. If you embed slicing in a service, read the licence text and, where the stakes are high, get legal advice; this article is not legal advice.

Upgrade cost is low for end users. New releases are tagged in the repository, and the recommended install path is the project page, so upgrading means downloading a new build. The cost is higher if you pin profiles: a version change can alter defaults, and the README does not document a migration or rollback path for configuration. On Linux the Flatpak updates through Flathub, which is the least effort of the three platforms.

Maintenance status is straightforward. The repository is not archived, and the last push was on 2026-09-21, with version_3.0.0-alpha12 tagged the same day. That is a current project, not an abandoned one. The caveat is that the newest tags are alphas, so current activity does not mean the newest build is the one you should deploy.

Editorial conclusion

Adopt PrusaSlicer if you print on Prusa hardware or want per-layer control and a CLI for automation, and install it from the project page or Flathub rather than building from source. Skip it if you need a distribution package for Linux outside Flathub, or if you want a slicer that is not tied to one vendor's ecosystem. Before committing, check that your printer profile exists in the configuration wizard and verify that the CLI accepts your model format. The repository is not archived, and the last push was on 2026-09-21.

Frequently asked questions

Is PrusaSlicer free?

Yes. It is released under AGPL-3.0 and the README directs users to download it from the project page or the GitHub releases page at no cost.

Is PrusaSlicer better than Cura?

The README does not make that comparison. PrusaSlicer exposes parameters from the whole print down to single-layer adjustments and is developed by a printer manufacturer, while Cura is a general-purpose slicer; which fits depends on whether you want that per-layer control.

Is PrusaSlicer compatible with FlashForge?

The README states that PrusaSlicer supports machines from a wide variety of manufacturers in addition to Prusa printers, but it does not list specific third-party brands, so check the configuration wizard for a FlashForge profile.

How do I install PrusaSlicer on Linux?

The README states that PrusaSlicer is currently distributed exclusively through Flathub on Linux, so install it from that listing. Building from source is also possible and is documented in doc/Build.md.

How do I use variable layer height in PrusaSlicer?

The README describes setting printing parameters with precision, from settings affecting the whole print down to single-layer adjustments. Variable layer height is that per-layer control applied to layer thickness.

Official sources

  1. License: AGPL-3.0
  2. Project website
  3. prusa3d/PrusaSlicer on GitHub
  4. README
  5. Releases
Add this badge to your README

If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.

Add this badge to your README

markdown
[![Hysen Labs](https://hysenlabs.com/badge/prusa3d-prusaslicer.svg)](https://hysenlabs.com/projects/prusa3d-prusaslicer)