Blender 2.4x Series GUI
I took it upon myself to redesign (better to say that i took some screenshots and am proposing a new look although i haven’ done any real coding…) (work in progress) the new Blender 2.4x Series Graphic User Interface (GUI) as in my opinion a better GUI for Blender is needed to compete with the standardized alternatives. I wanted something unique, productive, simple, and most of all - uniform!
There are four basic problems with the Blender 2.3x GUI (which I’m not going to take time to really explain) and they are:
1. Ununiform 3D Effects (just take a screenshot of Blender GUI and open it up in an image viewer and magnify it to 8x and scan the GUI and you’ll see some very big irregularities!)
2. Too Many Icons (too many icons with no significant meaning and are hard for beginners to understand as to what function it possesses)
3. Too Many Menus (menus are usefull but for experienced users keyboard commands are more productive - eliminate them and have a new method of accessing them when needed)
4. GUI Sharing (ever open up a .blend from someone else and come to find out that there GUI is completely crazy and just to look at it’s contents you have to re-organize the window layout?)
Let’s address each one in the way that I solved them:
1. I fixed ununiform 3D effects by simplifying them to single pixel highlight and shadow with strong contrasting section dividers. This makes for very appealing yet not too complicated a OpenGL. This however isn’t liked by everyone so what I then did was add a View Menu to the new Standard ToolBar which has several functions but one which relates to this point and that is the Themes submenu. This new menu will allow you to more readily set preset themes which include both the simple solid colors to the more complicated gradient 3D effects to even tiled images which greatly improves the looks of the GUI. It also has quick access to certain Preferences such as turning Alpha on and off in menus. You can also create custom schemes by going to the Preferences Tab and setting custom colors and the new functions for turning solid colors to gradient fills - images could be available in the future. This cleans up the GUI greatly and makes things cleaner, simpler, and more visually appealing. It allows for people who enjoy Win98 styles to have theirs and for those who like Linux and Mac inspired styles to have theirs too!
I fixed the icon problem by eliminating as many as I could and replacing them with tabs that contain the text that is associated with the function. This helps greatly with explaining functions and location to beginners and since tabs are much more productive the new design allows for some new very amazing productivity. This has alot to do with both problem 3 and 4.
I fixed the header by eliminating them completely and replacing them with the Global Functions Toolbar and a small Arrow Icon located in the top right of every window. What this now does is create a new feature not present before. Let’s say that you have four 3D windows open and you already know the keyboard commands for controlling certain attributes (ie: object mode, shader mode, transforms etc.) - no need for menus - but so that you can still access the menu to remember a not so frequently used function - then click on the new little Arrow Icon and it will display all the menus that were contained in that particular window’s menus as in 2.3x series (keyboard command is space as in the 3D window in the 2.3x series). Some common functions such as object mode and displaying certain widgets are placed in the Global Functions Toolbar which contains functions relative to that window and to others. Upon clicking on a particular function the cursor changes to a question mark and you click on the window to which you want to apply the function. This greatly increase productivity as you don’t have to thumb through menus and then click the option. Keyboard function like they are at present would still be accessible and would take place in the window that the mouse is hovering over like it does at present. Some special features concerning this new menu include the Screen Functions which allow you to rename the screen name and it updates in the tabs of the Screen Table. The Layers - every 3D window has a layer menu, however if only one window selects a layer function it still changes for all other windows - no need for multiple layer selections so this too is added to the Global Functions Toolbar (GlobFuncBar) and because there was a request for layers with names I decided to add the feature to select the layer number, add a name, and then hovering over the layer icon gives you a tooltip caption of that layers name! Other features could be added to this toolbar. If there are too many to fit the space Hovering over the extreme edge of the toolbar would scroll and then upon stopping it scrolls back to default position after you hover the cursor somewhere else other than the toolbar. This maximizes space and functionality. Same goes for the Debug Toolbar however only the read off scrolls as the Standard Toolbar stays fixed. Another function of the Standard Toolbar is that clicking on the Blender Icon during a process will abort the proccess - useful for when ESC isn’t programmed to control import and export functions! Other menus that are combined and replaced are the Buttons Window Header and the User Preferences hidden field. These are now given tabs with titles representing all the different sections that they contained. This is all placed in what I call the Buttons Table which contains both the previous Buttons Window (minus the header as replaced with tabs) and the hidden part of the previous User Preferences as another tab called Preferences. To elliminate some of the window icons and menus function I created another table that I call the Explorer Table and it is located at the left and is another fixed table that has tabs for certain windows that are displayed vertically such as the Outliner, File Browser, Image Browser, Buttons Window, Text Editor and Scripts Loader all of which don’t have headers and only a small icon in the top right which will display the proper menus for that window as described earlier and can be accessed via space while hovering over that section. Much faster and much easier.
I’ve already sort of explained this in that if you have ever opened up another persons .blend and they a) a different screen resolution b) a different layout preference or c) a very cluttered and confusing layout then you know how much of a pain it is to resize, move, relocate, and change windows and menus. This is all greatly improved with the new design of tables. I have already mentioned the Standard Toolbar (which includes Standard Menu and Debug Info) and the Global Functions Toolbar which are combined into the Toolbar Table which is a fixed height division which can’t be resized or changed. It does scale to the horizontal (for small screen resolutions) and so that options which would normally would be displayed but are cropped would be accessed by the previously mentioned hovering on the edge of the toolbar. Beneath that table are two tables - Explorer Table and Screen Table. Both are scaled vertically to fit the screen and in the case of the Explorer Table the tabs that might be cropped would be made visible by using the same hovering feature. The Explorer Table is a fixed width table so it can’t be scaled horizontally. The entire ]Screen Table is scaleable horizontally starting from the left edge which butts up against the Explorer Table - this merely makes it so that the Screen Table fits flush with the screen resolution and no hover feature is neccessary. The Screen Table is controlled by a Tab Header which displays 5 of the most recently used Screens (add/delete/rename/select hidden scenes via the GlobFuncBar) and by clicking on a different screen tab will display the window layout of that screen in a four pane grid. Thus there are 16 possible arrangements of windows and if you look at some sample images you’ll see some examples. What this does is standardizes the locations and layouts of GUI’s so that .blend sharing isn’t a problem. Now you are guarenteed to have the same general layout regardless of what kind of window and pane layout is displayed in the Screen Table. Also what this does is switches Maximize function to maximize to the Screen Table size and not the whole screen size. Much more useful as the Buttons Table and the Explorer Table are still accessible. Minimizing switches the window size back to it’s previous state. But this isn’t good enough - what about resizing? Fixed it by making the four pane design. Now all of your windows are evenly sized to four panes - but what if you want to make a window two panes horizontal, or two panes vertical? Then simply delete one window and then use the new Stretch Window function. This will stretch the window to fit vertically (or horizontally - clicking multiple times will try to maximize in a new direction) and must be have space to expand to two or four panes. Thus you can technically have four windows, three windows, two windows, or one window but you can’t have two windows with one being three or more panes and another being only one or more panes. This might seem strange to have an “empty” pane but if you then Stretch a window to fit the size of that pane then you have two windows in four panes (two panes - vertical or horiztonal containing one window each). Now what about deleting a window? - just click on the new Close Window function and it will delete that window from it’s current pane(s). What about adding a window? To add a window just click on the new Add Window function. It will convert the cursor to a question mark and you click on one of the four pane(s) to add a window into - if four windows are already being used it will ask to replace the selected window. If there’s an empty space or another window taking up more than one pane is present then it will simply divide it to add the new window. Moving windows? Click on the new Move Window function and it will convert the cursor to a question mark and then you click on the desired window and then you click on the new location and it will move it. If another window is present it will ask to switch or replace. Need to revert back to the previous window type? Click on the new Revert Window function and select the window to revert back. So we have all of these new functions but where are they since we dont’ have menus? If you press Space (or click on the small icon in the top right of each window) the menu will popup with a submenu for Windows. This same menu can be accessed more readily with clicking both LMB and RMB at the same time. This displays all of the previously mentioned functions with others such as Maximize, Minimize, and Change Window which allows you to change a window into another type. This new menu is almost entirely globally accessible for certain features such as Move Window which is useful for when you want to move a window such as the Text editor from the Explorer Table to a window in the Screen Table or for moving the File Browser (which upon loading anything from your computer will be accessed from the Explorer Table by default as in opening a new file) to a window in the Screen Table.
Getting back to the tables - beneath the Explorer Table and the Screen Table is the Buttons Table which is scaleable horizontally but which is fixed height vertically. The Toolbar Table only displays the toolbars (more may be added later). The Explorer Table only displays the Outliner Window, Browser Windows, Buttons Window, Text Editor, and Scripts Loader Window. The Screen Table can display all window types except Buttons Window and Preferences. The Buttons Table can only display the tabs it contains which include (buttons): Logic, Scripts, Object, Edit, Render, Material, Texture, Lamp, Radiosity, World, Animation, Audio, and Preferences. Again all designed to standardize the layout.
Because the new toolbars are now fixed location and don’t have those weird rounded edges (created by the 86’d headers) it looks like any other program you might have and is more standardized as far as program design goes. Because of the fixed width Explorer Table and the fixed height Buttons Table now any custom changes will be only applied to a defined area (Screen Table) which is even more structured to limit any bizarre arrangements. Icons are pretty much (in this example I didn’t fix each windows icons just the fixed-location icons) it looks much better and is much more efficient. Doing away with headers and replacing them with a small top right window located icon that displays the header contents we maximize the GUI space and avoid redundant menus and icons. The new window pane functions help greatly in defining locations and sizes of the windows displayed in the Screen Table. The new Global Functions Toolbar helps organize certain commonly used functions and increase productivity and maximizes GUI space. Tabs makes for much better productivity as the windows and panels are much more easily accessible and are easier to define and describe to beginners. This also supports multi-lingual menus and eliminates some tool tip functions.
Now, I hate to dissappoint you but this design isn’t available until the extremely overworked and gracious developers start the long process of re-scripting the OpenGL code. In my opinion they should start working on it in there “free time” (like they have any with all of our demands on them!) and then when they finish 2.39 they start working on this as the prime focus for 2.40 as that is when the new Blender Manual comes out. This means that given the 4 or so months needed to create a new Blender version it won’t be happening for another year however the biggest thing that is need now is the design for it - something we can all start on. The developers need well defined examples of what we want and where we want it - they need new icons (I personally want all of the icons replaced with new revised ones that look similiar to linux and mac inspired programs icons such as Firefox, Quicktime, GIMP etc…), they need menu options and locations, color schemes, and a whole bunch of OpenGL rework. I wouldn’t expect any new functions in Blender 2.40 - just the new GUI layout and so the four months needed to develop it would get a lot of work done - still, I would like to hear some of your ideas and features for the menu system to help redesign the Blender GUI - so let’s start the “What would you like for the Blender 2.4x GUI?” thread!
Daniel LaBarge (Prince)
Blender Design Studios and BlenderMan Administrator
that’s what i got so far - now open up to other proposals and any requests…sort of like the “what do you want for blender 2.3x” threads!
are you all talking about the other design or this one with your comments? that wiki looks very interesting - hope this thread helps them!