Resolved: Matrix operations with nodes only

Hi there,
I want to do Matrix operations with with nodes.
Anyone can show me the way?

thanks
matrix_operations.toe (3.6 KB)

The Transform CHOP in the 2019.30000 series has been upgraded to handle multiple types of data as input, including 16 channel CHOPs that are treated as matrices.

1 Like

Haven’t tried the newest fun changes in the transform CHOP yet, so not quite sure if this component I made some time ago is now obsolete - but here it is anyways! :slight_smile:

@malcolm now I’m curious, I just placed down a transform chop in the new experimental, not sure if it’s possible to do what I’m doing above, where I feed in via the inputs, the tx,ty,tz,rx,ry,rz,sx,sy,sz as well as the points to transform, px,py,pz.

I see the parameter panel called transform, where I can adjust this globally for all the samples coming in - but is it possible to make different transformations on a per sample basis now?

Looking at the node a bit more, I think it needs a bit more cleanup before it’s done, but yes, the 2nd input can be multiple samples of positions (still tx ty tz) and the first can be multiple samples of transforms.

1 Like

Thanks for clarifying! I was not able to get it to work with position samples in the second input, but reversing the order worked. Love all the other options packed into this node too.

I had a c++ chop built a while ago to do this sort of thing, comparing that, the transform chop, and the comp module I linked above I found the performance results between them a bit strange.

the transform CHOP(green) takes considerably longer than the other two options, and the COMP version sits somewhere in the middle

Is it doing any other sort of functions I can toggle off to get the performance higher? or is this just general optimizations that are yet to come? I’ve attached a project folder with the files I used for comparison, in case that helps.

MatrixTransformComparison.zip (35.1 KB)

1 Like

Simple example for matrix operation using only nodes.
(multiply and inverse)
simple_example_matrix_multiplication…toe (4.7 KB)

Actually going to rework this a bit, and the Transform CHOP is going to only work with matrices. A new Transform XYZ CHOP will be the one that works on Positions and Vectors.
Will also look into the performance differences and see what I can come up with. I did just do an overhaul on the node as part of this switchover too.

2 Likes

Hi Malcolm
I`m trying to switch my project to the latest stable version.
Not sure what you done with the transform node,
operation type disappeared ( mult\by element \ add etc )
and also its not keep same order of multiplication or is it ?
do i miss anything ?

in the experimental by default order of multiplication is
lets say:
first input is A
second input is B
order of multiplication is
BA

1 Like

Hey Barak,
Yes, we trimmed down the node a bit. The defaults are different than what they were, however if you saved an .toe file it should have loaded up with the correct order based on what you had it saved as. Do you have an example where this isn’t happening? I’ll fix that right away if so.

Hi Malcolm,
Here is one example,

the order of the matrix multiplication isn’ttest_bug_37030.toe (3.6 KB) the same.

to reproduce
open the same file both in 37030
and the latest stable.

Thanks, that bug is now fixed. Older files from 2019.30000 series will load up with correct ‘Input Operation’ selected to match previous behavior.

1 Like

Thanks,
will let you know if anything else will pop up once the build will release.

FYI Transform XYZ CHOP is available in 2020.22080 but it may not be in the docs yet.

1 Like

Nice!

Is this setup where the first input is 3 channels represent points ( p[xyz] ) and the second input is transform channels( t[xyz] r[xyz] and s[xyz] ) ?

Sorry for the delay, the Transform XYZ CHOP docs are in place now!

1 Like