# microsoft/maker.js

📐⚙ 2D vector line drawing and shape modeling for CNC and laser cutters.

Repository: https://github.com/microsoft/maker.js
Canonical: https://ross.abutalabs.com/products/makerjs
Homepage: http://maker.js.org
Language: TypeScript
License: Apache-2.0
License Family: permissive
Topics: maker, cad, draw, cnc, vector, svg, pdf, dxf, drawing, fonts, geometry, bezier, openjscad, rectangle, circle, line, arc, laser
Last push: 2026-08-25T23:57:42+00:00

## Health v2 (maintenance only)
Score: 67/100 (v2, computed 2026-09-03T02:20:16.233290+00:00)
- activity 99, release rhythm 8, longevity 100
- inputs: {"age_days": 4135, "days_push": 8, "days_rel": null, "gap_med": null, "n_releases_24m": 0}
- flags: none
- formula: round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)

## Adoption (not part of the score)
Stars 2020, forks 300 (observed 2026-08-28T04:06:06.267505+00:00)

## What it is
Maker.js is a JavaScript/TypeScript library from Microsoft Garage for programmatically creating 2D vector line drawings using geometric and drafting constructs like lines, arcs, circles, and models. It exports to DXF, SVG, PDF, and OpenJSCad formats (with 3D via JSCad/STL), targeting CNC machining and laser cutting workflows.

## Use cases
- generate parametric drawings for CNC or laser cutters from JavaScript
- programmatically create SVG or DXF vector shapes
- draw geometric shapes like rectangles, circles, arcs, and polygons in code
- export 2D line drawings to PDF or OpenJSCad for 3D extrusion
- perform boolean operations, fillets, and outlines on 2D geometry
- build a web app that lets users design cuttable shapes in the browser
- convert text and fonts into vector paths for engraving
- measure, scale, rotate, and mirror 2D models programmatically

## When to choose
- you need to generate CNC/laser-ready vector files (DXF, SVG, PDF) from code
- you want a lightweight, JSON-serializable 2D geometry library for Node.js or the browser
- you need parametric shape generation with boolean ops, fillets, chains, and layouts
- you want to build custom CAD-like drawing tools in JavaScript

## When to avoid
- you need a full interactive GUI CAD application rather than a code-driven library
- you need native 3D modeling with complex solids rather than 2D-to-3D extrusion via JSCad
- your project requires heavy ongoing development and frequent updates, as the project appears to be in maintenance mode

## Facets
- artifact type: library
- maturity: maintenance
- function: graphics, image-processing, pdf, serialization, developer-tools
- domain: graphics, developer-tools, cross-platform
- platform: browser, cross-platform
- tags: cnc, laser-cutting, 2d-vector-drawing, parametric-modeling, dxf, svg, geometry, cad, maker-movement, openjscad, automation, nodejs, javascript, typescript

## Member repositories
- microsoft/maker.js (main) score 67

## Provenance
- Observed fields: from GitHub, fetched 2026-08-28T04:06:06.267505+00:00.
- Health v2: computed from the inputs above; adoption is never an input.
- Inferred fields (summary, facets, guidance): AI-extracted, prompt v1, taxonomy v1, on 2026-08-30T03:00:16.948227+00:00, confidence not recorded.
  - readme: https://github.com/microsoft/maker.js (fetched 2026-08-28T04:06:06.267505+00:00, sha b9a5783b7be1)
  - homepage: http://maker.js.org (fetched 2026-08-29T10:40:39.838992+00:00, sha 5150e76cefcf)
  - site_page: https://maker.js.org/docs/intermediate-drawing (fetched 2026-08-29T10:40:39.862157+00:00, sha e48e0b5d3b9c)
  - site_page: http://maker.js.org/docs (fetched 2026-08-29T10:40:39.851979+00:00, sha bbcb0857d153)
  - site_page: https://maker.js.org/docs/basic-drawing (fetched 2026-08-29T10:40:39.853546+00:00, sha 25606a09d9ed)
  - site_page: https://maker.js.org/docs/advanced-drawing (fetched 2026-08-29T10:40:39.855924+00:00, sha 787fd55481be)
  - site_page: https://maker.js.org/docs (fetched 2026-08-29T10:40:39.848281+00:00, sha bbcb0857d153)
  - site_page: https://maker.js.org/docs/api/modules/makerjs.exporter.html (fetched 2026-08-29T10:40:39.850167+00:00, sha aa95361a94d4)
  - site_page: https://maker.js.org/docs/working-with-chains (fetched 2026-08-29T10:40:39.858186+00:00, sha fbac46be89a8)
  - site_page: https://maker.js.org/docs/api (fetched 2026-08-29T10:40:39.860272+00:00, sha e172010c9aa3)
- Data as of 2026-08-30T08:39:29.467469+00:00.
