Hacker News new | past | comments | ask | show | jobs | submit login
Open-Source 3D Graphics Design: Where to Begin (bemyapp.com)
85 points by sf_tony on Nov 7, 2016 | hide | past | favorite | 82 comments

>If you’re sensing we don’t recommend Gimp very highly, we don’t. Gimp’s downside is difficult to discuss tactfully. Gimp suffers from forever living in the shadow of Photoshop. Gimp’s development is also closely tied to both Richard Stallman’s GNU values and the GTK+ widget toolkit. For the final time, your humble author will quit trying to rewrite this paragraph to explain what’s wrong with Gimp, and just scream “POLITICS!” and then run away. You figure it out.

Heh. Whenever you ask someone who doesn't work with image editors professionally (that doesn't mean "use it quite often", it means, having real-world deadlines depend on productivity), they'll point out how many "features" Gimp shares with Photoshop. But features don't mean shit. The interface is a bulky mess. Tons of "little" things don't quite work as expected. And then, when it comes to the truly heavy-weight features, of course Gimp doesn't compare.

Out of curiosity, I tried installing Gimp to see how much has changed (for the better?) since I last checked it out. The tool interface doesn't quite fit into its window by default so you have a tiny little scrollbar at the bottom that you have to scroll to see the full text. I resized it. After popping out a submenu, it once again didn't fit.

Free/open software projects are so idealistic, I kinda want to support it. But it's so rare that anybody in these communities gets interface design. It's not unheard of (Firefox is a positive example in my book) but it's rare. Photoshop's main advantage is it's clean interface: http://f64academy.com/wp-content/uploads/2013/06/The-Interfa...

>> It's not unheard of (Firefox is a positive example in my book)

Well, I'm not trying to say it's not without it's difficulties, but designing a browser's UI is not even just not in the same court as putting together something like Photoshop, it's not even the same sport.

Photoshop's UI/UX isn't...great, itself, I'd say.

It's far from intuitive. I use the example of Photoshop when explaining software that really learns better when you have someone over your shoulder teaching you.

I find people can't even 'get' photoshop until I sit them down, spend an hour and show them the basics of what's what. Then they can explore.

This is...technically still good UI/UX. If, for such a 'pro' level tool, after an hour or less of slight instruction, a user can find their way around, that's cool - but I think the 'de facto' standard of UI/UX these days is 'pick up and instantly understand how to use'. PS doesn't translate to that, and GIMP could fill that void, and even create a better UI/UX, if they could find some dedicated, passionate people to do it.

Lord knows I wish I had the time.

The issue with Photoshop is that the core abstractions were built in 1990, for 1990 hardware and GUI conventions (based on ideas from software for 1970s graphics workstations). Over the years, additional features (sometimes gimmicky ones designed to demo well in 5 minutes) were piled on top of this core, but nothing was ever removed.

So the end result is sort of like a junk drawer filled with weird kitchen appliances. You have your grandma’s beat-up cast iron skillet and rusty chef’s knife with some chips in the handle; these need some maintenance but are still your most flexible workhorse tools. Then you have a melon baller and potato peeler you picked up at a flea market 2000, a popcorn maker that you bought for your college dorm in 2003, a waffle iron you found abandoned when you moved into a new apartment in 2007 that makes waffles shaped like zoo animals, and just last year you were given a fancy bluetooth sous vide stick as a wedding present but the bluetooth is kind of flaky and sometimes you need to re-enter the settings 4 or 5 times before it works.

After long experience, if you put everything together you can usually make whatever meal you want, but sometimes it takes some creative license with the recipes, and folks observing the process are mystified.

Open source UI design suffers from Benders “I am going to build my own theme park with blackjack and hookers, In fact forget the park..". Everyone tries to force their own way of doing things, mostly contradicting established standards. KiCad is another good bad example.

Car analogy would be really good cheap cars you steer with foot pedals.

Yup, summed up much better than I could.

