The world needs another CAD program.

Weekly Dev Log - 2022-W09

Last week, I had started working on vertex validation (#242) and was hopeful to make quick progress. Turns out, that work was a bit too successful. The original intent was to use vertex validation to provide some coverage for upcoming work on the sweep code, as previous attempts had resulted in subtle bugs.

Before I could get there though, it uncovered some bugs in the existing sweep code! It's good to know that working on vertex validation was worthwhile, but it also means more unexpected work. On top of that, fixing those bugs turned out to be difficult with the current shape representation, so I decided to fix that problem at the source, by improving the shape representation (#280).

All in all, it's business as usual: more problems, more fixes, more opportunities to make the CAD kernel more robust!


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

If you're interested in helping to make the project sustainable long-term, please consider supporting me too.

User-visible improvements

Internal improvements

Issue of the week

When you submit a pull request to the Fornjot repository, it runs through a continuous integration (CI) build, to make sure it doesn't have any obvious issues. The CI build checks for a few things, like Clippy warnings and code formatting, that might not be obvious to new users.

To make it a bit easier to determine, if your pull request is ready to be merged, it would be great to have a local build script to determine whether your changes will likely pass CI.

If you're looking for a way to get involved with Fornjot, why not give #269 - Add local build script a try?


The work on improving the shape representation (#280) has been progressing nicely. Once that is done, I can fix the bugs uncovered by vertex validation and enable that permanently (#242). After that, I can resume work on #97, which has been the main driver behind all this recent work on kernel robustness.