ProSliceform
Two sets of interlocking cross-sections that slot together into a lattice of your model.
Slice any 3D model into layers that stack back into the shape.

In short: Slices a 3D model into horizontal layers separated by gaps and joins them with a central spine (half-lap) or a dowel with spacer rings. Good for chess pieces, vases, busts and other mostly-vertical objects.
Load an STL (or start from the built-in chess pawn) and the generator cuts it into horizontal layers as thick as your sheet. Each layer's outline becomes a part, so the stack rebuilds the model. It suits chess pieces, vases, busts and other mostly upright shapes.
The layers are separated by gaps and held in line by a connector you choose: a central spine that slots into every layer with a half-lap joint, or a dowel through all of them with spacer rings. Either way the stack lines up by itself while the glue sets, instead of being nudged into place by eye.
The 3D preview shows the stack built from the exact parts you will cut. Downloads are SVG or DXF sheets nested to your sheet size, with part numbers engraved so you can lay the layers out in order.
Your STL is read in your browser and never uploaded. For a step-by-step walk-through, see From STL to laser-cut layers.
All of these can be changed in the app, and the 3D preview updates as you type. The name under each setting
is its key in a share link, e.g. https://laserpuzzle.app/app/#/stacked-layers?model=…; a link only
needs the settings that differ from the defaults.
| Setting | Default | What it does |
|---|---|---|
3D modelmodel | your file | Mesh file (STL recommended). |
Up axisup_axis | auto | Which axis of the file points up. 'auto' = the longest one. Options: auto, x, y, z. |
Upside downflip | off | Flip if the model comes out inverted. |
Rotate about verticalrotate | 0 ° | Chooses which side of the model the spine runs along. From -180 to 180 °. |
Heightheight | 60 mm | Scale the model to this height. 0 keeps the file's units (assumed mm). From 0 to 1000 mm. |
| Setting | Default | What it does |
|---|---|---|
Gap between layerslayer_gap | 3 mm | From 0 to 50 mm. |
Layer outlinesection_mode | middle | Where each layer samples the model: at its mid-height, the union (max) or intersection (min) of its top and bottom faces. Options: middle, max, min. |
Smallest featuremin_feature | 1 mm | Features thinner than this are removed (laser-cut wood breaks below ~1 mm). From 0 to 10 mm. |
Engrave next layer outlineengrave_next | on | Score the outline of the layer above onto each layer - looks nice and helps alignment. |
| Setting | Default | What it does |
|---|---|---|
Connectorconnector | spine | Options: spine, dowel. |
Spine insetspine_margin | 2 mm | How far the spine sits inside the model silhouette. From 0 to 30 mm. |
Spine minimum widthspine_min_width | 8 mm | Keeps the spine at least this wide at thin necks. From 2 to 100 mm. |
Dowel diameterdowel_diameter | 6 mm | Measure your rod. The hole is this + clearance. From 1 to 50 mm. |
Spacer outer diameterspacer_diameter | 12 mm | From 2 to 100 mm. |
Plus the material and machine settings every generator has: material thickness, kerf, slot clearance, sheet width, sheet height, part spacing, engrave part labels, cut line colour, engrave line colour.
ProTwo sets of interlocking cross-sections that slot together into a lattice of your model.
ProA layered topographic map from a heightmap or a terrain model.
ProA finger-jointed box with a snug cavity cut to the shape of your object.