9.3 S3G and X3G

S3G is an acronymn for “Sanguino3 Gcode” and is a 3D printer control language. The most current specification may be found in MakerBot’s github repositories,


Files containing S3G use the file extension .s3g.

S3G was later extended by MakerBot and the Sailfish team to include new accelerated motion commands. For files containing both the old and new commands, MakerBot adopted the file name extension .x3g and named the contents X3G.

While S3G was originally developed by the RepRap community as the protocol for their third generation electronics based upon the Sanguino platform, they abandoned it when they moved away from their fourth generation of electronics.4 Use of S3G and X3G does, however, still convey a slight performance boost to printers using relatively slow 8 bit, 16 MHz ATmega processors, hence why it is still in present use today by some printers.

The actual print commands accepted by MakerBot printers are S3G and X3G; MakerBot printers do not accept direct gcode. Slicers translate gcode to S3G and X3G for consumption by MakerBot printers. ReplicatorG, MakerBot MakerWare, and MakerBot Desktop all have “built-in” translators which convert gcode to X3G. Other slicers use the open source tool GPX to generate X3G.

4MakerBot Cupcake printers use third generation electronics, Gen 3. MakerBot Thing-o-Matic printers use fourth generation electronics, Gen 4.