
Blender for Hackers – 3D modeling is just like using VIM - samtoday
https://learntemail.sam.today/blog/blender-for-hackers-3d-modeling-is-just-like-using-vim/
======
rollulus
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.

[1]: [http://www.wings3d.com/](http://www.wings3d.com/) [2]:
[https://www.cs.mtu.edu/~shene/COURSES/cs3621/NOTES/model/win...](https://www.cs.mtu.edu/~shene/COURSES/cs3621/NOTES/model/winged-e.html)

~~~
jfaucett
> Blender is a nice project

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:

1\. [http://www.blenderguru.com/articles/24-photorealistic-
blende...](http://www.blenderguru.com/articles/24-photorealistic-blender-
renders/)

2\. [http://archive.blender.org/features-
gallery/gallery/index.ht...](http://archive.blender.org/features-
gallery/gallery/index.html)

3\.
[https://www.youtube.com/watch?feature=player_embedded&v=R6Ml...](https://www.youtube.com/watch?feature=player_embedded&v=R6MlUcmOul8)

4\. [http://archive.blender.org/features-gallery/blender-open-
pro...](http://archive.blender.org/features-gallery/blender-open-
projects/index.html)

~~~
ben-schaaf
Weirdly its also the best video editor that I've used on linux. Only issues
I've ever had with it on that front is that rendering is awfully slow.

~~~
benoliver999
Haha, KDENLive has caught up with it in my opinion but yeah for years Blender
was definitely the best video editor (after some configuration).

------
rl3
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:

[https://www.factorio.com/blog/post/fff-146](https://www.factorio.com/blog/post/fff-146)

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.

~~~
wccrawford
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.

~~~
HCIdivision17
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!

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

~~~
leeoniya
on the other hand, [http://www.openscad.org/](http://www.openscad.org/) is
kinda nice...for simple things :)

~~~
bayesian_horse
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.

~~~
mikenew
Is it a public project? I would love to follow along with that.

~~~
bayesian_horse
It will be part of my "Vraag" library, which is sort of a higher-level Blender
API inspired by JQuery: [https://github.com/akloster/blender-
vraag](https://github.com/akloster/blender-vraag)

But I haven't pushed "Vraag Construct" yet. Maybe in a week or so.

~~~
bayesian_horse
I just pushed a version with the construction functionality.

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

~~~
samlittlewood
Fun fact - Sketchup has always used Ruby as it's extension language.

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

~~~
Mithaldu
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.)

~~~
Moru
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.

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

~~~
khedoros1
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.

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

~~~
d33
As for the split screen, I really enjoyed Serious Sam. You might want to check
it out ;)

~~~
gtvwill
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.

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

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

~~~
ino
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.

~~~
NTripleOne
>the biggest downside of all is being windows only.

I like how nobody ever complains about software that's OSX only, but if
something is windows only then HOLY SHIT CALL OUT THE FUCKING CAVALRY

~~~
astrodust
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.

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

------
edejong
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,

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

~~~
kleiba
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?

~~~
antientropic
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".

------
pjc50
If you'd like to do 3D modeling with actual vim, you can do it in the
venerable raytracer POVRAY:
[http://www.f-lohmueller.de/pov_tut/basic/povtuto3.htm](http://www.f-lohmueller.de/pov_tut/basic/povtuto3.htm)

~~~
fsloth
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.

~~~
aclsid
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

~~~
fsloth
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.

~~~
aclsid
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

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

[0] [http://www.freecadweb.org/](http://www.freecadweb.org/)

[1] [http://caelinux.com/CMS/](http://caelinux.com/CMS/)

~~~
semi-extrinsic
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.)

~~~
bayesian_horse
"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.

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

[1][https://www.amazon.com/Beginning-Blender-Source-Modeling-
Ani...](https://www.amazon.com/Beginning-Blender-Source-Modeling-
Animation/dp/1430231262) [2][http://www.cgmasters.net/training-dvds/master-
it/](http://www.cgmasters.net/training-dvds/master-it/)
[3][https://gist.github.com/dmsurti/aa3411a82e12aaaee564a17bb493...](https://gist.github.com/dmsurti/aa3411a82e12aaaee564a17bb493f162)
[4][http://www.isongames.com](http://www.isongames.com)

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

[https://www.youtube.com/user/MikeycalDOTcom/playlists](https://www.youtube.com/user/MikeycalDOTcom/playlists)

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

~~~
eriknstr
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.

------
ensiferum
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!
(;

~~~
nkoren
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.

~~~
JTxt
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.

------
yousry
I used Blender/Cycles also for the case to render in Game and Application
images in high quality. I wrote therefor a Python Export/Importer.

Here is an example: [https://virtual-
mannequin.eu/img/Full/AnomalyFull.jpg](https://virtual-
mannequin.eu/img/Full/AnomalyFull.jpg)

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

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

------
adam12
If you can't get used to the mouse controls you can customize them pretty
easily.

File > User Preferences > Input > then you can choose Blender, Maya, 3Dsmax

There are lots of other options on that Input dialog, too.

------
skocznymroczny
I'm still stuck on 2.49b because I can't find anything in the 2.5+ interface
:/

~~~
astrodust
Get over it. Seriously. 3D can be a shitshow of UI nonsense but the way things
got reorganized is signifiantly more coherent and understandable.

