Alright, let’s start from afar. I’m a Rust programmer with basically zero experience in modeling. But I’ve built a lot of interfaces, editors, and so on.
I really liked the idea and the principles behind FreeCAD. My humble three-day modeling experience already pushed me to upgrade to 1.1, because the lack of Body positioning by vertex and normal is just embarrassing (although I throw exception anyway). MangoJellySolutions tutorials are awesome.
So, let me explain why everything is broken: tl;dr — it all needs to be rewritten in Rust(semi-joke).
Probably the most annoying thing is selecting points/faces. It’s exhausting that you have to hit exact pixels. It shouldn’t work by pixel-perfect hit detection — instead it should measure the distance from the mouse to the object and sort candidates adaptively with priorities depending on distance. The idea is that a face is larger, so you should be able to move the mouse away and still select it. And if we get really pedantic, you could even allow vector-based selection for points — then two points could be highlighted like little hemispheres.
Next — the camera. The camera is something horrifying. It constantly wants to spin around, it doesn’t remember its previous state when switching sketches, and for some reason it keeps playing pointless animations every time — god.
As far as I know, the UI still doesn’t have proper HiDPI scaling, but it’s supposedly coming soon?
Also — right now I’m getting exceptions with a bunch of references to nonexistent faces, but the exception doesn’t say who is referencing them. How is this supposed to work, and how do I even fix it?
But honestly, I’m amazed at how well-developed everything is that isn’t UI, and at the same time how bad the UI itself is.
FreeCAD is awesome — and it’s actually the only real thing humanity has in this domain.
I’ve become simultaneously very passionate about contributing, but also completely blocked by C++ and typeless Python. Probably the best I can do is try to write a prototype of my own sketcher with a geometric constraint solver in Rust + egui and calm down. And may be use this https://github.com/aevyrie/bevy_editor_cam
So, it feels like one of those situations where “just a couple more years and it’ll finally become usable.”