Blender is a nice project. But a 3D modeler that is a bit easier to learn, and deserves a bit more attention imo, is Wings 3D [1]. It might excite some part of the audience here that it is written in Erlang. Internally it uses the winged-edge data structure [2], something that is also worth a read if that doesn't ring a bell.
Sorry, but Blender is an amazing project. Its single-handedly the best graphics software the FOSS community has produced by a long shot, and can compete with the likes of 3DS Max and Maya which are owned by the 3D powerhouse monopoly Autodesk. For me, its up there with the likes of linux and maybe libreoffice in terms of quality alternatives for otherwise software monopolies.
Anyway, I've used Blender quite a bit for games and animation and it never ceases to impress. So their devs deserve a huge applause IMO. Also, for those of you who think I'm exaggerating about Blender's quality just check out these links:
To clarify Blender was originally a closed source private software created at Dutch studio Not a Number (NaN). Which Ton Roosendaal was software engineer at and helped create blender.
The source code was then releases by NaN under some licencing scheme. Only after a fund raising drive to buy the code for something like a few hundred thousand dollars from NaN and re-release it under an OSS licence did Blender become open source.
Its important to understand that Animation Studios hire the majority of Computer Graphics researchers, Programmers and Artists. Without the commercial Animation industry there would be a small fraction of the research and innovation that we have today. And also a fraction of the innovative open source Computer Graphics projects that we have.
Open source projects like Open SubDiv (Pixar), Ptex (Disney), Open VDM (Dreamworks), and many others are all projects that are created by Animation Studios and would not be possible without the funding and expertise that these studios have.
I'm surprised Wings 3D not only is alive, it also seems to be under active development and recognized in the 3D graphics industry! I remember it ~5 years ago, when I was working in an Erlang company. I'm pretty sure it was one man's toy back then, created to see what Erlang and functional programming can be pushed to do.
It does have a lot of missing features compared to blender, and development has been very slow since Bjorng left the project, but it is really the most intuitive modeler I know.
It does one thing and one thing well. It's still my favorite box modeling application. I can get a character modeled up 2 times as fast as Blender. I'm a big fan of Blender and use it for character animation, but my familiarity with Wing 3D goes back many many years. Back then Blender's modeling was horrible. These days Blender does everything, and most things very well!
I've always been wary about learning Blender, since historically it's been written off by large swaths of the 3D community. However, every once and a while you see some truly fantastic work created with it.
The most recent that comes to mind is the Factorio team's use of Blender:
They have a fairly complex art pipeline that relies on Blender, and they continue to use it despite having had strong sales for some time now. A vote of confidence if I ever saw one.
Historically it had a horrible interface and the devs denied that it mattered. Then they finally listened, completely revamped it, and much of the argument against Blender was instantly gone.
That isn't to say its interface is perfect. But it actually is perfectly fine now.
My experience: The original interface was something that I learned, used for a bit, then I stopped using it for a while. When I came back, I found I had to completely re-learn even the easiest bits, despite it not changing at all. This happened multiple times.
With the new interface, I learned it once and every time I've gone back, I've remembered basically everything I needed to use.
You'll find holdouts that still hate on it, but they do it blindly and often based on the old UI, instead of its current state.
I'll second that, except I liked the first interface. It was horrific to get used to, especially as there were basically no docs and I had no idea how to do this 3D stuff, but once I got used to "one hand on keyboard and one hand on mouse" it was great. And by great I mean I had fun.
Then I didn't touch it for a few years, came back, and realized I had no idea how to use it again. But this time there were docs and the interface made sense. There's a lot to even like about it now!
Haha, true fact. I felt like I wasted all my learning from the initial versions after they redesigned their UI. Never bothered to learn the new one since I ended up focusing on programming instead.
Nevertheless, Blender is a fantastic project and I remember the whole movement to make it open source felt like bringing the ring to Mordor.
Professional artists are more likely to be proficient with the commercial apps. Said pipeline might have room for simplification or optimization. There could be a lot of reasons.
In Factorio's case, they've ended up remaking a lot of their art assets to a higher standard of quality, so that would have been as good a time as any if they had wanted to switch.
Using blender is free, when people start making money they usually want to spend it. (I have no idea if there is better things that blender, I'm not an artist.)
The cost of moving to new workflows is what keeps many shops from adopting new software. And people have been burned by Autodesk (e.g. their buying and sunsetting Softimage), so if you already have a working pipeline based on a popular open source tool, it would be very unwise to switch from it just because you now have money to spend on a propriatery package.
Yes, Blender is a lot like using VIM. The hotkey chart is about ten pages long, and it's very keyboard oriented. Most modern 3D programs are more mouse-oriented, but not Blender.
At the other extreme is Autodesk Inventor. Unless you're typing in a numeric dimension, you seldom touch the keyboard.
I'm working on a replacement for OpenScad for Blender. It can already create hierarchies of parented objects, set up boolean operators and set materials. And everything "stays" Blender data, so the subcomponents can be animated/simulated as usual.
I love openscad, and you can use it to make some fairly complex things if you dig into its nooks and crannies. I love the ability to parametrically define many of the objects I'm interested in printing.
Parametric is the only way to fly when "rapid prototyping" something.
I set my object measurements to variables, then define thicknesses as variables and use math plus union() and difference() while creating modules (c functions) of the various stages that nest in each other.
It can get pretty hacky sometimes with the nested translations to center things relative to each other but it's a wicked awesome way to model.
If you like openscad, Antimony might be worth a look. I haven't tested it myself yet, but it seems to be very similar, only with a node-based interface and more visual feedback. Openscad projects can get a little hard to wrap your head around..
IMO (as an architect), Blender shines on animations and "non-euclidean shapes" but if you only want to model "euclidean shapes" use Sketchup. Sketchup is for 3D what Ruby is for programming: most 'professionals' despise it, all amateurs and the remaining 'professionals' love it.
However, if you seek the power and speed of a CLI, use Autocad, an Emacs for CAD. Scripting (traditionally) is done with AutoLisp a cousin of ELisp.
About the uncool mouse comment - I have a Logitech MX Master that I'm in love with now, which has the scroll quality of a gaming mouse without the garish looks. It's wireless (boo hiss - yes but it's rechargeable through a micro usb cable so even if you would leave it plugged in all the time it would work like a wired mouse. In practice I just leave the cable laying about and only plug it in for a few hours once every month or so) and the scroll wheel can be switched between 'discrete' and 'continuous' mode with a button just below itself. This turned out to be the greatest thing since sliced bread.
I also like the ergonomics a lot. It has a bunch of other buttons too but I never use those. If you're in the market for a new mouse, check it out.
It's also important to note that "Gamer Mouse" != "Gamer Mouse".
His picture is of a Razer mouse, which is a line of mice that are VERY light. So light in fact that for my last Razer mouse i had to rig up a system to keep the cable elevated, as the weight of the cable was bigger than the weight of the mouse, causing it to lift the mouse when the bulk of it hung off the edge of my desk. Logitech mice on the other hand tend to be really heavy and stay on the desk no matter what, but even come with extra weights if necessary. (Also to adjust balancing.)
I'd suggest to try out both types of mice if you're gonna buy one, as either will feel better to certain kind of people. (I'm fairly strong, so Logitech's heft is a must for me.)
Since my first mouse connected to a computer with a separate keyboard (an Atari Falcon) I have been using this trick:
1. Connect keyboard with cable to computer.
2. Connect mouse, make sure cable comes up close to keyboard cable.
3. Use the cable binder that came with either mouse or keyboard and twist it around both keyboard and mouse cable so the mouse has plenty of movement space but not too much so it drags the mouse down again.
This saves on wear of the cable and lowers the resistance for dragging mouse towards you and out from keyboard. Very important for your wrist and mouse arm.
I have used a gaming mouse in every computer I have worked on, company provided or not. I don't know if it looks professional or not, but after using gaming mice, going back to one of the cheap mice just feels wrong.
I ended up bringing the mouse to the office myself, and I had the same situation happen with chairs sometimes. My rationale is that I spend a lot of time sitting around so why not just get the very best I can afford?
The mouse thing has always been my biggest gripe with Blender. As someone on a laptop, I can navigate the 3D space of other modelling programs fine (most use right click or left click and drag), but Blender requires that darn middle mouse button...
Love Logitech mice for all those reasons too. I'd recommend using the feature where you can assign a button that when clicked, googles selected text, I couldn't live without that now.
I have large hands -- not exceedingly large, but I wear XL gloves. The MX Master is a bit too narrow for me. It's designed to be held between your thumb and ring/pinky fingers, with your pointer and middle fingers on the left and right buttons, and I feel cramped after using it for awhile.
I wish they made a larger size, because I really like it otherwise.
Finally an article that makes me feel confident enough to actually try using blender.
In the past I have tried a number of tutorials, but the problem was they all went way too deep in the subject matter, so I was feeling overwhelmed. This one seems to give you just enough information to get going; looks like I will give it another try.
A few years before it was open-sourced, I became interested in 3D modeling, using 3D Studio Max at school. When I looked for free-ish software, I found Blender. It had about 1/10 of the options back then, and a bunch of features were locked up behind a license key, but it was small enough to fit on a floppy. So I downloaded it at school, took it home...and was flummoxed without any access to tutorials. I got about as far as this tutorial did through experimentation.
A few years later, I picked it up again when I had a more convenient internet connection. Learning it through tutorials was a lot like learning a new programming language. Find some that cover the basic interface, then the intermediate interface, then stumble through the advanced tuts for whichever feature you think would be useful to know how to use.
It's a great piece of software, and it feels nice to use once you've developed the muscle memory. The comparison to vim is somewhat apt, but that only really hit me when someone else mentioned it in a post a few months ago.
I felt the same way. It gets you started on the fundamentals and explains it in a straightforward way.
I once finished a short course on using Autodesk Maya, but when I tried to move over to blender for personal projects, I found the change jarring, but with a start like this, I would've been more motivated to push onwards and learn the rest of Blender's functions
Find a good Youtube video tutorial for what you want to learn and follow along. I'm doing a series on character creation right now. There are probably some very good resources on Udemy and the like for a small amount of money. Once you learn the short cuts and the tools it is very easy to use, much like Photoshop.
Mmmm I have been loving learning blender over the past few years. TBH its what first got me into coding python and has also through teaching myself python from it, helped me through my first unit of python at uni. The functionality of the program astounds me... every month I learn about something new you can do with blender! You can make games with it, render 3d scenes for architectural purposes and even use it as a complex video editor/movie maker/special effects maker.
These days I have been working on a basic FPS rig with blender that I want to use for a generic 4-player split screen pc shooter...as I just really miss these style games on the PC and my tv has been a HTPC for the last 4 years and there are very few split screen shooters/fighting games available.
The Serious Sam series is essentially my go-to for PC split screen shooter at the moment, I really enjoy the old Unreal Tournament feel to the weapons and control system. That and a few emulated console titles tho is all I have really found.
This was the 'click point' that made Blender's interface finally make sense to me, back in version 2.2 or whatever it was. Since then when trying to teach Blender to friends, the first thing I say is "it's vim for polygons."
The newer and more advanced features seem to have become a lot more GUI-focused (and that GUI isn't always the most streamlined or easy to discover) but basic mesh editing is great.
Artists at my work still use 3ds max. Despite it crashing every 5 minutes, being slow, having less features, costing infinitely more, having zero support, terrible documentation, compatibility issues... I could go on. I show them blender and they immediately don't like it because the shortcuts are different.
I've read 3ds max 9 (2006) documentation.
It's the best software documentation I've read in all my life. It covers everything from basic to really advanced. I don't know how the documentation is today.
Less features? The only thing I can think of are the advanced topology surfaces that rhino has. I'd argue most people don't need or want those.
What I REALLY dislike about max is the subscription model. It encourages piracy in all but the wealthiest nations worldwide.
But the biggest downside of all is being windows only.
People love Linux, BSD and macOS/OS X in ways they've never loved Windows, that's why.
Most people tolerate Windows. Many are waiting for the day they can get rid of it completely except for this annoying list of Windows-only applications they can't live without.
Different shortcuts are a HUGE issue for me when switching between different products. It made my exodus from Eclipse and Photoshop so much harder and made me come back to both products for a few month. The frustration because of the lost productivity was just too huge.
But maybe there are shortcut profiles for Blender to match 3DS Max?
I had the same attitude coming in from Softimage but eventually had to bite the bullet because I was screwing up a lot of Blender's workflows just because I remapped a few keys to match SI. But once I'd internalized the default ones (which took a dozen hours), I never looked back.
EDIT: YMMV and it could be different for Max - I haven't used it in a long time, so I can't compare.
Ino summarized most of the points that are good about 3dsmax, but I do believe character rigging for instance, is way easier on 3dsmax. The UI is definitely superior IMHO.
But yeah, it is overpriced commercial software, so you are way better off using Blender in the long run.
Blender can be used with a two button mouse comfortably. This part is wrong.:
"Now for an important prerequisite: a mouse with an easy to use middle button."
You don't need a mouse with a middle button.
Just go to user preferences, "File" menu, "Use preferences..." item, "Input tab", set radio button "Emulate three button mouse" on, Click button "Save user settings" in the bottom.
Now alt+ left button will map to the same action as the middle button.
I started using Blender in 2000. Cheatsheets with hot-keys did not exist, tutorials could still be counted and YouTube had not been invented yet. All I got was a short introduction by Ton Roosendaal. So, you might assume I had a horrible user experience, but it was quite the opposite. Learning Blender in 2000 was like a game of discovery, randomly trying key-combinations and new techniques, followed by sharing them on IRC,
Blender has inverted left and right mouse buttons by default which I think isn't like vim but just a very bad UX decision that's not being changed now since the old user base probably adapted.
Is it possible to switch the button behavior? Certainly you can do it in the OS (mouse settings for left-handed folks), but I wonder if there is some kind of plug-in specifically for Blender?
Yes, no plugin required. In fact, because this appears to be such a showstopping issue for many users, the option is right there on the Blender splash screen: there is an "Interaction" dropdown that can be set to "3dsmax" or "Maya".
So much Vim in that the letter keys start doing random crap instead of, you know, typing?
Some bad UX decisions get baked in and you have to live with them, though the nice thing is Blender can be switched to operate in completely different flavors. There's one that matches what Maya does quite closely for those who prefer that.
Check your User Preferences options. It's extremely configurable.
Yes I would say that old users Know how to configure settings or already set them and new ones can be confused by defaults. But that's not so complex after all. I'm very grateful for such a superb software.
While POVRAY has nice features... Really, computer graphics is an ecosystem. And parts that don't really fit that ecosystem are not that helpful in the long run.
Blender's used in actual production, which means lots of tiny things that people doing production work might like to have, have been implemented there.
If one wants to code ones graphics then Blender can serve that need just fine - it has an extensive Python API. Leanrning which will serve one much better than learning the obscure POVRAY script.
Don't guide beginners to POVRAY, please. It will only hurt them in the end. This is just from an ecological perspective.
Well, it depends on what kind of beginners you are talking about. POVRAY for learning computer graphics programming is great actually. Like, learning POVRAY and then jumping ship to OpenGL code or something.
Besides, it's not like the parent post mentioned anything about beginners, just how to do stuff with vim, which matches the title of the article
I'm speaking from the point of view of opportunity costs.
For learning computer graphics programming through ray tracing something like Peter Shirleys "Raytracing in one weekend" and then onwards to Pharr, Jakob and Humphreys "Physically based rendering" would be a much better learning path. OpenGL and real time graphics are another beast entirely and to learn those well you must preferably work in the industry for a while (mainly because it's a fairly deep topic and you need professional level enthusiasm to progress much).
For hobbyist programmers Unity is a much better platform to get familiar with real time rendering than just taking the Red Book. I tried the Red Book route long time ago without much other domain understanding of computer graphics - not really the best way to move forward.
And yeah, I was familiar wirh Povray at that point and frankly - that knowledge did not help me much.
Well, my college (not a fancy one mind you) was actually using povray to get people started on opengl circa 2000. Don't know if it was the best method but it worked. As for OpenGL itself, back then the best resource I remember were the NeHe tutorials
Blender and Freecad[0] let the user interact via a python shell. I haven't tried to script Blender, with Freecad it's easy to start making things that auto-scale with a var (wall thickness for example). The two are not that comparable otherwise, Blender is light-years ahead but it's CAD roots are new-ish. CAELinux[1] has all the cool stuff bundled.
I have done some Python scripting in Blender, and it is very nice, but definitely a second-class citizen to the GUI. E.g. you have to insert window focus changes in your script (so that the right window has mouse focus) for certain commands to work. Also, the documentation is not very good IIRC. (This was about two years ago, so the latter point may have improved.)
"Operators" are a very strange thing in Blender. They serve multiple functions in a Frankenstein sort of way: UI Binding, Binding between C and Python and a framework for asynchronous tasks. I even implemented an asyncio loop in Blender using a polling operator...
When scripting from Python, you should almost always avoid operators, except if it is not possible to access this functionality (In the Video Sequence Editor ...). And of course the documentation never tells you what context you actually need. Besides having a ton of parameters in the definition, operators essentially take the entire state of the Blender process as a parameter passing mechanism.
In FreeCAD there is a clean split between UI and model. So code can just manipulate the model, without worrying about the UI. If there even is one, FreeCAD works pretty well as a plain Python library.
Not trying to compare the apps otherwise, their different focus makes them great for different things.
Note that starting with FreeCAD 0.16 one can parameterize basically anything using expressions, which binds one parameter to a mathematical expression of other parameters.
So Python optional until you want to do quite complicated things.
I learnt Blender using the following 2 resources:
1. Book: Beginning Blender [1]. Using this book I learnt enough Blender to make stand-in models and animations for prototyping my game.
2. This video resource: Mastering Blender Vol 1 & 2 [2], is a brilliant resource if anyone really wants to master the Blender fundamentals.
I am pretty sure just learning from the Blender video resource [2] will also suffice, but just listing my journey. The thing is just like Vim (as most are referring to it here) and I am a Vim user, Blender has a learning curve but sticking to it and gradually advancing to doing more complex stuff makes sense. But I don't know if this curve is true of other modeling software as well.
Plus the fact that python scripting lets you do your own stuff is even more fun. In the course of my game, and using Blender's rigify, I had more weight influences which would cause SceneKit to animate on the CPU. Just writing a simple python script [3] did the trick.
I think like other proprietary tools in the industry, which have deep roots in the asset pipelines, probably makes Blender a non-starter. But if someone is an indie developer and wants to use a 3D software; Blender is a great choice. For the game I am working on [4], even if it succeeds, we will stick to the Blender asset pipeline. In fact we have made the rigs such that it is also compatible with Unity's MecAnim.
The only downside is if you are planning to become a 3D artist, Blender may not be the right choice. Heck, even wanting to work as a 3D graphics engineer in the games/movie industry requires you have to knowledge of the proprietary tools, at least as per my current job search results. If someone has a similar experience vis a vis Blender and the 3D software engineer requirements, or even better if is part of the industry and can throw some light on this, will be great.
Overall, I believe Blender is very powerful and worth learning.
Blender is also a neat program to just create and edit videos.
I wanted to be able to put together a video, so I made an introduction for my D&D friends for our next adventure.
First time I used video or sound editing, but it worked out fine, because I found a really good instruction video series. That usually makes all the difference.
It feels like the author's claim that 3D modeling is just like using VIM could be generalized to "any application that has keyboard shortcuts can resemble VIM in that the keyboard can be used to do things in the application". It seems like there's some overlap in Blender's keyboard shortcuts and VIM's key bindings, but the bit about using a mouse seems like a pretty big departure from VIM usage.
Another kind of, sort of, similarity between vim and Blender is that vim has different editor modes (normal mode, visual mode, insert mode and so on) and Blender also has a kind of different modes (object mode, edit mode and others), though I think the modes in Blender relate more to the mouse cursor and not so much to the keyboard.
Blender is to 3D modeling what Gimp is to image editing what Darktable is to photo editing. Painful. My biggest grip with blender is the non-standard custom GUI that they just refuse to update. I know Blender predates toolkits such as GTK/Qt but seriously, they've had plenty of time to "fix this".
Bonus: Try to draw a line in GIMP (without first going to google). Have fun! (;
No. Blender's UI is initially impenetrable but once you work it out it becomes second nature. GIMP's UI is initially impenetrable and once you work it out it seems even worse than you thought.
Edit: In fact, I think GIMP and Blender have kind of opposite UI problems. GIMP tends to go along with the obvious toolkit defaults, making no concessions to usability, whereas Blender reinvents everything from scratch for efficiency, making no concessions to convention.
The analogy to VIM is, in this respect, quite a good one.
That said, Blender's GUI has been updated dramatically over the last 5 years. It is still quite painful ("discoverability" does not seem to be a concept they've become acquainted with), but in fact it's far better than it used to be. I'd made occasional attempts to acquaint myself with Blender starting in the late 90s and had invariably failed; tried again a few years ago and after a few days of pain I was being incredibly productive with it.
Discoverability? It's much better than VIM's at least.
(That used to not be the case.)
Most features can be found in Menus. Every clickable UI element has a tool tip if you hover.
With your mouse over the 3d port, hit the spacebar and fuzzy search for commands.
Most times there's a menu option there's a hotkey listed to the right... or you can right click a menu item and "Assign hot key."
You can also right click things and click "Online Documentation" for documentation on it.
Granted, I don't see an easy way to discover that "TAB" is for switching between edit and world mode when an object is selected... though you can switch modes in the "Object Mode" drop down 3d port menu. there's not a tool tip for it. ...and probably other things. It would be helpful if a better getting started guide/beginner walk through (like this introduction.) could be found in the splash screen and help menu easier.
Took me less than one minute for drawing the line:
- click on the fountain pen (stroke tool)
- make a stroke on the canvas (click once for the origin, once for the end)
- under Tool Options, click on "Stroke Path" and choose the desired thickness, then click on "Stroke"
> Try to draw a line in GIMP (without first going to google). Have fun! (;
GIMP is not a paint replacement. Since GIMP is primarily a tool for image retouching and editing, drawing a line is not it's most obvious use-case.
> Blender is to 3D modeling what Gimp is to image editing what Darktable is to photo editing. Painful.
The main UI concern they have, is that they're usually not the first software of their kind people use. Switching from photoshop to GIMP is hard and people complain about the UI, but UI-wise, switching from GIMP to photoshop is equally hard.
As someone who went from GIMP to PS (I was young and the concept of piracy scared me back then), I wouldn't say it was hard, I spent more time going "why didn't GIMP work like this..?" than "how do I do this?".
I've been considering picking up Blender for a few months and this just tipped me toward committing. As a long time vim lover, this is a great way to get people excited.
I hoped this was more about doing everything in scripting which I am trying to learn. For me, when I use the mouse, things go wrong. While in my brain I have a good spatial view, however, somehow the coordination to the (for me!) awkward 3d representation all those 3d packages have, does not work at all.
[1]: http://www.wings3d.com/ [2]: https://www.cs.mtu.edu/~shene/COURSES/cs3621/NOTES/model/win...