Blender 101 Project - 3D for Everyone

Hey all, I am the guy in charge of the Blender 101 project, here for your feedback!

Blender 101 is part of the 2.8 project to add ‘Templates’ to Blender in order to make Blender more usable for non-artists. Read more about it on code.blender.org

But in sumary, Just like how the new Workspaces in Blender 2.8 will optimize the interface for specific tasks(such as modelling, animation, sculpting and compositing), Templates will go one step further, transforming Blender into very focused applications that do specific things really well. Possible candidates for templates include:

  • Blender Simple
  • 3D Printing
  • Games Creation for Unity/Unreal
  • CAD

My questions for you are:

  1. What other tasks could be templified?
  2. What are some of the most needed features for a specific template? (Please keep it high level)

Really cool ideas!

Before I dive into thinking of things, I need more information. For something like the Blender Simple Template, certain UI elements would need hidden and locked. As far as I know, that cannot be done from within Blender. Will that functionality be added to Blender so that anyone could make Templates like that? Or, are Templates more complicated to make than simply using Blender?

Also, it seems like Workspaces are like Layouts while Templates are like startup files that include some user preferences. Is this correct?

EDIT: To be clear, I know that Templates are not startup files. It seems like they are Blend files where the UI setup and certain user preferences override the file being viewed. And, it adds certain assets to the file, but I’m not sure what this means. I expect that it is like a fake user with different textures, brushes, etc.

Not sure if this goes beyond template capabilities and i am sorry if it is too elaborate. It seems like a good place and moment to finally sum these up. Been missing these features in Blender from the beginning, and i feel if they would be added to this already awesome app, it’s capabilities and user base would go sky high. And i feel most of them have their base already set up. Also thanks to Mike for this thread.

If it is possible in this step or in some future development, by the core team or addon enhancements, the CAD template would be nice to have:

  1. LINE + SHADOW VIEWPORT MODE

A cleaner, simplified geometry look with sharp edges and contours. Excellent for better geometry overview and dimensioning. Also encouraging love for precision design.

Some sort of openGL textured diffuse shade with wire overlay and simplified shadow engine. Wires excluded between coplanar faces. With Mike Erwin’s wireframe efforts and worbench shadow engine, seems reachable.

EXMP - link 1, link 2, link 3

  1. UNITS

An overall unit toggle with forced units and precision control

Metric: choose between nm, micrometer, mm, cm, m, km

Imperial: inches, feet…

Angle: degrees, radians…

Option to force units (654.20 cm instead of 6m 54cm 2mm)

If possible, avoid scene scaling and scaling of objects when changing units. Only changing dimensioning and tool units. Right now a unit toggle exists but it causes some issues in other parts of blender.

No need for CAD float point precision, the current blender precision is enough.

EXMP - standard CAD apps / SketchUp / mauge’s effort on mechanical blender branch, only without scene scaling

  1. SNAP

Very important and standard CAD feature, enhancing blender’s existing snapping capabilities

Endpoint, midpoint, perpendicular, extension, centre, nearest on edge, nearest on face

EXMP - standard CAD apps / SketchUp / mauge’s mechanical blender / great python implementation by mano-wii, although limited to local mesh

  1. LAYERS

Upgraded layer system with naming / locking / visibility / selection and basic object properties override toggle

As far as i know, this is already being worked on, and on a much higher level

EXMP - standard CAD apps / SketchUp

  1. BASIC LINE AND SHAPE DRAWING

Very important, if possible with snap

Polyline with straight and arc segments, rectangle, circle, polygon, bezier (but like real drawing, similar to Inkscape)

Usable for making shapes and geometrical bodies from blueprints, elements for extrusion and boolean operations

EXMP - standard CAD apps / SketchUp / Inkscape in 2D / i also tried to make something similar for blender

  1. MODAL 3D PRIMITIVES

Box, prism, pyramid, cylinder, cone, sphere