FWIW Joel's coverage of user design is a great read for things like this: http://www.joelonsoftware.com/uibook/fog0000000249.html

> Most flame wars you read about user interface issues focus on the wrong thing. Windows is better because it gives you more ways to resize the window. So what? That's missing the point. The point is, does the UI respond to the user in the way in which the user expected it to respond?

Most open source tools tend to be written by developers for developers and very rarely take into account the usage patterns of users in the domain which the tool fits. Want to know why Slack is tearing into all these areas that IRC could never get a foothold? You have the answer right there.

Yeah. Advertising budget and that fallacy where people associate cost with value.

> Blender suffers from the habit of redesigning its entire interface every other version, although it seems to have calmed down lately.

I think this is a bit misleading. The last major UI overhaul was in 2011 with blender 2.57. Since then the UI has changed very little. There have been many new features, sure, but I can't think of anything that would be exceptionally disorientating.

Recent versions of Blender have some really annoying usability issues though. For example, various panes work differently depending on whether you're using the Blender Internal engine or the Cycles rendering engine. To a new user that means you can be following a tutorial and just not have a button or an option available because you haven't swapped to the right renderer - it would make sense to group renderer specific options in a way that make it clearer why you don't have something available.

Cycles is the way to go. The legacy engine is included as a default for reasons unknown. They honestly should make it an optional plugin to avoid confusion.

Cycles is definitely the way to go for most projects. Although I've found the blender internal engine can be significantly faster for simple renders. It's nice to have for those rare occasions when cycles is overkill but you still need actual reflections or sss (ruling out OpenGL).

BI is still there because it has a wealth of functionality that Cycles doesn't yet, and because it's really fast by comparison.

You get what you pay for. A lot of times the real-time OpenGL render looks better than the legacy render.

Yeah, I know. I've seem the side-by-sides.

But if you just need a fast render...

Cycles in preview mode isn't bad, you can tune it, and it's also possible to incrementally render in real-time. It looks all dithered, but it works quite well.

Its performance will only increase as GPU acceleration options improve. CPU performance is pretty much at a dead-end now, it's barely improved in the last half decade but to slam more and more cores into the chips, while GPU performance is increasing rapidly even now.

I am missing the "3-D" in Inkscape, Gimp, and in the "honorable mentions" Paint.NET, Krita and IMagemagick ... Title: "A Guide To Open-Source 3D Graphics Design" Real title:"A LIST of open source graphical programs, some of which offer 3-D capabilities"

You need something to texture with, most 3D artists I know spend almost as much time in photoshop as they do in Max/Maya/etc.

My suggestion to the "honorable mentions" section would be Anim8or: http://www.anim8or.com/index.html#Features

It's tiny, but offers a decent amount of features for 3D modeling.

Inkscape has the 3D box tool.

And not a single mention of any of the open source CAD tools available. Pointless article.

3d ARTWORK. Not 3d work.

Do you know any artists who work in BRL-CAD?

Is anyone aware of a project that would be creating an open source alternative to SketchUp?

It's one of the two pieces of proprietary software (other being Mathematica) I rely on day-to-day life. I've even considered starting such a project, but it's near the end of my very long TODO list and I'm unlikely to have time to make it into something usable by the general public.

I really enjoy using Blender for my more art-oriented 3d needs, but I use SketchUp for more engineering oriented tasks like making drawings for my woodworking projects.

Would a full-blown CAD like SolveSpace be overkill for your uses?


discussion: https://news.ycombinator.com/item?id=12650290

