Skip to content(if available)orjump to list(if available)

Proposal: GUI-first, text-based mechanical CAD inspired by software engineering

Proposal: GUI-first, text-based mechanical CAD inspired by software engineering

30 comments

·July 5, 2025

Most mechanical CAD tools (SolidWorks, Fusion, FreeCAD) still lock all modeling into opaque binary files. That makes it hard to track changes, collaborate with Git, or automate builds.

I’ve written a proposal for an alternative paradigm:

- GUI-first, like KiCad - visual modeling is the default

- Text-based source files (YAML/JSON) — readable, diffable, Git-friendly

- Separation of source and result - .step, .stl and previews are built artifacts

- Parametric logic is explicit - slot width = tab width + clearance

Works with Git, CI, or scripting — no more PDM lock-in The proposal is called SplitCAD, and it's just a concept for now — not a working tool. But I’d love to hear from anyone frustrated by the limitations of current mechanical CAD.

GitHub: https://github.com/yuanxun-yx/SplitCAD

zxspectrum1982

Other than git-friendly, this is how I remember AutoCAD 10 from ancient times.

loloquwowndueo

Sounds like a gui editor for openscad would be just the thing for this, right?

aDyslecticCrow

A gui with tools for openscad that map to real functions would do the trick.

alsko

I think Solvespace is pretty close?

https://solvespace.com

IshKebab

I don't think this will ever really work well. CAD is just too visual. You're never going to be able to meaningfully diff/merge anything but the most trivial changes.

Code-based CAD is fine for things that are highly regular like fasteners, springs, etc. You're never going to design a motorbike or a chainsaw using OpenSCAD though (at least not if you aren't masochistic).

ddingus

I live seeing efforts like this.

But I am just going to put this here so the general thoughts incorporate a fundamental problem before significant labor investments go too far:

What is a probable, viable, possible answer to the geometry kernel problem?

Parasolid, arguably the leader and generally most capable geometry kernel we have today, is or at least I can't see past...

...is just not something easily duplicated.

There are a bazillion man months of time in that body of code. And those are hard hours!

For those unfamiliar, the geometry kernel is the piece that resolves geometry cases to make operations possible. Imagine a cylinder and rectangle. Now imagine they have some common volume. They intersect, in other words.

Put a fillet on one edge to blend the edge.

How many literal edge and corner cases can you come up with?

There are way more than you think!

Now multiply that tiny problem space with all the geometry used every day.

And then multiple that time again by what it takes to make it robust.

And the whole thing, as it stand today is not even multi-threaded!

Any CAD that we expect to see even moderate general use in a professional sense, needs this piece.

How do we, meaning anyone interested in CAD this way, get past this?

I wish there were some OSS type license for Parasolid. It could be treated like the Linux kernel.

Whatever replaces Parasolid and friends, should be treated like the Linux kernel.

The closest we have is Open Cascade.

Sorry. I do not want to piss on a good vision. But this has to be said.

Peace and good luck!

I used voice input on this. Pleqse forgive typos.

tda

> I wish there were some OSS type license for Parasolid. It could be treated like the Linux kernel.

> Whatever replaces Parasolid and friends, should be treated like the Linux kernel.

So much this! But the undertaking is so daunting, how do we get there? A capable, OSS CAD kernel would provide so much value to the world. I whish e.g. the EU could just "nationalise" such important, crucial software and redistribute it openly. Or that through some Chinese effort a newer and better kernel just lands out of nowhere and disrupt the field, like with DeepSeek.

The world has benefitted so immensely from Linux being freely available, has anyone even tried to put a price on the benefit to humanity? Imagine being stuck in a world where on big corporations can have proper OS-es, and everyone else is stuck with some anaemic locked down kernel...

cyanydeez

Im not sure we are annywhere near Software as Public Infrastructure.

Will need to clear put billionaire parasites, and that wont happen till American fascism hita its nadir.

thinkmachyx

Thanks a lot for the thoughtful and respectful reply! I really appreciate that you raising the engine issue without dismissing the whole idea.

Although building such engine requires tons of work, but the engine we’re having is indeed a bit of old. Except for the problems I mentioned, you also mentioned they’re still single threaded. That’s why I think it’s still worth building a new one, especially when there’s no good open sourced one currently.

I’m a big supporter of open source. If we have something like that in the future, we should of course make it open source like Linux kernel and allow everyone to enjoy the benefit of it.

ddingus

Me too, and you are quite welcome!

CAD is close to my heart. I jumped in during the 80's as a high schooler running on an Apple 2! Even back then, limited 8 bit CAD could do a lot. And it was one application that helped me see the future! Product design was gonna change as manufacturing already was and the people who knew CAD were gonna be there.

Now here we are, and the CAD companies own design and manufacturing.

I had a flash of an idea this morning reading your comment:

Perhaps we could license Parasolid for a year, or maybe we try what tomfoolery I am about to put here with Open Cascade.

