Ditch the Sequential Nature

It seems very difficult to use Seamly2d as a pattern gets more complex, mainly due to sequential object limitations. Is there any chance the program could be written so it does not require that sequential nature? I understand it would introduce the risk of creating a race condition, but couldn’t that problem be checked for programmatically whenever an action is attempted?

1 Like

Hi @Lowkus! I’ll use our new terminology here (Draft mode, Final mode, Layout mode)

  • Simple issues: Math formulas are used, so we can’t remove the hierarchical or sequential nature of blocks in the draft phase. A comes before B. When A+B=C, then A and B must exist before creating C. C can’t be used to create A or B, and can’t be used to create predecessors of A or B. There’s no way to soften this up.
  • More complex issues: Each draft block contains internal paths, pins, rotation operations, mirroring operations, and this information needs to be kept with the draft block in the XML file. So each Draft block has it’s own section in the XML file. This approach creates the Draft block hierarchy. Information from the first Draft block is available to the second Draft block, but not vice-versa.
  • Solution: You could combine the Front and Back body sections in the same Draft block. Many patternmaking systems use this approach. If you need to visually separate the Front and Back areas then create a long horizontal separator line from a point on the Front section. I use the base point, eg A, create a long line to the right and start drafting the Back at the endpoint of the line. Set the separator line to be dotted or invisible. Continue to create separate Draft blocks for Sleeve, Collar, Belt, etc. because they are dependent on the FrontAndBack block information, not vice-versa.

Be sure to use the actual length of the Front & Back Armscye curves in the understructure for creating Sleeves. Same for using the length of the Front & Back Neck curves to create Collars. Then you won’t need to “walk the seams” to see if they’re the right length!


Hola, Gracias por esa solución. Recién hice un primer patrón base que necesitaba información del segundo patrón, y no podía hacerlo. Ya iba a sugerir hacer algo al respecto, para seguir mejorando esta herramienta de Seamly. Pero ya se que por el momento no se puede. Seguiré tu sugerencia. Gracias

Pero ya que ando escribiendo por acá, pregunto si esto es posible.

  • crear una herramienta que haga las divisiones de una línea o curva, con los puntos que necesito de una vez. Ejemplo: Dividir la distancia de una línea o curva entre 6 partes y haga los puntos o marca de una sola vez. Use en este caso la herramienta Midpoint between 2 Points, que me resolvió mucho, pero una que tenga esa opción simplificará más el trabajo.

También me gustaría saber si se pudiera girar o rotar una pieza de patrón, para trabajar más cómoda en la realización de las transformaciones del patrón básico. Se que puedo usar la Herramienta Move Objects para trabajar más como, pero si se pudiera Girar o rotar en distintos ángulos esa pieza, seria más fácil hacer transformaciones.

Bueno espero haberme explicado bien, y no haberme enredado mucho :face_with_hand_over_mouth:. Si supiera algo de programación ayudaria más y estaría dedicada a este programa de Seamly porque me encanta el Patronaje.

Saludos y gracias por todo.

Hi, Thanks for that solution. I just made a first base pattern that needed information from the second pattern, and couldn’t. I was going to suggest doing something about it, to continue improving this Seamly tool. But I know that at the moment you can’t. I will follow your suggestion. Thank you

But since I’m writing around here, I wonder if this is possible.

create a tool that makes the divisions of a line or curve, with the points that I need at once. Example: Divide the distance of a line or curve into 6 parts and make the points or mark in one go. I used in this case the Midpoint between 2 Points tool, which solved me a lot, but one that has that option will simplify the work more. I would also like to know if a pattern piece could be rotated or rotated, to work more comfortably in performing the basic pattern transformations. I know I can use the Move Objects Tool to work more like, but if you could Rotate or rotate that piece at different angles, it would be easier to make transformations.

Well I hope I have explained myself well, and not have gotten too confused: face_with_hand_over_mouth :. If I knew some programming I would be more helpful and would be dedicated to this Seamly show because I love Pattern.

Greetings and thanks for everything.


Hi @Damay

Yes, this would be really handy. Especially when forming the sleeve cap, to divide the lines between the under arm and the shoulder tip into 3 or more evenly spaced parts in one step.

Yes, at the moment, the move tools only moves the pattern a certain distance and angle. It would be nice to be able to rotate the section at the same time, instead of having to do a separate rotation. This has been discussed with the developers and I believe that it is in the pipeline.

I’m sure @slspencer or @Douglas will stop by soon and let us know if this is at all possible.

In the meantime, thank you very much for your suggestions :slight_smile:

1 Like

@Lowkus: I can certainly see the appeal of this idea, & I don’t know programming, but I do know logic, which is its basis. So I can confidently state that though you are technically correct that such a feat would be possible, Susan is right in saying it can’t be done. To put it in right-brain terms, it would blow this sleek little 50meg race-pony into a multi-gig post-apocalyptic dreadnought – powered by nothing more than one little race-pony. Which left-brain promptly rejects as feasible.