Something like add-mesh primitives, only upgraded - in situ (without the need for 3d cursor), modal generation, with snap and numerical input

EXMP - 3DMax / you can also check my NP_float_box for in situ generation

  1. GROUPING

A standard grouping system, with instancing and simpler instancing procedures. Something like described here.

EXMP - SketchUp has a great implementation of this / Inkscape also has a nice grouping system

  1. TRANSFORMATIONS USING BASEPOINT SNAP

Standard CAD procedures, eliminating the existing need for post operator adjustments

Move, copy, rotate, scale, stretch, mirror, array, trim, offset, fillet

EXMP - standard CAD apps / SketchUp / mechanical blender branch / some of my NP addons

  1. A ROBUST AND FAST VIEWPORT MEASURING TOOL

Very useful during modelling, without the need to use the eventual dimensioning system

EXMP - CAD’s distance tool / SketchUp’s tape measure tool / also NP_point_distance

  1. DIMENSIONING

Fast, modal, openGL dimensioning in object mode, with snap, viewport and Cycles overlay if possible

EXMP - standard CAD apps / SketchUp, without overlay over PBR / Measure it by Antonioya but limited in UI

  1. MATERIALS

Better shader management in viewport. Mainly - transferring materials between objects in a fast and intuitive way.

EXMP - SketchUp’s paint bucket / you can also check my NP_shader_brush

  1. PLANE CONTROLLED SECTIONING

Very important for design overview and client presentation

Like a bisect operator on a scene level or some sort of controlled view clipping in an orthogonal or arbitrary plane

Similar effect can be achieved with alt+B, but is not elegant and not possible with Cycles

EXMP - link 1, link 2, link 3

  1. IMPORTING 2D - DXF, SVG and 3D - OBJ, 3DS, FBX

This is already working quite good with addons from various users

  1. ORTHOGONAL / ARBITRARY VIEW EXPORT to SVG / PDF / DXF

A complex and very needed feature for technical and product design, right now probably far away down the road

Output is a technical vector drawing with dimensions and annotations, a hint of BIM workflow

Dimensioning system really comes to shine here

Some capabilities already exist through freestyle, svg addons and hacks but it is basic and messy

EXMP - Revit / ArchiCAD / FreeCAD & Fluid Designer on a basic level

  1. PYTHON API BINDING

Adopted from from RickyBlender’s list. It is fair to say many of the features i’ve mentioned can’t be implemented at the moment. Giving the power to the users to continue the effort and build addons upon new 2.8 features seems like a good strategy.

EXMP - python access to snapping, viewport and rendering settings, manipulators and better macro and BGL documentation

Ok, i think i’m good untill june now…

1 Like

blender game engine templates like

‘control proxie’ - with multiple actors to target

generate terrain and store terrain in a tree structure and stream

a blender game map building tool / instance placer and tree storage system

I am working on these already so I don’t mind sharing what I have.

Just some notes here for CAD

1 - would be good to have an option to get precision with 16 digits = same as on CAD
in any case Python is already using 16 digits but internal BL is only 7 Digits.

2 - have more tools for curves and if possible get the new T spline Nurbs
as I know of there are free lib available for that so should be possible now

3 - have some new API commands to help make CAD Addons

don’t think we need Blender to be with all CAD features but at least with new API commands
it should be possible to add new CAD addon for those who need it for work like Architects or Engineers ect.

thanks
happy bl

I could not agree more with Okavango’s comments. Especially the points 1-6 I see very crucial.

I started to model with Sketchup and 3 years ago I spent 1 year to learn Blender and finally I was able to model ok with Blender, but still I keep using Sketchup because it is just so much easier for quick modeling for architectual visualizations.

In my dreams I see that somebody would build a “Sketchup addon/template” into Blender. Mano-wii (CAD Snap Utilities, Extrude and Reshape, etc.) has been doing this step by step but not in comprehensive manner.

Maybe you are asking the wrong people?

