Fornjot

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

Weekly Release - Making Room for Distractions

My main priority was and remains the implementation of the union operations, but it should have become quite obvious to anyone following these updates, that it's taking a while. Meanwhile, other parts of the project remain in a largely immature state. I have reason to believe that this isn't making a great impression on potential contributors and sponsors, and it isn't great for my morale either.

So I've made a decision: In parallel to the ongoing work on the union operation (and boolean operations in general), I'll allocate some time to work on smaller tasks that have an immediate and visible benefit. I've started this effort by picking off some issues that had been open for a while. Check out the list of changes below!

As far as the big picture goes, I've continued the effort to expand the scope of the centralized object storage (#1021) and making use of that by enhancing the existing validation code (by using object identity instead of object equality for comparisons). This is slow and tedious work, as a lot of code that constructs objects needs to be updated to meet the stricter validation requirements.

All of this leads to more robust code though, and thus fewer bugs. The specific goal I'm working toward is to fix #1162, which is currently blocking further progress on the union operation (#42).

Meanwhile, @ArshErgon improved the error message for when a model can't be found, and @Philipp-M added a Nix flake.

Sponsors

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.

Ecosystem improvements

Improvements to Fornjot components that are relevant to developers building on top of those. These have an indirect effect on end users, through fixed bugs and improved robustness.

fj-kernel

fj-math

fj-operations

fj-viewer

Internal Improvements

Improvements that are relevant to developers working on Fornjot itself.