Browse Learn topics

Learn/Mill/Toolpaths, preview & posting

Material-removal simulation

Updated v2.4.3

At a glance

  • Press Play and watch a full 3D tool carve your stock in real time, driven by real machine motion
  • A live tool-load gauge reads the tool's true bite against the load you programmed — over-engagement is flagged at the exact program line
  • A full-width timeline ruler with labelled time graduations — drag the handle, Shift-drag for fine control, or hover to read the moment before you commit
  • Jump between operations, step one G-code line at a time, and run up to 100× speed
  • Run it backwards to put the stock back on, and drive the whole transport from the keyboard
  • Compare the finished stock to your part — green on-model, blue leftover, red gouged
  • Walls render on the cutter's true path — smooth curved finish walls and clean floors at the standard quality setting

Press Play on the Mill toolbar and your setup's stock appears solid in the viewport. The tool starts where the real machine does — safely above the stock at the retract height. As the program runs, a full 3D model of the selected tool — flute, shank, and holder — carves material away exactly where your posted G-code sends it. Bodies and toolpaths step aside automatically while the simulation is active (toggle either back on from the timeline bar — your view toggles are remembered for the next run), and everything returns the moment you stop. The timeline clock reads as a plain duration — 5m 12s / 5m 43s — so time into the run is glanceable.

Real machine motion

Playback runs on the same motion engine that drives JetFlight, using your machine profile's real acceleration and feed limits — rapids, ramps, and corner behavior match what the machine will do on the floor. The transport works like a control: play, pause, stop, feed and rapid overrides, a work DRO, and a speed multiplier from 0.5× up to 100× so a long program reviews in seconds. The carving itself never lags the cutter: the stock engine sweeps the exact posted path hundreds of times faster than real time, and follows it exactly however finely the toolpath engine steps it, so even the densest dynamic-clearing programs carve the moment the tool passes — at any playback speed, without working your computer hard.

Walls that look machined

The carved stock isn't an approximation of your program — the engine remembers exactly where the cutter's edge passed and draws every wall on that true surface. Curved finish walls come out smooth as a turned part, pocket floors read clean and flat, and the edge where a finish pass meets the floor stays crisp, all at the standard quality setting. Scrubbing the timeline backward keeps that fidelity too: the surface you land on is the surface the cutter left, not a coarser replay.

The tool load gauge

The simulation measures exactly how much material the cutter removes at every instant and shows it as a live load percentage against the cut you actually programmed — your optimal load or stepover, at the real depth of the pass you picked, at your cutting feed. A path holding its programmed load reads right around 100%; sustained higher means the tool is biting wider than you asked for. If you want the gauge calibrated to a specific tool's limit instead, set Max MRR on the tool in the tool library.

After the run, the report graphs the tool's true bite across the whole program. A healthy 2D Dynamic path draws a flat line at 100%, and anywhere the path holds too much engagement is flagged with its position, how far the excursion ran, and the exact line of the posted program — click a flagged excursion (or anywhere on the graph) and the simulation scrubs straight to that moment. Helix entries and ramps are recognized as entries and drawn separately, so a plunge biting full width isn't a false alarm. Each operation also reports its typical engagement, its actual cut width, and how much of its time in the material was spent cutting air, and the full series exports to CSV — each sample carrying its class, position, and program line — ready to compare two versions of a program side by side.

Finishing work reads honestly: a contour skimming the thin finish allowance a clearing pass left behind counts as real cutting at its real width — never "air" — a helix bore's descending cut counts as cutting time, and a chamfer's 100% mark is the chamfer band itself, not a full-width slot the tool could never take. The removal-rate readout adapts its precision too, so light finishing never displays as zero.

Scrub, step, and reverse

The scrubber runs the full width of the simulation bar, marked like a ruler: labelled time graduations — 10m, 20m, 1h — chosen to suit the length of your program, finer marks between them, and each operation's start marked separately above the track. Grab the handle and drag to jump the stock to any moment in the program, forward or backward; hover anywhere first and it tells you the time under the cursor and which operation owns it. Hold Shift while dragging and the handle moves eight times slower than the mouse, so you can land on an exact moment in a seventy-minute job. The scroll wheel nudges the playhead by one graduation, and Shift+wheel steps exactly one line of G-code.

The ◀ ▶ buttons skip whole operations, recomputing the material state instantly, and Play resumes cutting from the operation you land on. Elapsed and total cycle time read out live, and the report breaks time down per operation — cutting vs rapid — plus material removed.

Step one block at a time. Pause, then use the ‹ › buttons to move the cutter forward or back exactly one line of G-code. Walk into a move you're unsure about and watch precisely what it takes off.

Run it backwards. The speed control goes negative: below zero the simulation plays in reverse, putting material back on as the cutter retraces its path. Back up to the moment something went wrong, then step forward into it. The ladder reads … -1×, -0.5×, 0×, 0.5×, 1× … — stepping down from 0.5× stops the run where it stands, and stepping down once more starts it going backwards. Coming off zero picks straight back up without touching Play.

Drive it from the keyboard. While the simulation is active, Space plays and pauses, Escape exits, and = move down and up the speed ladder, ←/→ step one line, and Shift+←/→ jump between operations. All of them are listed in Settings → Keyboard and can be rebound to whatever you prefer — the toolbar tooltips always show your current binding.

Simulate just one operation: select it in the browser before pressing Play and the simulation starts right there — the stock appears with every earlier operation already carved, so engagement and tool load read true to the real job — and completes at that operation's end. The timeline highlights the selected span; you can still scrub the whole program, and scrubbing outside the span simply returns the run to normal full-program behavior. Select several operations to run that stretch of the program.

Catch problems on screen

Three things get flagged automatically, each with its exact position and depth in the report's issues list:

  • Rapid crashes — a rapid move that would plow through uncut stock, reported with how far the tool actually drove into material; a hair's-width graze of a finish skin doesn't cry wolf
  • Flute overrun — a cut deeper than the tool's flute length (shank rubbing)
  • Holder contact — the holder envelope touching stock

When the run ends, flip on the compare view to color the remaining stock against your part: green where it's dead on, blue where stock remains, red where the program cut into the part. A small color key appears under the toolbar whenever the compare view is on — Stock, At model, Excess stock, Gouge — with swatches matched to your theme and stock material, so the colors are always self-explanatory. Edge passes like chamfers read clean: skimming the boundary between part and air is part of the job and never flags as a gouge, while a genuine cut into the part still shows red exactly where it happened. Walls color honestly as the program runs, too — a finished wall turns green the moment the finish pass cuts it, with only the actual remaining material (like an unmachined chamfer lip along the top edge) staying blue until the operation that removes it.

Tool geometry that matches your rack

The tool library carries flute length, stickout, shank diameter, and holder diameter for every tool — the simulated tool is dimensionally the one in your spindle. Leave any of them at 0 and sensible defaults apply, so older tool libraries simulate without any editing.