Maker, JavaScript Style, with Maker.js


So this isn't really hardware, but it's hardware'ish and too cool to keep in the story queue too long..


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

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: Break path / Bridge Path / Compute intersection / Triangle solvers
  • Basic models:
    • Bolt circle
    • Bolt rectangle
    • Connect the dots
    • Golden Rectangle
    • 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.

Check out the Demos...


How hard is it to use?

Basic Drawing


And as you've already seen, it's open source too... :)

The Discussion

Conversation locked

This conversation has been locked by the site admins. No new comments can be made.