Learn

Jerk and S-curve motion: the time trapezoids miss

On a modern industrial control, even the acceleration accelerates. That’s jerk limiting, smoother motion, better finish, and a little extra time on every ramp. Here’s how it works.

The ramp has a ramp

A trapezoidal move switches acceleration on at full strength, holds it, switches it off. Clean math, hard on the machine. A jerk-limited controller ramps the acceleration itself, building it up and easing it off, so the velocity curve rounds into an S-curve. Jerk is the rate of that build-up, in mm/s³.

Why controllers do it: less vibration, less servo shock, better surface finish at speed. Fanuc AICC, Siemens, Heidenhain and Haas smoothing all work this way. GRBL, Mach and LinuxCNC’s default planner run pure trapezoids, which are simpler and exact for those machines.

What it costs

Each ramp takes a touch longer: about a / J extra seconds, acceleration divided by jerk. At 2500 mm/s² and 20,000 mm/s³, that’s ~12 ms per ramp.

Twelve milliseconds sounds like nothing. Now count the ramps. A 3D-surfacing file is tens of thousands of short moves, each with its own accelerate and decelerate. That is the exact place a trapezoid estimate already runs closest to the wire. Pay 12 ms tens of thousands of times and the program lands minutes past the trapezoid prediction. Corners feel it too: jerk adds its own corner speed limit alongside the acceleration one.

Long moves shrug it off

A pocketing program of long straight cuts spends its life at cruise. Two slightly longer ramps per move is noise. That’s the pattern: jerk matters where moves are short and corners are dense (detailed 3D work, engraving, fine contours) and fades everywhere else.

One field, matched to your machine

UltraNC has a single Jerk setting in Machine dynamics. Enter your controller’s value and every ramp uses true S-curve timing, with the jerk corner limit applied on top of the acceleration one. Leave it at 0 for trapezoidal machines. The math stays exact, to the digit. Typical values: 5,000 to 20,000 mm/s³ hobby-class, 20,000 to 100,000+ industrial. Fastest calibration: simulate a program you’ve timed on the machine and tune until the numbers meet.

Open the viewer →

Common questions

What is jerk in CNC motion?

The rate of change of acceleration, in mm/s³. A trapezoidal controller switches acceleration on and off instantly. A jerk-limited one ramps the acceleration itself, so the velocity profile becomes an S-curve. Smoother on the machine, gentler on the part finish, and slightly slower on the clock.

Which controllers are jerk-limited?

Modern industrial ones: Fanuc with AICC, Siemens, Heidenhain, Haas smoothing modes. Most hobby-class controllers (GRBL, Mach, LinuxCNC's default planner) run pure trapezoids. If your machine is in the second group, jerk simply doesn't apply: leave the setting at 0 and the math is exact.

How much time does jerk limiting add?

Each acceleration ramp gains roughly a/J seconds, acceleration divided by jerk. At 2500 mm/s² and 20,000 mm/s³ that's about 12 ms per ramp. That is tiny per move but real per program: a 3D surfacing file with tens of thousands of short moves pays it tens of thousands of times. Long-move programs barely notice.

What jerk value should I enter?

Your machine's, if you know it. It lives in the control parameters. If you don't: hobby-class machines sit around 5,000 to 20,000 mm/s³, industrial VMCs 20,000 to 100,000+. Start near 20,000 and tune until the simulation matches a program you've actually timed. Zero means off: pure trapezoidal.

← Back to Learn