Community UI/UX Improvement Project

Cummunity UI/UX Improvement Project

Disclaimer: Nothing I mention here is a demand. Developers are a limited resource, I don’t think FreeCAD ‘requires’ any of these things to be functional and capable. It already is both of those things. Do not suggest additional items which may require major source code modifications to be made.

The goal of this thread and ‘project’ is to take the 0.21 development cycle and engage the community in coordinating feedback for simple refinements to the UI/UX of FreeCAD while also providing a series of work-optimized, complete layouts and themes in the form of preference packs that can be presented to users upon first launch. My original post text is archived in the code-block at the bottom of this post. Individual lines of effort will be explored in specific discussion threads and cross linked with this one to keep discussion organized and focused. Suggestions for additional lines of effort are welcome and encouraged. If you aren’t willing/capable of programming a change to FreeCAD’s source-code, please do not suggest any such modification. The intent here is to avoid asking much from the existing developers who are focused on other issues.

Keep your comments on-topic, if you aren’t coming to provide something constructive to this effort please don’t bother commenting.

Current planned lines of effort in rough order of approach:

  • Identify redundant or irregularly names functions features to make them more clear and less ambiguous.


  • Review toolbars to create consistency across workbenches, and potentially obscure/isolate highly niche tools by default.


  • Review UI element layout, toolbars/panels/widgets, identify potential predefined optional layouts


  • Develop comprehensive themes by leveraging the Preference Pack feature.


I decided to break this away from the discussion here: https://forum.freecadweb.org/viewtopic.php?f=8&t=66867
There is a lot of [i]interesting[/i] debate to unravel in there that really seemed interesting and got me thinking. 

Stand-by, this will be a long post, and I would REALLY like to engage in some constructive debate about the merits of the following points rather than completely dismissive comments regarding feasibility. Unless some of the project maintainers pop in and tell me my suggested efforts would likely result in a complete waste of time.



[b]Thought #1:[/b] Adjustments which improve usability, workflow, intuitiveness and visual focus not only stand reason to assist new users understand and learn FreeCAD but in many cases can be of benefit to a large number (not all obviously) of experienced and professional users.

[b]Thought #2:[/b] While not a deal breaker to users who've adjusted to working around its pitfalls, the [b]T[/b]opological [b]N[/b]aming [b]P[/b]roblem ([b][i]TNP[/i][/b]) stands as one of the most problematic issues facing FreeCAD overall, and is likely the #1 issue haunting inexperienced users.

[b]Thought #3:[/b] Humans are vain, and they like visually appealing user interfaces, it conveys a sense of refinement, professionalism and often has other functional benefits. A good UI in any type of graphic design software is easy to understand, easy on the eyes, consistent in behavior and organization, and aids the user without cluttering up crucial screen space so mental and visual focus can remain on the work being performed. 

[b]Observation #1:[/b] FreeCAD has a user experience problem. Some things cannot be addressed easily or directly or require potentially involved source code modification. Other things should be able to be corrected with some community effort provided such an effort would be supported by the project maintainers.

[b]Observation #2:[/b] Expounding on my comment regarding the user experience problem is this: there are a few minor examples of non-industry standard terminology for industry standard features, which creates confusion. Other features/functions can be confused due to ambiguous naming. Other items feel like they were named by a programmer and not a design engineer with clarity in mind. Example would be revisiting the naming of Part vs Part Design workbenches in order to disambiguate.

[b]Observation #3:[/b] Default toolbar organization and layout should be reviewed from a holistic perspective to provide greater consistency across multiple default workbenches so less memorization/familiarization is required of icon positioning wherever it is reasonable. Functions which are common (or near identical in function) across multiple/all workbenches should be in the same location no matter what, with the exception of unusual circumstances or a specific requirement. (I'm certainly not an expert on every workbench)

[b]Observation #4:[/b] The UI is actually already [u]incredibly nimble[/u]. It can be configured in a multitude of ways with toolbars everywhere. Then there are addons which extend this further, I would suggest that the most popular addons be considered for integration as optional ui component/settings without requiring the addon. The default configuration of FreeCAD, stylesheet, colors etc presents the software as amateurish and unrefined by using Windows 95(ish) era design language.

[b]Possibility #1:[/b] FreeCAD community could work together on some potential new default themes/stylesheets/toolbar layouts using preference packs and how to disambiguate some of the naming conventions.

