Embroidery design on Linux now possible with Thred

Embroidery design on Linux now possible with Thred

So you are into arts and crafts, and as much as you love Linux, you could never find a real tool for creating embroidery designs. Your quest might soon be over: Nathan Summers contacted us to tell about Thred, a free embroidery editor for Linux he's been working on since last year.

Creating stuff with your own hands is so very Linux, yet vendors of hardware like embroider machines fail to understand that deep in the core those hairy UNIX sysadmins would rather be glad to contemplate a network restructuring strategy over a good cuppa of tea and a knitting pattern or maybe do a very reasonable Richelieu while backups are being copied between hosts.

Naturally, all of the active Libre Graphics World staff stands up to applaud Nathan who seems to radiate Coolness Through Having Things His Way. After all, even Linus himself doesn't seem to have got much further than creating pesconvert.

But let's not get carried away. Last year Nathan Summers and Wife © looked this grave situation inna face and decided they could beat ten kinds of mouline out of it.

In Nathan's own words:

My wife and I bought an embroidery machine last year, and I was appalled at the lack of available Linux software for designing machine embroidery. I found a program available for Windows that had the source code available for people who "want to see what makes [it] tick", but no clear license, and convinced the author to let me port it to Linux and make the source code available under GPL3.

What Nathan did next was a considerably straightforward move: he ported the application to Linux using winelib, published source code at Gitorious.

Thred's main window

So LGW asked Nathan a few questions.

I see that there are two branches of the app at Gitorious. Why?

The 3.x branch is the original software ported over as closely as possible, while the master branch is for new development work. At this point the major difference is that all the inline assembly has been translated to C, so that eventually it will be possible to use the software with an instruction set other than 32-bit x86.

How would you characterize the UI yourself?

As it's just a straight port, it looks and feels pretty much exactly like the Windows version. The interface has a Blender feel to it, both in the fact that it deviates from platform user interface standards and in the way that keyboard and mouse pointer interact.

I bet any true Linux users out there would say “Yuk! Winelib!”. Any grand plans regarding that?

My first priority is to try to wean it off the winelib dependencies and to have the Linux build use GTK+ for the display. Since it already compiles for Windows with the native toolkit, it would be a shame to to lose that ability, and so I'll have the ability to build with either. Maybe sometime someone will create an Android back-end as well.

A DST vignette

There is also some low-hanging fruit like moving menu items to more usual locations that should be done. After that's taken care of I'll assess bigger changes, like maybe adding a toolbar.

What are the most urgent, interesting or simply missing things you'd like to implement first?

Most urgent is support for more file formats. Every machine seems to require a different one, and Thred doesn't even support the format our machine takes (it only reads DST, PCS and it own files). It would be cool for someone to create a command line converter a-la SoX and ImageMagick for machine embroidery — I would name it "stitx" myself.

What seems most missing is support for beziers — right now you have to do everything as lots of little straight line segments. Hence it would be interesting to have an SVG import ability, so that you could do the design in Inkscape and then specify how to stitch it using Thred.

Embroidery is interesting in that it's even more “vector” than the kind of graphics normally done in Inkscape. Inkscape's abilities to edit outlines are much better than Thred's, and so they could be a great combination.

So what embroidery design workflow exactly do you propose?

The typical workflow for designing embroidery is to start with outlines ("forms" in Thred terminology) that may or may not be actually stitched in the final design. The program then applies various user-specified effects in order to determine where to place the actual stitches. The output of that step can then be hand-tweaked as necessary.

“Machine” formats like DST and PES only save the results of that last step. The original outlines are not preserved. So opening those formats for editing only allows you to adjust individual stitches — an impractically tedious and error-prone process.

What I am suggesting is to create the outlines in Inkscape, and then import them into Thred. That way you can take advantage of Inkscape's far superior outline editing abilities and then use Thred for the automated and manual placing of stitches.


Thred is currently available as both source code and daily builds for Ubuntu. We encourage you to try it and help Nathan making a real native application.

News logo and at least one of the examples are deliberately taken from www.4-hobby.com.

Was it useful? There's more:

  • UniConvertor 1.1.5 review

21 Comments