Yes, it's probably overkill. What I'm after is the simplicity, even if it comes with limitations. My woodworking plans are pretty simple, and I have no need for fancy shapes or parametric stuff (I can't design more complex things than I can cut and chop with chisel and saw).

I wouldn't go designing fancy shapes for machining with SketchUp, but it's great for doing plans for simple projects.

Yep, Sketchup is excellent for planning out woodworking. It lets you figure out how everything will fit together in 3d space, and then you can just measure all your cuts in your finished design.

I really wish there was an open source alternative, or at least a linux one (Sketchup works ok in wine).

I've been really considering starting a SketchUp -style 3d drawing program project. I have a background in 3d graphics and data structures/algorithms, so it would be right down my alley. But I don't have a lot of time on my hands :(

Can you briefly outline what features of SketchUp you like best? Have you looked at FreeCAD?

I don't know if you've used it, so this may be hard to describe.

What I like the most is the simple drawing tools that have intelligent "snapping" (to axes, edges, surfaces, etc), which makes it really easy to draw things that have exact dimensions and align perfectly with all the other pieces. This coupled with the smart move/replicate tool makes it a breeze to design furniture with elaborate joinery.

I've not tried FreeCAD. It looks like it could work for my use case, although it looks much more complex and I do like the simplicity of SketchUp, even if it makes it a bit more limited tool (desinging round shapes in SketchUp is a pain, it's a very polygon-oriented tool).

I'm just a newbie when it comes to 3D modeling. I've never used SketchUp, so I don't know how they compare in complexity, but FreeCAD does have quite a wide assortment of "snapping" features:


Looks handy, I'm going to try it out!

SketchUp is so simple, I'd call it 3d drawing app, Just the pen tool and snapping is enough to get stuff done.

> Gimp’s development is also closely tied to both Richard Stallman’s GNU values and the GTK+ widget toolkit

Gimp is indeed tied to the Gimp Toolkit+, but it has almost nothing to do with GNU anymore (and it never had much of anything to do with rms, so trying to smear Gimp by association is kind of mean). In fact, the Gimp developers themselves are quite hostile to the idea of doing things like changing the language to fit GNU recommendations. When I suggested that they shouldn't refer to it as "open source", they were the ones who shouted "POLITICS", refused, and ran away.

So, if you dislike its UI, don't blame GNU or rms. Probably shouldn't even blame GTK+. Just blame Gimp.

POLITICS seems like a good file to include along with README, LICENSE, etc.

Recently, Disney/Pixar open source their USD and other tools: https://github.com/PixarAnimationStudios/USD

Very good demo Video from SigGraph 2016: https://www.youtube.com/watch?v=JmH4KYcmHOo

Pixar Courses at Khan Academy: https://www.khanacademy.org/partner-content/pixar

I think the biggest thing missing on the list is a full featured compositing package. Fortunately there's Natron:


All those "the Blender UI is awful" might be correct, I don't know because I don't have a comparison, apart of freecad, which has a possible even more awful UI. But what I love about those two projects is the UI mode where you can open a console which shows the API calls which are triggered if you make an UI action. This enables you to easily write some scripts making the UI obsolete. Of course you still have to understand the UI which sometimes needs a lot of googling.

It's true that typically "craftmanship" (I don't know a better word) software has a "terrible" UI in the sense that it doesn't follow typical (let alone platform) conventions, has bad discoverability, etc.

The issue is that these tools are used in day in and day out by a specific audience that is willing to make the investment to surpass the bad parts of the UX. It's not like a 3D artist can choose to skip using a 3d package - and in many cases the choice which one will also be dictated by external factors. Once the initial hurdles are surpassed, the UX of the tools does work well for that flow. It has to, because that's the customer base.

Basically, these tools can afford to suck in the basic UX because they can't really "bounce" users there.

I think it is reasonable to judge the merits of professional software by its usability for trained/experienced professional users. And then suddenly many UIs that might superficially appear bad become very efficient tools.

I do believe that by that metric Blender UI is not that bad.

I think there's a really interesting point brought up between Blender's UI and this 'pro' conundrum that's been going on lately.

How do we design effective UI's for 'pro' users?

At what point is an application 'pro' enough that it requires a couple hours and some video tutorials or a user's manual to actually get a sense of how the tool works, versus how much effort should be put in on the developer's part to make it 'intuitive'?

