Better integration into OS

Hi,

I’m learning Python and C++ to realize my own ideas with Blender. Soon I’ll start with building blender and delving into some of the source files to try and understand it’s structure a little more. I am by no means a capable developer yet but I like to learn and I like quality work.

What I was wondering, is if there has been a discussion yet about why Blender seems so isolated from the operating system (in MacOS’ case at least)? I believe a consensus is to do things “the Blender way”, but sometimes utilizing available tools can be an advantage as well.

Would it be feasible or worthwhile for me to realize a UI change like in my mockup below?


Kind regards,
Claus

This mock-up would require a bit more thought, IMHO. Where do users change/add scenes? Where does the progress bar appear? How do users access the log history of operations performed during their session?

Had this all ready years ago. It was very intrusive and plain ugly to maintain when things change. Imho not worth the efford.

Jens

Neither Houdini nor Maya use OS-specific GUI. This is a total non-issue.

Thanks for the insight. Could you explain to me a little more about why it was that way?

Neither Houdini nor Maya use OS-specific GUI. This is a total non-issue.

That seems like a non-argument to me (i.e. Photoshop and Rhino do use it). I think the saved vertical space and one less spacetype (info) would increase familiarity and usability especially in new, but also seasoned users.

This mock-up would require a bit more thought, IMHO. Where do users change/add scenes? Where does the progress bar appear? How do users access the log history of operations performed during their session?

I agree wholeheartedly. The scene buttons (for lack of a better word) could go in the properties space under, you guessed it, “scene”. The progress bar is more of a tricky one and needs more thought. Depending on in what case it appears it could be moved to it’s specific space’s header, like the Image editor or the 3D view.

I’m definitely not for a removal of the info space. It should still exist, but wouldn’t be a part of the default layout anymore.

However. If all of this actually is a nightmare to code then I’ll leave it be. I’ll gladly hear of anyone else’s efforts in doing this, since I’m sure this is not a novel idea.

Kind regards,
Claus

There’s a different problem that needs to be considered as well, and that’s cross-platform usability. Personally speaking (as a user and a trainer), I don’t favor the notion of having a “MacOS Blender” interface and an “Every Other OS Blender”. It already exists somewhat with the Cmd/Ctrl swap and it’s exacerbated by the new MacBook Pro’s lack of Esc and Function row. I really wouldn’t like to take it further than that… and I certainly wouldn’t want to push it further to the point that we have a different default Blender layout for each OS (Mac Blender, Windows Blender, Ubuntu Blender, Fedora Blender, etc.)

Again, personally speaking, I like the fact that regardless of what computer I sit at, regardless of the operating system on that machine, Blender is [for the most part] Blender. I can sit down and get right to work with minimal adjustment or guesswork. Better, if someone is asking for help, it’s far easier to guide them to the correct solution without much consideration for the operating system running underneath Blender.

I’m growing a little tired of an argument that limited development resources should be spent on people who can’t be bothered to learn a user interface. Improvements should be made that benefit productivity, not so much the comfort and ease of beginners.

I’m growing a little tired of an argument that limited development resources should be spent on people who can’t be bothered to learn a user interface. Improvements should be made that benefit productivity, not so much the comfort and ease of beginners.

There is no such argument here, though.

@Fweeb

That’s certainly an interesting point of view. The problem is that macOS keyboards have a cmd key on either side of the spacebar, making it ideal for shortcuts. Every single macOS program works with cmd-based shortcuts. We also have to think about the bigger picture. You rarely solely run Blender on a computer. You run it alongside other programs that were specifically made for the operating system. Blender sort of breaks that user experience and I see that as a negative thing. On top of that, elements an application menu bar is present in every OS, so it’s not an OS specific change I’d like to make.

If you were to extend your point of view a bit you’d realize the same would go for your choice of operating system. I invested time in learning how apps on my OS of choice work. I don’t want to change that for Blender. I think that’s an important distinction to make. For me it’s ok to do things differently than other applications, that’s innovative and perfectly fine because you’re differentiating with other applications on the same hierarchical level. But to undermine the operating system you’re working on feels kind of weak. Even if it’s a lot harder to develop. There’s always a limit ofcourse, but in this case it might not be so unrealistic.

It’s a heavy discussion but I think it’s one worth having more than once. It’s detrimental to develop a clear vision and steer things in a certain direction.

The issue that would come with better integration into the OS is that Blender supports three of them, each having their own functions and their own set of features (Windows, MacOS, and Linux).

To do this would require separate sets of UI code on a per-platform basis (which would be a major time-sink for developers and prevent it from being spent on the sorely needed functionality coming to Blender in 2.8).

They work with control, command and option-based shortcuts, but those are often the same as CTRL/ALT on other operating systems, except the keys may be swapped. Maybe there could be an option to swap those keys in Blender, like there is in Mac OS settings. I also expect there’s utilities to solve this on a per-application basis, or you could use a custom keyboard layout.

We also have to think about the bigger picture. You rarely solely run Blender on a computer. You run it alongside other programs that were specifically made for the operating system.

The big picture is that Mac OS is on a downhill ride along with Macintosh computers. Even die-hard Mac users are getting tired of Apple’s bullshit, including jensverwiebe who used to be the Mac OS platform maintainer for many years.

