Workbench

Write a customizable design: the laser cut version in KerfScript, the 3D print version in OpenSCAD, or both. Variables become settings and the preview updates as you type. Save it to My Designs or publish it to the community so others can customize it.

Code

No laser cut version yet

Write KerfScript here and people get an SVG for their laser. Leave it empty and this design has no SVG.

Console

Messages from your code appear here.

Nothing to preview: this design has no laser cut version yet.

Quick reference

KerfScript docs

Settings

A top-level variable that holds a number, text, true or false, or a list of numbers becomes a setting. The comments work the same way as in OpenSCAD.

/* [Size] */
width = 70; // [30:1:160]
shape = "round"; // [round, star]
hole = true;

Laser layers

Shapes are cut unless you wrap them in engrave() or score(). Each operation gets its own coloured layer in the SVG.

rect([70, 30], r = 4);
engrave() text("Hi", size = 10);
score() circle(d = 20);

Boxes

use <kerf/box> adds a finger-jointed box. material() sets the sheet thickness and kerf, and the joints follow them.

use <kerf/box>

material(thickness = 3, kerf = 0.1)
    box([120, 80, 50], lid = true);