Magmaflow wish

I wonder if we need a dedicated Magmaflow forum for things that are now cross-product…

It would be nice if, when you drag out the output of a Logic operator and create a new Logic operator, it connected to the boolean input preferentially. I notice it when dragging out a Switch. The Logic operator connects to the True branch instead of the boolean.

Nitpicky, I know.

I have used the logic ops more than I ever have in the last week and I noticed this too… Chad you are so nitpicky :smiley:

Not nitpicky at all.
In fact I had it “fixed” internally but it broke other things.
Will revisit it when I have the chance, it drives me crazy too.

EDIT: I fixed it for the special case of dragging a connection from a Boolean and selecting Logic>Switch from the menu.
Have not fixed it yet for general keyboard shortcut creation.

Ok, great. I only use keyboard inputs sporatically. Like I do ctrl+o for output, but almost everything else I do with dragging an input or output. I should use the keyboard more, I just don’t.

I’m with you on that one Chad. I spend 98% of my time dragging an input/output off a node and then selecting from the list. Keyboard shortcuts just don’t seem to stick in my brain unless they are crtl+c and friends.

In my case it’s Ctrl+O and work backwards from there. It’s the complete opposite of how I work in almost every other node-based UI. Like in compositing you usually dump in your clips and work toward a viable output, but with magmaflow, I’m usually thinking “I need a mapping channel, and it’ll probably be switching between two options, one based on…”

Do most people find themselves working backwards in MagmaFlow (be it ember, genome or kcm) by starting with outputs and working backwards towards selecting the necessary inputs?

I started intuitively on the left with inputs when I was doing some initial Ember testing and I generally think that way. I am curious how others grok the magma flow.

I and every compositor I know start from left to bottom right or left to right and start at beginning and end at the finished result…

Yeah, but I don’t see it as a compositing operation. With compositing, you have a bunch of known inputs and you work those into the result as needed. With magmaflow, you don’t have any specific inputs that you need, you’re just trying to replace/add an output. So you are more likely, when opening magmaflow, to know “I want to modify the position” or “I want to generate emission data” or “I want to jitter then normals”. How you get there is the part you need need to drag out new nodes for.

Also consider that with something like Fusion, you can view any of the nodes in any viewer at any time. With Nuke or Magmaflow, you have an output that you view. Without that output, nothing gets evaluated, and you can’t see anything interactively or run the debug. It’s actually something we’re dealing with our SR implementation for Fusion. We won’t have “Input:Channel” or “Output:Channel” because every tool in the flow needs to be able to evaluate a result in the viewer. Even if the particle stream at that point in the flow doesn’t have position! :slight_smile: For consistency, we’re offering a compositing workflow where you modify some data channel then “composite” it back into a larger channel set of a particle stream using a replace or blend or min/max or whatever.

Now if I was really picky, I’d ask that we get an option for something like a Darktree layout where the outputs were centered on the left. Really though, there isn’t anything that needs to be done, it’s just a matter of how we think about the process in our heads.

Left to right

Although I did try working backwards, from output to input and it is wicked fast if you are building something you are familiar with.

I kinda bumble with the keyboard shortcuts, I only really use the ones on the left side, I think most people are this way judging by how I have seen other people work. They are setup up pretty well and I can guess my way through the left hand only shortcuts surprisingly well. If I am going to type I really like things like ActiveType by Jeff Lim, Houdini’s and TP’s text input.

With the exception of typing, scripting, ect. I have most production/work/fun things setup for the left side of my keyboard, I rarely use the right side of my keyboard with the exception of the numPad. If my keyboard had a numPad and a backspace key on the left I would never leave my mouse or put down my stylus.

Hmmm… Yeah, why isn’t the numberpad on the other side? Is left handed numerical input really that much slower to justify having to leave your mouse?

Of course, getting a separate USB numberpad would be ideal, but then you’d also want your keyboard to not have a numberpad at all.

I will try out your theory on the left handed inputs though. I wonder if I am biased on my hotkey usage by this…

Every single node in Magma is accessible via the main (mostly left) part of the keyboard, but it requires two keypresses instead of one.
That’s why the basic math operations are on the numeric keypad - for speed. But you are still free to press A (for Arithmetic) and D for “Add”, A>T for “Subtract”, A>U for “Multiply” or A>I for “Divide”. Or just hit A to open the Arithmetic menu and use the mouse hand to pick with the mouse.

Since Genome, some input channels allow for 3 or 4 clicks, for example I>C>M>2 creates Input>Channel>Mapping>Mapping2.
I could add ActiveType support, but then you would have to type in 8 characters for “Mapping2” to get to the same place, and there would still be “Mapping20” in the way…

