The world needs another CAD program.

Weekly Release - 2022-W34

After taking a week off, I'm back this week with another release! Aside from some relaxing and a lot of hiking, I spent most of my time since the last release on cleaning up and expanding the intersection testing infrastructure. Intersection testing is a necessary building block for implementing the union operation (#42). I maintain a list of the building blocks still required, according to my current understanding.

Meanwhile, @Michael-F-Bryan has upgraded/rewritten the host/model API to switch to a model-driven concept. This is invisible to users right now, but it's a prerequisite for many future improvements. @devanlooches and @connor-lennox have worked on improving the status updates that have recently been added to the Fornjot app.


Fornjot is supported by @webtrax-oz, @lthiery, @Yatekii, @martindederer, @hobofan, @ahdinosaur, @thawkins, @bollian, @rozgo, and my other awesome sponsors. Thank you!

If you want Fornjot to be stable and sustainable long-term, please consider supporting me too.

End-user improvements

Improvements to Fornjot and its documentation that are visible to end-users.

Ecosystem improvements

Improvements to the Fornjot ecosystem that are relevant to developers who are building on top of Fornjot components.


Internal Improvements

Improvements that are relevant to developers working on Fornjot itself.

Issue of the Week

Fornjot is still at an early stage, and one way that manifests is in its error messages, which can be pretty raw and not very helpful. An example of that, is when a user forgets to define that a model is to be compiled to a dynamic library.

It should be able to prevent that case outright, by using a different Cargo command to compile Fornjot models, and passing the right parameters. If playing around with Rust and Cargo to get an introduction to Fornjot sounds appealing to you, why not take a look at #938 - Use cargo rustc to compile models as dynamic libraries?


I'll be busy writing intersection testing code for the foreseeable future, as part of the process of implementing the union operation (#42).