Page 1 of 2

Visualize Expression Links

Posted: Tue Feb 19, 2019 10:08 am
by intelligent machine
I'd love to see an update the expressions field that encapsulates the parts of the expression that link to other tools and allows the user to right click and goto that tool or perform other actions relating to the referenced tool (not just parameter).

Just as an example for expression fields, here's a screenshot from Apple Numbers. Each of the colored ovals is a reference to another cell in the spreadsheet. Perhaps clicking the little arrow dropdown could reveal the selected field (as checked) and other available fields from the same tool in a submenu. If the tool reference is typed or pasted in instead of using the picker, then it should automatically be recognized as a tool reference based on a specific syntax (maybe a leading character like ':' or clicking a button next to the field that suspends tool activation mode and just allows you to select a tool in the flow as a reference to fill in the expression):

I know a long shot but would be super handy to modernize and streamline.
Image

In addition, hovering over the nodes to reveal faint dashed lines between that tool and all expression referenced tools. Another color dashed line for modifier references perhaps.

Re: Visualize Expression Links

Posted: Tue Feb 19, 2019 11:33 am
by SirEdric
intelligent machine wrote:
Tue Feb 19, 2019 10:08 am
and just allows you to select a tool in the flow as a reference to fill in the expression
Plus of course a popup list of all sensible inputs of that selected tool to choose from.
(Rather than having to type tool.Transform3DOp.Translate.X for the umpteenth time...:-))

Re: Visualize Expression Links

Posted: Tue Feb 19, 2019 11:34 am
by SirEdric
Plus modifiers as tools on the flow (like masks)!

Re: Visualize Expression Links

Posted: Tue Feb 19, 2019 12:04 pm
by intelligent machine
SirEdric wrote:
Tue Feb 19, 2019 11:34 am
Plus modifiers as tools on the flow (like masks)!
YES! Even better - and add another input type triangle that is colored black to connect in the modifiers stack.

Re: Visualize Expression Links

Posted: Tue Feb 19, 2019 12:41 pm
by Chad
I made an calculation fuse that runs in the flow. It acts just like a modifier (which is how you use it with normal tools) but it inputs and outputs numbers in the flow.

So if you set the mode to say, fmod, it would take the number input 1 and the number input 2 and output a number based on fmod(n1, n2). I paired it with number generator (which just had a slider) that output numbers and a random number generator (that had a seed slider). Between them you could do some neat stuff.

It's a stupidly simple fuse, too. You just have to know how to set it up to appear in the flow, as opposed to the modifier list.

And the cool part is, by default it is a slightly smaller tile in the flow, and if you drag the tool to the viewer, it shows you the output number. Like Eyeon was eventually going to release modifiers-in-the-flow as standard.

I shared it on here somewhere, I should probably figure out how Reactor submissions work.

Re: Visualize Expression Links

Posted: Tue Feb 19, 2019 1:52 pm
by SirEdric
Chad wrote:
Tue Feb 19, 2019 12:41 pm
I shared it on here somewhere, I should probably figure out how Reactor submissions work.
Yes, please. Shouldn't be too hard, especially for you programming guru...:-)

Re: Visualize Expression Links

Posted: Tue Feb 19, 2019 2:13 pm
by Chad
I've been on a steady stress burn for like 2 years now. Learning anything new takes serious effort now. I'm not in college anymore.

Re: Visualize Expression Links

Posted: Tue Feb 19, 2019 2:37 pm
by intelligent machine
After Chad's comment this seems like an appropriate time to introduce what I've already started working on and see if there is any interest in it whatsoever and any potential collaborators here.

I've been pondering the creation of a complete series of simple fuses that would live in a special "math" subfolder. The idea is to string out long equations in a series of nodes so that constants and variables can be piped into multiple places and the final 'result' nodes could be referenced in expressions or tunneled somehow through he comp until they are called by channel id.

The custom tool is great for all this but the tabs bug me and it's difficult to visualize the whole equation.

I've already started work on "math.Constant" and "math.RangeMapper" tools.

The Constant tool has a dropdown to select the type (Boole, Integer, Real, Vector2D, Vector3D, Matrix2D, Matrix3D, String, Color, and a few others). After selecting a type, the appropriate field for that type is displayed and all others are hidden away. What to do with the resulting value is a work in progress.

The RangeMapper has up to 5 inputs. The main input to be twiddled with along with optional inputs for constants (still need to figure out how to disable a field when it is overridden by an input). This tool will simply take the defined input low/high values and remap them to the output low/high values proportionally. Additional options may include tick boxes for clamping the lows or highs, modulo function, and a spline curve and/or gradient input for the remap. Right now it's meant to work with a single channel/value so for color work the channels would be split using a vec2reals adapter with one input and 3
or 4 outputs... which could be piped into separate operations. and combined/mixed back together later in the flow...a stripped down channel boolean tool in a way.

A time node that just passes along the time.

It would be nice to give the nodes their own look. (default color and text color to start, also size)
Such as operator nodes that are slightly larger than pipe routers. Is that possible? In the flow these tools would just contain a symbol or function name as the node name or image. In the tool panel, a dropdown to select the operator (+,-,*,/,sin, cos, tan, atan, floor, ceil, etc.)

Re: Visualize Expression Links

Posted: Tue Feb 19, 2019 9:41 pm
by SirEdric
Wow. That sounds incredibly cool indeed! Clickable math!
Maybe you should team up with @KomkomDoorn, since Raf's WIP Data tools might be utilized for something similar and/or in conjunction with what your up to....

Re: Visualize Expression Links

Posted: Wed Feb 20, 2019 3:29 am
by intelligent machine
I read that in the Krokodove 8 alpha description but alas I don't have a single computer with Windows... :(

Image

Re: Visualize Expression Links

Posted: Wed Feb 20, 2019 10:47 am
by Chad
The existing "flow modifiers" that were in Fusion 6+ were between a piperouter and standard tool size.
Modifier.png

Re: Visualize Expression Links

Posted: Thu Feb 21, 2019 9:53 pm
by SecondMan
intelligent machine wrote:
Tue Feb 19, 2019 2:37 pm
After Chad's comment this seems like an appropriate time to introduce what I've already started working on and see if there is any interest in it whatsoever and any potential collaborators here.
Absolutely! I think it is a terrific idea and I for one will help out when and where I can. Aeons ago we started the Fuse Box which was meant to serve initiatives exactly like yours.

The other day I was thinking of relocating the posts inside Fuse Box to the Scripting forum and just closing the thing down but your post has made me reconsider :)

Sweet! :cheer:

Re: Visualize Expression Links

Posted: Thu Feb 21, 2019 10:00 pm
by intelligent machine
Sounds good. Is there a way to grant multiple users to edit a single post in the fuse box? If not, then enable bbcode [gspread] to embed a google spreadsheet?

Re: Visualize Expression Links

Posted: Thu Feb 21, 2019 11:30 pm
by SecondMan
Maybe... What is it that you would suggest we do?

Google Sheets embedding is already supported on WSL without the need for a bbcode, just like Youtube and Vimeo and a host of other things. Nobody has used it so far but I thought it might come in handy one day :)

Re: Visualize Expression Links

Posted: Fri Feb 22, 2019 6:18 am
by intelligent machine
I wanted to embed a spreadsheet in the first post and grant anyone access to keep track of tasks and paste URI's to specific posts in the thread.
I task list and thread index in one.