v0.20.0
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
inCargo.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
toObjects
, move it toobjects
(#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.