Skip to main content

Open Source UX/UI is notoriously bad. How FreeCAD is breaking the curse

· 5 min read
Brad Collette

Free and Open-Source Software has a reputation for poor usability and user experience (UX). FreeCAD is no exception. Some of the most common complaints raised by users are about the steep learning curve, inconsistent workflow, and ugly, confusing user-interface (UI). There are dozens of threads on the forum going back years where someone has come forward with a vision to ‘fix’ the usability problem. These efforts always devolve into bike-shedding, and nitpicking. Nothing changes.

Why does this keep happening? After all, UI/UX is an established discipline. There are books and published research about it. There are consultants and ‘best practices’. Why is it so hard to make progress?

The answer is that like other parts of the umbrella discipline called ‘human factors’, UI/UX is all about humans and humans are messy. Unlike source code that either works or doesn’t, there are many ways to skin the usability cat. Most of us use software all the time with no appreciation or understanding of why it’s good or bad. We know good design when we see it but most of us can’t say why it’s good. When we use software that we like, we attribute our positive perception to whichever UI elements we notice. We overlook the thousands of other elements that don’t catch our attention because they just work right.

Mary likes the way DoodlyCAD uses ribbon bars. FreeCAD doesn’t have ribbon bars and that’s why she hates FreeCAD. She didn’t notice that DoodlyCAD has consistent task panels, great use of screen real estate, and excellent discoverability of features.

“Ok, smart guy”, I hear you say. “Is the situation hopeless? Can we possibly make progress in this area?”. Yes, dear reader, I think we can. In fact, I think we are! A small but industrious team led by Obelisk on the FreeCAD Discord server has started an initiative that aims to avoid the pitfalls of the past and move us in a direction that is data- and research-driven, productive, and sustainable.

The approach they are taking starts with first principles of UI/UX design. If you spend time reading the channel, you’ll hear terms like Fitts law, Doherty threshold, Hick-Hyman, and Usability-Heuristics. Rather than focusing on individual features, they are establishing an overarching conception of how the user experience should be organized. This isn’t a bold new vision with grand unattainable goals. It first seeks to understand and document how the FreeCAD experience works when it works well. That documentation is the Design Guide.

As the design guide matures, we can use the guidelines to review the user experience when it doesn’t work well and improve it without introducing new inconsistencies.

The project has larger goals. They’re spending considerable time talking about zones of the UI, task flow, and what the default configuration should be. They’re also thinking about how UI templates can be created that make it easier for developers to implement new functionality without needing to reinvent the wheel every time. Effort has been spent on recommendations for color use, code structure, and other details that will help addon developers make their contributions feel like a native part of FreeCAD.

"After more than 20 years of development by a global community of volunteers, an incredibly complex and advanced set of features is available in FreeCAD. My hope is to leverage all of the incredible time and effort invested by that community to present a coherent vision for both beginner and advanced users that is based on strong principles. With the highly anticipated 1.0 release on the horizon an opportunity to help provide a positive 'out-of-the-box' experience and improve general productivity is extremely exciting." -Joe Sardos (Obelisk)

Yet, it’s the short-term objectives that are likely to make the biggest difference soon. Identifying the easy fixes where user pain can be alleviated fast doesn’t just fix the problems, it gives new developers an easy on-ramp to start contributing code that will get merged. Documenting the glossary helps with documentation, translation, and the design of future features. Clear guidelines on UI elements makes it easier to develop features and it also speeds up the review and approval process which takes load off of the maintainers. It also makes documentation easier to write and faster to translate.

If our enthusiasm for this project isn’t clear, let me give you a few more reasons why we’re so excited this is happening and so honored to participate. First, the data-driven and research based approach helps eliminate the toxic in-fighting on the forum. That’s something we can all get behind. The effort is community-led but not developer driven. In our opinion, it’s wonderful to see other kinds of experts getting involved in open-source work. We would love to see FOSS being a place for UI/UX experts to build experience and ultimately a career. And finally, it provides another opportunity for the FPA to financially advance the project. The FPA is now offering grants to train UI/UX contributors who commit to work on this for an extended period.

Unlike other development efforts like the Material system overhaul or the Assembly Workbench, improving the UI is a long-term commitment. It’s many, many small improvements over time and not a single major push from a few people. It will take time but it will work. We’re on our way to a great user experience. Forward!