Embroidery Library for Processing
PEmbroider is an open library for computational embroidery with Processing. PEmbroider was developed during Endless March 2020 at the CMU Frank-Ratchye STUDIO for Creative Inquiry by Golan Levin, Lingdong Huang, and Tatyana Mustakos, with generous support from an anonymous donor and the Clinic for Open Source Arts (COSA) at the University of Denver. For questions, please contact Golan Levin. If you found this project useful, please consider making a donation.
PEmbroider includes file-writing code adapted from the EmbroidePy EmbroideryIO project, under EmbroidePy's MIT License. Additional thanks to our beta-test community; Chris Coleman, and the Processing Foundation; Huw Messie, Bryce Summers, Lea Albaugh, Dan Moore, and the staff of the STUDIO.
Intended primarily for artists, craftspersons, educators, makers, and schools, PEmbroider is free, open-source software released under both the GNU General Public Licence (GPLv3) and the Anti-Capitalist Software License (ACSL 1.4). In short: you are encouraged to use PEmbroider to make art; you are required to share your improvements to PEmbroider; and you are expressly forbidden from using PEmbroider to profiteer. More information on PEmbroider's license is below.
As this comparison of embroidery software shows, existing software for the creation of custom embroidery designs frequently costs thousands of dollars; is rarely cross-platform; and is almost never open-source. The free and open-source tools which do exist are either full-featured standalone GUI tools (Ink/Stitch, Embroidermodder) or large-scale libraries (EmbroidePy)—neither of which integrate easily with popular "creative coding" toolkits, nor easily allow for the creation of generative and computational designs.
PEmbroider, by contrast, is a free, cross-platform, open-source, lightweight Java library for generative embroidery design. It integrates with the popular Processing creative coding framework, providing ready access to a vast and diverse ecosystem of functionality including high quality typography, live interaction, motion capture, computer vision, GIS cartography, physics simulation, and much more.
PEmbroider is a embroidery library for the Java flavor of the Processing creative coding environment, suitable for generating embroidery designs computationally. PEmbroider has the following features:
PEmbroider has been tested on MacOS 10.13.6+ and Windows 10, using the STUDIO's Husqvarna Viking Designer Jade 35 embroidery machine.
Note: PEmbroider provides a visualization of the embroidery files it generates. However, PEmbroider has no functionality for loading or previewing pre-existing embroidery files; this is outside the scope of the project. To preview the contents of a .PES, .VP3, or other embroidery file, you will need to use embroidery viewing software, such as this or this. That said, it is possible to load SVGs and other images in Processing and use PEmbroider to generate embroidery designs from those.
PEmbroider comes with a variety of examples which demonstrate how to achieve different sorts of embroidery effects with lines, shapes, typography, images and more. Here are just some of them:
This section is primarily intended for end-users who wish to get started using PEmbroider to make embroidery designs.
optimize()
and endDraw()
are called in your code. The optimize()
function produces much, much more efficient embroidery paths, while endDraw()
is the code that actually exports the file. Note that optimize()
may take up to a minute to execute.visualize()
function to view the planned stitches. You can also preview and validate your embroidery files with software such as this online viewer, Husqvarna/Viking PREMIER+ 2, or Brother PE-Design.This section is primarily intended for developers who wish to modify, extend, or contribute to the PEmbroider library itself.
To compile the library from source: First, open the project in Eclipse; then:
Follow this excerpt from processing/processing-library-template:
- From the Eclipse menu bar, choose Window → Show View → Ant. A tab with the title "Ant" will pop up on the right side of your Eclipse editor.
- Drag the
resources/build.xml
file in there, and a new item "ProcessingLibs" will appear.- Press the "Play" button inside the "Ant" tab.
If BUILD SUCCESSFUL: The Library template will start to compile, control messages will appear in the console window, warnings can be ignored. When finished it should say BUILD SUCCESSFUL. Congratulations, you're set and you can start modifying the library by making changes to the source code in the
src
directory.If BUILD FAILED: In case the compile process fails, check the output in the console, which will give you a closer idea of what went wrong. Errors may have been caused by Incorrect path settings in the
build.properties
file.
Here are the same steps, in screenshots:
If there are any issues, download a fresh copy of this repository, and try carefully following Processing's official documentation.
PEmbroider is Copyright © 2020, the Frank-Ratchye STUDIO for Creative Inquiry at Carnegie Mellon University. Intended primarily for artists, craftspersons, educators, makers, and schools, PEmbroider is free, open-source software released under both the GNU General Public Licence (GPLv3) and the Anti-Capitalist Software License (ACSL v. 1.4). In short:
This is anti-capitalist software, released for free use by individuals and organizations that do not operate by capitalist principles.
Permission is hereby granted, free of charge, to any person or organization (the "User") obtaining a copy of this software and associated documentation files (the "Software"), to use, copy, modify, merge, distribute, and/or sell copies of the Software, subject to the following conditions:
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT EXPRESS OR IMPLIED WARRANTY OF ANY KIND, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.