Embroidermodder
Embroidermodder copied to clipboard
Free machine embroidery software supporting a variety of formats.
Embroidermodder 2.0.0 Alpha
(UNDER MAJOR RESTRUCTURING, PLEASE WAIT FOR VERSION 2)
Embroidermodder is a free machine embroidery application. The newest version, Embroidermodder 2 can:
- edit and create embroidery designs
- estimate the amount of thread and machine time needed to stitch a design
- convert embroidery files to a variety of formats
- upscale or downscale designs
- run on Windows, Mac and Linux
Embroidermodder 2 is very much a work in progress since we're doing a ground up rewrite to an interface in C using the GUI toolkit SDL2. The reasoning for this is detailed in the issues tab.
For a more in-depth look at what we are developing read our website and manual (PDF). These discuss recent changes, plans and has user and developer guides for all the Embroidermodder projects.
To see what we're focussing on at the moment check this table.
| Date | Event |
|---|---|
| April-June 2022 | Finish the conversion to C/SDL2 |
| July-August 2022 | Finish all the targets in the Design, or assign them to 2.1. |
| September 2022 | Bugfixing, Testing, QA. libembroidery 1.0 will be released, then updates will slow down and the Embroidermodder 2 development version will be fixed to the API of this version. |
| October 2022 | Embroidermodder 2 is officially released. |
Build and Install
Desktop
We assume you have a basic build environment (bash, CMake, git and a C compiler). If you do just run:
$ bash em2.bash build
Otherwise, on Debian Linux/GNU use:
$ bash em2.bash debian-deps build
to install the officially supported versions of the libraries and build the software (requires sudo) use:
$ bash em2.bash debian-deps build install
Currently this is the 2.0-alpha, which will have a build code of some kind.
This helper script also has its own help message that you will get
if you run em2.bash without arguments.
Windows Specific Advice
This is one of many possible ways to build the software on Windows, this section is to help people who've not got a build environment to start with.
- Download and install MSYS2 (follow their instructions): https://www.msys2.org/
- Boot "Mintty" from the Start menu.
- Use the commands:
$ git clone https://github.com/Embroidermodder/Embroidermodder
$ cd Embroidermodder
$ ./em2.bash mingw_deps build
Mobile
These are currently unsupported (see iMobileViewer and Mobileviewer for iOS and Android respectively), but after the Desktop version is released we'll work on them.
The Mobile version will share some of the UI and all of the backend, so development of the Desktop version will help us make both.
Using SDL we don't need to have a different codebase on mobile and desktop, just conditional operation depending on the platform:
Android advice: https://wiki.libsdl.org/Android
iOS advice: https://www.lazyfoo.net/tutorials/SDL/52_hello_mobile/ios_mac/index.php
Originally I considered Kivy for the Python version, but that means getting the bindings to be reliable which is far more work. Instead we will have a seperate Python version of libembroidery for other people's projects which is hand translated from the C code.
Development
If you wish to develop with us you can chat via the contact email on the website or in the issues tab on the github page. People have been polite and friendly in these conversations and I (Robin) have really enjoyed them. If we do have any arguments please note we have a Code of Conduct so there is a consistent policy to enforce when dealing with these arguments.
The first thing you should try is building from source using the build advice above. Then read some of the manual (PDF) to get the general layout of the source code and what we are currently planning.
Testing
To find unfixed errors run the tests by launching from the command line with:
$ embroidermodder --test
then dig through the output. It's currently not worth reporting the errors, since there are so many but if you can fix anything reported here you can submit a PR.
Contributing
Funding
The easiest way to help is to fund development (see the Donate button above), since we can't afford to spend a lot of time developing and only have limited kit to test out libembroidery on.
Programming and Engineering
Should you want to get into the code itself:
- Low level C developers are be needed for the base library
libembroidery. - Low level assembly programmers are needed for translating some of
libembroiderytoEmbroiderBot. - Hardware Engineers to help design our own kitbashed embroidery machine
EmbroiderBot, one of the original project aims in 2013. - Scheme developers and C/SDL developers to help build the GUI.
- Scheme developers to help add designs for generating of custom stitch-filled emblems like the heart or dolphi. Note that this happens in Embroidermodder not libembroidery (which assumes that you already have a function available).
Writing
We also need people familiar with the software and the general machine embroidery ecosystem to contribute to the documentation.
We need researchers to find references for the documentation: colour tables, machine specifications etc. The history is murky and often very poorly maintained so if you know anything from working in the industry that you can share: it'd be appreciated!