Interfaces in "pro" apps are not necessarily complicated, but there's often an impetus to expose more functionality rather than hide things because professionals are more demanding and are willing to put in the time to learn if they see some benefit.

Consider what your aspiring aviator sees: http://i.imgur.com/bRmpbjg.jpg

You can dumb that down, but you put people in danger if you do. Burying rarely used things beneath a layer of abstraction is fine in the case of consumer software, but for a pro that might be a huge hassle, or even a dangerous liability in the case of a plane. Engines don't catch on fire often, but if the controls to shut them down involve six tedious steps (Preferences, Engines, Advanced, Shut-Down, Next, Confirm) instead of one quick tug of a lever that could be disaster.

They are correct. And, at the same time, they are not.

Since most people here are programmers: some will love VI. VI has an awful interface for beginners. It's incredibly fast once you get used to it.

Since I've learned how to use both VI and Blender, I'd say that Blender is the VI for artists. The interface is great to work with, once you get past the initial steep learning curve.

The UI is for the initial learning curve. In every editor there is a expert mode. Saying that the UI is for Experts, basically equals saying it doe sent exist.

Soo... Vi has no UI?

Yes, it has a API made of Shortcuts. Nobody can learn those, without additional documentation. A good User-Interface is something that adheres to a common users expectations of the virtual world. There are people out there who never in there live opened the windows help- or any help file- and they get by, due to hard work, meaningful defaults and relentless testing against normal people.

Wait, what? Seriously, please improve your English.

>it has a API made of Shortcuts.

That... makes no sense. At all.

>A good User-Interface is something that adheres to a common users expectations of the virtual world.

So, because it has a bad UI, it had no UI? That doesn't make any sense. Just because a UI is bad doesn't mean it's nonexistant.

Only improvement I would personally want is addons being able to use PyQt and the operator options and parameters being a popup window on mouse location (or something as accessible).

Building a good 3D modeling package UI is really difficult. Just look at MAX, Maya and MODO. Blender isn't really much worse. Some consider it better.

That's also the case with Maya, it's all melscript/python under the hood.

