raistlin7447 7b3228d10d Cover the libnest2d nesting engine and fix an NfpPlacer crash (#14267)
* fix(libnest2d): skip the excluded-region alignment pass when there are none

NfpPlacer::finalAlign(), run from clearItems() and the destructor, always
ran the "find a best position inside the NFP of fixed items" pass even when
no items are fixed. With nothing to avoid, calcnfp() computes the inner-fit
NFP of the pile and can feed clipper a coordinate outside its allowed range.
On Linux/clang the value stays in range so it went unnoticed; on MSVC the
clipper "Coordinate outside allowed range" exception escapes the noexcept
destructor and aborts the process (exit 0xC0000409).

Build the excluded set up front and only run the pass when it is non-empty.
The block exists solely to keep the pile clear of fixed items (excluded
regions / wipe tower), so it is a no-op when there are none and the
wipe-tower behaviour is unchanged.

* test(libnest2d): remove dead nesting tests and split the suite by feature

Seven of the suite's hidden [.] test cases drove code paths Orca abandoned
at the BambuStudio fork: BottomLeftPlacer (used nowhere in src/) and the
stock default NfpPlacer backend, which returns zero bins in Orca. They have
been red since the fork and are never registered with ctest. Remove them.

Split the 1,000-line libnest2d_tests_main.cpp into per-feature files, per the
repo convention, sharing a header for the no-fit-polygon backend setup that
every translation unit must agree on (ODR):

  libnest2d_tests.cpp       Item and nest() basics
  test_geometry.cpp         geometry primitives
  test_nfp.cpp              no-fit-polygon machinery
  libnest2d_test_utils.hpp  shared includes and the NFP backend specialisation

Along the way: drop a debug exportSVG() helper that only wrote a file on test
failure (so the suite never leaves stray assets), convert the deprecated
Catch::Approx to WithinRel/WithinAbs matchers, and give the tests descriptive
names.

* test(libnest2d): add NfpPlacer unit tests

NfpPlacer is the placement engine the arranger drives, but the suite only
covered the geometry primitives. Add a fixture and five tests that exercise
pack()/accept() directly: a single item lands in the bin, an oversized item
is rejected, the first item is seeded for every starting point, many items
pack without overlap, and the rotation candidates are searched. This lifts
nfpplacer.hpp line coverage from 42% to 87% in the libnest2d suite.

* test(libslic3r): add arrangement::arrange() integration coverage

The libnest2d suite cannot reach Orca's real nesting entry point because it
does not link libslic3r. Add test_arrange.cpp driving arrangement::arrange():
items land on the bed and within bounds, do not overlap, are spaced by their
inflation, an oversized item stays unplaced, overflow spills onto virtual beds,
an empty input is a no-op, and the DONT_ALIGN and USER_DEFINED final-alignment
paths are exercised. A self-test guards the overlap check the other cases use.
2026-06-18 23:40:37 +08:00
2025-11-23 20:47:07 +08:00
2026-06-14 18:35:56 +08:00
2026-06-18 09:13:51 -03:00
2026-06-18 09:13:51 -03:00
2026-06-18 09:13:51 -03:00
2024-12-12 22:21:17 +08:00
2026-06-18 09:13:51 -03:00
2024-03-17 23:14:43 +08:00
2025-08-22 20:02:26 +08:00
2026-05-16 22:22:06 +08:00
2026-06-14 18:35:56 +08:00
2026-03-19 23:17:03 +08:00
2026-03-19 23:17:03 +08:00
2023-08-20 20:02:54 +08:00
2026-06-05 14:20:27 -03:00
2026-05-10 02:21:13 +08:00

OrcaSlicer logo

OrcaSlicer%2FOrcaSlicer | Trendshift

GitHub Repo stars Build all

OrcaSlicer: an open source Next-Gen Slicing Software for Precision 3D Prints.
Optimize your prints with ultra-fast slicing, intelligent support generation, and seamless printer compatibility—engineered for perfection.

Official links and community

Official Website:

OrcaSlicer.com

Github Repository:

GitHub Logo

Follow us:

X Logo
YouTube Logo

Join our Discord community:

discord logo

⚠️ CAUTION:
Several clickbait and malicious websites, such as orca-slicer[.]com and orcaslicer[.]net, are pretending to be the official OrcaSlicer site. These sites may redirect you to dangerous downloads or contain misleading information.
Our only official website is www.orcaslicer.com.

If you come across any of these in search results, please report them as unsafe or phishing to help keep the community secure with:
- Google Safe Browsing
- Microsoft Security Intelligence
- IPThreat

Main features

  • Advanced Calibration Tools
    Comprehensive suite: temperature towers, flow rate, retraction & more for optimal performance.
  • Precise Wall and Seam Control
    Adjust outer wall spacing and apply scarf seams to enhance print accuracy.
  • Sandwich Mode and Polyholes Support
    Use varied infill patterns and accurate hole shapes for improved clarity.
  • Overhang and Support Optimization
    Modify geometry for printable overhangs with precise support placement.
  • Granular Controls and Customization
    Fine-tune print speed, layer height, pressure, and temperature with precision.
  • Network Printer Support
    Seamless integration with Klipper, PrusaLink, and OctoPrint for remote control.
  • Mouse Ear Brims & Adaptive Bed Mesh
    Automatic brims and adaptive mesh calibration ensure consistent adhesion.
  • User-Friendly Interface
    Intuitive drag-and-drop design with pre-made profiles for popular printers.
  • Open-Source & Community Driven
    Regular updates fueled by continuous community contributions.
  • Wide Printer Compatibility
    Supports a broad range of printers: Bambu Lab, Prusa, Creality, Voron, and more.
  • Additional features can be found in the change notes.

Wiki

The wiki aims to provide a detailed explanation of the slicer settings, including how to maximize their use and how to calibrate and set up your printer.

Download

Stable Release

📥 Download the Latest Stable Release
Visit our GitHub Releases page for the latest stable version of OrcaSlicer, recommended for most users.

Nightly Builds

🌙 Download the Latest Nightly Build
Explore the latest developments in OrcaSlicer with our nightly builds. Feedback on these versions is highly appreciated.

How to install

Windows

Download the Windows Installer exe for your preferred version from the releases page.

Windows Package Manager

winget install --id=SoftFever.OrcaSlicer -e

Mac

  1. Download the DMG for your computer: arm64 version for Apple Silicon and x86_64 for Intel CPU.

  2. Drag OrcaSlicer.app to Application folder.

  3. If you want to run a build from a PR, you also need to follow the instructions below:

    Quarantine
    • Option 1 (You only need to do this once. After that the app can be opened normally.):

      • Step 1: Hold cmd and right click the app, from the context menu choose Open.
      • Step 2: A warning window will pop up, click Open
    • Option 2: Execute this command in terminal:

      xattr -dr com.apple.quarantine /Applications/OrcaSlicer.app
      
    • Option 3:

      • Step 1: open the app, a warning window will pop up
        mac_cant_open
      • Step 2: in System Settings -> Privacy & Security, click Open Anyway:
        mac_security_setting

Linux

OrcaSlicer is available through FlatHub:

Download on Flathub

Install from the command line:

flatpak install flathub com.orcaslicer.OrcaSlicer
flatpak run com.orcaslicer.OrcaSlicer

It can also be installed through graphical software managers (KDE Discover, GNOME Software, etc.) when Flathub is enabled. Search for OrcaSlicer in your software center.

AppImage

  1. Download App image from the releases page.

  2. Double click the downloaded file to run it.

  3. If you run into trouble executing it, try this command in the terminal: chmod +x /path_to_appimage/OrcaSlicer_Linux.AppImage

How to Compile

All updated build instructions for Windows, macOS, and Linux are now available on the official OrcaSlicer Wiki - How to build page.

Please refer to the wiki to ensure you're following the latest and most accurate steps for your platform.

Klipper Note

If you're running Klipper, it's recommended to add the following configuration to your printer.cfg file.

# Enable object exclusion
[exclude_object]

# Enable arcs support
[gcode_arcs]
resolution: 0.1

Supports

OrcaSlicer is an open-source project and I'm deeply grateful to all my sponsors and backers.
Their generous support enables me to purchase filaments and other essential 3D printing materials for the project.
Thank you! :)