We are by and large artists. So we want to see more features. And that is not what is being asked here. Am I right?

Yet most of the responses are for features. Unless I missed something this is outside of the 101 project.

So with all due respect, I think there was not much of a welcoming cheer from us by and large over the 101 proposition when it was first introduced. There was a lot of discussion about this.

Just saying. Because we are not the target users you are looking for.

But here are the reasons I think you are not getting a lot of positive/useful feedback. And the reasons I think this is not a viable project.

  1. There is no real problem here in the first place. This is an imagined problem. And if it has any ties at all into the hoopla that surrounded Andrew Price’s failed attempt to engage the community on the general interface subject, this is what I am talking about when I say “Imagined Problem”. He eventually admitted his tactics were flawed and useless. The resulting “enhancements” to the interface “Tabs” come to mind are more cluttered.

When you open a Blender interface, any 3D interface at all, you will find basically the same thing. A 3D space in the middle with bordering menus, icons and panels.

And when you learn any app you seek out tutorials or the manual or other people to tell you where to look for the specific tools you need to do a task.

There is no way to simplify an interface to the point tutorials or outside help are not needed. No way.

So, since there is no real way to avoid doing tutorials and getting educated, a dumbed-down interface will simply be a redundant task. The person will have already learned how to seek out things they need.

Problem solved.

It is also an assumed problem that people get into trouble doing things that are not related to their task. No. They have trouble doing things because they have not learned how to do a task. Not in accidentally choosing the physics panel when they want to add a modifier for a modeling operation. Exactly how stupid are you assuming people to be?

  1. Every person, artist, application and use for production has an infinite number of variables. Does not matter how we categorize it. That attempt is flawed at best. Anyone who deals with many clients and production situations will see that no one simplified interface will suffice for all situations even in say, gaming as opposed to 3D printing. In addition to this, people are more often multi tasking with Blender than they are specializing. By the numbers. Would apply even to new people.

Therefore creating specialized works paces is not practical. Too many variables.

  1. There is an inherent complexity to 3D in general. Not the same as 2) but specifically there is a natural inter-dependency between disciplines. Arbitrarily walling off sections of a program is a tricky proposition at best. Moving laterally between these disciplines at all times is essential. And you can not predict when and if a person will need to on the fly, find that he must go from 3D printing to a rigging task to prepping something for a game or for rendering. In fact, likely all of these things will be a part of the job even if the main focus is only one. For marketing and advertising, just as an example. So a fluid interchange between disciplines is needed.

Even if you are talking about people focusing on specific tasks at the start. This will never be an absolute thing.

Quite in addition to this you promote a specialist mentality and an arbitrary ignorance of certain aspects of 3D. If they see an icon every day, or items on a menu they never use or panels they do not frequent, yet, from day to day they become familiar with them, it is much easier to introduce a new task to a person if there is already a familiarity - even if by causal notice, of its location.

And it is a certainty in most cases that this need will arise. Walling off the interface will only thwart this at best, and worst case, likely promote the ignorance that such a thing can not be done in Blender. How many times do we hear this anyway? People assume something can’t be done when it can. So now we are going to make this more of a certainty?

Flawed logic.

  1. Training Muscle Memory and general familiarity. This is in addition to the above points. The last thing you want to do with specialized tasks is also introduce tunneled memorization. It will be far more difficult for people to graduate to other levels of use as they will have to unlearn certain habits and replace them with new ones. This is outside of the basic interface attributes that will be consistent. Locations of menus and icons and panels will inevitably have to be learned and relearned.

It is far better to train these things in at the start. People are far more willing to learn new things at the start of their career or use of something than in the middle of it. And therefore does not promote expansion into new areas but rather limits and thwarts it

These practical points should have been considered strongly before commencing this project.

A more viable use of time would be a splash screen with quick start videos targeted at each discipline.

It would have the same result as the desired goal of this project without the side effects, limitations and faults.

