Projects/Liberty/Appendix 1

Jump to: navigation, search

On 27 January 2011 01:07, David Boddie <[email protected]> wrote: On Wednesday 26 January 2011, ROBERT FORSYTH wrote:

> Yes, XML is probably a good medium, some transform 'tools' could, perhaps, > produce various representations including SVG... > A base level mark-up would include enough base level elements and > attributes to be meaningful (semantics) and to allow export to common > embroidery files. Importing would allow additional attributes in a loose > HTML style rather than a strict XML sense, but some control or register > would be needed to stop propriety extensions.

To stop people from making proprietary extensions or to filter them out? To stop a powerful commercial company from hi-jacking the format, but you wouldn't want to stifle innovation. An extension that renders a embroidery only available on one machine should be stopped.

Root Document / Element:

> An embroidery may include several predefined patterns (that are little > embroideries in themselves), so is it like a job made up of several > embroideries, or an embroidery with IFrame like insertions. I'm thinking > the *fabric* that holds the stitches is the physical root element and the * > pattern* is a kind of abstract root of a design. I would like to use > embroider terminology so that the semantics are aligned.

I think this is what Anne was thinking about when we talked about tools. A simple tool to take existing patterns and compose them.


> It would be nice to have named and part-numbered colours, but ultimately > some RGB value is needed to draw and to translate threads between > manufacturers. In fact, named yarn or silk would give a human handle to the > colour, thickness, silkiness, etc. >

Stitch Runs:

> I'm not really sure how one area of fill gets to another of the same > yarn/silk; it seems two approaches are taken: hide the linking stitches > under a later dark/light outline run; or do a very long stitch and get the > user to manually snip it away. The easy route for me, is to allow a > yarn/silk change to the same colour to end one area and start another, but > this may be premature optimization.

I think the long stitch trick isn't possible with some machines because the formats they use are limited. The stitch length in JEF files is limited like this, I think. Yes, 8 bit signed number -127 to 127 times 0.1mm, I think, but the move command allowed a sequence of several small hops.

“Jump stitches” are not confined to “stitch length” as defined here. The step-stitch is preferred where practical, but often it isn't so, and a simple jump is employed instead. Whilst on this subject, a related issue. Generally elements are placed in the stitch-out in the order that they are added to the pattern. This is unwieldy, and software is used to collate colours. This can be manually, up- and down-arrows, or automatically – but this needs care as sometimes it can cause problems. The more complex software allows you to group the elements that you want to combine into a single colour-change.

Hoops and Meta-data:

> The hoop is perhaps best specified as a preferred size and minimum size, or > nested hoop elements that start at the preferred one and nest progressively > vague ones. The title attribute can provide a human name for the hoop. > The meta-data is for things like: author, creation date, revision date, > copyright, file name/title, and so on. I don't think the meta-data needs a > head element like HTML.

You're probably right about the meta-data.

One element, ideally, is free-form, for text like “floral ring”, “Aunty Daisy's bracelet”.

Tasks: =

Root Element:

> Anne, probably, to name the root element: what is an embroidery file, what > is it that is in the file (like JPEG file holds a photograph or image) ? > Physically it is fabric or carrier, I think; if you were to hold it in your > hand, what is it called? I guess it would hold size information. What about > patterns made by combining other patterns?

Design or pattern, maybe?

Design, pattern, colour, stitch-density, stitch-alignment, size, overall shape, are all elements of the pattern – possibly others too. The combination of everything is generally called the design.

Thread/Yarn/Silk Element:

> A name for this element (class), it allows a thread to be described, so > that it can be referred to by name/title or found by matching > colour/thickness/etc. attributes. Outside a stitch-run, it defines and > names a thread. Inside a stitch-run it sets the thread for that run. > Two ranges of thread are generally considered to be standard – Anton Robison (popular in USA but no longer available in UK) and Madeira. I think we can get any information we need about them from websites.


> A name for this element (class), it holds a thread, a start location and a > list of stitches (and direction). I don't see why you couldn't name this stitch-run, such > as, bird's break, green petal, cherry stalk, ... >

Stitch or Stitches:

> I'm not sure if stitch some be a separate element from stitch-run, or be a > run attribute of the stitch-run element; or if it should represent one > stitch or many.

I'll try to put together some screenshots from the HV software that will give you more idea about how they define them. I'll have to look for some screen-capture software for Windows first – I'm not really set up for this, but it would be useful anyway.

It might be interesting to think about a separate stitch element. Paths in SVG use some bizarre mini-format to describe them, and that just makes it harder to write tools to read those files. As I write this, I begin to remember that I encountered this when trying to convert an SVG file to a JEF file.

