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

Weekly Dev Log - 2022-W11

For weeks now, I've been focused on an internal CAD kernel cleanup: reducing the use of the obsolete triangle representation, replacing it with full boundary representation (#97), as well as various sub-issues that were in the way of addressing that (most recently #242). This work has been blocking the implementation of constructive solid geometry (CSG).

I'm happy to report, that while this work is not fully completed, it's complete enough to start working on CSG for bodies with straight edges and flat faces. Since supporting CSG for those is part of the milestone I'm currently working on, this is good enough to wrap this work up for now and move on to other things.

Before tackling CSG, I decided to go on a bit of a rampage to celebrate, fixing some issues that have been open a bit too long for my taste. One of them, splitting the Fornjot code into smaller libraries (#141), has been a bit more substantial, as I took the opportunity to clean up and document each of those new libraries. Work on that is still ongoing.


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

If you're interested in helping to make the project sustainable long-term, please consider supporting me too.

App and Documentation

Improvements to the Fornjot application and documentation, that are relevant to end users.


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

The Fornjot repository contains different models, that each test different features. Often, a bug in the Fornjot kernel will cause a crash, if some of those models are loaded. But this isn't always noticed, allowing bugs to slip through.

If you're looking to get involved in Fornjot, maybe take a look at #307 - Smoke testing. It involves loading all models as part of the regular CI build, so these kinds of bugs no longer have a chance to go unnoticed.


I'm still working on #141, which I expect to be wrapping up this week. Once that is completed, I want to publish a new release, which is overdue. Then, I'd like to address some long-standing triangulation bugs (#105, #143, #145). After that, the next big topic is going to be CSG (#42, #43, #44)