Elm-pat: What does one need to construct sewing patterns?

browser
sewing
drafting

#1

Hi,

some time ago I learned about constructing sewing patterns from body measurements and started working on a tool to be able to do these things using a GUI in the browser. Then I found out about Valentina/Seamly2D which seems to implement a lot of the needed functionality. I would like to continue with the work on my tool though, as I think the browser is a very good platform for such a tool. As I’m not an expert on sewing pattern creation at all, I’m reaching out to this community with some questions. :slight_smile:

  • Are there any resources on what construction steps a sewing pattern program has to support? I have found https://github.com/slspencer/tmtp for example, where there are a lot of helper functions like “create a point to the right of another point”, “give the intersection of these two lines”, … . Are the functions in there all one needs, or is there more?

  • I also wonder if there is an exhaustive list of needed features? You certainly have to be able to construct points relative to each other. But then you also have to be able to connect them with lines/curves. I guess, there is more to this like adding seam allowance, adding darts, … ?

  • Are there workflows specified for construction steps which have to be supported? I’m thinking for example about dart creation. I’m curious what a user interface should ideally look like to make creating these things as convenient and fail-safe as possible.


#2

Creating sewing patterns is a complicate process which is impossible to cover just answering a few question. Valentina/Seamly2D is not that new and still has a lot of issues, many of them are “not an expert on sewing pattern creation at all trying to make patternmaking software” issues


#3

You are totally right! :slight_smile: And that is actually the reason why I want to ask first before hacking together something which may not be so usefull! So, I was more asking if there are already some resources/information on what concrete functionionality such a sewing pattern tool needs. For example a list of construction steps which one has to be able to make.

You said, that Valentina/Seamly2D has a lot of issues. Is there a place where these are collected? I would especially be interested in usability issues.


#4

I’m by no means a programmer. But if I were you, I’d download the program, learn how to use it and take it from there. The tools used to create the lines and curves are all on the left side. I guess each one needs to be a function on its own.

Why don’t you chat to @slspencer. Perhaps you could work on Seamly2D to add the browser functionality to this program? I know that there has been minor discussions in the past about making SeamlyME accessible from the browser to aid in taking measurements.


#5

@kirchner What open source license is your browser tool?


#6

Thats true, and I also tried it out a bit. But as I read somewhere here, that it does not completely have all the functionality it was originally wished to have, I thought asking here first, would be a good idea. :slight_smile:


#7

What I have written so far is under the GPLv3. One can actually try it out at elm-pat, but it is really just a very, very basic thing right now. (On the lower right corner, one can select some example patterns, the ‘x’ clears the pattern. Points can be created using the tools on the upper right corner. On the upper left one can add measurements which can be used within the formulas and on the lower left is a list of all points in the pattern.) The source code can be found at GitHub - kirchner/elm-pat: Sewing pattern editor.

The reason why, it is not very advanced so far is, that I first want to get a good understanding of the what the tool should offer and how a usable ui could look like.


#8

What I really like about your tool right now is that it’s

a) beautiful b) interactive and visual (at least I see it’s intended, still very new, I understand)

That’s really great in my opinion

The most obvious thing that’s not there at the moment is curves. It’s absolutely necessary for any type of basic pattern and that part is pretty good in seamly2d, you can look at how it works there


#9

Now I’m really interested to be honest. I have a lot to say about what’s necessary for a useful tool, I feel like it will be a word document at least 3 pages long. Should I start? :grinning:


#10

Thank you for your feedback! A document with some insights would be very great if you can afford the time. :slight_smile: It does not have to capture the whole thing, if that is too long. We probably want to do some iterations over it anyway, i think.


#11

I made a google document, should I post it here or somehow send to you privately?


#12

I would be willing to read and comment if you can post it here


#13

Ok, here it is elm-pat - Google Docs

I tried to not make it “what should be fixed in Seamly” as much as possible :sweat_smile:

It’s pretty sketchy, I wanted to cover all the patternmaking process and at the same time catch some ideas I had in the process. Also I’ve probably forgotten some important tools I don’t use


#14

