Maker.js, a Microsoft Garage project, is a JavaScript library for creating and sharing modular line drawings for CNC and laser cutters.

View project on GitHub Star


Maker.js is an open source project created by the Microsoft Garage and hosted on Github.

Maker.js creates line drawings for two dimensional maker machines, like laser cutters and CNC routers. Using the Maker.js JavaScript library, which can run in a Node.js environment or in a web browser, a developer may create a small program that creates a line drawing. The developer’s program may accept parameters which can be used to alter the drawing. The program can be shared and re-used in other drawings. Lastly, the drawing can be exported to a file which can be used directly by a maker machine, uploaded to a maker service, or imported into other 2D or 3D CAD software.


  • Export formats: DXF / SVG
  • Uses plain old JavaScript objects (POJO’s) for its drawing model
  • Import and modify other drawings
  • Conversion between unit systems: Millimeter / Centimeter / Meter / Inch / Foot / Unitless
  • Primitive paths: Line / Circle / Arc
  • Transformations: Mirror / Rotate / Scale
  • Functions: Compute intersection / Triangle solvers
  • Basic models:
    • Bolt circle
    • Bolt rectangle
    • Connect the dots
    • Oval
    • Oval Arc
    • Polygon
    • Rectangle
    • Rounded rectangle
    • S curve
    • Square


Share your drawings on NPM.

File issues or bugs in the Github repo.

Help or questions on StackOverflow.

Discussion on Gitter

Project info

Maker.js was inspired by OpenSCAD. Concept and inital version written by Dan Marshall using TypeScript.

Maker.js logo created by Greg Melander.