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 app | Best output for laser |
|---|---|
| Inkscape | SVG → LightBurn, LaserGRBL, Meerk40t |
| Illustrator | SVG (with "Embed Images" off) → any |
| Affinity Designer | SVG (export, not save) → any |
| Fusion 360 / FreeCAD sketch | DXF → LightBurn / LaserGRBL |
| QCAD / LibreCAD | DXF → any |
| Photoshop / GIMP | PNG → LightBurn / LaserGRBL image mode |
| Boxes.py / MakerCase | SVG → LightBurn directly |
| LightBurn | LBRN locally, RD/NRD to Ruida controllers, G-code to GRBL/FluidNC |
| EZCAD2 | EZD 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
.gcodeor.nctext into UGS / LaserGRBL.