Leave a comment
  1. This is great! I’ve been looking for something like this for 6 years now. I have an SWF Single-head embroidery machine. Hope I can help someway with testing and maybe translation and documention in the future.

    //Casper Nilsson

  2. Its really beautiful and creative stuff embroidery designs. Really Appreciable.

     

  3. How far have you analyzed the C-sources ? First thing to find out to connect to Inkscape would be how & where the Beziers are coded in Thred IMHO; do you agree ?

  4. Consulted the Thred infos again. Seems that it DOESN’T use any Beziers at all :) ... But there’s an Inkscape extension to transform Beziers into Polylines (line segments) and these could be transformed into native input (i.e. so-called “Forms”) to Thred quite easily. What do you think ?

  5. Great designs, love it, great write up too.

  6. Trying to write a SVG to Thred converter in C just now with the help of a local “hacker”.
    Would be nice if Nathan could contact me to avoid double work in this area. Planned workflow is: Scanned Image -> PoTrace (EPS-Files) -> Inkscape (SVGs) -> SVG2Thred (to be written) -> Thred

  7. As far as I know, Nathan is not the author of Thred.

    I wonder that nothing here such a link to http://www.thredworks.com/ (the original site of Thred) while we were talking about THRED.

    Did we have forgot the creator (and his dedicated time to create) and celebrate the modificator?

    I notice for respect to such as addressing to Mr. Marion McCoskey who build Thred from scratch.


    Yeah,
    Nathan’s work is also good contribution for Linux & Thred, anyway.

  8. Alexandre Prokoudine 26 September 2012 at 6:49 pm

    As far as I know, Nathan is not the author of Thred.

    That’s exactly what the text says. With a backlink to thredworks.com. Perhaps you didn’t notice it?

  9. Hi Guys.  Marion, my husband and the author of Thred, finds this pleasing.  Me too. Although I’m more concerned with making embroidered product than code.

    He also wrote aArtline, which allows you to make forms usable in Thred.  He’s going to share the source code for that later today.  http://www.aartline.com/

  10. @Alexandre Prokoudine:

    Ooops..!! Yeah, I finally found that backlink. :)
    I am sorry for not carefully looking for.

    I was not seeing that because that is not explicitely visible, and the (“program”) link text color is seem as near similar as normal text for me.

    Anyway, If someday I could make another embroidery program in Linux, might I tell you this one? I am also in developing a Thred based software in Pascal Language (Delphi/Lazarus).

    ——————
    @ Ms. Alfie McCoskey:
    Thanks for sharing the code of Thred & aArtline. I found it very usefull.
    :)

    =x2nie=

  11. Alexandre Prokoudine 27 September 2012 at 5:36 pm

    @Alfie McCoskey Glad to see you here! :) Any chance you could ping us, when aArtline’s code is released?

    @x2nie No worries :)

  12. http://www.aartline.com/

    The aArtliine source code is ready for download now.

    Enjoy!

    Alfie and Marion

  13. Looks fantastic. It’s amazing that it took so long for an embroidery tool to be ported to linux. Good on Nathan Summers for getting it done, I’m sure many people (my girlfriend included) will be very thankful for this!

    Cheers,
    Ty from BMHQ

  14. I have used Thred software forever on unix using Merge.

    Since then I also now have linux ubuntu, so I look forward to putting Thred on linux under wine or possibly using under CodeWeavers on linux. I had just never gotten around to trying it on linux, so I do not know if it does work without any porting ?

    I can not begin to tell you the hours & years, that Marion put into writing this code and adding features.

    I’m so very glad to see interest in using Thred on linux. I was very sad to see the end of further development of this fine software.
    Marion McCoskey is a brilliant programmer.

  15. I hope they come out with 64bit 12.10 version

  16. It’s nice to see that more and more awesome stuff gets ported to Linux. All I am missing is a Photoshop Replacement ;)

  17. Beautifull here.. thank’s

  18. Is there a version that will run on
    Ubuntu 10.04 Lucid ( 32 bit ) or do
    I have to have a newer vesion of Ubuntu ?

  19. This is cool. I use Ubuntu 14.04 64bit and Wine. This do not crash and just work. My only problem is I use .pes files (Brother). I know some other people using Brother .pes and would love if the pes format can be included. Sorry i do not know coing to help. Wil the pes format be included in the near future.

  20. This is a topic that is close to my heart… Best wishes!
    Where are your contact details though?

  21. This is really really creative and great, if you can provide a guide and tutorial from the beginning,

Tell us what you think

Submit the word you see below: