--- title: FreeSewing in Node.js --- These instructions explain how you can generate patterns in Node.js. Whether it's in a backend application or on the command line, all it takes is a few lines of code — and a couple of dependencies — to generate a pattern. :::tip ##### Use FreeSewing.org if you just want a pattern These instructions are intended for people who want to generate their own patterns using FreeSewing packages. If you _just want a sewing pattern created for you,_ you can get all our designs on [FreeSewing.org](https://freesewing.org/), our website for makers. ::: ## High level overview To generate a pattern, you will need to: - Instantiate the pattern (`new ...`) - Pass it the settings and measurements you want to use (`{ ... }`) - Load the theme plugin (using `use()`) - Draft the pattern (using `draft()`) - Render it to SVG (using `render()`) Which can be done as a one-liner since `use()`, `draft()` and `render()` are all chainable, as shown below. ## Code example ```js import { Aaron } from '@freesewing/aaron' // Design to use import { pluginTheme as theme } from '@freesewing/plugin-theme' // SVG theme const svg = new Aaron( // Instantiate pattern { // Pass in settings. See reference > core > settings sa: 10, // Seam allowance // ... measurements: { // Pass in measurements biceps: 387, chest: 1105, hips: 928, hpsToWaistBack: 502, neck: 420, shoulderSlope: 13, shoulderToShoulder: 481, waistToHips: 139, } }) .use(theme) // Load theme plugin .draft() // Draft the pattern .render() // Render to SVG // svg now holds the generated SVG code console.log(svg) ``` :::note ##### Remarks on the example code - We are using `@freesewing/aaron` as the design, but you could use any design - You probably want to [use your own measurements](/reference/settings/measurements) or you could use [our curated measurements sets](https://freesewing.org/curated-sets) to load measurements. - We are using `@freesewing/plugin-theme` to theme our SVG, but you could [pass in your own CSS](/reference/api/svg/style) ::: ## Dependencies The code above will only work if you've got the required dependencies installed on your system. Obviously you need Node.js, but you will also need the following packages: - `@freesewing/core`: Our core library - `@freesewing/plugin-bundle`: Set of common plugins - `@freesewing/aaron` or any design you want to use - Any design on which the design you choose is built. In this case, Aaron depends on `@freesewing/brian` For the example above, your `package.json` **dependencies** section will look like this: ```json "dependencies": { "@freesewing/core": "latest" "@freesewing/aaron": "latest", "@freesewing/brian": "latest", "@freesewing/plugin-theme": "latest" } ```