Community UI/UX Improvement Project

A forum for research and development of the user interface of FreeCAD
Forum rules
Be nice to others! Respect the FreeCAD code of conduct!
User avatar
onekk
Veteran
Posts: 6149
Joined: Sat Jan 17, 2015 7:48 am
Contact:

Re: Community UI/UX Improvement Project

Post by onekk »

I think that a overall polishing of the interface identifying "problematics points" would be a good idea.

But, you have to cope with some UI specific problems, like the fact that Qt is not very well documented on where it store and read his defaults, or at least it is a moving target as at least in Linux there are differences between "native UI" if you use a Qt based DE or a WM alone like as example OpenBox or similar things.

Even speaking about defaults fonts that are managed by fontconfig will be a real trouble, if not managed correctly, as who had problem with NaviCube Text has experimented.

Not to speak about the various complications that derive of fonts metrics, if not set in a correct way across different installations.

I have tried to see some Qt internals, but I've seen some complications, like when using different "Qt applications" and using Qt supplied OpenFile Dialog, preferences are saved in a centralized place not respecting some "per applications" preferences, so if you change the ordering of files in am application, you will have all applications that reuse the OpenFile Dialog use same settings.

So some "in deep" customization has to be done to guarantee a coherent interface behaviour, like setting all the QtPalette values for a theme, (from what i have guessed from other software code).

Having the habits to taylor my Dialogs creating them by hand, I usually do some Qt programming, without using QTDesigner.

StyleSheets are almost good to set some preferences, so maybe some work could be done in determining a "minimal set of color settings" that could be used as a base for customization.

Usually many other applications will offer at least a "dark", a "light" theme, and the ability to load personalized things, ad usually they supply also one theme that could be used by "color impaired" people.

So I think that focusing on these three themes, could be a good start.

Defining also a "minimal font set" that could be present on the system to present a decent UI will be another step, and settings these fonts in a consistent way to avoid some usual "bitmap Helvetica" problems, that occurs on some systems.

I think that a decent test bed would be the use of a miniconda environment that don't use the system fontconfig that as example is loaded by AppImages as I've found in the "environment variables settings" during my researches.

Assuming that people will use only "Ubuntu 20.04" or derivatives, or KDE as example is a common mistake that it is better to avoid.

I don't know if it is feasible to have some "virtual environment" like a "Linux Mint" distribution, a "KDE" distribution and a minimal installation with maybe "XOrg and OpenBox" would be a viable way to test three different way of "used ocnfigurations" to see if always os correct using "standard themes".

If someone will use a highly configured "Steampunk theme" with strange characters and a "wood and brass color theme" it will be left to cope with his preferences.

My two cents.

Regards

Carlo D.
GitHub page: https://github.com/onekk/freecad-doc.
- In deep articles on FreeCAD.
- Learning how to model with scripting.
- Various other stuffs.

Blog: https://okkmkblog.wordpress.com/
User avatar
obelisk79
Veteran
Posts: 1063
Joined: Thu Sep 24, 2020 9:01 pm

Re: Community UI/UX Improvement Project

Post by obelisk79 »

Carlo,

Thanks for the thought out and articulate response. A few points in there I had not considered. Some other things you've mentioned I am already working on in my own time behind the scenes.

Kind Regards,
Obelisk
eajmarceau
Posts: 73
Joined: Tue Feb 22, 2022 9:16 pm

Re: YAUIUXDT

Post by eajmarceau »

shamanths13 wrote: Wed Mar 09, 2022 10:02 am (snip) But I was met with the smooth brained reply of "Blender isnt cad". (snip)
I believe that using derogatory expressions like "smooth brained" to characterize long-term (and expert) contributors is both a disservice to the community and likely to push those much needed resources to limit, or completely suppress, any willingness those same resources might have had to make step-wise advancements on any of your proposals. You might want to use a different approach, more along the lines of pointing out specific aspects within your spectrum of desired behaviours (or implementations) that are most likely to address self-interest for those same veterans. You would be more likely to advance your objectives.

If these next thoughts have been put forward elsewhere, I sincerely apologize and please ignore.

Step-wise is best until it hits a wall of infrastructure immutability. When that happens, a clear definition of a future architecture is required, followed by a clear and rational step-wise migration plan allowing the status-quo to morph as "gracefully" as possible into the new target architecture, which would usually demonstrate a layering of both more "neutralized" APIs (Kernel-oriented) and more "workflow-generic" APIs (GUI oriented) so that continuous improvement of any one layer minimizes its impact on the other layer.
User avatar
onekk
Veteran
Posts: 6149
Joined: Sat Jan 17, 2015 7:48 am
Contact:

Re: Community UI/UX Improvement Project

Post by onekk »

shamanths13 wrote: Wed Mar 09, 2022 10:02 am (snip) But I was met with the smooth brained reply of "Blender isnt cad". (snip)
But Blender is not a CAD program in strict sense, as it is a 3d modeler that has some CAD capabilities, in the sens of being able to produce 3d models.

It is not too difficult to see that in Blender is not "usual" to input "precise measurement" and to obtain "CAD file format" as output, not considering STL a CAD format, as it is a MESH format, so it is a tesselation.

