What is an NC Viewer?
An NC viewer is a software tool that shows you what your CNC machine's NC files will do. NC files, also called G-code files, are the programs that tell your machine how to make parts, so being able to read and check them before you cut is pretty important.
NC viewers go by many names, including:
- NC Viewer
- G-code Viewer (or G-code Viewer)
- G-code Simulator or Backplotter
- G-code Editor
The "NC" in NC viewer and NC file stands for "Numerical Control."
For years CNC Cookbook made its own viewer, G-Wizard Editor. It's no longer available, and today we recommend CutViewer, a free NC viewer that runs in your browser. It's what you'll see in the screenshots on this page:

What are NC Viewers Good For?
NC viewers have a lot of uses:
- Creating and editing G-code.
- Understanding what G-code does. The file name may not tell you much, and G-code itself is pretty cryptic. An NC viewer gives you a 3D backplot of the toolpath and can tell you a lot more about the program.
- Testing G-code before it goes on a machine, so you're not "cutting air" to prove out every new program.
- Fixing or improving G-code. Some changes are much easier to make in G-code than in CAM, and sooner or later your CAM will output some G-code that's wrong.
- Estimating run time, for quoting and scheduling.
- Developing or checking a custom post for your CAM software.
If you work with CNC programs, you should have an NC viewer. A good one saves you time, material and broken tools.
How to Choose Your NC Viewer: 9 Things to Look For
First, don't use a plain text editor as your G-code tool. Even one with a few extras, like Notepad++, can't show you what the program will do.
Here's what to look for, and for each one, how CutViewer handles it, including where it doesn't yet. For a comparison of the main options, see the 8 best G-code viewers and editors.
1. A Real 3D Backplot
The backplot is the feature you'll notice first and use most: a 3D view of the toolpath. Look for clear colors for rapids, feed moves and arcs, and views you can rotate, zoom and snap to top, front and side.
In CutViewer: a 3D backplot with separate colors for rapids, feed moves and arcs, preset views, and orbit and zoom with the mouse or touch. It draws arcs in all three planes (G17/G18/G19), helical arcs, and drilling cycles (G81–G89 with G98/G99 retract heights).
2. Stepping Through the Program
To understand G-code, and to find bugs, you need to move through it one line at a time and see where the tool is.
In CutViewer: play the program at any speed, drag the progress bar to any point, click a line or use the arrow keys in the editor, or click the toolpath to jump to the line that made it. The X, Y, Z position, feed rate and spindle speed are shown for the current line.
3. Error Checking
A backplot doesn't tell the whole story. For example, if an arc's end point doesn't sit on the arc, because of rounding in the I/J/K values, most controllers stop with an alarm. You want the viewer to find problems like that for you.
In CutViewer: pre-flight checks list each problem with links to the lines that cause it:
- a feed move with no feed rate set
- an arc whose end point isn't on the arc (the same tolerance GRBL uses)
- a cutting move with the spindle off
- a rapid move below Z0 into uncut material (a crash if Z0 is the top of your stock)
- no G20/G21 units before the first move

Not yet: checks against your machine's travel limits.
4. Program Info and Run Time
What does the viewer tell you about the program as a whole?
In CutViewer: the Job panel shows the part size and X/Y/Z extents, estimated run time, cutting and rapid distance, feed and spindle ranges, and the tools used. The run time comes from the feed rates; it doesn't model machine acceleration, so expect real run times to be somewhat longer on programs with lots of short moves.
5. Editing
You'll want to fix or tweak code without going back to CAM.
In CutViewer: a G-code editor with syntax highlighting. Edit the code and the backplot updates; save the edited file with the Save button or Ctrl+S.
Not in CutViewer: bulk "revision" commands, like shifting every X by an offset or converting between I/J/K and R arcs.
6. Support for G-code Dialects
Every control speaks a slightly different dialect of G-code. Most viewers assume a generic dialect and ignore what they don't understand.
In CutViewer: standard Fanuc-style G-code as used by GRBL, Mach3/4, LinuxCNC and most CAM posts, including absolute or incremental arc centers (G90.1/G91.1). There's no machine or post selection yet, and no lathe mode.
7. Macros and Subprograms
Fanuc Macro B (#variables, IF, WHILE) and subprograms (M98/M99) are a big part of what makes hand-written G-code powerful.
In CutViewer: not supported. Macro programs won't display correctly, so use a control or simulator that runs Macro B for those.
8. Tools
Knowing which tools a program calls, and where, helps you set up the machine correctly.
In CutViewer: the Job panel lists the tools in the order the program uses them (T1, T2, …). There's no tool library.
9. Conversational G-code
Conversational wizards generate G-code for simple jobs like hole patterns or facing, without a trip through CAM.
In CutViewer: not available. For simple jobs, see our G-code tutorial to write them by hand.
Try It
The easiest way to learn what an NC viewer can do is to open a real program. Download one of our free G-code example files, or open one straight in CutViewer:
Or drop in your own file at cutviewer.com. It's free, there's nothing to install, and your files stay in your browser.
Be the first to know about updates at CNC Cookbook
Join our newsletter to get updates on what's next at CNC Cookbook.