Thank you, that really helps! :slight_smile: I have read your ideas and have some further questions:

  • Is a more general tool for placing a point at a horizontal/vertical distance from another point enough, or is it actually a good thing to also have (simpler) left-of, right-of, above, below tools?

  • Is it good to have this special tool which places a new point relative to two other points? (For example on a line or a curve between them) I guess, it could make it more easy to transfer pattern constructions to the program? Also, a point on a curve cannot be created with the other tools, I think. But is this actually necessary?

  • Does one sometimes be able to mirror points along a line or rotate them around another point?

  • Does one have to be able to construct curves on its own or are they actually only needed to create the boundary of a piece? Or put differently, does one only have to be able to create closed polygons where no two line segments intersect each other? And if so, does one have to be able to create holes in them?

  • What are arcs needed for? Only in the construction process or also on the final pattern? And are there maybe example patterns which make use of them?

  • Is there an example of an “Arc as a notch”?

  • Are ellipses also needed or are circles enough?

  • I am not completely sure I understand what “detail” means in this context. Is this an actual connected piece which will eventually be cut out?

Concerning the modifcation of a piece:

  • Does it also have to be possible to cut a piece into several pieces and put them together in an arbitrary way, or does one always rotate pieces against each other at some shared point like it is done in the video?

  • Are notches just little markers or does one sometimes have to draw arbitrary lines where there will be a cut, for example?

Thanks again for taking your time! :slight_smile:


#15

@kirchner have read your ideas and it makes me wonder whether you have been able to try the Seamly2d tool at all. The lack of instruction manual can make it difficult to get started.

Before you decide to start from scratch and create a new tool I invite you to take a further look at the Seamly2d tool.

I am posting an example pattern that helps show off some of what Seamly will do. Gent Jacket with tummy.val (156.3 KB)

This particular pattern does not use a separate measurement file. I chose this example because it is simple to start a discussion.

I agree that the Seamly2d user interface is not ideal, but I think the fact that it can be used without an internet connection makes it worth investigating. If you will download this pattern I would like to discuss some of the things that you listed under general usability and I can provide screenshots.

One thing that was it took time before I understood is the fact that the Seamly tool uses different modes. (draw and detail)


#16

Hi @kirchner

I’ve had a look at your pattern making tool and the basic concept looks great. I like the clean, no-fuss appearance with different pull-down menus for the different sections.

I think, if I were you, I’d do the following before going too much further:

  • I couldn’t find how I can save the pattern that I was trying to create. This is totally necessary even if you haven’t created all the tools yet, so that people can test the tools on their own creations.

  • There is no actual explanation anywhere as to how to use the existing tools. Some sort of initial help is needed. Perhaps in a popup text box which disappears once the tool is released, with an radio button option to turn the help text on and off.

  • And then, of course, at least a bit of sketch-work on the actual printing of the final product. This will be pretty tricky because .svg will resize itself. There will have to be something that will control the size according to the measurements in whatever program is being used to create the final layout to be printed or cut.

I’d definitely look into these before going much further, to create the norm for any further features. To go back and do them after you’ve created a number of features, will be difficult and tedious.

And… since you’re on a roll here, I’d definitely suggest a forum or blog where you can discuss these things at length. :grinning:


#17
  • As see it, both “placing a point at a horizontal/vertical distance” and “point on a line” can be created with “line at an angle and a distance” If you manage to make accessing data of previously creating elements to use them in formulas easy and fast enough

  • Point on a curve is absolutely necessary, this is one of the parts I forgot

  • Move, rotate and mirror along line (axis) are all useful tools. Users should be able to apply those to several objects simultaneously. Also it would be nice to have an option to chose whether you need to rotate (move, mirror) the original objects or create a copy. These tools are useful for both initial pattern creation and pattern manipulation.

  • I use arcs as curves of specific shape, they are almost always a port of final detail outline. On the screenshot curves A28_A26 and A26_A27 are actually arcs (center points are not visible)

image

  • I will also try to explain my idea of “arc as a notch”. The name might be confusing because these notches have very little in common with “notches” we usually talk about on patterns, that’s probably not even proper English, sorry. So, I have this armhole pictured above. I want a point on curve A42_A28 at the distance exactly 5cm from point A67. In seamly I will create an arc with radius 5cm and point A67 as a center and find its intersection point with the curve. It is an operation I use often, so it will be useful to do it without creating an extra object (the arc) and typing in it’s angles.

image

  • In my pattern making process I never had to use ellipses, but there is a tool in Seamly and It seems some people use it :woman_shrugging:

Seems like OK definition of “detail” to me

YES! And connect pieces that were constructed separately (like a sleeve and a bodice) Often the pieces are not just put together, but with some space between them. And of course after that you have to create new lines and curves to shape the new detail. An maybe add pockets :grinning:

  • There are different markers on printed pattern besides notches, like fold lines, grainline, etc

#18

I too would vote for offline tool. Why do you think using browser is a better option? I have to work without Internet connection very often, so I will have to chose an offline program even if it is not as good in usability.