I personally tend to work right to left, Output to Inputs, like Chad described it.

Bobo your shortcuts are very well thought out, in fact the whole UI is very pleasant to work with. There are secret shortcuts everywhere, well they’re not really secret, there are just so many, you always find something new.

In magma, for instance, I always initiate the Arithmetic menu with ‘A’ then end up choosing via mouse. Also, it makes no sense letter wise, but I would rather have ‘S’ for Inputs and not system as it is not used nearly as much and ‘D’ for Objects as a/s/d are easy to hit as well as the biggest/most used menus. The rest are close F/Functions and V/Vectors.

In the case of Create Inputs Channel Node+Channel it is way easy to:
hit D+C mouse-over-click to select channel - left hand keyboard only + right hand mouse.
than to:
hit I+C that is right hand keyboard + left hand keyboard + C + then right hand mouse-over-click to select channel
or:
right-click + mouse-over-click Create Nodes + mouse-over Input + C + mouse-over-click to select channel
or:
tilde + mouse-over Input + C + mouse-over-click to select channel

All stuff you talked about in your power of Krakatoa + Magmaflow webinar :slight_smile:

Chad, hmm, yeah so you would select the stream and see the nodes listed in an order of ascension through the flow and not by there number, so instead of selecting a dozen nodes you simply hit the input or the output. It is very functional the way it is, that would just be a faster thing.

For KMX3 or even earlier, I might make the category keys customizable, so you could set S instead of I. The result will shift the second letter of InputScript to something else though, since we cannot duplicate letters in a node’s access sequence.

The reason for the current letters is obviously the naming of the categories (with the exception of Trigonometry where R is the key). Also it makes the documentation and tutorials easier to write if everybody is using the same layout. But I guess some advanced customization won’t hurt if it makes you faster.

I be totally down with the custom catergory shortcut :slight_smile:

The more I keep my hands where they are the more efficient I work and that would help

More Magmaflow wishes…

Could we get a timer for the Debug window? So I’m thinking you set it to evaluate 1000 samples, hit Update, and it shows somewhere in the window how many milliseconds it took to evaluate. This way we can very easily benchmark our flows and blops to get the best performance.

Logged.
I suspect I will add this in the next few days. Thanks!

Don’t know if I’ve expressed these wishes before or not, but for Blops, I would really like some changes to the UI to facilitate sharing of Blops.

  1. Allow us to expose controls not to the modifier panel, but to the Blop itself. If my Blop has a bunch of toggles or spinners, I want the user of the Blop to notice them right away, not have to find them in the modifier panel. I think the end user should then have the option of exposing THOSE controls to the modifier panel, just as they would any other operator.

  2. Move the socket input/output controls to the Blop editor. Three reasons, really, the main one being that I don’t want users adding/removing inputs/outputs to a Blop UNLESS they are editing the Blop itself. Otherwise, what’s the point? The other one is that it’s too cluttered and takes up too much of the panel space, and if we’re moving exposed controls there, as per the wish above, then we need this room. Lastly, when making a Blop, I want to be able to add inputs/outputs without having to exit the Blop editor.

  3. Blop name and notes. Right now we can pre-set the User Notes, but I’d rather those be reserved for the User, not the Blop Author. Not a major thing at all, of course, but I find myself having to explain the Blop controls using the Notes. With the name, the Blop comes with the name of the file, but the user can rename the Blop so it gets confusing to know what the Blop is (or at least was).

Seems like I had 4 things, but one of them must have slipped my mind.

Great suggestions.
1.Exposing the controls in the BLOP’s own UI should be relatively easy to do. Will explore.
2.Moving the defining of Inputs and Outputs into the Editor - should be possible. Not sure I want to remove the top-level controls, but you might have a point…
3.I understood the problem, but not the proposed solution. Was there any?

Defaults for Input sockets? :wink:

4, that would be cool, yes. But I wonder, if you undocked the Input Sockets from the left side and had that “node” just floating, we could connect up the defaults in the Blop itself.

For 3, I guess I was just thinking there would be a non-editable (from outside the Blop) text that would show the name/notes on the Blop. Maybe a help link if one was provided.

Speaking of help links, is there a way to have F1 send you to the Thinkbox documentation page? F1 in 3ds max is spotty at best, it works for Track View, but not Particle View, etc., so I don’t know how many people hit it looking for help, but I always try it to see if I get lucky. If it is possible, then maybe you could also check to see what operator the mouse is over and go to that exact part of the docs? And of course for Blops, if they provided their own URL, go there?