Now, what’s beautiful is that Seamly files are human-readable xml files, & not some proprietary binary format. So you can weave your code like Athena, as Grace does.

But what the devs are working on is cleaning up the code, & implementing tools & layout options. Which will make it easy to Grace-fully code-edit your files or start over from scratch without being overwhelmed, (as long as one has a basic knowledge of pattern-cutting & logic.)


1 Like

Hola, @Grace, exacto. Eso era lo que necesitaba en la realización de la manga, en la que estaba trabajando. Y también para hacer transformaciones en distintas piezas de patrón seria muy util. Se me ocurre muchas ideas en la que pudiera usar una herramienta así.

Hola, @Grace, exacto. Eso era lo que necesitaba en la realización de la manga, en la que estaba trabajando. Y también para hacer transformaciones en distintas piezas de patrón seria muy util. Se me ocurre muchas ideas en la que pudiera usar una herramienta así.


No sabia que estaban trabajando en eso. Seria muy buena esa opción en las piezas de trabajo. Gracias por responderme. Saludos

I didn’t know they were working on it. That option would be very good in the work pieces. Thanks for answering me. Cheers


It’s on my list of things to do. Segmenting a line, arc or curve is a precursor to being able to automate button / buttonholes - or for that matter any other defined “symbol”. The idea being that you would have a dialog to enter the start and end points, number of segments, and the type of symbol to place at the segment points. Plus a few other things like symbol rotation and offset. That’s the gist of it.

The question is, would this tool simply replace the current midpoint tools?.. as you could simply enter 2 (segments) to get the midepoint. Or do we keep the midpoint tool as a convenience?


I quite like the current midpoint tool because it sets the scene for me (lazy, lazy) and then I change the /2 to /3 or *4 or whatever I need in the formula. However, the Point along line tool will also work for this tool.:slight_smile:

1 Like

Actually the Midpoint tool is a “convience” special case for the Point Along Line tool. I’d be inclined to just leave it.


No. Seamly2D is linear in nature, and the anology in video editing terms would be only able to edit existing events in a forward time sequential manner. Unlike with NLE’s (non linear editors) that allow you to edit “Back to the Future” events out of sequence. As Susan pointed out it’s due to the parametric nature of the program and the use of formulas to define objects.

We simply don’t have a Delorean with a flux capacitor to know the future or alternate realities. :slight_smile:


The function needed here, is to place a point back in the creation history: for example I would have created:

  1. Point A
  2. Point B
  3. Point C = 0.7 * A

  1. Point M = (A + B) / 2

and than I would need to change point C to 0.7 * M … So the function should take point M and place it at position 3. The function should look for the earliest position, so that all values are known.


It is possible, using the History panel, to place objects earlier in the sequence of the same draft block. It is also nitroglycerin for your draft. Be very careful. Thankfully, the devs have made Seamly2D to fail safe in this circumstance, but it is not graceful.

1 Like

So we would need a button in the History dialog for ‘Sort’ which implements the ‘Tree Sort’ algorithm to optimize the creation of points and objects within a single draft block. This does not allow using information from a later draft block in a previous draft block. The “sequential nature” of reality will be preserved.


And if anyone wants a new Points tool to add multiple evenly-distributed points along a line (“Multi-point tool”), please add a feature request issue to github here:

1 Like

This is a traditional patternmaking technique, it would be good to add this to our toolbox. If you want an Operations tool for “Pattern rotation”, please add a new feature request to the github repo at Issues · FashionFreedom/Seamly2D · GitHub.

Also, we encourage everyone to keep the threads simple, if you have a new thought it’s okay to create a new post to discuss it. Otherwise some of the best ideas get buried and forgotten in unrelated threads. We’d like for your voice to be heard (and remembered :blush:)


Awww, I liked the first draft of that post better! :crazy_face:

I think that ‘Tree Sort’ algorithm is shiny! It might be good to make grouping/layering more memorable, & make it more obvious that different pattern blocks work better for different outfit pieces than for different pattern pieces?


Can you clarify this thought, it’s intriguing…


@slspencer I’m not real sure where my mind took a different train here.

As far as making it more obvious, the recent renaming of the first mode to “Draft” may be as far as it’s reasonable to go on that front without including such a note in tutorials.

As far as different outfit pieces per draft block. There are a myriad of tiny reasons, but the most stable reason is that it makes it easier to add a measurement to one part based on a measurement found by drafting a different part. It would also help with taking advantage of a “tree sort” algorithm, if/when that’s implemented.

As far as putting whole outfits into one VAL, it seems that it would make it easier to keep track of where the disparate pieces were, especially when used with setups like thumbeliya mentioned wanting in Automating loading measurements and exporting.

1 Like

@Pneumarian, to continue this idea please open a new thread maybe add drawings to describe what you want, Thanks!