Stoatworks Labs

Printbed Optimiser

How many to print at once, sliced by OrcaSlicer in your browser

In developmentBrowser appTypeScript
Printbed Optimiser — How many to print at once, sliced by OrcaSlicer in your browser
The live page in Chrome after a real sweep: one of the printed USB guards from this site's parts, on the Bambu Lab X1 Carbon preset with 0.20 mm Standard, Bambu PLA Basic and the Smooth Cool Plate. Twenty-four plates sliced, and 14 a plate recommended. Not printed.

What it does

How many of a part to put on one plate is a slicing question. A fuller plate spreads the time spent clearing the bed and starting again over more parts, but the returns shrink: the travel between parts grows, and past some count each extra part saves a few seconds while putting one more at risk if the plate fails. Where that curve flattens depends on the part, the printer and the process, and the only way to find it is to slice the plate at every count and look, which nobody does by hand past the third or fourth.

So this does it. It slices each part on its own first, to prove it prints and to measure the brim OrcaSlicer gives it, then packs the fullest plate the bed will take, keeping to the printable area, the printer's no-go zones and, on a two-nozzle printer like the H2D, where both nozzles reach. Then it slices the plate at every count from one to twelve, and about fourteen more up to the full plate, and draws the time per piece for each. The recommendation is the fewest per plate within a tolerance you set of the fastest, counting the time you say it takes between plates, and preferring plates OrcaSlicer passes without a warning.

The slicer is OrcaSlicer's libslic3r, compiled to WebAssembly by the Muon3D Slicer Engine, running in the tab on your own machine. The engine is AGPL-3.0 and is served unmodified beside the MIT app as a program of its own, which the app only sends messages to. There is no server and no account: the page, the engine and the printer profiles are static files, your models are read in the browser and never uploaded, and every time the page shows came out of a slice. The packer only decides where the parts go.

  • Every count from one to a full plate sliced by OrcaSlicer's own engine, up to three slicers at once
  • Recommends the fewest per plate within a tolerance of the fastest time per piece, counting your time between plates
  • Packs on a 0.5 mm grid around the printer's no-go zones and, on the H2D, where both nozzles reach
  • Each part sliced on its own first, so the layout leaves room for the brim OrcaSlicer will give it
  • Flags a part too tall for the printer, one that barely touches the bed, tall thin parts without a brim and overhangs with supports off, and offers a better face to lay it on
  • Make a number: splits an order across plates for the shortest total
  • STL and 3MF in, Bambu Studio and OrcaSlicer project files included; a 3MF of the plate or its G-code out
  • OrcaSlicer's printer, process and filament presets, for every maker in its profile set, and a build plate choice on printers that take one
  • Runs in the browser tab with nothing uploaded; the first visit downloads up to 13 MB of slicer and profiles

Where it stands

An early preview. I've run it end to end in Chrome on a Mac, on OrcaSlicer's Bambu Lab X1 Carbon preset (a plate of cubes, a mixed kit, a quantity split and both exports), and the H2D's two-nozzle bed is covered by a test against the real engine. Other makers' presets load, but I haven't sliced a plate on any of them, and I haven't tried Firefox or Safari. I haven't printed anything it has laid out yet, or opened an exported 3MF in Bambu Studio. The times are OrcaSlicer's estimates, so check the first plate before you leave a long job running.