Fornjot

early-stage b-rep CAD kernel, written in Rust

The world needs another CAD program

You might be looking at the huge line-up of CAD software that is available today and think, what's the point of building another one? Aren't there already enough options?

Yes, there are a whole lot of options to choose from. And I tried to do that, again and again. Choose, I mean. But I've always come away unhappy from the experience.

So what's the problem? Why can't I find a CAD program that I like? Let's go through the list of problems, as I see them.

1. It doesn't run on Linux.

Also known in its more restrictive form, "it only runs on Windows".

I've been using Linux for almost two decades now. From time to time, I've been running Windows on the side, but that has never worked out well.

Switching between two systems regularly is a pain, and inefficient. If you don't use Windows often enough, that's a pain too, because then you're spending more time updating and rebooting than doing actual work. A virtual machine is better in some ways, but comes with its own problems.

And listen, I'm not going to argue that Linux is "better". But it is better for me, and many other people as well. The software I usually run tends to work better on Linux than it does on Windows (or macOS). And I understand how it works, at least well enough to fix the problems I face.

In any case, this takes away most of the commercial CAD programs, except for OnShape and a bunch of others that don't seem suitable to the kind of work that I'd like to do. (If you know of another option that I should take a look at, please let me know.)

2. It's too expensive.

CAD software tends to cost a lot. That wouldn't be an issue, if I was making a substantial amount of money from using it, but I don't. I'm mainly a software developer, who dabbles with making physical products on the side.

Yes, I know lots of options are free for non-commercial use, but that doesn't count. There is lots of interesting space between "hobbyist" and "can justify to spend loads of money", and I tend to find myself right in the middle of that.

At this point, most of what's left is open source. Works for me, I prefer open source software anyway. Let's continue.

3. It is GUI-based.

I know this one is controversial, but I think CAD should be code-first. I've already written about that, so head over to that article, if you want to learn more.

Here, we lose FreeCAD, SolveSpace (both which I use from time to time), and a bunch of others.

4. It only supports a basic feature set.

The most popular Code-CAD application, as far as I can tell, is OpenSCAD. While programming your CAD models, like you would program software, provides a lot of flexibility, the feature set of OpenSCAD is otherwise very limited. This makes many CAD modeling tasks tedious.

I want to use something more powerful, and that rules out OpenSCAD and a whole bunch of other less-known alternatives.

5. There's room for innovation.

At this point, we're down to a number of less popular solutions that are based on OCCT. I'm aware of CadQuery, Cascade Studio, and pythonOCC.

These look great, but I think there's a lot of room for innovation:

Conclusion

I've presented the problems I have with currently available CAD software, how they rule out the large majority of it. The few CAD programs that most of these problems don't apply to are pretty similar to each other, each being based on the same CAD kernel, and each using a dynamic language for modeling.

I think there's room for something different. A CAD program that:

This is what I'm trying to do with Fornjot. If you think this is a worthwhile endeavor, please consider supporting me.