Page MenuHome

Proposal: Workspaces & Modes
Closed, ResolvedPublic

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.

Details

Type
Design

Event Timeline

William Reynish (billreynish) triaged this task as Normal priority.
William Reynish (billreynish) renamed this task from Workspaces & modes to Workspaces & Modes.
William Reynish (billreynish) renamed this task from Workspaces & Modes to Proposal: Workspaces & Modes.Aug 21 2018, 11:17 AM

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.

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.

@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?

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.

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.

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.

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

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

@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.

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?

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.

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

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?

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.

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]

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.