Hacker News new | past | comments | ask | show | jobs | submit login
Live-Coding Blender with Hy (mccormick.cx)
116 points by rcarmo on July 8, 2015 | hide | past | favorite | 30 comments

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/, 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.

Can I ask what exactly do you find is a "horrible mess", and why is it bad for beginners to start with Blender? Also, when did you try it?, because it changes considerably fast (to the better).

I started learning CG with 3d Studio Max, and then with Lightwave finally followed by Blender. I haven't tried Maya, but I don't really see that much of a difference between those programs and Blender. (Sure the interface may be a bit worse because it is mostly keyboard driven, but once you get used to it it's very fast)

I know someone who started learning CG with Blender, and even tried other programs and found them worse than Blender so in my anecdotal experience it's good for beginners.

If the issue is that it lacks some features from professional programs, that shouldn't really be a problem for someone learning. If what you're arguing is that the better way to start learning is with the software that is used professionally I don't really see why that should be the case.

You're comparing some specialized packages with Blender, which is not really fair, the comparison there should be Maya vs Blender.

Zbrush for example is an amazing program, and Blender even has a similar sculpting mode although it is obviously much more limited because it's not a specialized program.

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

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!

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?

You know what? I think I damn near completely agree. And I'm a pretty big fan of Blender. I think there's still a lot of us excited by how far it has come and may not focus enough on how much more excellent it could be. Originally, Blender was almost completely unusable (save for the few who divined some of the interface philosophies). Today at least there's hope. Personally, I'm hoping for more projects like this extending Blender out and maybe bringing it a bit closer to parity with the more elegant and professional suites.

And I think way back when Blender was just getting its foothold as FOSS, there wasn't a lot of free modeling software, just very limited demos. Today, there's so much choice it's overwhelming. So thanks for the recommendations! (I just hope someone clever tries them out and works some their goodness into the Blender base :)

Add Mathematica to the list of Houdini alikes. I wonder why it is not more famous, it's such a masterpiece (a tiny bit above that old friend Maya).

"it is like linux/emacs/lisp of CG world"

Actually, Blender is like Linux of the CG world, and I agree - Blender is a horrible mess!


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.

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.

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.

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.

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.

> On almost all elements in the GUI you will see the API-path on mouseOver

This is such a great thing, I wish more apps would adopt it -- it's such a joy to use I keep looking for excuses to use it when I don't even have a need to...

And what's more, the tooltips aren't just examples, they dynamically update to be /exactly/ what you'd type into the console or a script to get that effect. Eg when you have multiple scenes, the docs for how to change scene settings will reference the actual scene you're looking at: http://shishnet.org/ufufuf/blender-tips.png

I learned a bunch of it last year and was continually amazed at how good it is and how many features it has.

Not just modelling, but compositing, animation, video editing...

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.

I didn't really 'get' the interface until I realised that Blender is to 3D modeling as vim is to text editing.

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.

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?

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




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

Here are a couple of great Blender resources.



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!)

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

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

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.

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

>Effectively Maya is a core program written in C++ that then executes ~1500 Mel scripts to implement itself. Everyone [sic] of those mel scripts is editable. Every command can be scripted. Every command goes through it's [sic] command line. You can see them being executed as you choose features in Maya. I don't know where Maya got it's [sic] inspiration but I'm guessing blender got theirs from Maya.

Sounds like Maya took inspiration from Emacs!

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

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.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact