Maniphest T56475

Proposal: Workspaces & Modes
Closed, ResolvedDESIGN

Assigned To
William Reynish (billreynish)
Authored By
William Reynish (billreynish)
Aug 21 2018, 10:04 AM
Tags
  • BF Blender: 2.8
  • User Interface
Subscribers
Andrew Charlton (Scaredyfish)
Antonio Vazquez (antoniov)
Brecht Van Lommel (brecht)
cédric lepiller (pitiwazou)
Daniel Martinez Lara (pepeland)
Erick Tukuniata (erickblender)
Matias Mendiola (mendio)
4 More Subscribers
Tokens
"Love" token, awarded by dark999."Love" token, awarded by manitwo.

Description

Proposal & how to handle Workspaces and Modes in Blender 2.8

Now that we have some nice default Workspaces included by default, I was struck by how satisfying and natural it is to switch between them and use them. However, one thing has become immediately apparent when you actually use them in practice, which is that they really should switch the active mode.

  • Without mode switching, Workspaces lose their main attraction, which is to be a way to switch tasks.
  • They are now somewhat annoying to use, because you first have to switch Workspace, then mode, making task switching a two-step ordeal.
  • The lact of mode-switching Workspaces is actually a considerable loss, both for speed and ease of use.

Now, the reason why we couldn’t implement this, was because the user can have several workspaces active at a time if thy have several windows open. If modes were owned by the workspace, this meant that you could then be in multiple modes at once if you had several windows open, which is difficult or impossible to support in a good way.

However, rather than solving it that way, I’ve thought of a super simple way to make it work without requiring two modes to be active at the same time:

Rather than the mode being a property of the workspace, each workspace could have a setting for a mode that it switches Blender to.

This means, for most setups with a single window, it will just work. Switching workspace switches the mode at the same time.

With multiple windows open, the same thing happens. Whenever the user switches to a workspace that has a mode associated with it, Blender then switches to that mode.

That mode is set for the entire Blender session, ie both windows. I actually think this is perfectly reasonable and completely fine. If the user switches to the Sculping workspace, it’s almost certainly because they want to do sculpting.

This is vastly simpler than trying to support multiple modes across several windows, and will help make Blender vastly easier to use.

Related Objects

Mentioned In
rB9f78f471d7ae: Workspaces: switch object mode when switching workspaces.

Event Timeline

William Reynish (billreynish) renamed this task from Workspaces & modes to Workspaces & Modes.Aug 21 2018, 10:04 AM
William Reynish (billreynish) lowered the priority of this task from 90 to Normal.
William Reynish (billreynish) created this task.
William Reynish (billreynish) updated the task description.Aug 21 2018, 10:18 AM
William Reynish (billreynish) renamed this task from Workspaces & Modes to Proposal: Workspaces & Modes.Aug 21 2018, 11:17 AM
Pablo Vazquez (pablovazquez) added a subscriber: Pablo Vazquez (pablovazquez).Aug 21 2018, 12:54 PM

There's also the concern of having a thousand objects selected then switching to a workspace with Edit Mode on, it would likely freeze the system.

A workaround would be to just switch the active object to the Workspace mode, not all objects selected, or make it optional.

Manuel Grad (manitwo) awarded a token.Aug 21 2018, 1:30 PM
William Reynish (billreynish) updated the task description.Aug 21 2018, 2:08 PM
William Reynish (billreynish) updated the task description.
William Reynish (billreynish) added a comment.Aug 21 2018, 2:12 PM

Pablo: Right, yes, I thought of that as an option too, to solve that problem.

However, you could argue that we have that problem regardless, because if you are not careful and have hundreds of objects selected and then hit tab, it's the same thing.

Matias Mendiola (mendio) added a subscriber: Matias Mendiola (mendio).Aug 21 2018, 2:36 PM

@venomgfx @William Reynish (billreynish) , for 2D animation workspace we have an additional problem: not only we need to swith the workspace to Draw mode (that should be the actual mode for this workspace) we also need to delete the default cube and light and add a new Grease Pencil object just to start to work on something.

Those additional steps are discouraging for 2D artist specially for newcomers that want to test Blender for their 2D work.

Could workspaces have their own startup file also? or what could be the best way to tackle this?

Daniel Martinez Lara (pepeland) added a subscriber: Daniel Martinez Lara (pepeland).Aug 21 2018, 3:18 PM

The current 2D workspace is a good start indeed, is great to see the white background and a clear interface. The main problem is that goal for this workspace is have the layers panel and GP materials panel at the first sight. I´m not sure what is the best solution for that.

