Skip to content

v0.20.0

Compare
Choose a tag to compare
@github-actions github-actions released this 17 Oct 10:30
· 7338 commits to main since this release
4e62764

This release announcement is also available on the Fornjot website

My main priority was and remains the implementation of the union operations, but it should have become quite obvious to anyone following these updates, that it's taking a while. Meanwhile, other parts of the project remain in a largely immature state. I have reason to believe that this isn't making a great impression on potential contributors and sponsors, and it isn't great for my morale either.

So I've made a decision: In parallel to the ongoing work on the union operation (and boolean operations in general), I'll allocate some time to work on smaller tasks that have an immediate and visible benefit. I've started this effort by picking off some issues that had been open for a while. Check out the list of changes below!

As far as the big picture goes, I've continued the effort to expand the scope of the centralized object storage (#1021) and making use of that by enhancing the existing validation code (by using object identity instead of object equality for comparisons). This is slow and tedious work, as a lot of code that constructs objects needs to be updated to meet the stricter validation requirements.

All of this leads to more robust code though, and thus fewer bugs. The specific goal I'm working toward is to fix #1162, which is currently blocking further progress on the union operation (#42).

Meanwhile, @ArshErgon improved the error message for when a model can't be found, and @Philipp-M added a Nix flake.

Sponsors

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

  • Improve error message, if model can't be found (#1154; thank you, @ArshErgon!)
  • Remove old UI (#1202)
  • Invert default zoom direction; add config to override that (#1204)
  • Document convenient syntax for fj operations (#1205)
  • Remove the need to specify crate-type in Cargo.toml (#1209)
  • Fix some wgpu/egui-winit errors and warnings (#1216)

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

  • Rename Stores to Objects, move it to objects (#1198)
  • Provide access to default planes through Objects (#1200)
  • Fix more object duplication issues (#1206, #1207, #1215, #1218, #1220, #1222)
  • Expand partial object API(#1212, #1213)
  • Integrate SurfaceVertex into centralized object storage (#1214)
  • Add methods to access single HalfEdge vertices (#1219)

fj-math

  • Fix Triangle::winding (#1217)

fj-operations

  • Remove redundant argument from Shape::compute_brep (#1201)

fj-viewer

  • Remove dependency on winit (#1210)

Internal Improvements

Improvements that are relevant to developers working on Fornjot itself.