I've never seen SVG as an importable format in embroidery software. Maybe it's because it is not commonly known to users, or maybe it is too difficult. JPG or BMP seem to be standard (BMP in older software, and still used in a sort of template screen over which you can add elements, but I'd ignore that for now.)

This may be premature optimisation on my part: I was thinking of the inefficiency of a long list of stitch tags, and was thinking of a polyline, poly-stitch if you like, but you are right: to edit poly-lines is more difficult.


> The hoop element can use the title attribute to give it a human name, > indicates its width and height, or diameter. I'm not sure if nesting of > less preferred hoops is necessary, surely only the maximum size of the > pattern is needed. > There are a few hoop sizes that, with minor variations, are used on most machines, the 5” x 7”, for instance. I'll look through the list of sizes that my software offers and give you the most common ones.


> The type attribute and embedded or external data, although preferably SVG > would be used.

Preview in file managers needs to be easily recognised formats as users won't have complicated image-manipulation tools. For the machine thumbnail, though, SVG may work – we will have to test that.

I no longer have the Janome machine. We can try first continuing to work in that format and converting designs within my Pfaff software, though that leaves it open to interference that may be difficult to trace. Otherwise, working in hus or vip format may be best – they are both simpler than vip3 and understood by more machines.

It's probably easy to embed SVG files.

> Revision-history: > Probably unnecessary, it would be a list of: version, data, author, and > description. Inserted and deleted elements or attributes could reference a > revision, or just contain data and author attributes. Not sure.

An interesting idea, anyway. Probably optional, though.

Not available in my software, so yes, unnecessary at least at this stage.

What is needed, though, is the ability to put a selected element or a whole pattern onto a clipboard, partly for duplication, but also so that you can clear the screen and then paste in the clipboard element to start a new design.

The Pfaff software is modular, and this could be too, but ideally much more connected than they manage.


  • > Pattern : root-element
    • > + Thread... : defined threads
    • > + Stitches... : actual sewing


      • > | + Thread : used thread


    • > + Pattern... : predefined pattern

You've certainly given this more thought than I have. Should we write this up somewhere public and get people to comment? I was hoping embroidery expert Anne, would provide the correct terminology for: 1. the whole job: the file loaded on the machine and embroidered (also cross-stitch) 2. loading what into the hoop, and non-hoops 3. a stitch run from loading the reel (of what?) to loading the next 4. manual tasks like snipping the thread off

Yes, if it is an open format it should be open.


Thank you for your useful comments


From: Anne Wilson <[email protected]> To: Robert Forsyth <[email protected]> Cc: David Boddie <[email protected]> Date: Tue, 26 Jun 2012 08:49:19 +0000 Subject: Re: That embroidery project! On 26/06/12 01:27, Robert Forsyth wrote: > Anne, David, > > > > Hi, on the 14th June 2012, I was awarded a Bachelor of Engineering > (BEng) Honours in Electronic Engineering with First Class Honours.

Congratulations! :-)

> My reason for doing the degree, job at Nokia, has now imploded... > Sorry to hear that, but there will be other opportunities. > > I was looking at the embroidery app, but I feel a little like the > horse in Animal Farm (I think) when he counted up to five forgot > about one: I struggled to get my KDE programming hat back on (not to > mix too many metaphors). > > From an embroidery app design point-of-view, there are several ways > to view the top level: > > 1 'digitKam' style, but why replicate Dolphin/Konqueror > > 2 'KDevelop' project based, I'm not a huge fan of IDEs > > 3 something else > I'll leave the technical side to you and David to discuss, and talk only about the user side. > > While we ponder that, what is the fun/reward of embroidery - I don't > want to kill that - with a computer paint box system I helped > program in the 1980's, what the graphic designers liked was not > having to get the paints out, mix colours and clean brushes > afterwards, they quite liked tools/helpers to draw circles and > straight lines and scale, translate or rotate, with text path aids as > well. > As in many other spheres, it depends on the user. For many, the ability to buy a pattern, put it onto their machine, then stitch it out is all that is required. Since all machines use either a USB stick or CF or similar card, the only problem there is that you soon amass a large number of patterns that come in zip files and create pattern files with a name like 12345.jef, or pes or vp3 or whatever. For them, the ideal would be for an association to be set up such that Dolphin can create a thumbnail of each pattern.

I would take this is the first unit that should be tackled, since it benefits users of all levels.

The next stage is the ability to view thread list and substitute other threads - possibly even substituting other brands of thread. Changing colours is usually the next stage that users encounter. > > Back to the top level (what is the document in programming terms) > > Do you work in projects (job bags) a composite of one or more > embroidery designs? > The Husqvarna software (more about that later) has modules for different purposes. They are, frustratingly, to all intents and purposes totally separate, so that you have to remember which module has which function, and save your work or rely on the clipboard to transfer it to another module.

> Do you have libraries of designs or letters which may be called into > a project? > Yes. A pattern may exactly fill your need, but often you want to open an existing design and either remove a section (side-branch of blossom, for instance) or combine patterns (e.g. garden bench + arbour + flowering bush + path). As supplied, the HV software has a few fonts and you can buy more. The really good thing though is that it is possible to import _any_ font and create an embroidery font from it. > > > The scenario I imagine: > > The projects are organized / grouped by folder (or tag or meta-data)

My habit is to group by folder, but meta-data is stored by the HV software and can be used to identify patterns (only from within the software, though).

