I worked on a few different things last week, but my main achievement was the implementation of geometric validation, at least as much of it as is needed and useful right now (#613). This allowed for some more progress towards approximating faces in surface coordinates (#568), which is currently the main issue that blocks work on implementing the union operation (#42).
Meanwhile, @chrisprice got busy fixing the input/camera code, which had been sitting in a semi-broken state for a while now. @gabsi26 started contributing to Fornjot, with the addition of an
Angle type, and some very welcome bug fixes.
Fornjot is supported by @webtrax-oz, @lthiery, @Yatekii, @martindederer, @hobofan, @ahdinosaur, @thawkins, 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.
Improvements to Fornjot and its documentation that are visible to end-users.
- Fix field of view calculation (#614; thanks to @chrisprice!)
Angletype (#619, #621; special thanks to first-time contributor @gabsi26!)
- Fix bounding volume calculation for swept shapes (#623; thanks to @gabsi26!)
- Fix face orientation for sweeps in negative direction (#628, #630; thanks to @gabsi26!)
- Improve error message for shape processing errors (#635)
Angle(#641; special thanks to first-time contributor @T0mstone!)
Improvements to the Fornjot ecosystem that are relevant to developers who are building on top of Fornjot components.
- Implement geometric validation (#618, #620, #626, #636, #637)
- Simplify local representation of edge vertices (#625)
- Replace problematic
- Add missing re-export (#631)
- Improve error handling (#633)
Improvements that are relevant to developers working on Fornjot itself.
- Update dependencies (#615, #616)
- Upgrade to Rust 1.61.0 (#617)
- Some small cleanups (#622)
- Fail CI build, if any warnings are present (#624)
- Improve handling of panics (#634)
- Add test model that uses most features (#638, #639)
Issue of the Week
Fornjot isn't using a lot of
unsafe code, but we need some of it in the
fj crate, to support loading models into the Fornjot application at runtime. Maybe a bit of
unsafe code sounds like a fun and slightly dangerous challenge to you? If so, why not take a look at #186 -
fj::Sketch is leaking memory?
With all new distractions out of the way now, I can continue working on #568, with the goal of implementing the union operation (#42). I keep making slow and steady progress, and I hope that will continue this week.