My machine
Many vendors publish no feed rate, so ours is an estimate.
The cut
Deflection scales with the cube of this.
CautiousBalancedPushing it
Plunge rate
—
Stepover
—
Chip per tooth—
Surface speed—
Removal rate—
Cutting force—
Tool deflection—
Frame flex—

What this cut looks like

Scale drawing of the cut

Your spindle's power at this speed

Available spindle power against RPM
Power available Power needed

Where your spindle can run

0

What's limiting this cut

Each bar is how much of that limit this cut uses. Past the line is what's holding you back.

HeadroomTight At the limit100%
Save & share
Why these numbers
Machine, spindle & bit detail
Method, assumptions & sources
Advertising banners

Banners only appear when at least one is available — with none, nothing is added to the page at all. Every banner opens in a new browser window. None of this touches a single calculated number.

Must start with http:// or https://. Opens in a new browser window.
Image on its own, with no headline, renders as a full-width banner.
A JSON list read at every launch, so banners can change without shipping a new build. Either a plain array or {"banners":[…]}.
A starting point, not a guarantee.
Test in scrap. Trust your ears over any calculator.

Every figure here is an estimate produced by a model. Nothing in it has been validated against a real cut. Feedbench is provided as is, without warranty of any kind, express or implied, and without any warranty of merchantability or fitness for a particular purpose. You are operating machinery that can cause serious injury and destroy work: you remain responsible for every number you send to it. MIT licensed — see LICENSE.

Cut a test grid

Every cell is cut at a different feed rate and depth. Run it in scrap, look at the result, and read your machine's real limit straight off the workpiece.

Live preview

Where Feedbench says you are Test cell
Stock needed
—
Deepest cut
—
Run time, roughly
—
Cells
—
What each cell cuts
X axis — feed rate
Y axis — depth per pass
Tool & machine
Used for every downward move. Slower than the cutting feed, because plunging is the move most likely to snap a bit.
Get it to your machine
1Onto a USB stick Share → Save to Files, then plug a USB stick into your phone with an adapter and move it across. Most controllers read straight off a stick.
2To the computer that runs the machine Share → Google Drive, iCloud, Dropbox or OneDrive, then open the same folder on the shop PC and load it into your sender.
3Email or message it to yourself Share → Mail or WhatsApp. Crude, but it works anywhere and leaves you a dated record of what you cut.
4Straight to a networked controller FluidNC, grblHAL and CNCjs have their own upload page. Save the file first, then open the controller's address in your browser and upload it there — this app cannot post to it directly, because browsers block a secure page from talking to an unsecured box on your own network.
How to read the result

Zero the machine at the front-left corner of your stock with Z0 on the top face, then run the file. Cells are cut front row first.

Left to right, feed rate climbs. Front to back, each pass goes deeper. Find the last cell with a clean wall and no burning — the one to its right or behind it is where your machine gave up.

Burning or a glazed wall means too slow for the RPM. Chatter marks or a wavy wall means too fast for the machine's stiffness. A stalled or lost step means too deep.

Every file is millimetres (G21) whatever units the app is showing, because GRBL is happiest that way. Read the header comments at the top of the file — the whole setup is written into them.

Designed to find the point where the cut fails.
Scrap only, and stay near the stop button.
—
Spindle speed
—
Feed rate
—
Depth per pass
—
—