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

Weekly Dev Log - 2022-W27

My efforts last week were dominated by releasing version 0.7 of Fornjot. Getting out a release after 2 months of frantic work is difficult. Writing the changelog and the release announcement was lots of work!

This time, I've decided I've had enough. Starting next week, there will be weekly releases, and the changelog format will be updated to closely match this Weekly Dev Log, which will become the release announcement. This will hopefully make releases both regular and manageable.

After the release, I took a bit of a breather and worked on some smaller improvements to the fj crate.

Meanwhile, contributors have been busy! I've merged an experimental GUI based on egui, submitted by @follower, which should provide the basis for more UI improvements in the future! @jeevcat has been busy improving the zooming behavior, and implementing lots of improvements to the project's development infrastructure.


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

If you want Fornjot to be stable and 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 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

We recently got experimental support for egui, which should make future extensions to our UI much easier. This was a big step forward, and to get it merged without further delay, I decided to accept a trade-off: weakening the previously clear separation between fj-window and fj-viewer.

fj-viewer is a library for displaying Fornjot models. fj-window had previously been extracted from it to cleanly separate fj-viewer from the windowing library used. fj-window uses winit, and the split allowed alternative applications that use something else to still use fj-viewer.

Unfortunately, the addition of egui re-added a dependency on winit to fj-viewer, indirectly through egui. If you have some experience with winit and egui, or are interested to learn, why not look into #793 - fj-viewer depends on winit?


The release is out of the way, and I'm looking forward to restart my work on implementing the union operation (#42)!