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 )
So many, many kudos to you 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 ) 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:
- teach you mechanical engineering and
- 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