Weekly Release - 2022-W38
At the beginning of last week, I had just wrapped up a round of cleanups and was about to return to #993, which is blocking further work on the union operation (#42). Instead, I found another problem that I need to address first (#1079).
All of this is relatively complex, concerning the architecture of the CAD kernel data structures. If you're interested in the details, check out those issues, but here's my attempt at a high-level summary:
- For the the union operation (#42), lots of intersection testing code needs to be written.
- One of those intersection tests needs to determine whether two edges are equal, which isn't really possible right now (#993).
- Fixing that isn't possible, because curves can't really compared for equality either (#1079).
- The best way to fix that involves having a central data store for curves (#1021).
I've made good progress on #1079 and started working on #1021. I ran into some trouble with that, preventing the work I already have in a local branch from getting merged on Friday.
Meanwhile, @payload addressed a very confusing problem with the Fornjot app, making sure the GUI is displayed, even if there's a problem with loading the model.
Sponsors
Fornjot is supported by @webtrax-oz, @lthiery, @Yatekii, @martindederer, @hobofan, @ahdinosaur, @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.
Ecosystem improvements
Improvements to the Fornjot ecosystem that are relevant to developers who are building on top of Fornjot components.
fj-math
fj-kernel
- Improve validation of
HalfEdge
andVertex
(#1075) - Expand builder API (#1076, #1083)
- Expand sweep test suite (#1077)
- Perform various cleanups (#1080, #1084)
- Replace
CurveKind
withSurfacePath
/GlobalPath
(#1081) - Make path approximation deterministic (#1089, #1090, #1094)
- Future-proof curve approximation code (#1082, #1091, #1092, #1096)
- Un-derive
Copy
from various object types (#1097)
Internal Improvements
Improvements that are relevant to developers working on Fornjot itself.
- Update dependencies (#1071, #1072, #1074)
- Update release procedure (#1073)
- Expand release automation (#1078)
- Update list of sponsors in README (#1098)
Issue of the Week
Fornjot models can have parameters, and those can be provided by the user as command-line arguments. But if the user provides an argument that the model doesn't actually use (which could be the result of a simple typo), that argument just gets ignored. This is confusing.
If you're interested in how the Fornjot application interacts with models, maybe issue #821 - Exit with error, if user provides unused parameters could be your way to get into that.
Outlook
I've been doing some thinking over the weekend, and I believe I've come up with solutions for the issues that prevented my work on #1021 from getting merged last week. I expect to make enough progress there to start finishing up #1079, and after that, the road should be clear for #993.
I said something similar last week, so take it with a grain of salt. More issues popping up and needing to be addressed first, wouldn't be a surprise.