
Live-Coding Blender with Hy - rcarmo
http://mccormick.cx/news/entries/live-coding-blender-with-hy
======
huuu
Imho Blender is one of the best examples of good software. On almost all
elements in the GUI you will see the API-path on mouseOver so it's very easy
to discover the possibilities.

The separation between the view and logic is great. So you can also run
Blender command line only and everything is still working. Trow a script at it
and you can do whatever you like.

This video is another great example of it's power.

~~~
HCIdivision17
And it is fascinating to see how it has evolved to become this. When it was
first created as an in-house tool at NaN, the interface was just about the
opposite. After a hundred hours of use, the 'one hand on keyboard, one on
mouse' philosophy started to make sense, but the shortcuts and keys still
seemed arbitrary; you just sorta memorized the whole interface. Heck, just
discovering how to add a cube was sort of a personal coup for early-high
school me since I had never used any real 3d modeling anything before.

But it was functional, and had some really great ideas, and it was free (which
I needed on my nonexistent allowance)! I just assumed that the real cost was
just a brutal learning curve. Then the really cool open source movement
started for it when NaN went under, and people spent the next decade working
to make it better.

It's always been a program for enthusiasts and passionate people, and it
really shows. After half a decade I went back to it and was dismayed to
realize I had no idea how to use it any more. And then 15 minutes later I was
right at home. The learning curve's still there, but there are guideposts
_everywhere_ in the application, and the documentation exists! That you can
throw Hy on top of it and live code it is just one more spiffy example of it
working as intended. I would go so far to say that it's a core idea, since the
blending engine made so many cool things easy (and possible) way back when it
had an inscrutable interface.

TL;DR: I agree wholeheartedly.

~~~
tiplus
Don't forget about the fantastic cuda/opencl cycles rendering engine. The
progress Blender has made in terms of scriptable photorealistic rendering is
just insane.

------
rayalez
Hy Lisp is a really awesome and exciting project. And programming 3D stuff in
it is really cool. Huge props to the author for a fun video.

But I'll go against other commenters here who are saying that blender is an
amazing piece of software. For a long time I was really passionate about CG,
and even worked as a 3D artist in a few stuidos, and guys, if you want to
start learning 3D - do not start with blender.

If you want to get into modelling - check out Nevercenter Silo, it is the most
convenient 3D modelling tool you'll ever use, it is amazing.

If you want to understand the basics of all the CG, and learn how professional
VFX are done - learn Maya, it is used for everytning, and is the absolutely
best way to get started with 3D, once you understand it - you can do whatever
you want and easily switch to any other app if you wish. It is the industry
standard, and the best way to learn the foundations.