> using Dolphin/Konqueror preview and analysers hopefully this would > give a simple way to copy or link resources into the project. > That sounds exactly what is needed. > > You could have an application to manage embroidery projects, perhaps > present a gallery of projects in a grid, where they can be sent to > USB drive, printer or embroidery-machine, but also opened in an > editing application. Is this the way to go, or is it an unnecessary > gatekeeper? > It sounds perfect. Ideally, I would say, work in a modular fashion so that the simplest need, the provision of an on-screen catalogue, is met first, then adding in step-by-step, more functionality. > > You could click on the embroidery project and open the embroidery app > that allows a composite to be built and sent to a machine or > printer. > One other big need is the ability to send to a printer a life-size "template". The pattern should overlay a grid, so that axes and centre point are easily identified. Ideally the thread information and metrics should accompany it (the ones we already have are exactly what the user needs).

> You could click on an embroidery file and open the embroidery editor > which allows stitches to be edited and such like.


> And photos could be opened in an embroidery digitizer.

The ability to digitize from a .bmp or from a .jpg would cover most needs.

> This is a bit like GIMP, I prefer Krita (except when it crashes), but > neither work very well on a small screen. > As we get more into digitization I find that people tend to use graphics tablets and external monitors, so that isn't as big a problem as you might imagine. This is an expensive hobby! :-D > > Please could you provide some embroidery scenarios? > Doris wants to create a cushion cover that reflects the theme of her room. She bought the perfect pattern some months back, but can't remember which one it is. She needs a viewer.

Doris's nephew's birthday is approaching. She knows he loves the back-pack school bag she made for his cousin, and want to create the same design but in different colours. Adding his name would be good.

James' small business it taking off, and he would like some logos embroidered onto t-shirts for the staff that will be presenting at the local show. He only has stationery with the logo on, so that has to be the starting point.

> Jan wants a patch for her quilt. > That one is easy - it's almost always simply using a bought pattern.

> Shannon and Peter have just had a little girl to be named Daisy. > Editing out or combining flower motifs

I have to go out now, but later today I'll send you photos of a couple of the projects I've created recently.

The HV software suite is very powerful, but I can see many weaknesses. At £1000 for the suite, there is plenty of room for competition :-D


From: Anne Wilson <[email protected]> To: Robert Forsyth <[email protected]> Cc: David Boddie <[email protected]> Date: Wed, 27 Jun 2012 07:38:27 +0000 Subject: Re: That embroidery project! On 27/06/12 00:48, Robert Forsyth wrote: > At the Dolphin level, you have previews, analyser meta-data, and > user tags on our projects and alien files. > Hi all - yes I definitely did CC David - I've checked the Sent file.

First, I forgot to mention that large files often need to be intelligently split so that they can be handled within the hoop size available. The HV software has an automatic split facility, which frankly is not good since it produced straight line splits, regardless of how the stitches fall. Another module allows you to manipulate handles to get an almost-invisible split, which of course is the one I use.

As promised, some files attached.

Stock_3a.png is a chasuble and stole set embroidered on silk. The design started as CrownImperial.jpg - a scan from a design book - and was digitized then split into three sections. Selecting suitable fills and borders is an important part of the design. Each section has some cross-hair location points to assist in correctly re-hooping for the next section.

The rest of the images are for a stole project. This started from the scan of an ovoid pendant, SCPServers.png. The software produces two kinds of file - scplogoFilled.can is the "working file" which can be opened and adjusted at any time, but can't be embroidered. The scplogoFilled.vp3 file3 is the ready-to-embroider file.

This software is actually very good at opening and saving different machine formats, so if and when it helps I can give you samples of the same project in as many machine formats as you want :-)

Robert's comment about KXstitch and background reminded me that if you start from an image, removing background is often the first job. This may also include removing discrete sections of background, holes, you might say.

Hope this helps


Embroidery Software

Embroidery Software tends to consist of several modules, such as

  • Create Design
  • Organize Designs
  • Edit Design
  • Lettering
  • Embellishments

Create Design

Digitize images and vector graphics in for embroidery designs,

  • Fill with patterns, shapes, text, artwork
  • Appliqué frames
  • Density checking
  • Preview

Organize Designs

  • File Interchange
  • Split to hoop
  • Baste or Tack
  • Thread Chart

Edit Design

  • Transform selection: Rotate, Flip, Move
  • Scale/Resize with line stitch to area fill
  • Merge with hidden stitch removal
  • Tile: copy and paste with grid or layout rules
  • Stitch edit with perfection rules


Library of fonts, text paths, shape filling, etc.


Various effects to give hand stitched look or library of borders,

  • Sashiko
  • Celtic Knots
  • Art Deco Patterns

File Formats

Description Extension
Baby Lock, Simplicity, Brother, Bernina Deco .pes
Elna, Janome, Kenmore, New Home .sew*
Pfaff .pcs
Singer .xxx
Viking .hus
Viking, Pfaff .can*, .vip, .vp3
Janome .sew*, .jef, jef+
Bernina, Melco .exp
Baby Lock, Ellageo, Brother .dst
* these are work-in-progress files and cannot be embroidered

This page was last edited on 1 August 2012, at 11:22. Content is available under Creative Commons License SA 4.0 unless otherwise noted.