Maybe an AI model of some kind can get us a leg up?

Going back to the fillet example I put here earlier, I want to share a bit of backstory...

I was at SDRC, who had built out a fantastic concurrent engineering and analysis system called I-DEAS. I loved that CAD software and was an applications engineer and trainer on it. Taught many groups of engineers how CAD works, and I got to do that on a system that had collaboration built in from the beginning! Fully revision controlled concurrent engineering and analysis. Fun stuff.

But it died.

My years of skills gone. Kernel could not keep up. So I moved all that onto what is NX today and many of the best parts of the software I loved ended up being implemented because some mergers resulted in the same smart people being product managers! I am particularly redeemed!

And therein lies the lesson of the geometry kernel. You build your true skill on Parasolid systems or risk seeing them lying dormant, cast aside.

The kernel upon which I-DEAS was built was written in Fortran 90. Beautiful software too. It offered capabilities well ahead of Parasolid in some ways, but consistently failed on some common geometry cases that come up rather frequently. Things tangent to things, touching a a point was a big one.

One thing I taught was overbuild or underbuild. Rather than draw a rectangle tangent to a circle to prepare for an extrude, place that end of the rectangle inside the circle and let a boolean operator sort out the two resulting solids.

So yeah, build it kind of wrong so the kernel can build solids. Messy. :)

I was in a room talking to the people who do fillers. Edge blend to some of us.

We talked about my fillet gauntlet. It was a collection of geometry cases that fillet operations failed to complete.

Parasolid could always resolve more of them, and it did that with fairly sloppy tolerances. The SDRC kernel was catching up each rev, but the trend line looked like a decade of analysis of the successful resolutions, and coding for those, wash, rinse repeat a lot.

I wonder if it might be possible to generate geometry cases using parameters such that whole problem spaces could or can be created. Have good kernels solve and train an AI on all that to see what it may then solve differently?

Maybe man years boils down to compute/watt hours?

thinkmachyx

I really appreciate your reply — it's an honor to hear from someone with such deep experience in the field. Your insights from decades of working with CAD and kernels are incredibly valuable, and it means a lot that you'd take the time to share them here.

The idea of parameterizing geometric problem spaces and learning from how different kernels handle them is strikingly similar to what compiler researchers have done in CS: generating corner cases, analyzing compile errors, and training AI to self-correct. AI coding is used widely in the industry currently, with tools like cursor gaining huge popularity.

And the move to a text-based representation is what makes this all tractable — binary formats never gave us that level of observability or editability. With source-level CAD, it becomes much more realistic to analyze failures, share test cases, and eventually integrate AI tools that can reason about geometry the same way they reason about code.

blobfish01

Great comment! I think the size and scope of BRep modeling kernels is lost on 99% CAD users. IMHO: I have reached the point where I think there should be a generation of library development before a CAD application is even considered. This is coming from a person who has spent 10 years on an open source cad application, so I am not naive. The modeling kernel, of course, is lacking but also 3d visualization needs some love. More options in that space, but still lacking.

ddingus

I agree! Viz needs love for sure.

Sidebar: My home plasma TV is a 3D capable one. Back in the 90's I used to use 3D to visualize models on SGI machines.

Fast forward to the mid 10's and I can hook up a laptop with nVidia GPU and run NX and the whole interface and model works in 3D!

Amazing. I love it, especially with a space controller.

There are maybe a handful who do that on even a very low basis.

That has always bothered me. Part of me knows some people have trouble and that another part knows the development gets even more expensive, but still your point is a solid one.

blobfish01

I am jealous. I ran UG(sorry will always be UG to me) for 15 years and didn't ever experience it in 3D. I did immediately fall in love with the spaceballs/3d controllers. I added the initial 3d controller support in FreeCAD years ago. If you are spaceball curious: https://spacemice.org/index.php?title=Gallery

rjsw

> I wish there were some OSS type license for Parasolid. It could be treated like the Linux kernel.

I did propose that licencing it as dual AGPL + commercial could be a way around the objections to the attempts to make JT into an ISO standard, didn't get anywhere.

api

Outsider here but — is it conceivable that instead of writing a geometry kernel one could be trained? Use the existing geometry kernels and all the open CAD documents you can find to generate gigantic amounts of training data and train a geometry model.

Of course the catch here is going to be the precision required for real world use. A ton of impressive AI demos are just that — demos. They are good enough to wow as a demo. Still, if the data set is big enough, and you’d probably want to run the model itself in at least fp32 precision, maybe you could get something.

There is a body of machine learning work that’s been done on precision annealing of models. Basically you train to min loss and then go into a finer grained domain using something like simulated annealing to fine tune parameters.

zihotki

Sure, as soon as we could get predictable and repeatable results from a model in reasonable time

jpm_sd

I don't think this proposal addresses the most important problems in mechanical CAD.

Have a look at Dune3D:

https://dune3d.org/

https://docs.dune3d.org/en/latest/why-another-3d-cad.html