UPD. Moreover, many patternmakers are concerned about their intellectual property and will be not willing to use online tool for that reason. Target audience of an online tool will be hobbyists only


#19

Thank you so much for all your feedback!

Considering the Internet/Offline concerns: I totally get that! :slight_smile: I agree that one has to be able to use it offline, and actually it is not a big technical problem to turn the application I have so far into one which can be run like a normal program on your computer or as an app on your tablet.

On the other hand, I believe having a tool, which can be used just by visiting a homepage with your browser is a really good thing to get people started, since you do not have to setup anything on your computer as long as you have a (more or less modern) browser installed.

@kmf I will take a closer look at Seamly2d using your example pattern, thank you! You are probably right, that one can learn a good bit by looking at how it is done in this software. (I also did not see that their are different modes to be honest. :smiley: ) But I also think, it sometimes helps, to take a step back and try to figure out how a problem can be solved in a nice way without looking at already existing solutions. (I think, I also read somewhere on here that Seamly2d is not the exact solution, it was wanted to be?)

@Grace I completely agree, and have these things on the list. :slight_smile:

@Krolich Thank you for your clarifications! I think, especially the cutting and arbitrarly putting together part will need some serious thinking, to figure out how this can be transformed into a nice user interface. I will give this some thoughts!

You are right! As for moving forward: I will be thinking about all your feedback in the next week and will try to come up with some a bit more detailed feature list and some workflow descriptions. (I’ll probably put it on github.) Perhaps further discussion can be done there? I don’t want to spam this forum, since I understand that it is meant for discussion around the Seamly-tools! :slight_smile:


#20

Hi @kirchner!

I mean all of the following in the best way possible. This post this post is intended to initiate a professional mature discussion about a mutually beneficial relationship between your project and ours.

We know you’re a good person, most people are. But lots of good people are also naive. The coders who have used my work as a jumping off point for their projects truly didn’t understand the amount of revolutionary hard work that went into making their projects possible – they took it all for granted. They take the patternmaking part for granted, and show up wanting someone to teach them how to make patterns as if it were like learning to color in a coloring book. People spend years learning patternmaking, and you ask them to transfer this knowledge for nothing in exchange. This knowledge transfer takes a lot of people’s time, yet our users are beautiful people and they respond to your request with liberal amounts of data – they want you to succeed, as do I. Yet in the past, the coders who wanted to learn patternmaking have disappeared as soon as they get what they wanted - they gave nothing back to the project even though they received so much. Please understand that my concern is for this project and it’s users.

In your favor:

  • You’ve chosen a GPL and didn’t say ‘I haven’t decided which license to use yet’ as cover for secretly planning to release your work as proprietary code (this has happened to us)
  • You’ve posted your code in a public Github repo, and didn’t say “Even though you’ve mentored me and spent months teaching me how to do all of this, I will not share my developments back with you” (this has happened to us)
  • You’re inviting others to contribute to your codebase, unlike many open source programmers who have control issues. (seriously, this happened WITHIN our project. Never again :smiley: )

So many, many kudos to you :smiley: You’re one of the good guys. So, now we can discuss the details of what we need to work out…

My concern is that your README doesn’t give attribution to TMTP, Valentina, or Seamly2D. This is a problem. When I go out to raise funds to keep open fashion tools under development (not just Seamly2D), attribution makes a huge difference in credibility and reputation. Funding is all about cred.