Sponsors

QIDI BIGTREE TECH

Backers:

Ko-fi supporters : Backers list

Support me



Some Background

Open-source slicing has always been built on a tradition of collaboration and attribution. Slic3r, created by Alessandro Ranellucci and the RepRap community, laid the foundation. PrusaSlicer by Prusa Research built on Slic3r and acknowledged that heritage. Bambu Studio in turn forked from PrusaSlicer, and SuperSlicer by @supermerill extended PrusaSlicer with community-driven enhancements. Each project carried the work of its predecessors forward, crediting those who came before.

OrcaSlicer began in that same spirit, drawing from BambuStudio, PrusaSlicer, and ideas inspired by CuraSlicer and SuperSlicer. But it has since grown far beyond its origins. Through relentless innovation — introducing advanced calibration tools, precise wall and seam control, tree supports, adaptive slicing, and hundreds of other features — OrcaSlicer has become the most widely used and actively developed open-source slicer in the 3D printing community. Many of its innovations have been adopted by other slicers, making it a driving force for the entire industry.

The OrcaSlicer logo was designed by community member Justin Levine.

License

  • OrcaSlicer is licensed under the GNU Affero General Public License, version 3.
  • The GNU Affero General Public License, version 3 ensures that if you use any part of this software in any way (even behind a web server), your software must be released under the same license.
  • OrcaSlicer includes a pressure advance calibration pattern test adapted from Andrew Ellis' generator, which is licensed under GNU General Public License, version 3. Ellis' generator is itself adapted from a generator developed by Sineos for Marlin, which is licensed under GNU General Public License, version 3.
  • The Bambu networking plugin is based on non-free libraries from BambuLab. It is optional to the OrcaSlicer and provides extended functionalities for Bambulab printer users.
Description
Languages
C++ 80.5%
C 10.6%
JavaScript 5.2%
HTML 1.8%
CMake 0.7%
Other 0.7%