Page MenuHome

Add Tabs to 3D View Edit Mode
Closed, ResolvedPublicDESIGN


The 3D View toolbar needs tabs defined. I propose the following (with a few changes/additions likely needed for the less standard object types, like surfaces):

Mesh Tools / Curve Tools / Surface Tools / Meta Tools / - context sensitive, based on the selected object, and holding all the modeling tools.
Shading and UVs - those operators pertaining to UV unwrapping, normal calculation, surface shading.
Primitives - operators for adding new primitives to the scene.
Options - edit mode options, such as X-Mirror, Edge Select Mode, etc
Grease Pencil

This provides the key tools needed during a single process all in one tab, allowing the user to continuously work and very seldom switch tabs. Using the existing tools organization/layout, this also allows everything to fit nicely on a standard 1080p display with zero scrolling, using the default layout (even with the Operator panel up).

Revisions and Commits

Event Timeline

There are several ways one could go about categories.

As pointed out by @Vincent Akkermans (ack-err) on IRC, we could categorise by

  • What it operates on (data type) Vertex, Edges, Faces etc
  • What it does (functionality) Add, Remove, Modify
  • How it is used (workflow) Level Editing, Animation, Architecture Modeling etc
  • Who uses it (type of artist) Architect, Character sculptor etc

I think the easiest to understand is a task-oriented grouping. UI research has found task-oriented UIs to be easiest to use, because that fits how users think. They don't think 'I want to fiddle with vertices' they think 'I want to add more detail to my character close to the jaw'.

Most tools apply to both Verts, Edges and Faces, but some apply only to one of these

I started to put the edit mode tools into task-based categories:

  • Create (create primitives, such as Plane, Cube etc)
  • Add (Add detail. Subdivide, Extrude etc)
  • Remove (Remove detail. Un-subdivide, Delete, Collapse etc)
  • Deform (Shrink/Fatten, Smooth Vertex, Bend etc )
  • UV Unwrap (UV-mapping tools)
  • Grease Pencil (Grease Pencil Tools)
  • Vertex/Edge/Face (Tools that specifically apply to only a certain data type, e.g. Rotate Edge)

Here's an overview with most of the edit mode tools included:

Looks good. So Vertex/Edge/Face change name and contents based on the selection mode?
Also, maybe it's out of scope for this but what about moving the contents of the Grease Pencil panel from the properties sidebar into the new tab?

It seems you already redesign Edit tools.
Just my wishes as on the table:

Here ive listed the mesh tools. bpy.ops.mesh.
Selected the frequently used, then added them together.
With the rest ive segmented them into different categories.

These exclude Transform, UV, Normal, Drawing Tools.
More could be added to this. But this is the kind of structure i like.

Most of these tools are the Add and Remove type.

koil (koilz) added a comment.EditedDec 18 2013, 9:35 PM
This comment has been deleted.
koil (koilz) added a comment.EditedDec 20 2013, 10:42 PM

Heres a design.
But im not sure.

I guess the Add and UV/Draw tab should be separate.
Mabey the edit tools should be separated to panels.
I would move Subdivide to Edit > Edges.

Initial tabs are in. Just note that not further organization or improvements have been done. This just makes the tabs work: rB1af82c0194e3247e04c56c6db977df10c089c6dd

Jonathan Williamson (carter2422) renamed this task from 3D View Toolbar: Reorganize Mesh Edit Tools and Options to Organize 3D View Edit Mode Tabs and tools.Jan 14 2014, 7:24 PM

Just for reference, these are the edit mode tools from 2.69.

@Jonathan Williamson (carter2422) I did this organization some time ago, it's definitely not perfect, but maybe you will find it helpful. Just needs splitting into tabs, and conversion into a single column.

I think a global panel, could be good for the History, Grease Pencil, Ruler.
Then these can be pinned easy, and are in one tab, they are kind of global tools, in the sense that they work for each mode.

For the object type tools, object, mesh, surface, armature, pose, etcetra..
I think it would be best to keep these tools in one tab. Then separate with panels if many.

Ive added a picture with an example.

Is this considered to be a showstopper for 2.70 release?

Jonathan Williamson (carter2422) renamed this task from Organize 3D View Edit Mode Tabs and tools to Add Tabs to 3D View Edit Mode.Jan 24 2014, 5:31 AM
Jonathan Williamson (carter2422) updated the task description. (Show Details)

@Mikhail Rachinskiy (alm), possibly. At the Sunday meeting this weekend we should decide whether to keep tabs as a 2.70 target or postpone to 2.71. If it stays as 2.70, then it's definitely a showstopper until it's finalized.

With that, I've updated the original description with a proposal. Here is the python file:

Note: ignore the "Retopology" tab.

@Paweł Łyczkowski (plyczkowski) that is nice, although I'd like to wait on the actual reorganization of the tools until the tabs are fully defined. After that, then I'd definitely like to revisit your organization and see what we can apply.

@koil (koilz), I agree with the global panel to a degree, in that I think there should be a dedicated History panel and a dedicated Grease Pencil panel. But I would keep them separate, namely because "Global" doesn't mean anything. How is a user to know what's there until they click on it? This is the same problem I see now with the original "Basic" tab I put in. Which is why I've removed it in my updated version.

Global.. I dunno, I cant think of a better name.


Heres a test file:
Swap the "" file in "\scripts\startup\bl_ui\" to test.

Code Modified: line 28 to 903
Modes Modified: objectmode, mesh_edit, curve_edit, surface_edit, text_edit, armature_edit, mball_edit, lattice_edit, posemode.