TMTP (and Valentina and Seamly2D) was the result of 5 years of:

  • Studying 100+ patternmaking systems to find what had been forgotten or overlooked in the industry which made clothing a terrible fit for 80% of the population - this was on a par with advanced engineering studies, it was difficult and extensive research, and there was no prior research, I started from scratch
  • Doing a comparative analysis on patternmaking systems, determining the pros and cons of each system - there was no prior research, I started from scratch, and yes ‘extensive’ isn’t a big enough word for this work
  • Reducing patternmaking to first principles and eliminating the Victorian pseudo-science - again exhaustive studying was required, and I produced piles of sewing tests. Again there’s no prior research, I started from scratch, and empirical analysis was difficult and expensive.
  • Determining which body measurements actually make a difference in fit, and which do not - there’s no research on this, I started from scratch, this was difficult because up until my research no one had addressed this from a systematic, engineering perspective. There are lots of errors in the pattern systems in this area, which slowed the research because bad assumptions yield bad results. Finding and correcting the bad assumptions which created the bad results was really, really hard.
  • Determining why government sizing standards don’t yield good fitting clothing - this was a significant research project in and of itself, with no prior research available so yes I started from scratch. This required using information discovered during the research on body measurements and on Victorian patternmaking pseudo-science. If I hadn’t conducted those two research efforts first I couldn’t have done this one.
  • Discovering how to translate manual patternmaking methods into precise mathematical steps which could accept parametric input - this was herculean, and again there’s no prior research so I started from scratch. I was reading graduate level math theses on a daily basis for months to discover techniques.
  • Studying advanced 3D graphics math to understand them so well that I could convert them down to 2D, and then convert the math from using matrices and derivatives, and represent all functions as 10th grade Algebra II/Trig, this information is not available anywhere else AFAIK. This effort unprecedented, and my work has subsequently wound up in other projects, primarily in the Processing community due to my working with some Processing programmers for 2 weeks in Madrid in 2013. And again, this research involved studying postgrad math theses and dissertations.
  • Studying SVG element generation and working out the code to make the SVG objects as lines, points, curves that are usable in patternmaking, different than the native objects found in SVG. There was no code anywhere to do this, even Inkscape developers were unable to assist. To this day there is very little code or writings available on how to use SVG programmatically to create custom SVG objects, AFAIK. (However there’s lots of code to manipulate existing native SVG objects). Again, there was no prior work available, this was from scratch, and this work migrated into the Processing programming community.
  • Creating the data structures that contain the DNA of the pattern piece so that it had all the information required to replicate itself, applying different measurement files to achieve different results. This was almost as difficult as reducing PhD level computer graphics manipulations down to high school math.
  • Creating and repeatedly simplifying and refining the function library for math, SVG, and patternpiece manipulation to reduce it to it’s utmost simplicity so that it could be read, understood, and easily used by users and developers. This was time consuming and a labor of love for all the future users that I envisaged using the software. Because I wanted everyone to understand it, including users and novice developers. This may have been a mistake, because it’s simplicity and easy-to-use-and-understand characteristic makes people believe that it was easy and simple to create. Nothing could be farther from the truth.

All of the above is why you currently have the ability to create a patterneditor in a browser.

History#1:
I was developing a Javascript browser method using Fabric.js when Justin Couch contacted me. He took my TMTP code and developmental stage javascript work and created http://thepatternshare.com as his master’s thesis at RISD. True, his project only generates existing patterns and shows them in a browser and allows users to download the pattern file, which is great. But he did not credit my work, he took 100% credit for developing the set of functions that are the engine which makes all of this possible. Our agreement was that he would give me attribution and that we would continue to work together to push this project forward. I spent months teaching him in patternmaking, math, interpolation, best practices for curve creation etc. (this forum now takes my place in this training area :smiley_cat:) and I received nothing in return. Never heard from him again. Wham bam thank you ma’am. He ripped me off for so much of my time and expertise. Several other coders have contacted me over the years and wanted to “work together” to create their project. I readily helped these coders but they returned nothing to this project, and always minimized or denied that they used my library.

History#2:
When Roman contacted me about working together, he said he’d already programmed my work into C++. He wasn’t interested in learning Javascript. I decided to go with his C++ desktop app, even though I didn’t know C++, so that people who didn’t have constant internet connectivity could participate in fashion in the digital economy. I decided to use my time on product definition (eg help Roman understand what functions should be coded and what the algorithm is for those functions) and build the global user base by travelling around the world conducting seminars and teaching people how to use the software, and creating web resources like this forum.

Consider this scenario for a bit:
What response would you receive if you joined a mechanical engineering CAD forum, told them you were building a competing product, and asked the forum users to:

  1. teach you mechanical engineering and
  2. identify all the coding functions which are needed for mechanical engineering CAD

We have done what the fashion industry claimed was impossible – we converted fuzzy-logic Victorian-era paper-based patternmaking techniques into engineering CAD. Which is why you like it. But we did the heavy lifting. A lot of heavy lifting.

  • To do what your GPL requires, give ATTRIBUTION that you are building from the code of other projects, building off the work of others that came before you.

  • To give this forum’s users something back for their time and knowledge transfer, why not fund a few months of the forum? This would free up some funds for other developments of our project.

Please don’t let the length of this reply cause you to believe that we don’t want you here. WE DO!!! The more the better, let’s take on the fashion industry by placing the means of production into the hands of the proletariat. But let’s work together professionally, ok?

BTW, did you look at the Board of Directors for my Fashion Freedom Initiative (which your project is welcome to join)? https://fashionfreedom.eu