No love for MyPaint? :( https://github.com/mypaint/mypaint

Blender: reinventing their UI wheel, never making it round.

Blender is simply bad UI-Design. It has nothing to do with a learning curve. I ve used alot of open source software, and the UI is usually the equivalent to english-aristocratic mansion, where every late addition is glued to the main house like a little bay window. And the first strange keyboard and control preferences (can we put a terminal in for that), will be forced down your throat. And i can handle this. Usually you find the configs and tailor them to something more adhering to common user-expectations. But then all the tutorials become useless for you. And that is where its over. I would really have loved this project to succeed. And in parts it has. There are awesome plugins for nearly everything. (Evolutionary Algos for Animation creation for example) But its completely disregard for UX-Standards have prevented it from making a industry-impact. A 3 year subscription to the max, is more expensive then it was 1990. http://forums.cgsociety.org/archive/index.php?t-182943.html That's how a self-inflicted defeat looks like.

I used to believe that Blender was bad UI design, but now I think it's quite good, albeit different approach.

Take this with a huge grain of salt, as 3d art is rarely my primary job function, but after I deliberately sat myself down and tried to approach Blender in the way it's intended, instead of getting frustrated by it not working the way wanted it to, I finally grokked it. Now I'm frustrated by other programs not working the way blender does.

I can't really say if that make it better or worse UI/UX, because I don't really get what most people think of as good UI/UX as being all that great. (e.g. why is the iOS back button on the top left of my screen, when every other directional notion is at the bottom?!?!)

Anyway, I like to think of Blender as a series of UI workflows wrapping some python scripts, workflows that don't assume that all things should be done via the MacBook Wheel :-)

Blender is not actually that bad. 3D modeling is just a hard job. You have to make a set of 2D tools that are fundamentally conflicted with the 3D work you're trying to do. You cannot realistically use Maya or 3DS Max in a professional setting without also learning a raft of keyboard shortcuts and non-standard UI.

I keep hearing this "Blender doesn't adhere to common UX standards", but nobody ever says which particular parts are the non-standard UI elements. They don't use a standard UI toolkit, but that's not the same thing as not using standard UI design. I look at it right now and I see: tabbed documents, buttons, sliders, textboxes, accordion panels, all in relatively easily recognizable formats.

You have to right-click instead of left-click to select things. Maybe that's a good thing. Maybe that initial, small, tiny road bump encourages people to look up tutorials instead of trying to forge ahead without any training.

But there are some things that are just not going to be easy. There is a reason why materials are separate than textures. The modifiers interface has actually been drastically cleaned up and things like particle emitters greatly simplified within even the last year. Where it has "non-standard UI elements", it's because there is no standard UI element to do the job. The shader node editor is quite intuitive, if you ask me.

So again, if you're going to complain about a specific thing, please cite specifics.

So save your money and put the effort into Blender. 3DS Max is not $5000 better than Blender.

Blender is not actually that bad.

No, Blender is not bad, it's terrible.

You need a tutorial video to understand how to close a pane, and even then it's hard. That has got nothing to do with 3D modeling being hard. It could've been a word processor and it would still be terrible.

And yes, window panes are very much a standardized UI part which has a completely non-standard interaction design in Blender. For no reason.

Edit: Before you downvote this, download Blender and try to close a pane. Just try it!

I actually love how window panes work in blender. It's a bit nonstandard, but once you get the hang of it you realize how powerful it is. It makes the entire interface customizable, and I actually miss it every time I move into another application like photoshop.

I haven't used Photoshop but applications like Visual Studio allow similar configurability while still having fairly standard window controls.

I also haven't heard the same level of complaints that Blender gets about its competition. Presumably, there's solutions.

Blender's competitors are so expensive that most people haven't tried them, and of those that have, there is a significant risk of the sunk-cost fallacy tainting their opinion.

>It could've been a word processor and it would still be terrible.

Like vim or emacs?

>window panes are very much a standardized UI part which has a completely non-standard interaction design in Blender. For no reason.

It's called "tiled window management". Lots of people find it more comfortable to use than the classic overlapping windows.

> It's called "tiled window management". Lots of people find it more comfortable to use than the classic overlapping windows.

True, but when speaking about "lots", we have to keep in mind that tiled window management for the general public died together with Windows 1.0. That probably puts the percentage of the public who's ever used tiled window management around 0.001% of the total PC using population :)

> True, but when speaking about "lots", we have to keep in mind that tiled window management for the general public died together with Windows 1.0.

And came back with Windows 8 :-)

> That probably puts the percentage of the public who's ever used tiled window management around 0.001% of the total PC using population :)

Well, the awesome success of Windows 8 kind of reinforces my point :-)

But the market share of Windows 8.1 is currently 8,40%.


Defenders of open source, rally around the OS-outcast - for he who is condemned by the public, may he be horrible and atrocious as can be, is our brethren in spirit.

You know how bad it is, if Microsoft lowest-point is your high point.

Like vim or emacs?

Yes. There's reasons the popularity of those is waning.

It's called "tiled window management". Lots of people find it more comfortable to use than the classic overlapping windows.

It's got nothing to do with tiling. There's plenty of other software out there that's meant to be used with tiled windows. The interactions in Blender are unique to Blender, non-intuitive and non-discoverable.

> There's plenty of other software out there that's meant to be used with tiled windows.

There is a tiling window manager INSIDE blender used to control its window frames. It works pretty much like any other tiling manager. You immediately grasp the idea if you've ever used one.

I use Blender on a regular basis. Not every day, but certainly a few times a month. Which is to say, not enough to be an expert that has the thing ingrained into my muscle memory. It's not that hard to use.