[b]Possibility #2:[/b] Integrate already existing and popular UI modifications/addons into the core FreeCAD package as simple settings that can also be activated by the new preference pack functionality. eg, Icon Themes, Glass and possibly one or two others.

[b]Possibility #3:[/b] On first launch (ie no preexisting userconfig file detected) a simple "Welcome" dialog be presented which allows users to either select the current FreeCAD 'classic', modern Dark, or modern Light 'themes', or just allow a user to download and select a preference pack (with still image preview) directly from the addon repo in the welcome window instead. This should minimize necessary code addition and review to facilitate a merge if any developers agree to implement such a functionality.

[b]Final Remarks:[/b]
What this does, in my opinion, is create a little more organization, cohesiveness and consistency to the user experience (particularly for newer users or refugees from other CAD software) while simultaneously providing new users an easy window into the customization capabilities of FreeCAD. Many of the possibilities I have mentioned/suggested can be organized and worked on by non-developer members of the community which means this effort, in theory, should not become a major distraction from other development efforts such as the implementation of TNP mitigation code.

With 0.20 now in feature lock, this could be something which would make for a great community effort for those interested in such matters during the 0.21 development cycle. This is just my own thoughts, but over the 18 months that I've been using FreeCAD, I have obviously found plenty of ways around what I found inefficient and aesthetically displeasing, and while I'm now quite comfortable, I haven't forgotten the struggle it was to get to this point and if I/we collectively can provide others a better starting point or more options for all of us, then that cannot be a bad thing. This also won't force unwanted UI/UX styles (Glass, light vs dark themes etc) on existing users who do not desire them.

Concise, consolidated and cognizable. Well done! One thing that was very evident from the previous thread- People are AFRAID of change and are afraid to get out of their established comfort zone. The long time users of Freecad have invested years learning and mastering the existing layout and optimized their workflows based around it, any talk of change is met with systemic criticism. As much as it is about improving UI/UX to appeal to new users, we must also convince the people who are used to the status quo, that there are better ways to go about their workflows if they are willing to adapt. The changes need not be drastic and can be taken slowly. This seems to be a twin pronged problem.
Cheers!

I’m afraid you are wrong here; not utterly wrong, but quite. It’s not FreeCAD which has the user experience problem, it’s the 3D world, which refuses to be easily mappable into 3D data.
This may sound funny, because we all know the 3D world quite well, but we are not used to the required mapping. I have helped ever so many people who thought to have a GUI or whatsoever exeperience problem. Finally it was in most cases a new way of thinking suitable for 3D modeling which was required. These problems are well supported by tons of bad videos and are accompanied by the expectation that 3D is just a little bit more than 2D modeling.

The big boys who sell expensive software to other big boys sell it with 2 weeks mandatory courses; not only because they can, but also because it is sensible. Imagine every FreeCAD user would have attended such a course before being allowed to ask questions here. I’m sure we wouldn’t talk so much about user experience.

FreeCAD is serious software for something that is inherently more difficult than a chat software on a mobile phone. Let’s make the user interface as good as possible, but we don’t really have a problem here.

Edit: typos.

while it is true that 3D modelling is quite a complicated subject and it’s not reasonable to expect to learn it by just stumbling around pressing buttons to see what sticks, it is not wise to pretend that FreeCAD’s UI/UX is in a good state, it’s certainly way better than before and it keeps improving but there so much clunkiness still.

The big boys who sell expensive software to other big boys sell it with 2 weeks mandatory courses; not only because they can, but also because it is sensible.

This is only true of CAD software like solidworks, how about onshape or fusion?

Let’s make the user interface as good as possible, but we don’t really have a > problem > here.

Disagree, there are many clunky things in the UI and UX in FreeCAD, we just got used to them or are more forgiving than regular random people because we’re familiar with it’s development and hold the software dear. We should recognize our bias.

Why not have a please all solution? Develop a modern UI/Theme and make it the default. And then, give the option in the Welcome screen to use the “Default(Updated) UI” or use the “Legacy UI” which looks like how Freecad currently looks. That way new users wont be driven off by a user interface that looks like it was made in the early 2000s and the old school veteran users can just choose the legacy UI. Having a better looking UI based on current design principles will also stop people whining about Freecad’s UI and give it more appeal among new adopters. And as always, veterans who are used the the current UI design can just use “Legacy UI”. Everybody wins! Something like this to have options in the welcome screen will solve so many problems and not a “YIKES” as someone under-informed said elsewhere. I have placed the Inkscape Welcome screen as an example.
Cheers!

