Weekly Dev Log - 2022-W21
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.
Sponsors
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.
End-user improvements
Improvements to Fornjot and its documentation that are visible to end-users.
- Fix field of view calculation (#614; thanks to @chrisprice!)
- Add
Angle
type (#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)
- Improve
Angle
(#641; special thanks to first-time contributor @T0mstone!)
Ecosystem improvements
Improvements to the Fornjot ecosystem that are relevant to developers who are building on top of Fornjot components.
- Extract
fj-window
fromfj-viewer
(#640)
fj-kernel
- Implement geometric validation (#618, #620, #626, #636, #637)
- Simplify local representation of edge vertices (#625)
- Replace problematic
Edge
constructor (#627) - Add missing re-export (#631)
fj-operations
fj-viewer
- Improve error handling (#633)
Internal Improvements
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?
Outlook
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.