The verdict in three sentences
If you want to open a file, see the path, and step through the code with an editor, NCViewer does that well and has for years. If you want to know how long the program takes on your machine, with acceleration, cornering, cycles, tapping, dwells, tool changes and subprograms on the clock, that is the job UltraNC was built for. They’re both browser tools that answer different questions.
At a glance
| UltraNC | NCViewer | |
|---|---|---|
| Time model | Motion planned: per-axis acceleration, corner slow-downs, jerk-limited S-curve if required, from your machine’s own limits | Statistics from the path, no machine dynamics profile |
| Cycles & subprograms | Expanded on the clock: drilling/boring cycles with pecks, L repeats and bottom dwells, rigid tapping with reversal time, M98/M97/o-word subprograms (nested) | Basic plotting of common codes (G00 to G03, G81-class) |
| Non-cutting time | Counted: tool changes, G04 and hole-bottom dwells, spindle reversal time, G28 returns | Not modelled |
| Material removal | Yes (3-axis): carves a virtual stock in the browser as the program runs, semi-transparent so you can watch the tool inside the cut. Needs WebGPU, and the viewer falls back to the toolpath view without it | Not offered, toolpath display only |
| Honesty about limits | Per-file “Good to know” notes name anything the simulation can’t fully model | Unsupported codes are skipped silently |
| Code editor | No, viewer/simulator only | Yes, built-in editor with the plot synced to the code |
| Lathe plotting | Milling / router / laser / plasma (3-axis) | Basic lathe plotting alongside milling |
| Platform & price | Free, in the browser, files never uploaded, free embeddable version | Free, in the browser |
Where NCViewer wins
Two places, and it’s no contest. The built-in editor, which highlights the plot from the code, makes NCViewer excellent for “what does line 214 actually draw?” work. UltraNC has no editor at all. And NCViewer plots basic lathe programs, which UltraNC doesn’t attempt (X is drawn as programmed, with a warning). If those are your daily jobs, use NCViewer. It’s a good tool.
Where UltraNC wins
UltraNC simulates the machine, not just the path. You set your machine’s limits once, and every estimate is built from them:
- Every move accelerates, cruises and decelerates using your rapid, acceleration and (if required) jerk limits.
- Corners cost time, just like the real cut.
- Tool changes, dwells and tapping reversals are on the clock.
- Drilling, boring and tapping cycles run in full: pecks, repeats, bottom dwells, feed retracts.
- Subprogram calls (M98, M97, o-call) are expanded and simulated, nested included.
- 3-axis stock removal carves a virtual stock as the program plays, so you see the part emerge as well as the path.
- Anything the simulation can’t model is named in a per-file note, never skipped silently.
The result is a number that behaves like your machine. The physics behind it is in feed rate vs. cycle time. The overhead most estimates skip is in non-cutting time.
Easy test: load the same file in both. In UltraNC, set your rapids, acceleration and tool change time in Machine dynamics and read the estimate. At 1× the playback is real time, so you can literally watch where the tool fails to reach feed.