FC could produce model made by curves that are "not approximated" by a mesh, even if the visualization is done with a triangulation this is not true for the "internal model"as example in FC a cylinder is composed by three faces, the upper "circle" the lower "circle" and a face that is bent over the two "circles".

You could see it clearly when observing that there is a "seam" on a side of the cylinder and you could refer to this face using (u,v) coordinates of the face.

From what I know this is not possible in Blender, simply the target are different, Blender is more geared toward graphics, and artistic graphics, that usually is rendered using meshes, so requirements are different.

A CAD program has to deal with "geometric concepts", see maybe:

https://wiki.freecadweb.org/Part_TopoShape

https://forum.freecadweb.org/viewtopic. ... 89#p500989

I think that these concepts and ability to retrieve "precise" geometric curves from a solid created with Blender is not easy or even not possible.

Said so Blender is a fantastic program, (even if I have not managed to use it, probably because I'm not a graphics artists).

Regards

Carlo D.
GitHub page: https://github.com/onekk/freecad-doc.
- In deep articles on FreeCAD.
- Learning how to model with scripting.
- Various other stuffs.

Blog: https://okkmkblog.wordpress.com/
User avatar
adrianinsaval
Veteran
Posts: 5541
Joined: Thu Apr 05, 2018 5:15 pm

Re: Community UI/UX Improvement Project

Post by adrianinsaval »

onekk wrote: Thu Apr 21, 2022 6:17 pm
shamanths13 wrote: Wed Mar 09, 2022 10:02 am (snip) But I was met with the smooth brained reply of "Blender isnt cad". (snip)
But Blender is not a CAD program in strict sense, as it is a 3d modeler that has some CAD capabilities, in the sens of being able to produce 3d models.
I don't think he's trying to say Blender is same as CAD, I think what he refers to here is that blender being CAD was never the point, but rather that they managed to improve their UI/UX and the adoption of the software. So pointing out that blender isn't CAD is not meaningful.

I'm not convinced that it's all just a matter of making it look better though.
User avatar
obelisk79
Veteran
Posts: 1063
Joined: Thu Sep 24, 2020 9:01 pm

Re: Community UI/UX Improvement Project

Post by obelisk79 »

Making FreeCAD look better is really only a small part of my endeavors. Although admittedly, this is a part of my goal here. But I want to improve coherence, consistency and layout while also perhaps addressing some default settings which currently make more sense for a subset of power users rather than for those who are at the beginner to intermediate skill level.
User avatar
onekk
Veteran
Posts: 6149
Joined: Sat Jan 17, 2015 7:48 am
Contact:

Re: Community UI/UX Improvement Project

Post by onekk »

obelisk79 wrote: Fri Apr 22, 2022 5:31 am ... improve coherence, consistency and layout while also perhaps addressing some default settings which currently make more sense for a subset of power users rather than for those who are at the beginner to intermediate skill level.
This is I think the most important things, in improving the UI.

After having a coherent and consistent interface, with maybe "common" or probably "very similar" workflow for "making operations" the UI cosmetic part will be a next level.

Probably having a more documented API will be a good things, or at least some templates to use to create WB or similar things, as I', experiencing, some thing are not explained or at least I could not find them in a easy way.

Regards

Carlo D.
GitHub page: https://github.com/onekk/freecad-doc.
- In deep articles on FreeCAD.
- Learning how to model with scripting.
- Various other stuffs.

Blog: https://okkmkblog.wordpress.com/
User avatar
adrianinsaval
Veteran
Posts: 5541
Joined: Thu Apr 05, 2018 5:15 pm

Re: Community UI/UX Improvement Project

Post by adrianinsaval »

I suggest that you think of some sort of guideline for task dialogs then start comparing the existing dialogs and see if they fit, then modify them as necessary to make them fit. IMO that's the main inconsistency in FreeCAD.
Sam_uk
Posts: 44
Joined: Sat May 07, 2022 11:16 pm

Re: Community UI/UX Improvement Project

Post by Sam_uk »

"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"

I have no idea how technically feasible this is, but it strikes me as a good way forward. You could even frame the new UI as the 'beginner' one, not all functionality has to be available then. You can hide a bunch of stuff.

I'd suggest making this new 'Beginner' interface a WebUI.

- There are _lots_ of good web UX, UI people out there who might volunteer
- The WebGL export thing already exists
- At some future point someone might want to offer a SAAS, this would help them out.

Is anyone in this thread planning to write or collaborate on a EpicMegaGrant https://forum.freecadweb ... =8&t=67895application ?
User avatar
adrianinsaval
Veteran
Posts: 5541
Joined: Thu Apr 05, 2018 5:15 pm

Re: Community UI/UX Improvement Project

Post by adrianinsaval »

Sam_uk wrote: Sun May 15, 2022 8:40 pm "Why not have a please all solution?
There is no such thing ;) , also maintaining two GUIs in parallel would be a nightmare and deprecating the current UI in favor of what you propose here would not be anywhere near pleasing all
I'd suggest making this new 'Beginner' interface a WebUI.
ugh, why make a web gui for a locally run app? Specially when it would involve much more effort than improving the existing interface since it would require an almost complete rewrite, you may probe me wrong here but I don't think that's a sensible approach.
Post Reply