Education and good simple, functional and informative splash screen. That is what you need. That also complies with other successful efforts from software companies.

I am just curious how many lines of python code does it take to draw and run the current interface? Is the new interface going to be simpler to code?

You guys love pointless work

This thread is about Templates, NOT plugins or anything like that.

Something that may be good is a Template for 2D work/animation. Here is an example of a customized Workspace for 2D grease pencil work. This is just for a custom theme and Workspace, but I think this could be applied to all Workspaces. And, many of the 3D aspects could be locked, hidden, or minimized to prevent it being accidentally messed
up.

I know that you mentioned “non-artists”, and I’m not sure how much demand there would be for using Blender for 2D like this.

I also think that a video editing Template would be good. I know that some Workspaces would be for the VSE, but I think having the Blender UI stripped down for VSE work would be good for a lot of people. And, there could be many more Workspaces for the VSE Template than what Blender currently has. Many people just edit video, and I think they’d benefit from switching Workspaces for things like working with the graph editor, file browser, or histogram rather than manually changing windows/frames. In fact, I’d like to see where the ability to change a window’s type (3D View vs Outliner) is something that someone could use Blender for a while without realizing.

To further what Richard Culver was saying, there are a few other well-known (?) challenges you’ll likely face.

If your intentions are that the “Blender Simple” workspace will act as a sort of simplified environment to learn how to use Blender (i.e. “training wheels”), and that users can (and will) then be able to easily switch over to a more fully-featured one later, then AFAIK, the current understanding is that it’s not really going to work like that. Basically, users will get “stuck” in the basic mode, and will not switch to a more advanced mode, even if that means hobbling along with a proverbial sticks-and-stones set of primitive tools. (For more info about this stuff, read up a bit about “Novice to Expert Transition”)

IMO, there are however two alternative ways you can reframe this problem (the distinction here though is probably quite subtle) that might be more successful overall:

  1. Blender Simple = Demo Mode: The main aim of this is to let novices/non-technical users use Blender as a glorified interactive preview tool. For example, this could be used for exploring scenes/models (e.g. architectural visualisations, camera placement for previz), playing back or interacting with rigs/physics models (e.g. demonstrating how mechanical devices function, or for fun toys like Rube Goldberg machines/Jenga games/ragdoll toys, etc.), and maybe for building up simple scenes from a library of assets (e.g. again for archviz stuff, like helping people design their kitchen/landscaping layouts by letting them add prebuilt models to the scene, and adjust basic things about their position/rotation/size and appearance - colour/materials/texture).

In other words, we are harnessing the power of Blender’s 3D tools, but exposing just the barebones stuff that a layperson could use to benefit from 3D tech. We’d be making a Sketchup-like Blender skin, and letting Blender branch out into this entrylevel “3d for everyone” market that’s receving a lot of attention nowadays.

It’s worth noting too that as such, while we may have some of the “core Blender-stuff” coming through in this setup, it’s not a priority. Second, we should not concern ourselves too much (or even to expect) that there is going to be much of an direct upgrade path from this style of working in 3D to being able to function too much in the more advanced modes. There’s still going to need to be a good bulk of deeper training that’ll need to take place in-between.

  1. Blender Simple = Tutorial Mode: A second (or maybe complementary) approach would be to have a tutorial workspace/mode, where we have some automated tutorial system integrated into Blender. Basically, to help onboard users, we would develop a series of tutorials and tutorial projects for new users to work through. The idea is that we augment the UI with guidance tips (i.e. “click this button here” or “press g” -> “move mouse to the right” -> “left click”), and a “Help! I’m lost!” button.

The focus here would be to help guide users towards developing muscle-memory/behavioural patterns for a core set of operations (core skills) for creating 3D in Blender, while helping them gain a basic understanding of where the things they care about can be found in the UI (i.e. material settings are over “there”, while vertex editing operations are over there). An example of the type of tutorial I’m talking about here would be a series of guided modelling challenges, which would help reinforce (via in-context repetition) skills for selecting, manipulating geometry, and navigating the viewport.

