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

Weekly Release - 2022-W40

Hey folks, sorry for being a day late with the weekly release! Yesterday was a public holiday here in Germany.

Last week, I've been able to finish the round of cleanups that kept me busy over the last few weeks. I addressed #1079, then fixed #993, which had been holding up further progress on the union operation (#42).

I returned to implementing the intersection tests required for the union operation and made some progress there. I pretty quickly found out that the sweep algorithm (and possibly more code) is generating invalid geometry though (#1162), which is preventing further progress on the intersection tests, so I started working on that.


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

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

End-user improvements

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

None this week. Busy improving the kernel!

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 being code-first gives a lot of flexibility to models. They can run arbitrary logic to create geometry, process complex inputs, and perform all kinds of calculations. But they lack ways to present output to the user.

So far, the best they can do is print to stdout, which the user might not even see. Fornjot already displays model status updates to the user. If models could display arbitrary message there, that would be a step in the right direction.

Does that sound interesting to you? If so, maybe give #996 - Models should be able to add status messages a try.


Since #1162 is preventing further progress on the union operation (#42), I'm working on that right now. I'd like to fix that bug properly, so instead of just addressing the specific instances I'm aware of, I'd like to add validation code that makes all instances visible.

That new validation code would benefit from the scope of the centralized object storage being expanded (#1021), so that's my next step.