Plankulator
date
Aug 12, 2025
type
Project
year
2025
slug
plankulator
status
Published
tags
React
Website
Woodworking
summary
Generate a cut list from an OBJ

PLANKULATOR loads an OBJ file, matches all the pieces to whatever source material you have set up, then generates an optimized cutting plan
Woodworking
My approach to woodworking is this:
- Build roughly whatever I want to build in Modo
- Research what raw materials I could use
- Rebuild it out of pieces that fit those dimensions
- Figure out how to fit all those pieces into the source material and make a cut list.

That last step was always a bit cumbersome. But no more! - Because I automated it!
Plankulator!
Now I can export the 3D model as an OBJ, import that into Plankulator and it will tell me exactly how everything needs to be cut.
For this to work, the OBJ needs to have all the pieces as separate objects. That’s pretty much it. You define the dimensions of your source material you want to use, then upload your OBJ.
The script looks at all the pieces, assigns colours (identical pieces get the same colour), figures out the best orientation for everything, and then gives you a list (and a 3D view where it colour-codes the pieces!):

And it gives you a Cutting Plan that illustrates how much wood you need and exactly how to cut it:

If you enter prices for the source materials, then it also calculates a cost.
Furthermore you can click on
Print a Cutting Plan
and it will give you nice sheets with checkboxes for you to track pieces while you cut.
Tech
All of this runs locally, you’re not uploading your OBJ anywhere - it’s all handled by Javascript in your local browser.
It’s plain old React with three.js handling the 3D side of things.
Try it here: ➡️ https://plankulator.brightlight.rocks