Fornjot

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

Weekly Release - Where We've Been, Where We're Going

Yet again, sorry for being a day late with this release! I've been experimenting with some changes to how I organize my work day, and not everything is going smoothly 😁

It's been a while since we had a proper release (due to my vacation), so I'd like to take this opportunity to summarize where we've been, where we stand now, and where we're going.

For many months, my development efforts where dominated by cleanup. A lot of complexity had crept into the kernel over time, and it became more and more clear that this was getting untenable. Fortunately, I also developed more and more ideas on how to address it.

#1589 (and the issues it links to) provide a good overview. The oldest issue linked there dates back to October, and I declared victory in March. This wasn't the only thing I worked on during that time, but still, it was a major effort.

With the complexity addressed and the code in a much better position, it became time to work on advancing the roadmap again! The next milestone is largely defined by constructive solid geometry, and we need boolean operations (#42, #43, #44) for that. However, this is a bit too much to bite off all at once. We need better APIs to construct geometry from the primitives that the Fornjot kernel already supports.

And that's what I'm working on right now. I've come to call it the operations API, as it's made up of a number of orthogonal operations on geometry ("build this, update part of it like that, join it to this other thing"). I've identified a smaller use case, writing test cases for some validation checks (#1713), that is suited to experiment with the new API.

I've made some good progress there, and I'm reasonably happy with how it's going. Still lots of questions to answer along the way of course, but that's always going to be the case. Once the new API is powerful enough to handle those test cases, I'll be looking for another use case to improve the API with, until eventually, I'm ready to tackle boolean operations directly.

This is an exciting time in the development of Fornjot (at least for me), as for the first time in a while, I'm dealing primarily with developing new things. Not just struggling to get the mess I've already made under control. Let's see where that leads over the next months!

Sponsors

Fornjot is supported by @webtrax-oz, @reivilibre, @lthiery, @ahdinosaur, @martindederer, @bollian, @rozgo, 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 working on the kernel!

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

Internal Improvements

Improvements that are relevant to developers working on Fornjot itself.