Fornjot

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

Weekly Release - 2022-W39

I've been busy with cleanups for a few weeks now, and that hasn't changed last week either. My priority remains implementing the union operation (#42), but that is currently blocked by #993, which in turn is blocked by #1079, which until recently was blocked by #1021.

I've made enough progress on #1021 to un-block #1079, so I've returned my attention there. As it turns out, finishing up that issue requires more changes all around the kernel code than I initially expected, but in the end this isn't really surprising. The changes to the GlobalCurve object that are the subject of #1079 have a follow-on effect on all other objects that reference it, so a lot of code needs to be updated.

Going into the details here would be a bit much, but the gist of it is, there's a new way of doing things (comparing objects by identity instead of equality). This new way will make the kernel code more reliable, but right now this can't be implemented, because the current code is cutting a lot of corners.

Un-cutting those corners, as well as implementing the infrastructure required to do that without making the affected code too cumbersome, is what I'm currently working on. If you want to know more about that, I suggest to follow the links to those issues, as I keep those updated with the details of the work I'm doing.

Sponsors

Fornjot is supported by @webtrax-oz, @lthiery, @Yatekii, @martindederer, @hobofan, @ahdinosaur, @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.

fj-kernel

Internal Improvements

Improvements that are relevant to developers working on Fornjot itself.

Issue of the Week

The Fornjot UI can display status updates. For example, that the model has been reloaded, or that there has been an error trying to do just that. A nice incremental improvement to that capability, would be to also display a timestamp with each update.

If you're interested in getting into Fornjot, and are looking for something manageable, maybe check out #971 - Print timestamp with each status update

Outlook

Cleanups will continue for the time being. I've been questioning whether I should find some shortcut to get back on track with the union operation (#42) instead, but so far I've decided against that. First, it's not clear to me what that shortcut would be. Second, fixing #1079 and then #993 the proper way has many positive side effects, making the kernel more reliable and preventing whole classes of bugs.

I'll stay the course for now and will keep re-evaluation the situation as I go on.