> Maybe that initial, small, tiny road bump encourages people to look up tutorials instead of trying to forge ahead without any training.

I believe this is what's called "user-hostile".

You're basically telling the user to RTFM, which is just going to drive away the creative people that you actually want to cultivate.

Newbie-hostile != user-hostile.

Hi, you seem to know blender quite well, I'm trying to export an fbx file into unity 3d, but when I import it, it's not the rendered model, it's just the solid view model, not animated... :/

I'm trying to import this simulation (https://www.youtube.com/watch?v=epyqHzoCxa0) without the camera view and the background image.


You'd probably have more luck asking this on blender stack exchange or blender artists. Here's what I found after a quick google search. It looks pretty similar to your question:


The fbx exporter can be tricky... Make sure you have your whole model selected before exporting and also switch from cycles rendering to Blender engine before export.

I found those two things fix missing stuff in exports of all kinds =)

Right now you can sit down in front of Maya, Houdini, or Modo and, knowing one of those packages, figure out how to navigate the UI in maybe 10 minutes. A few months ago, firing up Blender, I had to go watch some YouTube videos to figure out how the hell the UI worked.

Being different does not make it worse. You could argue that emacs ui is bad because vim user would struggle in it, or vice versa, but I think most people would agree that wouldn't make a lot of sense

Yes it does. Being different for no reason, makes it worse as in more work for no reason. Those commercial developers making every software they develop into another copy of office- do that for a reason.

If you do not develop something new, as in never done before, and you are innovative- you basically throw away user-experience, and they will hate you for that- and they got the right too.

If i would make a hidden C-Define into a compiler and forced you too use that, you would demand the compiler dev - of this UserInterface-UndefinedBehaviour to be hanged - but come a different audience, suddenly the standards can shift and dance.

If we are making programming analogues then I'd say this is more akin to hating LISP because it doesn't look like C.

If there are standard UI interactions that are used by all programs but yours, then yes, being different is worse.

For all the bad things you can say about it, IIRC the windows in Emacs (when running on X) behave like normal windows.

> If there are standard UI interactions that are used by all programs but yours, then yes, being different is worse.

I disagree. You're basically saying the current UIs are the pinnacle of UI design, just because they're popular.

Especially for software that will be used in anger day-in and day-out, it's much more important to have an efficient UI than one with discoverability or a shallow learning curve.

No, they are not. He is arguing that you throw away years of user-experience for no apparent reason. Those people don't have the luxury to retrain for a same-function-framework just because some dev can dance. They are part of a pipeline, they have work to do, and insulting them as unwilling-to-learn, is simply missing the point.

There are plenty of people who are productive using Blender, and prefer its UI. Suggesting that it should be the same as all of the other packages seems pointless. If you want software that works like all of the other packages, just use one of those.

I do. Unfortunately some tools i use, only exist in blender. So every once in a while, i have to do the dantes journey thing and venture into the ux-underworld.

I wouldnt waste so much time on this, if it werent for this wasting so much of my time.

Not sure why you're getting so many downvotes.

3D authoring software/tools is a funny business. Fundamentally developers aren't the primary users so they can't fully evaluate the effectiveness of their software. However unlike other domains like a web browser there aren't enough users for developers to get proper feedback about things like UI and workflow.

For the same reason that every year is supposedly the "year of linux on the desktop" you'll never see Blender/Gimp/etc unseat Max/Maya/Photoshop.

Not sure why you're getting so many downvotes.

Every post in this thread that is explaining why Blenders' UI is bad is being downvoted.

That's because there are some people who strongly disagree that it's simply "bad". If it was as simple as "Blender's UI is bad", then there wouldn't be so many people who absolutely love it ;)

Those strongly disagreeing people could post some strong arguments for where the UI is better then Max/Maya.

Trying to be constructive: How much work would it be to rip the current UI out of blender and replace it with one, that adheres to humanity's standards and defaults?

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