I finally managed to finish the partial rewrite of the sweep code that had been kicking my ass for the last few weeks! This took longer than it had any right taking, but it really hammered home how important the ongoing work to simplify the kernel is (#1589). This rewrite also had an accidental side-effect: it fixed a long-standing bug (#494, #1162), that had been blocking further work on the union operation (#42).
My previous attempt to fix that bug had sucked up a lot of time and was unsuccessful, which is part of what started that current focus on simplification. So it's kind of surprising that the work I did after I no longer worked on this bug is what ended up then fixing it. Programming works in mysterious ways, sometimes.
Even though work on the union operation, which had been my main priority before I went down this recursive rabbit hole of fixing foundational problems, is unblocked now, I am not going to return to it immediately. I am convinced that the ongoing simplification work is the best thing I can do to ensure forward progress mid- to long-term. Prioritizing short-term progress here would only lead into a dead-end.
Meanwhile, we've had more awesome contributions last week! @erenoku added the navigation cube, an UI element that shows how the model is currently oriented. @tmayoff implemented a workaround for a crash in the Fornjot kernel, when a model creates an empty sketch.
Fornjot is supported by @webtrax-oz, @reivilibre, @lthiery, @ahdinosaur, @Yatekii, @martindederer, @hobofan, @thawkins, @bollian, @rozgo, and my other awesome sponsors. Thank you!
If you want Fornjot to be sustainable long-term, please consider supporting me too.
Improvements to Fornjot and its documentation that are visible to end users.
- Add UI element that shows model orientation (#1573, #1584; thank you, @erenoku!)
- Don't panic, if model code creates empty sketch (#1585; thank you, @tmayoff!)
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.
- Rewrite parts of sweep code (#1593)
- Start consolidating redundant references to
Surface(#1596, #1597, #1598, #1599)
Improvements that are relevant to developers working on Fornjot itself.