Um.. I think the time period of FreeCAD look and feel is more windows 3.1 than early 2000’s.

When I say User Experience, I’m not generally referring to the difficulty involved in modeling in 3D which I agree you have valid points about. The experience I’m referring to on the other hand has more to do with behavioral consistency and refinement of functions. Maybe I can successfully give some examples, toolbar arrangements can vary widely among default workbenches, functions/processes have similar names with distinctly different function/behavior (Part vs Part Design naming confusion). Then there are things like selection behavior, in sketcher it can often be abnormally difficult to select elements like points or lines/arcs, this seems only partially addressable through pick radius and is frustrating to get right.

People adapt to, and find workarounds for these little things and over time we become blind to them. It doesn’t mean that everything is fine though, it just means we eventually became comfortable with the existing state, and after 18 months I’m sure I am also blind to many things now. I certainly am not suggesting that FreeCAD change its modeling paradigms, workbench structure or visually copy some specific piece of software. What I am trying to suggest is a grassroots coordination to evaluate and assess things that can be changed with minimal or negligible developer involvement required.

So what if we are inspired by a few elements from other commercial softwares? They have teams of people who base their decisions on studies and collected user data to improve user experience, I am sure.

While you are very correctly asking for open mindedness I am a bit disappointed that your world seems still to be, well, dark and light. No greyshades. You are insinuating that there are modern people wanting a new style and other GUI things changed and then there are some old idiots (I know you didn’t say it, but that’s how it is received here), who want to have everything as it has always been.

So let me state clearly: I am not against UI changes, not at all. I see many places where cumbersome things have crept in which are widely accepted, because they are far less cumbersome than how they were before.
But I still don’t see this as a real problem, especially not the appearance.

Concerning dark UI, which seems to be a synonym for “modern” to you: I frequently see new students working with new applications. Approximately 1/3 uses dark UI, 2/3 uses a light one. That may be the reason, why e.g. Microsofts default for (several?, some?, I don’t know them all) applications is light.

There is nothing wrong with being inspiried by things you see in other similar software. Good ideas or interface elements aren’t relegated to a piece of software where they already exist. When I say:

I certainly am not suggesting that FreeCAD change its modeling paradigms, workbench structure or > visually copy some specific piece of software> .

My intent is that these ideas/suggestions aren’t meant to fundamentally change the way we use and interact with FreeCAD overall it’s already solid but it needs refinement. It was programmed with a specific style of work flow and functionality in mind. Often when comments like “When blender overhauled its UI it got a lot better” the responses are “Blender isn’t CAD” or “FreeCAD isn’t going to become Blender” which I think overlooks the underlying message, which would probably be better phrased “When Blender which is a similarly large FOSS project really took focus on its UI/UX it really improved for everyone, maybe FreeCAD could also take some time to focus on the same.”… Similar interactions happen when people reference other software they’ve used, Fusion360 being a common reference among hobbyists. It doesn’t help that some people really do just show up complaining that FreeCAD doesn’t work like XYZ other software they already know.

I agree, I too said that Freecad needs a Blender like UI update, and how it shot in popularity and being taken seriously as a software by commercial studios, But I was met with the smooth brained reply of “Blender isnt cad”. The people are just reading what they want to read from this suggestion and dismiss it, rather that take the useful part of it. Infact when people here already saying Freecad UI has no problem, and it is perfect the way it is, expecting them to agree about a UI facelift to look more current is like beating a dead horse. A waste of time.

