G90 and G91 do not move anything themselves. They decide how the machine reads every coordinate that follows, which is why getting them wrong is quietly dangerous.
Absolute vs incremental
G90(absolute): every coordinate is measured from part zero (your work offset).X10always means “go to X10,” the same fixed point every time.G91(incremental): every coordinate is a distance from where the tool is right now.X10means “move 10 further in X,” so the destination depends on where you already are.
G90 X10 (absolute: go to X10)
X10 (still X10, the same point)
G91 X10 (incremental: move +10)
X10 (move another +10, now at X20)
Why it is a crash risk
Both codes are modal: whichever you set stays active until the other replaces it. If G91 is left active when the program assumes G90, every line adds onto the last instead of going to fixed points. The tool “walks” further and further from where the programmer intended, and a move planned for clear air can end up in the stock or a fixture. This is the same modal-state trap described in modal vs non-modal G-codes.
At a glance
| Aspect | G90 (absolute) | G91 (incremental) |
|---|---|---|
| Coordinates measured from | Part zero (work offset) | Current tool position |
X10 means | Go to the fixed point X10 | Move 10 further in X |
Repeated X10 | Stays at X10 | Keeps moving +10 each time |
| Modal? | Yes (stays active) | Yes (stays active) |
| Beginner risk | Safer default | Walks off if left active by mistake |
How to keep them straight
Read the mode first, always. Before you trust any coordinate in a program, find the active G90 or G91. Then drill the pair until “absolute vs incremental” is instant, the same way you would drill G00 vs G01. These are core entries in the common G-codes, and recall of the modal pairs is exactly what beginner CNC code practice targets. Recall does not replace careful checking on the machine, but it removes the confusion behind many beginner mistakes.
Bottom line
G90 is absolute (from part zero), G91 is incremental (from here). They are modal, so the wrong one quietly affects every following line. Read the active mode first, and drill the pair until you never hesitate.
Sources
Frequently asked questions
What is the difference between G90 and G91?
G90 is absolute: coordinates are measured from part zero. G91 is incremental: coordinates are distances from the current position. The same X10 means different things depending on which mode is active.
Why does mixing up G90 and G91 cause crashes?
Because they are modal, the wrong mode stays active for every following line. In G91 by mistake, each move adds onto the last instead of going to a fixed point, so the tool walks off to a position the programmer never intended.
How do I stop confusing G90 and G91?
Drill the pair as opposites and always check which mode is active when reading a program. A free tool like G-Code Sprint quizzes G90 vs G91 and the other modal pairs and repeats the ones you miss.
G-Code Sprint is a study and practice tool only. It is not a CNC simulator, machine controller, or safety authority. Always follow your instructor, employer, machine manual, and shop safety procedures.