cd /news/developer-tools/how-to-nest-laser-cut-parts-for-free… · home › topics › developer-tools › article
[ARTICLE · art-153745] src=dev.to ↗ pub= topic=developer-tools verified=true sentiment=↑ positive

How to nest laser-cut parts for free in your browser

A developer demonstrated Nestbolt, a free MIT-licensed nesting tool that runs its layout engine locally in the browser via WebAssembly, arranging 91 laser-cut parts across a 600 x 400 mm sheet at 64.6% utilisation in a 30-second search. The tool imports SVG, DXF and LightBurn files, validates layouts with Clipper2 so invalid results are never returned, and exports sheets as SVG or DXF with curves preserved rather than re-polygonised. The project states that files are never uploaded and that the last sheet is compressed toward one end to leave a usable offcut.

by read4 min views1 publishedOct 20, 2026

Written with AI help (Claude), checked against the project's docs. Disclosure: this account belongs to the small project that makes Nestbolt.

Nesting means arranging the parts of a drawing on your sheet before you cut, so they use less material. Nestbolt is a free, MIT-licensed nesting tool for fixed sheets (laser, CNC, plasma, waterjet, fabric). Its browser app runs the nesting engine on your own computer in WebAssembly, and the page says it plainly: "Everything runs in this browser; files are never uploaded."

Below is one real run, step by step, with the numbers the app showed. I ran it on 20 October 2026 in desktop Chrome on the hosted app.

Go to skulitom.github.io/Nestbolt. There is nothing to install and no account. If you just want to see how it behaves, it has five one-click examples: finger-jointed boxes, letters inside letters, a mechanical kit, a sewing pattern and interlocking gears.

Click Import SVG, DXF or LightBurn (or drop files on it). The importer treats each closed outline as a part and any outline inside it as a hole, so small parts can later sit inside larger ones.

My file was a 420 x 70 mm SVG with six outlines: a cat ornament, a star, a coaster, a gear, a heart keyring and a name tag. The app listed them as six parts with their areas (26.1, 8.4, 17.8, 14.1, 14.1 and 16.9 cm²) and showed what its cleanup did:

laser-parts.svg: cleanup removed 0 exact duplicate segment(s), 1 zero-length segment(s); merged 0 overlapping collinear segment(s)

Gaps up to 0.005 mm are joined automatically; larger repairs are listed with their positions. The import panel also shows which layers and colours it picked as cut lines, which is worth a look if your drawing has engraving or guide layers.

Each part gets a Qty box, a Rotation choice and a Mirror tick box. Rotation options are 0/90/180/270° (the default), 0/180° (grain), Fixed 0°, Every 15° and Free. Use 0/180° when the grain or pattern direction matters.

I typed 12 cats, 20 stars, 8 coasters, 16 gears, 20 hearts and 15 tags: 91 parts, default rotations, no mirroring.

The default sheet is 600 x 400 mm with a 5 mm margin, and the preset list has Diode laser 300×200, CO2 bed 600×400, Plywood 1220×2440, two sheet-metal sizes and a 1500 mm fabric roll. You can add more sheet sizes, a count limit per size, a remnant outline (an odd-shaped leftover piece) and defects to avoid.

Under Settings: part spacing and edge spacing (1 mm each by default), the goal (** Place every part**, Fill the sheets (most area) or Fill by priority) and the time budget (** Time**, 30 s by default). I left all of these at their defaults.

The best layout found so far is drawn while the search runs. After the 30 seconds, my result read:

Sheets Utilisation Placed Check
1 64.6% 91/91 valid

All 91 parts fit on one sheet, and the unused material was left as one clear strip, labelled offcut 600 × 49 mm, along the top. The project's README says the last sheet is compressed towards one end so that the offcut stays usable.

Check: valid comes from an independent validator (Clipper2) that tests overlap, spacing, containment, rotations and quantities. According to the README, invalid layouts are never returned.

The search is time-based, so results vary a little between runs: the same file and quantities gave 65.0% on 17 October, on an older build of the app.

Each sheet has SVG and DXF buttons, and Download all sheets (ZIP) gets them all at once. My sheet-0.svg was 600 mm x 400 mm with all 91 parts as paths in one CUT group. The name tags' rounded corners were still SVG arcs (A 6 6 ...), not chains of short lines: the README says export is "transformed from the original curves rather than re-polygonised".

Open the file in your laser or CAM software and check it there before cutting. Save keeps the project in the browser, and Project ZIP saves it as a file.

main branch. The stable release (v0.1.0) is a .lbrn2 and .lbrn) and lead-in allowances are preview features. The same engine also comes as command-line tools for Windows, Linux and macOS (Apple silicon), and as an MCP server, so an AI agent can import, nest, validate and export a job (agent interface). The engine builds on jagua-rs and sparrow by Jeroen Gardeyn and collaborators.

More guides on the project site: free nesting for laser cutting, nesting SVG and DXF in the browser, the five examples and the benchmark results.

── more in #developer-tools 4 stories · sorted by recency
── more on @nestbolt 3 stories trending now
sponsored brought to you by zahid.host 4,200+ EU-deployed projects
reading about agents? ship yours in a single git push.

Run your AI side-project on zahid.host

EU-based hosting, git-push deploys, automatic HTTPS, no cold starts. Free tier with a custom domain — perfect for shipping the agent you just read about.

$git push zahid main
→ Live at https://your-agent.zahid.host ✓
Get free account → Pricing
from €0/mo · no card required
LIVE [news/how-to-nest-laser-cu…] indexed:0 read:4min 2026-10-20 · —