Welcome screen rework(Kinda like the INKSCAPE welcome screen)-

  • Add the Theme selection on the welcome screen.(I have seen users who used freecad for quite some time and had no idea you could change theme to make it look better.


  • Add monitor aspect ratio selection along with a few optimized layouts for the popular aspect ratios(like 16:9, 4:3. 21:9, etc)


  • Add a few ease of accessibility features like text font increase, icon size, colour blindness mode, etc.


  • Add the measurement units selection and the default file storage location.

I posted these welcome screen changes in the other thread and was literally mocked by a veteran user. And you wonder why some users here think the Freecad UI is perfect.
Cheers!

Ahh back on topic. I like the idea of a welcome screen allowing selection of some basic settings on launch and have suggested as much more than one time in the past. But before we really approach serious discussion on that front, I think we need to take a serious look at what FreeCAD is and isn’t currently capable of regarding the UI itself. Which addons, if any, should be considered for integration directly into FreeCAD and then evaluate existing stylesheets to see if they make for a good visual presentation.

I actually am hesitant to try and push a ‘classic’, ‘modern light’, ‘modern dark’ UI selection in a welcome screen. While yes, this is common in software today, the FreeCAD mantra (which I actually consider to be a good thing) can be simply summed up as “Choices”. There are a multitude of ways to accomplish the same end result in FreeCAD and I think it is a testament to its power and flexibility. However, FreeCAD 0.20 now has ‘Preference Pack’ functionality. I think allowing the selection of specific ‘Theme’ Preference Packs (which meet certain requirements) in the welcome screen would be a potentially better option and require less debate on the forum.

Well said! I could’nt agree more! What is your opinion about some workaround for treeview getting hidden whenever any task or action is performed? I think its not too good and @OficineRobotica has a excellent solutions about having combo view on the right rather than the left in his FOSDEM 2022 video with realthunder. Infact, the freecad layout in his videos look much more appealing and aesthetic compared to the current state of the UI.
Cheers!

I guess you mean this one: https://forum.freecadweb.org/viewtopic.php?f=8&t=66867&start=30#p577749. I would appreciate if you had an openminded look at the contents, and not only that someone doesn’t share your opinions.

There are old discussions about an installation wizard which you should look at to include them in your proposals. As far as I can remember, they included certain workbench setups which could well be included here.

Thats not the one im talking about. I dont want to start a witch hunt, so lets just drop it. I intentionally did not point out the particular response because I dont want to single out the poster.



First off, Chris, thanks for the tip I think that’ll be useful once some of my other suggestions are explored further. Do you mind if I ping you in the future to help moderate this thread in case posts start to veer off topic? I really want to control the content of the thread.

shamanths13, lets just stick to the topic and avoid derails or mentioning other discussions entirely.

I may start multiple threads to explore individual lines of effort related to this topic overall, but what I’d like to do first is explore some of the ideas I’ve mentioned and perhaps look at a proper order to pursue them.

For example perhaps the first thing that should be investigated is identifying functions/elements which either:
a) don’t follow common industry naming conventions creating unwarranted confusion
b) use names that create ambiguity with other functions/elements in FreeCAD

The reason I say that is because themes/icons/layout are very largely user specific and based on personal preference. But Naming affects everyone.

After that, we could look at toolbars, first global, then workbench specific. To see if there is any room to optimize what icons are placed on them and in which order.

Then finally we can approach themes (preference packs) and ui modifications.

Of course. I appreciate your very serious approach towards an improvement.

For example perhaps the first thing that should be investigated is identifying functions/elements which either:
a) don’t follow common industry naming conventions creating unwarranted confusion
b) use names that create ambiguity with other functions/elements in FreeCAD

Just to collect them in a first step: I would add c) different implementation of basically the same thing. Independent from user preferences they should preferably be the same. An example of this would be the different population of lists for fillets, chamfers, loft and sweep sections, Path faces and edges.

Yes, my bad. I apologize! Wont happen again. Im on board with your plan. Ill do my best to contribute what is within my limits.
Cheers!

IMO theme selection should offer options called Dark, Light and OS Native. Modern and classic are not good descriptions because they only apply to windows really, IMO the native theme I use on linux looks more modern than the stylesheets provided by FreeCAD, + that naming can hurt the sensibilities of the people that prefer the classic windows look or of the linux folks that prefer their system theme. Using preference packs is the right approach as just changing stylesheet usually leaves you with some things that don’t look quite right in that theme.

Unit selection is a good idea.

Language could be too, I prefer to have my apps in English even if my system is in spanish.

It could also offer panel layout options. Including Glass is a no go as it is barely functional really and unmaintained. Realthunder’s take on it would be better if it ever gets merged. Note that you can still get a separated tree view even without the glass addon.

Font size and icon size are good ideas. Color blind mode is a good idea too but there’s no such thing right now. Pick radious might be of interest here to? not sure.

Aspect ratio optimized layout sounds overkill to me, and as with color blind theme, we don’t have such things readily available.

I don’t understand what is meant with default storage location? AFAIK freecad doesn’t such a preference parameter and it’s not clear to me what it’s supposed to mean.

Backup policy might be an interesting setting to have there, this could also reduce the confusion newbies have when misterious FCStd# or FCBak files appear in their folders.

About integrating addons, selector toolbar would be a great choice to integrate and offer in a startup screen instead of the cumbersome workbench dropdown list.