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

Weekly Release - 2022-W29

As previously announced, Fornjot is changing to a weekly release schedule. The previous Weekly Dev Log is being repurposed into this weekly release announcement. Otherwise not much is going to change, for now.

I've finally restarted my work on the union operation (#42). This has been going well so far, and I've finished a few more building blocks that are going to be needed in the finished algorithm. That work has also inspired some cleanups in fj-kernel and fj-operations, which you can see below.

Meanwhile @jeevcat has worked on improving the API of the fj-viewer crate.


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

One of Fornjot's goals is support for the web. It should be possible to embed a configurable Fornjot model in a website, where users can look at it, change the parameters, and even export it to external file formats.

We're not quite there yet. The next step would be to make sure that Fornjot can be compiled to WebAssembly. If that's something that sounds interesting to you, check out #815 - Compile Fornjot to WebAssembly.


My main priority remains implementing the union operation (#42), but I might have encountered the next detour: creating a low-level shape manipulation API for use in test suites. This is something I could use immediately, for the next step of the union algorithm implementation.

I'm currently looking into that. If I can come up with something good, it would be a huge asset for in-kernel test code, but it also has wider applications. It could even be exposed to users, as a low-level API for defining models. If it turns into too much work, I might decide to table it though, and find some workaround for my current need in the meantime.