For reference about what I’m talking about, K-3D used to have something similar about 10 years ago. A slightly-freaky aspect of their design was that they would take control of your mouse to illustrate what you’d need to do, as they played back how an operation was performed.

Pros/Cons:

  • Pros = If done well, this may prove to be quite effective at instilling the basics in new users, and may act as a useful tool for revision/refresher learning after a break from Blender for a while
  • Pros = The community can step up to provide tutorials for this format. It also opens the way for a new type of training material that commercial activity can revolve around (e.g. CgCookie/BlenderGuru/etc. can offer training materials in this way too)
  • Cons = Requires some technical setup, especially if we go for a fancy version where users can choose their own path/skip ahead of the material, and then expect the system to recognise where they got and continue from there (Note: This is probably getting too far down the path of “Intelligent Tutoring Systems”)

Back to the original point of this thread, a few other modes/configs that could come in handy in future I guess are:

  1. VR Workspace (?) - Workspace optimised for interacting with content (creation/editing/exploration) while wearing a VR headset

  2. Video Editing Workspace - Just stating the obvious, but just mentioning it since it’s not in any of the other lists yet :slight_smile:

  3. Grease Pencil Workspace, Sculpting vs Retopo Workspaces, Texturing Workspace, etc. - Again, most of these should be pretty self explanatory

  4. Rigging vs Animation - There’s probably some value in providing separate workspaces for these. Currently, there are quite a few rigging tools which, if not around, would free up a lot of keyboard space for more useful animation-stuff. And vice-versa. (I should note too though, that there’s still some value in being able to have somewhere where you can just Rig AND Animate, to ensure that we don’t lose the ability to flexibly create stuff as demonstrated by pepeland’s demos)

(Another point I should note here, since it’s been on my general todo list/roadmap is that for rigging, we will be getting some kind of “overview” / “debugging dashboard” editor of sorts that will pool together all the relevant bits and pieces to help debug what’s going on in a rig)

Please be careful with that : I’m worried that doing a “different blender” for each part could make the “Native Blender” completely useless.

It’s not hard to add a button to a panel/menu. You can not make it much simpler. However most menus/panels use an imperative coding style to draw their content - just a list of draw calls mixed with logic. So its not possible i.e. to rearrange buttons.

Instead a more object oriented approach would probably better suit the requirements. So instead of writing a method to draw the content, the user might add elements to collections and eventually provide an update method, which is called to set properties or make other changes.

https://wiki.blender.org/index.php/User:Ideasman42/DeclarativeUIExperement

DoubleZ_: That’s a good point.

We’ll eventually have to figure out where to strike the balance between optimising for a particular workflow (and providing workspaces that do that), and retaining consistency between workspaces. Well, at least we’ll need to do that for the “official/bundled” workspaces, but hopefully the community at large can (e.g. via BlenderMarket/forums?) be able to push things further as needed :slight_smile:

That said, I think it’s still useful to explore what happens when we take some of these things to their logical extremes, even if it’s just as a thought experiment :slight_smile: I’d also note that judging from a lot of feature requests we get, that a lot of people would really appreciate if there were workspaces out there that could be used to effectively turn Blender into a “a dedicated app optimised for particular tasks”

The most effective way that is being done is with Branches. Currently.

I can’t think of any more reasons this is a bad idea other than what I have outlined in my points.

I do think it is a waste of time. And I draw on a lot of experience with this. Also experience teaching Blender to new people.

But I think there are 101 ways to accomplish the goals of this initiative that will be 101 times more effective.

An animated interface run through for example that starts from a splash screen. Unreal Engine has something like this. I have seen it in other apps as well.

Effort only needs to go into simplifying the existing interface - where practical and possible - and introducing people to the basics of Blender right off the bat.

