Tooling

Laser File Formats

SVG, DXF, AI, PDF, RD, NRD, GCODE — how artwork moves between design tools and laser controllers.

The "interchange" page for laser work — what reads and writes what, where it breaks, and which formats survive between Design Vector Apps, 2D Drafting, and laser senders / controllers. Adjacent reading: CAD Interop Formats for 3D-CAD interchange, and Laser Design & Sender Software for who imports what.

Vector source / interchange

  • SVG (Scalable Vector Graphics) — open standard (W3C); the dominant laser interchange. Readable / writable by Inkscape, Illustrator, Affinity, Boxes.py, MakerCase, LightBurn, LaserGRBL, Meerk40t. Watch out: stroke widths can become cuts in some senders; "fill" can become engrave; layers or stroke colors usually drive layer assignment.
  • DXF (AutoCAD Drawing Interchange) — open-ish (Autodesk); the engineering interchange. Crisp dimensional accuracy. Readable by every laser app + every CAD tool. Preferred when dimensions matter more than visual fidelity.
  • AI (Adobe Illustrator) — closed; Adobe-native. LightBurn imports it via embedded PDF. Most apps prefer SVG export from Illustrator over native AI.
  • PDF — open (ISO 32000); preserves vector + raster. LightBurn imports cleanly. Useful when SVG round-trips break.
  • EPS — older PostScript-based vector; mostly legacy; converted to SVG/PDF in 2026.
  • CDR (CorelDRAW) — closed; Corel-native. Industrial laser shops still see it. Convert to SVG/DXF.
  • PLT / HPGL — old plotter format; some galvo / older industrial equipment still ingests it directly.

Raster / image

  • PNG — lossless raster; the default for image-engrave source. Supports transparency.
  • JPEG — lossy; fine for photo engraves; poor for line art.
  • BMP — uncompressed; LaserGRBL accepts BMP cleanly.
  • TIFF — lossless raster; used in pro workflows.
  • GIF / WebP — rarely used for laser source; convert to PNG.

Sender / G-code

  • G-code (.nc / .gcode / .gco / .ngc / .tap) — text format; the universal sender language for GRBL / FluidNC / grblHAL / Marlin / Smoothie. M3 (constant power) / M4 (dynamic power, with feedrate) for laser. Readable in any text editor.
  • NC Viewer / Camotics — open / free G-code viewers + simulators (see CAM & Toolpathing).
  • G2/G3 arcs — supported by most laser firmware but some senders interpolate to G1 lines.

Controller-native (CO2 DSP)

  • RD (Ruida) — closed binary; the native job format for RDC6442G/RDC6445G. LightBurn DSP and RDWorks both write it. Stored on the controller's flash.
  • NRD — newer Ruida variant; same idea.
  • AWC (Trocen) — closed binary; Trocen DSP equivalent.
  • MOL (TopWisdom) — closed binary; TopWisdom DSP equivalent.

Galvo-native

  • EZD (EZCAD) — closed binary; native EZCAD2/3 project file. Stores layer / hatch / sequence settings. Required for galvo / fiber jobs that go beyond simple vector.
  • PLT (galvo HPGL flavor) — older, simpler imports.
  • STD / EZP — vendor variants on the EZCAD theme.

Project files (vendor)

  • LBRN / LBRN2 (LightBurn) — closed binary; native LightBurn project, layered with all settings.
  • XCS (xTool Creative Space) — closed binary; xTool's project file. Some round-trip to SVG with limitations.
  • GLP / GFG (Glowforge) — closed cloud; not file-portable.
  • MEERK40T (.meerk40t) — open project format from Meerk40t.
  • BSF / Beam Studio (Flux) — vendor closed.

Ecosystems / what to send to what

Source appBest output for laser
InkscapeSVG → LightBurn, LaserGRBL, Meerk40t
IllustratorSVG (with "Embed Images" off) → any
Affinity DesignerSVG (export, not save) → any
Fusion 360 / FreeCAD sketchDXF → LightBurn / LaserGRBL
QCAD / LibreCADDXF → any
Photoshop / GIMPPNG → LightBurn / LaserGRBL image mode
Boxes.py / MakerCaseSVG → LightBurn directly
LightBurnLBRN locally, RD/NRD to Ruida controllers, G-code to GRBL/FluidNC
EZCAD2EZD on the galvo box

Common interchange gotchas

  • SVG strokes vs. fills: LightBurn imports "stroke = cut/engrave outline; fill = filled-engrave." Inkscape's default stroke width may import as a thick cut.
  • DXF version: DXF R12 / R14 are most universally compatible; R2018+ adds features that older laser senders refuse.
  • Hidden layers: SVG hidden layers may still import as cut paths in some senders.
  • Open vs. closed paths: important for fill engraves; LightBurn warns about open paths.
  • Units: mm vs. inches mismatches cause everything to scale 25.4×. Boxes.py defaults to mm; Inkscape defaults to mm in EU but px in US.
  • Embedded vs. linked images: linked PNG paths break across machines; embed images for portability.
  • Text outlines: convert text to outlines / paths before export — fonts won't be available on the receiving app.

Pick this if…

  • Universal vector interchange: SVG.
  • Engineering precision required: DXF (R12 or R14).
  • Photo / raster engrave: PNG.
  • Sending to a Ruida CO2 from LightBurn: the LBRN project is local; RD job is uploaded to controller.
  • Sending to a fiber-galvo: EZD (EZCAD) or LBRN (LightBurn Galvo).
  • Hand-rolling G-code: plain .gcode or .nc text into UGS / LaserGRBL.

On this page