Ive removed the history, grease pencil, measure tools, from each mode.
If an action exists in objectmode, the acton browser is displayed in the animation tab.
Mesh Tools are the same as the current version.
I removed the Create/Add tabs, except for objectmode and mesh_edit.

i would like to see some better solutions for the operator shelf, i think it causes a lot of scrolling because it shares the space with the tool shelf.

i also had a crazy idea about a "global" tool shelf that always has the full screen height and does not split when windows are split. maybe like this the operator could be window specific and the tools shelf global somehow.

@Jonathan Williamson (carter2422): I think this is a lot better. Some comments:

  • I would remove the Noise tool and leave it in menus, the way it works is quite obscure.
  • What is the "Select" button next to Knife?
  • Perhaps the Add section could be split into Add and Cut sections?
  • UVS panel should be named UVs (lowercase s)
  • "Shading / UVs", I'd be inclined to leave out the "/ UVs" part of the name, but maybe that's not clear enough.
  • The sections in the mesh tools panel, should they each have their own panel? Repeating the Mesh Tools name seems a bit silly, but then again many panels may be inconvenient to manage?
  • Perhaps the Primitives could be renamed to "Create"? Or something else, I'm not sure, but this seems like a good tab to put all kinds of mesh generation addons as well, so perhaps a name that covers all those things would be good.

I think the repeat / history stuff should be moved to the tool settings / redo panel. If we have icons for repeat and history they shouldn't take up too much space.

Undo / redo doesn't quite fit in the tool settings panel though, because you don't necessarily undo the tool there. Maybe that's not too bad. An alternative for undo/redo would be to add a global edit menu, since these are global operations. I'm not sure what the best option is here.

@dan grauer (kromar): there's discussion about the tool settings here T37450: Tool settings panel location in the UI. This topic is about the organization of the edit mode tools, not toolshelf / tool settings design in general.

@Brecht Van Lommel (brecht) This tool organization is from the vanilla Blender. Jonathan wrote:

I'd like to wait on the actual reorganization of the tools until the tabs are fully defined

Can we hide these tabs? Clutter can be reduced if the selected tabs can be hidden away till they are needed again. Another advantage is that when there are too many tabs, the tabs start showing truncated names. So having fewer tabs means every tab shows its full name.

A drop-down list can be provided at top/bottom to see all the hidden tabs.

Another idea is to provide context menu (right-click on the tab to hide, pin, etc.)

@Brecht Van Lommel (brecht), thanks for the feedback! Like @plyszkowski mentioned, the current tool organization is mostly identical to 2.68. I'd like to get the actual tabs finalized first and then improve organization within the tabs.

About Primitives / Create tab, I agree that Create makes more sense in the long run. I'll go with that.

@Narayan Aras (raindrops), if you're comfortable in Python then it takes less than five minutes to disable tabs in your build. As for the context menu, it's already there. Just RMB on the panel header.

Vertical tabs are a great idea, but in my opinion horizontal tabs are more problematic in this context.

Anyway, please NEVER allow more than one column (or row) of tabs, as the interface will get terribly confusing.

Please see the following page on the Interface Hall of Shame, to see how bad things can get: Tabbed Dialogs

@Jonathan Williamson (carter2422) No real crits, atm, other that what I have already spoken to you about. Looking good, mate.

Jonathan Williamson (carter2422) changed the task status from Unknown Status to Resolved.Jan 29 2014, 5:08 PM

Are you sure about tabs initial placement?

@Jonathan Williamson (carter2422), After using the new tabs for a while I feel that they are perhaps a little cramped horizontally. I did a mockup with an increased gap on the left hand side of the tabs and think that it allows the design to breathe a little more.


@Mikhail Rachinskiy (alm), the reasoning for putting Tools first is that it's likely the most commonly used tab, and thus should be open by default (default is the first tab registered). Originally I had Create first, as it does make a linear sense. In order to keep Create first, we would need to find a way to define the default tab.

@Andy Davies (metalliandy) I'm not seeing a lot of difference. You just increasing the width of the tabs? I've noticed on non-retina screens the tabs definitely do feel a bit more cramped.

@Jonathan Williamson (carter2422), I just increased the gap between the tabs and the end of the interface on the left hand side by a couple of pixels.

Here is a gif that shows the before and after (you might have to open in a new tab for it to play)

Ah cool. I'll play with this.

@Jonathan Williamson (carter2422) but this is not the reason to break the logic and consistency, default tab is not that important.

@Mikhail Rachinskiy (alm) I would argue that default tab is very important. Otherwise you force users to change the active tab every single time they start a new file. That's just silly.

My preference would be to order the tabs like you have suggested, but to make Tools the default one. I'll check and see if this is doable. I'm not honestly sure.

@Jonathan Williamson (carter2422)

Otherwise you force users to change the active tab every single time they start a new file.

We have Save Startup File option, hey problem solved! :D

The main tools in recent blenders have always had these different names as the top panel, in the Tools area.
'Object Tools' 'Pose Tools' 'Mesh Tools' 'Curve Tools' 'Lattice Tools'.

I think it would be best to have the Tools tab with the different names.
Rename the 'Tools' tab to 'Mesh' for mesh edit mode, 'Object' for object mode, 'Pose' for pose mode, etcetera.

Sorry, is there any way to disable highlights for text in tabs?

@lopata (lopataasdf) the highlight is controlled via the Region Text Highlight theme color, so just adjust this to be less/more intense.

@Jonathan Williamson (carter2422) no it is not, Region Text Highlight changes only tabs border color.

Ah I misread. No. There is no way to change the text highlight currently.

Then maybe we can just get rid of this unnecessary highlight? ^^