So think about it. You post for feedback, you get feature requests and people telling you not to do it.

That is the feed back.

I think that the focus is on making something similar to this:

Are interfaces oriented to children, are interfaces and workflows very easy to use, but, easy to usenot of simple technology.
Ithink that the only hidden strategy is good, but is not enougth. To achieve the necesary easyest you need to to show and automate some features.
one simple example. big icons for changing matcaps on the main screen would be very usefull, and today are very hidden for a child to find.

Dont start with silly strawman arguments. Nothing in the proposal indicates that kind of dumming down the interface. Stripping down the interface and pasting big colorful buttons everywhere are two diffeent things. Does that sound compatible with this comment for instance? " they will be able to ‘graduate’ to the full Blender without having to relearn a new interface"

Not sure about the project, but I do appreciate it, if, in consequence, we
get more controls / options in the default blender.
(No need to care about beginners beeing overwhelmed by options)

Are there any plans to allow interactive (non-scripted) interface edting ?
so people can setup their workspaces quite quickly ?

This would also allow beginners to gradually expand their workspace set
to their needs. (Adding more options to their “dumb” default workspace while
going through the learning process)

So a few thoughts later these things came into mind:

  • you should contact schools and ask them what they want
    (also to get some vital feedback on the pedagogic side of things) as Richard said, asking
    people who do already have their feet wet in blender are definitvely not the persons you should ask.
  • Ask tutorial makers what they think is distracting from the tasks they are teaching, identify
    bottlenecks
  • Presets! presets! presets! (This helps people enormiously getting into it)
  • template based interactive wizards. The quick smoke command is a good start,
    but I do think you could expand on this: For example the whole rigging process could be
    “wizardrified.” / semi-automaticaly done.

the more you think about it, the more ambitious this project gets

I have an impression you guys are diverting from the thread point, this initiative has probably been thought through.
As far as i know branches require full-time devotion and a team for merging with master releases. A good started template could have users bringing it a step further along with occasional development maintenance.

I think templates are a good idea, giving freedom and flexibility to customize the app for a specific workflow. And Blender is capable of that, its power is in modularity and extendibility. Someone earlier described it perfectly - using Blender as a platform. If this is done correctly, it is possible there wouldn’t be much need for branching.

Not sure about game development or 3d printing, but CAD setup is definitely complex and coherent enough to form a full-featured template. Personally i’m grateful somebody from the development team finally mentioned CAD officially.

Also - a ‘simple blender’ template could be a life saver for newcomers. Personally i know a few colleagues (full grown-ups) that gave up on blender after not being able to find or select anything.

@RickyBlender - hope you don’t mind, i imported one of your notes to my list - python api is a crucial mention

Also, i added a few important features i remembered in the meantime

Nope. Software learning 101 (and use in production). This is just a bad idea. End of story.

Here is the deal. I am all for improvements that help Blender. This idea is innovative at first glance. It appears to be a good idea. All the way up to the point that you actually consider the implications of doing it. Then it is just a bad idea.

So I am not in favor of encouraging a bad idea. Something I can say for almost an absolute fact, will do the opposite of the intended goal.

So no. Sorry this thread is right on track. They should have thought about these things much more clearly. Sometimes the best thing to do is scrap a bad idea. Not just keep going because it was approved.

There are a number of things that could bring about this change that do not sacrifice the integrity of using the application.

It needs to go back to the drawing board. I have given a good starting place for improvements to the interface, splash screen, that would solve this in a much more intelligent way. Other improvements could come to the interface that would also help.

And it is probably time to ask for more input of that nature before moving ahead with this so blindly.

Please devs, read and consider my bullet points. They are clearly written and I hope they illustrate a practical view of the implications of this. Coming from a 20+ year professional and someone with experience in the field dealing with many Blender small start ups (that you are trying to target here) and teaching young people one on one, to use Blender in my small studio.

I do not speak from lack of experience here.