Brecht Van Lommel (brecht) added a subscriber: Brecht Van Lommel (brecht).Aug 21 2018, 4:13 PM

For automatic mode switching:

  • If we do this we may need separate General and Modeling workspaces, so both Object and Edit mode are covered by their own workspace?
  • Performance problems when switching workspaces with a large number of I guess is indeed no worse than switching modes. Different behavior here seems confusing though.
  • Would this mode switching for workspaces be always enabled, or would there be an option to turn it off? Per workspace? I guess it's least confusing if it's always on and maybe ok if workspace switching is not done that often.
  • Still weak here is that if you switch to the sculpting workspace without an object selected, you'd still be in object mode.

For the default contents of the scene, that problem also exists for e.g. sculpting or compositing. A cube is not ideal to start sculpting with, and for compositing you need to enable compositing nodes first. The two solutions I see are:

  • Use application templates selected from the splash screen, which each give different workspaces + scene.
  • Start with an empty scene (maybe only camera), and tweak the UI so it's easier to add initial data. For example per-workspace specialized operators in the topbar to add an initial sculpt mesh or grease pencil drawing. Or maybe something more generic involving the asset manager.
cédric lepiller (pitiwazou) added a subscriber: cédric lepiller (pitiwazou).EditedAug 21 2018, 4:32 PM

Why not remove all the objects in the default workspace?

Since we can save startup scenes, people use their own primitives or cameras.
For example, the point light is not the most used light on cycles, why keep it?
You will not start with a cube to make your sculpt, nor with a sphere, or other primitive.

If the purpose of adding those objects is to show people they can add objects, it's not really relevant, people know that since it's a 3d software.
And adding an object that will most likely be removed directly wastes time IMO.

Antonio Vazquez (antoniov) added a subscriber: Antonio Vazquez (antoniov).Aug 21 2018, 4:36 PM

Really, looking hundreds of Blender tutorials, the first step is always "remove default cube"

Erick Tukuniata (erickblender) added a subscriber: Erick Tukuniata (erickblender).Aug 21 2018, 5:11 PM
In T56475#529172, @Antonio Vazquez (antoniov) wrote:

Really, looking hundreds of Blender tutorials, the first step is always "remove default cube"

@Brecht Van Lommel (brecht) wrote:

A cube is not ideal to start sculpting with

I think i have to object here if many people don't use the default cube, it doesn't mean that is not useful therefore we have to remove, at least sculpting and modeling we need a 3D object to start with, Compare to another primitive object the default cube is ideal to have it as a starting point.
Let me paraphrase incredibles 2 " Save the default cube because it defines who we are" show some love to Blender legacy -> https://youtu.be/MC1fEFVfJJw

dark999 (dark999) awarded a token.Aug 21 2018, 6:28 PM
William Reynish (billreynish) added a comment.Aug 21 2018, 7:11 PM

@Brecht Van Lommel (brecht) wrote:
For automatic mode switching:

If we do this we may need separate General and Modeling workspaces, so both Object and Edit mode are covered by their own workspace?

Yes, definitely. If the Modeling workspace changes to Edit Mode, it can't be the default Workspace. We can't have it so Blender is by default in Edit Mode :) I imagine we could have a default one called Layout, with an Asset Manager visible, for adding in items and arranging your scene.

Performance problems when switching workspaces with a large number of I guess is indeed no worse than switching modes. Different behavior here seems confusing though.

Yes - I actually don't expect it will be a big problem that it switches many objects into Edit Mode - the tab key has the same potential to bring your system to a halt. I expect this will not be such a big issue in practice as we fear.

Would this mode switching for workspaces be always enabled, or would there be an option to turn it off? Per workspace? I guess it's least confusing if it's always on and maybe ok if workspace switching is not done that often.

No particular strong opinion, but I imagine that the Workspace Mode is optional per workspace. If you switch to Video Editing, it's maybe not expected that it switches the mode? Then again, if you then switch back to whatever task you were doing in another workspace, it wouldn't really matter if Video Editing would always go to, say, Object Mode.

Still weak here is that if you switch to the sculpting workspace without an object selected, you'd still be in object mode.

Yes, that is annoying. I guess you could say that you would first create your object in your main workspace, and then switch to Modeling or Sculpting from there, but it would be more elegant if users could go directly to sculpt mode and start sculpting.

The only solution I see, is that Blender would create something like a quad-sphere if you were to go to the Sculpting workspace if no object is selected, or the scene is empty.

