- C++ 52.3%
- G-code 29.8%
- HTML 9.8%
- C 6.1%
- CMake 0.6%
- Other 1.1%
| Filename | Latest commit message | Latest commit date |
|---|---|---|
| .github | ||
| bundled_deps | ||
| cmake | ||
| deps | ||
| doc | ||
| resources | ||
| resources-src | ||
| specs | ||
| src | ||
| tests | ||
| .clang-format | ||
| .gitignore | ||
| AUTHORS.md | ||
| CMakeLists.txt | ||
| CMakePresets.json | ||
| LICENSE | ||
| README.md | ||
| version.inc | ||
PrusaSlicer
PrusaSlicer enables you to take your 3D models, generate 3D printing instructions and send them to your 3D printer. It supports both FDM 3D printers and mSLA 3D printers. It is developed by Prusa Research and apart from Prusa printers it supports machines from a wide variety of manufacturers.
PrusaSlicer is originally based on Slic3r by Alessandro Ranellucci and the RepRap community.
Installation
The recommended installation method is to go to the PrusaSlicer project page and download and install the software by following the instructions there.
Alternatively, for Windows and macOS, you can download the software directly from the GitHub releases page. For Linux, PrusaSlicer is currently distributed exclusively through Flathub.
If you prefer, you can always build PrusaSlicer yourself from source. See the documentation to learn how to do it.
Main features
- Set the printing parameters with precision - from settings affecting the whole print down to single-layer adjustments.
- Modify your objects before printing to best suit your needs, you can paint, cut, arrange and do many more directly in PrusaSlicer.
- Open multiple projects at once, each containing multiple beds (each with potentially different settings).
- Make full use of multi-material printing
- Use your preferred method to send your prints to the printer, PrusaSlicer supports a wide range of possibilities.
- View the generated print instructions in an advanced 3D preview.
- You can make use of the command-line interface to use PrusaSlicer without GUI in your automation setups.
- If you want, you can make use of the integration with PrusaConnect and Printables to greatly simplify your workflow.
Reporting a bug
Did you find a bug? Bugs can be reported in our GitHub issue tracker, but first make sure your report complies with the Issue tracker policy. Are you not sure? Get in touch in our GitHub Discussions, before filing a bug report in the issue tracker. You can always file a bug report later, once you have more confidence.
How to get in touch
We maintain a GitHub Discussions page in this repository to be used for general discussions, questions and feature requests. Furthermore, there is an announcements category, which we use to communicate with you directly.
Pull requests
Read our contribution guide to get more information.
Technical stack
All of PrusaSlicer is written in C++, using CMake as the build system. The code assumes that the compiler supports C++20.
The slicing backend heavily relies on Clipper by Angus Johnson, which handles polygon boolean operations, offsets and similar. Eigen library is used for basic types and linear algebra calculations.
wxWidgets library is used to handle GUI windows and events across platforms. Most of the UI is implemented using a custom OpenGL-based UI toolkit based on the Yoga layout engine and Dear ImGui, which makes it platform-independent.
The application uses many other libraries. You can see the deps/ and bundled_deps/ folders in the source tree to see the complete list. We are grateful to the authors and maintainers for open-sourcing their work.