If you want to see how the _perfect_ CG software looks like - check out sidefx
Houdini. It will blow your mind, it is like linux/emacs/lisp of CG world. It
is elegant and brilliant and perfect in every way(except that you can't really
model in it, that's why you need Silo).

Also take a look at Zbrush, it is a sculpting software, looks alien but is
really brilliantly done. You can look at the gallery here -
[http://pixologic.com/zbrush/gallery/](http://pixologic.com/zbrush/gallery/),
it's amazing. If you have a tablet and some solid drawing skills - you can
start creating amazing things in it really quickly.

If you want to try compositing - use Nuke from The Foundry.

All these packages have free trial versions. Silo is cheap, Hoidini has an
apprentice version that you can use for free, indefinitely, with no
limitations except for output resolution(and maybe a small watermark, I don't
remember).

Compared to these packages - blender is a horrible mess. It is worse than what
gimp is compared to photoshop. Just like gimp, theoretically you can use it,
and even make some good things with it, but you really, _really_ don't want
to.

Maybe it's a gem of open source software, and I respect that. But if you are
getting into computer graphics and want to learn and understand how it works -
hell no, use something else.

~~~
brachi
> Compared to these packages - blender is a horrible mess

Which version of blender you are referring to? pre 2.5? I get the feeling that
most people got a bad impression in 2.49 and below and never came back. The UI
improved a lot since then (there was actually a full rewrite of the UI code,
all in Python). The UI discussion is always controversial in the blender
community, though.

~~~
geoka9
That's right, Blender has made a lot of strides in recent years. I was a
Blender sceptic, having tried it many years ago. But recently I tried it again
and had my socks blown off! I've since started using Blender exclusively for
all my modeling/rendering needs (I don't do animation, so I can't vouch for
it), whereas before I had to rely on several packages (e.g. Softimage for hard
surface/ZBrush for organic) and never looked back.

If you only know Blender through its older versions, I highly recommend taking
another look and even doing some tutorials - it's become an amazing piece of
software!

~~~
krick
I know that Blender is great, but does it _really_ replace ZBrush? I've used
it only for the tasks you would normally use 3dMax for or something like that,
but ZBrush is quite specific. Is it actually possible to efficiently emulate
ZBrush workflow in Blender?

~~~
jplur
yes, it is:
[http://blendernews.org/xe/Feature_Articles/8524](http://blendernews.org/xe/Feature_Articles/8524)

------
chr15m
[https://github.com/chr15m/blender-hylang-live-
code](https://github.com/chr15m/blender-hylang-live-code)

load average: 0.58, 0.25, 0.14

In the event my little server goes down when the USA wakes up, you can see the
same video on the GitHub link above, and here is the text of the blog post:

"Hy is a Clojure-like LISP that compiles to Python bytecode. Blender is a
popular Free and Open Source 3d modelling program. This is a little livecoding
experiment I put together with the two of them."

Thanks for your interest.

------
imaginenore
Blender is fucking amazing. I recently rediscovered it.

You probably know it as a 3D editor / renderer. What it actually is is a fully
programmable environment. You can program EVERYTHING in Blender. You can run
it in a command-line mode, while still being able to program everything.

Give it a try. A new version just came out a couple of days ago.

~~~
greggman
Not to discredit Blender but FYI, Maya has been a programmable environment
since it came out. Effectively Maya is a core program written in C++ that then
executes ~1500 Mel scripts to implement itself. Everyone of those mel scripts
is editable. Every command can be scripted. Every command goes through it's
command line. You can see them being executed as you choose features in Maya.

I don't know where Maya got it's inspiration but I'm guessing blender got
theirs from Maya. Maya is still heads and tails beyond blender AFAICT.

PS: Just tried the latest version of blender yesterday. All I wanted to do was
make a cube, scale it to the shape of cereal box, apply the transformation,
then texture the 6 sides. It took > 1hr to figure out how to move UVs. The
supposed keys listed in whatever 6 tutorials I found didn't work.

I don't believe it's that unintuitive in pretty much __any other modeling
package __. In most you just pick some vertices and a gizmo shows up letting
you manipulate the vertices. That 's true in 15+ other modeling packages I've
used. Using Blender feels like using some 1980s modal modeling package. It
would be nice if they graduated to the mid 90s at least yet it's 2015

~~~
boomlinde
I suppose they both owe their inspiration to AutoCAD, which has been using
AutoLISP well since the 80s.

~~~
greggman
I don't know autocad well. What distinguished Maya is that the app is made
from scripts. There's lots of apps that have a scripting language but usually
it's tacked on for user scripting. It's not there to implement the actual app.
Example 3DSMax you can turn off the scripting it will still run just fine.
Maya doesn't function without scripts. It IS scripts.

------
baxter001
I've always wanted to see blender's 'ghost' ui code broken out to a separate
project, its very opinionated views on layout setup and surfacing underlying
api bindings through the gui would make an amazing 'control panel' framework.

------
anirudh24seven
I had an urge today morning to try my hands at 3D modeling and rediscovered
Blender and began using it just today. Quite a coincidence that HN front page
has a post on Blender.

I've got a huge learning curve ahead of me, though.

~~~
onion2k
A word of advice: I found Blender _really_ hard to understand (I think they
based it on GIMP :).) Something that helped a lot was figuring out how 3D
graphics work first. Specifically vertices, faces, and meshes, then coordinate
systems, vectors, and transforms, then lighting and cameras, and lastly
textures and UV coordinates. I did that using three.js to display things in a
browser with a bit of javascript. Once I'd figured that out and had a much
better understanding of what 3D engines actually do I found it a lot easier to
work out how Blender lets you control those things in it's interface.

~~~
giftedmunchkin
I'd really love to play around with three.js to pick up some of these ideas.
Any suggestions on the best way to approach teaching myself those concepts?

~~~
onion2k
I tend to learn best by example, so I learnt from;

[https://stemkoski.github.io/Three.js/](https://stemkoski.github.io/Three.js/)

[http://learningthreejs.com/](http://learningthreejs.com/)

[https://aerotwist.com/tutorials/getting-started-with-
three-j...](https://aerotwist.com/tutorials/getting-started-with-three-js/)

There are a few books about WebGL but the tech moves so fast they're largely
out of date already. There's a tutorial series on Youtube too if that's your
thing -
[https://www.youtube.com/watch?v=9fg93FzfamU&list=PLOGomoq5sD...](https://www.youtube.com/watch?v=9fg93FzfamU&list=PLOGomoq5sDLutXOHLlESKG2j9CCnCwVqg)

------
madhouse
You know what would be amazing? Combining this with logic programming.

(run 100 [box] (fresh [x y z] (randomo x) (randomo y) (randomo z) (locationo
box x y z)))

(Overly simplified and terrible DSL for it, but you get the idea!)

------
prahv
You should check out livecoding.tv for all your livecoding needs. They have a
pretty cool system!

------
agumonkey
hehe, a lisp in a 3d package,
[https://en.wikipedia.org/wiki/AutoLISP](https://en.wikipedia.org/wiki/AutoLISP)
(albeit with a paradigm shift)

