Houdini Desktops Suggestion.

   10116   10   1
User Avatar
Member
4393 posts
Joined: July 2005
Offline
<backstory>
Generally when I use Houdini I'm have two ways of working. The first is slaving away in a particular network for long periods of time. (Like modelling, or tweaking particle sim over and over and over again.) For this, normal use the Desktops are fine. I go to my network, setup my Desktop and start working.

Now the second way that I work is with a debugging mind set. (“Well poop, surface isn't rendering. Ok, jump into my VOP network, ok that looks fine, lets check my SHOPs. Hmmm that looks fine too, let me check my flags in SOPs… etc etc etc.”) Its during these times that Desktops aren't really useful. Using the current Desktop is annoying because my SOP Desktop is not really VOP friendly. So if I change to my VOP Desktop it will jump back to my previous VOP network (because that's what its panepath was set to.)

In these cases I just bite the bullet and start using Alt + and Alt + like mad.
</backstory>


<the point>
To help speed things up when debugging hip files I think it would be useful if you could have more context sensitive desktops. For example if I'm in SOPs and I hit Enter (or i) on a VOP SOP Definition Houdini would scan the current panepath see that I'm now in a VOP network and automatically switch me to my VOP Desktop and update the Desktop's panepath. So the hard part is how would Houdini know which Desktop to use?
</the point>


<random ideas>
One idea is to do something like the OPmenu file. Where you have your Table name and a string that defines which Desktop you would like to use.

Sop Build
Vop VexBuilder
Objects Animate
…..

Another idea (and the most flexible) would be to have an parameter on any node that diving inside can take you to another network. (All of Objects, Subnet SOP, Network OPs etc) The parameter would be a string parameter that would specify which desktop you want to use.

In the current Current Desktop I dive into VOPs from SOPs. Houdini takes the current panepath and checks to see if that operator has a value you set for its Desktop parm, if it does and that Desktop exists, switch to that Desktop and update panepath.

Yet another idea…
Like the one above but instead of using a normal parameter check to see if a spare parameter has been added. Also any operator can have this parameter. So say I'm in Objects and I'm laying out a scene. I select a Geo object and move it around, but then I pick one of my key lights that have the spare parameter set. As soon as I pick that light it will evaluate my desktop parameter and then switch my desktop into my Lighting Desktop.
</random ideas>


<last bit of spam>
The key thing here is making Desktop switching more automatic, what is the best way, I'm not sure….I'm just brainstorming. Is this super useful? Sometimes, it won't speed me up when I'm just working in one network for long periods of time, but it will help a lot when I'm debugging stuff….
Anyone else have comments/suggestions?
<last bit of spam>
if(coffees<2,round(float),float)
User Avatar
Member
2199 posts
Joined: July 2005
Online
Don't know about suggestions, but I totally see where you are coming from.

I like the idea that setting desktops up is context sensitive, so like you say if you go into a network via a manager you also go to a predefined desktop for that manager type. Just that one simple thing would definetely speed things up for me.
The trick is finding just the right hammer for every screw
User Avatar
Member
4140 posts
Joined: July 2005
Offline
A couple of thoughts:

One of the advantages of the desktop system is that of course you can customize to death. I never use any of the default shipping desktops, for instance, plus I rename all mine to start with numbers so they sort by a default order other than alphabetic(I've always hated that “Animate” comes before “Build” ). The notion of a “Lighting Desktop” or “Vop Shading” Desktop is purely arbitrary, so that makes it a little more difficult to associate a pane context with a desktop.

Also, there's often a big advantage to slip into a pane quickly *without* disturbing anything else - I do that a lot. I like your ideas too, though, so making this a “one or the other” option wouldn't do.

So to address those thoughts in this context, what about this:

Current behaviour remains the same, for obvious reasons. Some users like the current behaviour in some contexts.

Each Context can have a list of desktops associated with them. Manage this with a separate part of the desktop GUI. It would default to some obvious values, or nothing. A key shortcut of your choosing will auto-dive you into this desktop associated with the context you currently have active, pulling the currently focused asset in the network in as the focus.

RMB(or perhaps Shift-LMB, or any other shortcut you find) over the “dive in” button, calls up a list of desktops. This would default to the full list of defined desktops, but would be a different list you could customize(i.e. make smaller and more refined should you desire, since typically you'll not want to “dive” to get to a ROP desktop). When selected, the current dive context is used.

You'll also need some sort of auto-return button - a desktop history I guess.

I'm getting somewhat specific and detailed here - not really necessary… To summarize - some method of Meta-keying the current operations so this larger activity acts on the whole desktop, not just a pane, while the currently mechanism stays the same, for the times you like it.

Cheers,

J.C.
John Coldrick
User Avatar
Member
13286 posts
Joined: July 2005
Offline
Hi guys,

I'm also going to give this some thought - it's an interesting topic. The thing that makes me the most hesitant to switch desktops is that that when you switch panes, it's an entirely new set of panes and viewports. It's very seldom I've ever seen anyone with more than one viewer - or more than one network focused on the same context. If switching from Build to Animate attempted to preserve the current contexts it would be very much more enticing. I hate switching to a specialized Desktop to find that my viewports are focused on something else, from a new viewing angle and in shaded mode. All I wanted to do was introduce a new split in a pane which is set to be a Channel Editor - not to have all my panes point elsewhere.

What made this seem all the more awkward was I attempted to set up several facility-wide default desktops which exposed panes similar to what Maya users expect to see - ordinary viewports, Object/SOP networks and “ChannelBox” and “Outliner”. I configured the few presets - their curve editor and their shader desktop configurations. I gave it a whirl and found that everytime I switched desktops, my environments changed too much whereas Maya just performs a re-arrangement of the existing desktops.

If anyone agrees with this observation, do you think there is any way we could somehow attempt to inherit the settings of likewise panes when we switch dektops rather than instantiating an entirely new set? This should make it feel more like a rearrangement rather than a new set.

Cheers,
Jason
Jason Iversen, Technology Supervisor & R&D Lead @ WetaFX
User Avatar
Member
2199 posts
Joined: July 2005
Online
jason_iversen
I gave it a whirl and found that everytime I switched desktops, my environments changed too much whereas Maya just performs a re-arrangement of the existing desktops.


Soory I haven't used Maya and I can't follow what you mean here, how is rearranging the existing desktop different from making a new one that looks like a rearrangement? :?
The trick is finding just the right hammer for every screw
User Avatar
Member
4393 posts
Joined: July 2005
Offline
Soory I haven't used Maya and I can't follow what you mean here, how is rearranging the existing desktop different from making a new one that looks like a rearrangement? :?

Correct me if I'm wrong.

Maya's Desktop equivalent are “Saved Layouts”. Basically it does the same thing as Houdini does, bunch of preset panel configurations which you can pick from.

Best use an example to see the difference…
Houdini Desktops are kinda like folders each containing panes that know nothing of what's in the other folders.

Desktop_Root
Build
pane1 (viewer)
pane2 (network editor)
pane3 (parameters)
Animate
pane1 (channel editor)
pane2 (viewer)
pane3 (parameters)
….

So the viewer in the Build Desktop is a compeletely different viewer from the one in the Animate Desktop, different settings, different xform etc. If I was in the Build Desktop looking a torus then switch to the Animate Desktop I could be looking at a different object in the same scene.

In Maya they don't have any concept of Desktops they just have
pane1 (viewer)
pane2 (channels)
pane3 (hyper slow)
pane4 (cloutliner)
pane5 (dope sheet)
….

So in Maya when you picked a different Saved Layout it just rearranges your already existing panes. ie)
pane4 gets hidden
pane1 moves to where pane4 was
pane5 gets bigger to fill the gap where pane1 was.

So now I have a new layout but they are still the same panes as before. My viewer is still looking at the torus, etc.

Which method is better?

Personally I really like Houdini's Desktops. Its a lot more flexible, but like everything else in Houdini its also a little bit harder to use. :wink:

I think there are only two things missing from Houdini's current Desktop system.

The first is what I was rambling about in the first post, which is Context Sensitive Desktops. I jump inside a Sop network I want my SOP friendly desktop to come up. (As an option of course. )

The other thing which Jason was hinting at (I think) is that it would be really nice if there were ways to switch desktops and have the new desktop inherit some of your old desktop's settings. Like the Animate viewer would grab your Build viewer's settings. That way when I set a switch Desktops I don't have to spend 3 minutes reconfiguring everything again.

Now its time to grok JC's post. Wish me well.
Edited by - May 31, 2005 09:01:57
if(coffees<2,round(float),float)
User Avatar
Member
2199 posts
Joined: July 2005
Online
I see what you mean. You kinda need to be able to link desktops together the way you can link panes. Or maybe link panes across desktops….. just thinking aloud. Probably too confusing.
The trick is finding just the right hammer for every screw
User Avatar
Member
4393 posts
Joined: July 2005
Offline
Ack you read my post before I could do my post-coffee grammar check. I'm glad you made it through alive.

But you are right linking panes from different desktops together would be handy.
if(coffees<2,round(float),float)
User Avatar
Member
4393 posts
Joined: July 2005
Offline
JColdrick
A couple of thoughts:

I like your ideas too, though, so making this a “one or the other” option wouldn't do.

So to address those thoughts in this context, what about this:

Current behaviour remains the same, for obvious reasons. Some users like the current behaviour in some contexts.

Definitely, I really like the current behavior and don't want to change it. I just want to add some more options to make Desktops more helpful when I'm digging through N.W.N.

Each Context can have a list of desktops associated with them. Manage this with a separate part of the desktop GUI. It would default to some obvious values, or nothing. A key shortcut of your choosing will auto-dive you into this desktop associated with the context you currently have active, pulling the currently focused asset in the network in as the focus.

RMB(or perhaps Shift-LMB, or any other shortcut you find) over the “dive in” button, calls up a list of desktops. This would default to the full list of defined desktops, but would be a different list you could customize(i.e. make smaller and more refined should you desire, since typically you'll not want to “dive” to get to a ROP desktop). When selected, the current dive context is used.

I like that idea a lot. If Houdini had some sort of Relationship Editor you could add an option to link Desktops to different Networks. :roll:

I would link my DebuggingVOP Desktop to all my VOP Networks. My Lighting Desktop to all my light subnets etc.
if(coffees<2,round(float),float)
User Avatar
Member
4140 posts
Joined: July 2005
Offline
The other thing about Maya is that of course there's less stuff to manage from the start. They tend to have fewer overall contexts, and tend to stuff millions of interface buttons and menus in your face instead. They seem to accomplish this(for better or worse) by those big, overall “modules” you need to be working in(render, model, etc).

Houdini 1, Maya 0, in my books. God I hate the mess of Maya. That's me, though.

Anyway, really the core of what I was posting(and it takes a night's sleep to actually figure this out ) is that, details of implementation aside, there's so much more that can be done by adding one more layer of relationships: each of the eight contexts in Houdini(SOPs, OBJ, DOPs…oops nine I mean ) can have a desktop they “default” to. Everything else stays the same, but however you end up invoking this relationship, the current OP of that type remains in focus(key) and it will switch to that assigned desktop. And of course you need a “Back” key to get back - Houdini currently doesn't extend the browser frontend to overall desktops - I would like that myself. Basically give me those little buttons on the upper left and right of the pane bars up in the overall Houdini window.


Cheers,

J.C.
John Coldrick
User Avatar
Member
13286 posts
Joined: July 2005
Offline
I think the idea of linking panes across Desktops is exactly what would be required to solve my current frustrations with unique desktops. Instead of just 1/2/3, have 1-25 or something and then to use the current Desktop strategy you would have to assign unique ranges for each desktop.. Build1/2/3 and Animate4,5,6 and so on. I'd probably only end up with 10 or so…
Jason Iversen, Technology Supervisor & R&D Lead @ WetaFX
  • Quick Links