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.
You aren’t accounting for managerial politics. A product manager won’t gamble on a large project to lower operating cost, when their bonus is based on customer acquisition metrics.
The original author said he built this on the weekend, so my assumption is that this was something engineers had advocated for before but were shut down because management wanted them elsewhere.
The use of ai agents allowed them to shrink the problem down to the point where it was small enough to fit in their free time and not interrupt their assigned work.
Why are engineers spending their week-end on saving their company money especially if the company clearly doesn't care to allocate resources to the problem?
I get that it's fun and there's personal satisfaction in it, but it just reinforces to management that they don't need to care about allocating resources to optimisation, the problem will just take care of itself for free.
At some point it's hard not to care about the work you do everyday. And if you care, then you are going to find yourself donating a Saturday here or there to solving big DevEx papercuts that you can't convince management to care about.
Should it be this way? No. Is it this way in practice? Unfortunately often.
A bit sarcastic, but still too close to reality for comfort:
For the managers, it's about a bonus. For engineers it's the existential question of future hirability: every future employer will love the candidate with experience in operating a $500k/a cluster. They guy who wrote a library that got linked into a service... Yeah, that's the kind they already have, not interested, move along.
CAD programs were designed to automate hand drafting processes. Most of the autocad commands made no sense until Drafting 101. It was a full semester of hand drafting, which did feel excessive. Hand writing hundreds of words in an engineering font is just a waste of time.
I took pencil and paper mechanical and architectural drafting for 3 years in a high school vocational program (in the US) which also included learning AutoCAD. I enjoyed the pencil and paper work more, and I must have been among the last age groups to learn it. By the time I became a working engineer only 5 years later, there were no vestiges of manual drafting anywhere. Computer desks must have been the main focus of draftsmen for many years already.
I'm not sure if it helped or hurt my CAD drafting skills, but the attention to detail was almost meditative for me during what seemed like hours of silence among a dozen other kids at drafting tables. Not sure I have any real point here, just sharing my experience.
People were violating the terms of GPL without consequence long before AI. It is very difficult to determine if binaries were compiled from fragments of GPL code.
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.
Mermaid is really bad about cutting off text after spaces, so you have to insert <br>s everywhere. I’m guessing this is getting rendered instead of escaped by your interface. Or just lost in translation at the tokenizer.
It seems to be an indirect attempt to promote their GitHub project. They had Claude make them an “agent” using Bayesian modeling and Thompson sampling and now they are convinced they have heralded a new era of AI.
Even if you tuned two string to ensure that two specific notes on them vibrated at a perfect interval, there are non-multiplicative overtones modulated by resonance with the rest of the instrument. Those intervals are ideals for minimizing dissonance. Practically, the dissonance of 12TET intervals falls below the noise floor of all the other acoustic distortions that give instruments character.
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...
reply