Same could be done for 2D - Blender could create a GP object automagically if none exists.

For the default contents of the scene, that problem also exists for e.g. sculpting or compositing. A cube is not ideal to start sculpting with, and for compositing you need to enable compositing nodes first. The two solutions I see are:

Use application templates selected from the splash screen, which each give different workspaces + scene.
Start with an empty scene (maybe only camera), and tweak the UI so it's easier to add initial data. For example per-workspace specialized operators in the topbar to add an initial sculpt mesh or grease pencil drawing. Or maybe something more generic involving the asset manager.

I think both solutions would be ok - either we provide a series of templates - one for 2D, one for Sculpting and so on, or we can just ship with an empty scene.

With the new toolbar, there's a super obvious visual way to add new objects, so that will help too.

William Reynish (billreynish) added a comment.Aug 21 2018, 7:15 PM
In T56475#529124, @Daniel Martinez Lara (pepeland) wrote:

The current 2D workspace is a good start indeed, is great to see the white background and a clear interface. The main problem is that goal for this workspace is have the layers panel and GP materials panel at the first sight. I´m not sure what is the best solution for that.

What's the problem you are trying to point out? I'm not sure what you are getting at?

ronan ducluzeau (zeauro) added a subscriber: ronan ducluzeau (zeauro).EditedAug 21 2018, 9:06 PM

He is just saying that purpose of properties editors in this 2D workspace is lost without a Grease Pencil object as active object.

I think it is a point in favor of application templates.

The only solution I see, is that Blender would create something like a quad-sphere if you were to go to the Sculpting workspace if no object is selected, or the scene is empty.

Same could be done for 2D - Blender could create a GP object automagically if none exists.

It would be a weird behaviour if user is just browsing workspaces to see what they look like.

Maybe for workspace switching, operator could have an option to switch mode and two shortcuts could be provided.
For example, just left click on tab to switch mode while workspace change.
And Alt left click on tab to avoid mode switch while workspace change.

Performance problems when switching workspaces with a large number of I guess is indeed no worse than switching modes. Different behavior here seems confusing though.

I think that multi-object switching should be limited to selection.
Workspaces could have properties to limit mode switching to a user-defined object or a collection of scene.

Daniel Martinez Lara (pepeland) added a comment.Aug 21 2018, 10:08 PM

Yes, as Ronan said, the goal of properties editors in this 2D workspace is lost without a Grease Pencil object as active object.

Andrew Charlton (Scaredyfish) added a subscriber: Andrew Charlton (Scaredyfish).Aug 22 2018, 7:07 AM

Perhaps there could be something like a workspace startup script/splash screen that runs the first time a workspace is accessed or under specified conditions, and gives you the option to add the relevant object types?

William Reynish (billreynish) added a comment.Aug 22 2018, 8:45 AM
In T56475#529336, @Andrew Charlton (Scaredyfish) wrote:

Perhaps there could be something like a workspace startup script/splash screen that runs the first time a workspace is accessed or under specified conditions, and gives you the option to add the relevant object types?

Yes, something like that I think makes sense. It would also throw the user into the relevant Workspace. Many 2D apps have something like this - a screen with the dimensions and type of project you are doing, to give users a good starting point.

This is all getting a bit off-topic though. The proposal was more about how to handle Workspaces and modes.

Brecht Van Lommel (brecht) mentioned this in rB9f78f471d7ae: Workspaces: switch object mode when switching workspaces..Aug 30 2018, 4:21 PM
michael knubben (michaelknubben) added a subscriber: michael knubben (michaelknubben).Aug 30 2018, 5:26 PM
William Reynish (billreynish) changed the task status from Unknown Status to Resolved.Oct 1 2018, 7:20 PM
William Reynish (billreynish) claimed this task.
William Reynish (billreynish) added a project: User Interface.
Rombout Versluijs (rombout) added a subscriber: Rombout Versluijs (rombout).Nov 30 2018, 3:30 AM

Is it temporary that each workspace switches back to default (start property) when you switch workspaces. Switching now resets the last working mode to default, which is resulting in extra click to get it back to the last working mode.

Workspaces cant be called by python no more, i lost control for an addon i made using window.screen=bpy.data.screens[self.layout]

Rombout Versluijs (rombout) added a comment.Nov 30 2018, 3:35 AM

One issue i see and is probably noticed already. When users uses "New Main Window", the tools will switch in that window according to the 1st windows workspace, that doesnt seem right to me. I need to move from the current workspace to another and back to get the tools back in the 1st window.