If we should talk about platform-specific issues, maybe I should point out that Apple still isn’t supporting OpenGL 4.5 after many years on its rather buggy GPU drivers, hasn’t announced support for Vulkan, has broken compatibility between OpenGL 2.1 and 3.x (which is a problem for Blender) and instead pushes developers to use their proprietary Metal API. With a market share of maybe 10%, who is gonna go the extra mile for Mac OS? You may expect to not have certain graphics features, as a result.

Blender sort of breaks that user experience and I see that as a negative thing.

Blender “breaks” (as in “doesn’t follow”) many conventions, as do many other 3D applications. If you want to make it feel “native”, you need an entire platform-specific UI, like MS Office has. Otherwise, it’s just a drop in the bucket.

On top of that, elements an application menu bar is present in every OS, so it’s not an OS specific change I’d like to make.

That’s not true, on Windows there is no global menu bar, the menus on the windows are part of the UI toolkit (may or may not be Microsoft based), not the OS. On Linux you would probably have to integrate into a bunch of different desktop environments, to get a global menu bar working everywhere.

Blender has OS-specific code for managing windows (and things like input), but I believe this is separated cleanly from the actual UI widgets. If you’re looking to integrate OS-specific stuff, that’s the code you should look at (GHOST).

If you were to extend your point of view a bit you’d realize the same would go for your choice of operating system. I invested time in learning how apps on my OS of choice work. I don’t want to change that for Blender. I think that’s an important distinction to make.

If you were to extend your point of view a bit, you’d realize that Blender was ported to Mac OS not because its users are as important as they are self-important, but because it doesn’t have a lot of OS-specific code. Meanwhile, a 4000$ application like 3DSMax is never ported to Mac OS, because it wasn’t designed to be cross-platform and it’s not worth it to port.

What you get is an application that is “at home” on no OS in particular, but at least it’s there and it stays somewhat maintainable on its shoestring budget.

But to undermine the operating system you’re working on feels kind of weak. Even if it’s a lot harder to develop. There’s always a limit ofcourse, but in this case it might not be so unrealistic.

I understand your idealism, because you haven’t yet learned to code and have no experience with the terribly interesting business of maintaining legacy code. If you really want to push these things forward, by all means, go for it and see what you get. Also, Blender can always use more platform maintainers. If you do stuff, your words have weight. Otherwise, your words are just part of the noise that is the everlasting UI debate.

It’s a heavy discussion but I think it’s one worth having more than once. It’s detrimental to develop a clear vision and steer things in a certain direction.

We’re having these discussions on a regular basis and the only real conclusion is that we can’t agree on anything regarding UI. It’s up to the people who actually end up programming the stuff (and manage to land it in the codebase).

Again, if you find it worthwhile to spend your finite lifetime on improving integration for an operating system that might be killed off any day, by a company that is focused on selling fashion items that happen to also do computing, then go for it. To me, that sounds like a waste.

(written on my iPad™)

Having the menu items up on the top bar and not the header of the application window in OSX is one of the worst things (Amongst quite a big list, I might add…) about the operating system. Not only is it a waste of space (you effectively have two bars at the top - one with just the close, minimise/maximise buttons, and one with the menu items) but it means potentially travelling across the screen to get to the menu for an app that’s running over in a small window down at the bottom right, and also an extra click to make the app active in order to access its menus…

If I recall correctly, Windows has the exact same problems. As a precursor; I don’t think either OS is generally better or worse, so please, let’s avoid that discussion.

On Windows, either you have menus in the header of an application. Which is bad for small windowed apps that you want to move around because you have nowhere (at most a few pixels at the top) to grab the window. Or you have a menubar underneath the header, which results in the same two bars “wasting space” as on MacOS. On top of that, if you have multiple windows of the same application, they each have their own menubar. Which can be useful or wasteful depending on the situation.

I like the global menubar because it takes up as little space as possible while still showing me important information and easy access to settings. I have my Dock hidden most of the time. If I hide the Taskbar in Windows, however, then all my useful info and quick access settings are gone. So you might say there’s actually less space wasted on MacOS if you autohide the Dock.

About Blender, I now see the usefulness of having such a complex application be easily maintained with a consistent – in it’s own way – and not too foreign interface across platforms. Maybe better OS integration is a project for when, over time, enough large companies sponsor that development, because I still don’t think it would be a bad thing.

Kind regards.

The problem here is also that Blender has it’s own gui toolkit, one I am assuming is written in C, and that this is where you would need to start hacking. But be careful, as even for Krita which is build on QT, which in turn tries to be cross-platform with integration bells and whistles, we have a ton of bugs revolving around desktop integration and wasted time on fixing those with no avail.

Do you not see that Blender having a consistent UI across platforms is a good thing. It means when you switch between one OS and another, Blender just works the same, without the OS getting in the way.

Personally, I’m a Linux user, and so I have the choices of Gnome, KDE, XFCE etc. etc. I’d hate for Blender to use a custom UI for each. I’d rather it did as it does, and work the same whatever platform I’m on rather than having to consciously think about my desktop before I remember how to use the program.