2,485 karma · joined March 22, 2013
https://build123d.readthedocs.io/en/latest/tutorial_constrai...
Traditionally CAD programs require declaring geometry, then defining constraint relationships between them. That leaves ambiguity. I often create under-constrained sketches in Fusion, then change a dimension, which breaks the geometry in ways that technically respect the constraints.
They designed an imperative constraint system. A lot of constraints are linear, so you can just order the sketches and reference as needed. For circular or bi-directional references you probably have to define some construction geometry first, solve the constrains there, and reference it.
Something I haven’t seen before is their filter syntax for disambiguating solutions. You can express how the desired solution relates to the surrounding geometry. This constrains correctly across large parameter changes and will error when there is no longer a solution rather than switching to an unexpected solution to the constraint.
https://build123d.readthedocs.io/en/latest/tutorial_constrai...
The places I have found AI most useful in coding is stripping away layers of abstraction. It is difficult to say as a long time open source contributor, but libraries often tried to cater to everyone and became slow, monolithic piles of abstraction. All the parts of an open source project that are copyrightable are abstraction. When you take away all the branching and make a script that performs all the side effects that some library would have produced for a specific set of args, you are left with something that is not novel. It’s quite liberating to stop fighting errors deep in some UVC driver, and just pull raw bytes from a USB device without a mountain of indirection from decades of irrelevant edge case handling.
This is a habit humans could learn from. Publishing a fork is easier than ever. If you aren’t using your own code in production you shouldn’t expect anyone else to.
If anyone at GitHub is out there. Look at the stats for how many different projects on average that a user PRs a day (that they aren’t a maintainer of). My analysis of a recent day using gharchive showed 99% 1, 1% 2, 0.1% 3. There are so few people PRing 5+ repos I was able to review them manually. They are all bots/scripts. Please rate limit unregistered bots.