
Measured size.
Pick the blank from the catalog, then type what your calipers say. The plan follows the foam you actually have.
For CNC owners
The detail the home page leaves out: what the G‑code does, how the board is held through the flip, how to prove a file before it touches foam, and what's proven on a real machine and what isn't yet.
On the CNC tab the whole job runs on screen first, on a foam blank the size of yours, so you see every file do its work before you press cycle start.







At the end of the job the board rises off the table on its bridge stubs and the waste frame fades, so you can orbit it and judge both faces. Deck looks from underneath, Bottom from above, and both carry the "what's left" colors.


00:00
The whole job for the sample sample, —, at the Fine finish, cut from an —: deck, deck outline, flip and re-zero, bottom, fin pockets, bottom outline. — at — rpm. Estimated by the app and written into every file's header, along with the time at the other two finishes.
Cut › CNC opens on the machine, the post to write G‑code for, the blank, the finish and the Export button. Bits, deep cuts, tilt, machine settings, hold-down and the toolpath and carve preview wait under Advanced.


Pick the blank from the catalog, then type what your calipers say. The plan follows the foam you actually have.

Every Z is raised 2" or more, so the bit runs the whole job above the blank. The warning is orange and the button reads "Export air cut…".

Deep cuts and tilt, machine settings, bits and hold-down, for when the defaults aren't your shop.
The finish is part of Quick cut; bits and hold-down are under Advanced. Every choice shows what it does to the cut before you make it.

Fine (0.10" between passes, the default), Standard (0.18") or Draft (0.25"), each showing the ridge height it leaves and the whole-job time.

Surfaces, roughing, rails, outline and fin pockets each get their own bit, and so do the pin holes if you turn registration pins on. If one won't fit its job, too wide for the pocket or too short for the wall, it says so right under it.

Add the bits you actually own, with flute length, reach, feeds and a link to where you buy them. They belong to the shop, so every board can use them.

With double-sided tape, the app lists the end pads to tape, keeps every pass out of them on both sides, and checks the taped area against what the blank needs.


The G‑code is real, checked, and written for a person standing at the machine. Every file opens with a header you can read before you press cycle start.
We put ShapeWake's files next to a production cut of the same board from a commercial shaping program: same blank, same machine, each file at its own feeds, both run through the same stock simulator. ShapeWake was set to its Fine finish, 0.10" between passes, which leaves smaller ridges on the flats than the other files do.
Run both at the same feeds and it's 59 min 42 s against 1 h 42 min. Less of the job is spent cutting air, too: 12% and 11% of the feed moves on the deck and bottom, against 16% and 16%. ShapeWake joins its passes at feed, just above the finished surface through foam that's already cut, instead of lifting the bit between them; that took about ten minutes off this job.
Centroid Acorn (.ngc), GRBL (.nc), Mach3 and Mach4 (.tap), LinuxCNC (.ngc), ShopBot (.sbp). Inches or millimeters, whichever your machine speaks. The Acorn post is proven on a real machine; the other four follow their documentation but haven't cut foam yet, and their headers say so. Run an air cut first.
Where X0 Y0 is, which face is Z0 for this side, which axis to roll the blank about, how to re-zero after the flip, and where the three bridges are and when to cut them.
Before the files are written, every pass is run against a model of the blank. Each file lists the blank top and the spoilboard, the board's highest and lowest points, and the foam left above and below them. Tests check every Z stays inside the blank and every XY inside the bed.
EPS lets a ball nose run past its flute in one pass; PU and XPS don't. The policy is chosen from the blank material and spelled out in the header, with the depth it will reach.
(header excerpt loads from js/board-data.js, generated from the sample G-code)
Routed right after the bottom, with floors that follow the rocker and pockets that turn with the toe.

Futures and FCS don't publish pocket depths for the Futures ¾" box or FCS II, so the app and the G‑code header mark those approximate. Verify against your box, or cut a test pocket in scrap foam.
No router? Cut the blank with a four-axis hot wire, or send the files to a shop that cuts customer files.


Anything that reads one of five posts: Centroid Acorn, GRBL, Mach3/Mach4, LinuxCNC and ShopBot .sbp. The Centroid Acorn post is proven on a real machine. The other four follow their controllers' documentation but have not cut foam yet, and their file headers say so: run an air cut first and watch every move. You set the bed size and units in a machine profile; the board is checked against the bed before export. Hot-wire output is for a four-axis foam cutter.
For the Futures ILT ½" box, yes: the pocket is a proven two-tier recipe (a shallow recess for the flange, a deeper slot for the body) taken from a production cut file, with both floors following the rocker and the pocket turned with the fin's toe. For Futures ¾" and FCS II, the footprints come from published sources but the manufacturers don't publish pocket depths, so the app and the G-code header mark those "approximate, verify against your box". A box defined in an imported .s3dx file is cut as defined. Either way, a test pocket in scrap foam is cheap insurance.
No. Registration pins are optional and off by default. Without them, you flip the blank about its length, set it back where it was, and re-zero: X0 on the blank's centerline, Y0 from its ends, Z0 on the new top face. Every file's header spells that out with the numbers for your blank. If you'd rather use pins, turn them on: the job adds a short first file that drills two centerline holes for dowels, and the flipped blank drops back onto them.
By three foam bridges: one at the nose tip and one on each rail, ahead of the fins. They're 1" wide and left uncut by both outline passes, so the board stays in the blank until the last file is done. The tail is always cut clean. Afterwards, cut the bridges with a pull saw or a knife along the rail line and sand the stubs flush. The carve preview shows exactly where they are.
Yes. Pick a bit for each job (surfaces, roughing, rails, outline, fin pockets, pin holes) from the library or add your own with its size, flute length, feeds and a link to where you buy it. The app checks each bit fits its job, and the G-code includes the tool changes your controller expects.
.shapewake, a JSON document, the same on Mac and iPad. Save, open, recents and duplicate come from the system. Your cut settings are saved inside it, so a board cuts the same way next season.
Every file starts with a geometry check: blank top, spoilboard, board high and low points, and the foam left around them. Before export the whole job runs against a model of the blank, and the carve preview lets you watch it. Air cut writes the same job with every Z raised 2" or more, so you can watch the machine run it above the blank first. Automated tests confirm every finishing Z stays inside the blank and above the spoilboard, every XY stays inside the bed, and the cut surface matches the board within tolerance. Read the header anyway, verify the safe height under your Z convention, and check your bit's rated rpm. It's foam, but it's still a spinning tool.