On a tangential note, I was happy to see that they're using Solidworks files within git. There are precious few examples of this "in the wild", and after guiding my previous (small, <20-person) company to using git for hardware version control, I always get a bit happy seeing other projects doing the same.<p>Git gets a bad rap with binary blobs like Solidworks files because merge conflicts are extremely opaque, but that's really not much worse than anything else you've used as a mechanical engineer (at least not in my experience). And, unlike other options -- like the litany of built-in solutions that are "integrated" (if you can call it that) with the CAD program itself -- you get the benefit of branching and sandboxing. Really the only downside (from my perspective) is that you have to be very careful about communicating who is working on what, and being absolutely meticulous about sizing subassemblies in a way that minimizes work conflicts. Beyond that, the biggest hiccup is that Solidworks assembly files are rather... poor abstractions... and that changes to individual files within them will result in changes to the assembly file, even if the assembly itself never changed [1].<p>Tools like openscad get a lot of love from software engineers, but programmatic definition of geometry like that is just orders of magnitude less productive than, for example, the Solidworks UI. I think the primary reason they get as much appreciation (aside from using a familiar interface to software devs, namely code) is their compatibility with source control and collaborative work, which is in just a profoundly abysmal state with mainstream CAx tools. The CAx world is in dire need of a software-independent, merge-friendly formats.<p>Note that STL, IGES, STEP, etc don't count; they're package independent, but only transfer the "compiled" final geometry of the part, and not the history ("source code") you used to create it, so they're essentially immutable snapshots. That makes them great for sending a release to manufacturing, but utterly unusable if there's any design left to do.<p>[1] This is a result of the assembly file also storing a "compiled" version of the final assembly geometry, in addition to the various rules -- Solidworks calls them "mates" -- that define the relationships between the parts. So if you change the geometry in any of the parts, the assembly file changes, even though none of the mates did. Very frustrating.