jit.phys.body @shape dynamicmesh? [titled edited]

brendan mccloskey's icon

Hallo fellow Maxers - it's been a while,
I have a fairly simple conceptual question relating to a fairly complex Jitter environment I'm working on at the moment. I am currently developing an interactive synthesizer (for disabled musicians) which is set up as follows: Leap Motion (OSC hand/finger tracking) --> multiple [jit.gl.nurbs], one discrete nurbs instance for each of wrist and 5 fingers (thanks Luke W). Hand and finger motion distorts the centre of each of the 9x9 nurbs meshes (I'll link to two short video demos below).

In another patch (thanks to Rob R), I'm using [jit.phys.multiple] to create a virtual world of multiple balls resting on a movable platform (whose Y axis movement agitates the balls); each ball's amplitude is mapped to [oscbank~]. I'm sure you've all seen his tutorial.

The concept is to replace the single moveable floor with the gl.nurbs meshes, such that the user can agitate the balls using their hand and fingers. Which raises the question, can I assign virtual physical properties of mass and restitution to the [jit.gl.nurbs] mesh? I'm guessing No, so my final question is: is there a virtual mesh 'object' in the jit.phys environment?

[jit.phys.multiple] to [oscbank~] example
https://www.youtube.com/watch?v=Cj0BjRkE8wQ

Many thanks
Brendan

brendan mccloskey's icon

. . . I guess I'm looking for a deformable jit.phys.body.

brendan mccloskey's icon

hmmm, [jit.phys.body @shape dynamicmesh], never did grasp matrices, now searching for a tutorial. . .

Rob Ramirez's icon

example patch to search for is phys.body.dynamicmesh.maxpat

brendan mccloskey's icon

Thanks Rob, I've looked at the example, tinkered with it (crashed Max a few times), and I'm afraid I have to ask for further guidance. I would like to distort the mesh at specific coordinates and I can't get my head round how the matrix noise is working - Jitter matrices are like magic to me. I would like to specify (fixed) X and Z coords and vary the Y amplitude, within that dynamic mesh (as if placing a hand below a plane or blanket. Attaching an image, because my 180 days just expired ;)

michelez's icon

Have you considered using jit.phys.multiple to create a ctlmatrix? I am not sure this is what you are looking for but recently I used nubrs to create a plane that could be deformed by objects hitting on it, see image

michelez's icon

The important attribute here is the @contraint point2point to make the nurb plane move as one thing...

brendan mccloskey's icon

Hi
thanks for the suggestion Michelez. My main issue is a cognitive one - in the two video examples above, I kinda of understand how/why they work, but the screenshot above, no idea. I can't 'visualise' what is happening, so I can't adapt it for my specific needs. I understand that the voronoi noise is displacing multiple points on the jit.phys.body dynamicmesh (via the jit.op @op + object) but I can't grasp what the jit.matrix is outputting and how it's affecting the jit.phys.body. I'll admit to being a complete Jitter newb.

Distorting a nurbs mesh sounds appealing, do you have an example patch I could hack?

Thanks
Brendan

MakePatchesNotWar's icon

Maybe this helps?

Luvlongtime!

Max Patch
Copy patch and select New From Clipboard in Max.

brendan mccloskey's icon

Dude!

I've only glanced at this, but it looks very promising and hackable. Love you long time, indeed.

And thank you Rob, Michelez too.

If my previous form is anything to go by, I will disappear for a week, and then return with another unsolvable newb-based issue ;)

Brendan

MakePatchesNotWar's icon

Glad it's useful. Wasn't too sure about it first and although it's been a while if you have any questions feel free to ask.

brendan mccloskey's icon

;)

The challenge I'm struggling with atm is working out how to distort the dynamic mesh plane at a specific point, and not randomly via the bfg noise matrix. The control source will be a single stream of Y axis data from Leap finger point(s).

MakePatchesNotWar's icon

Definitely not a good solution (can be done entirely in gen as well for example) but just to show how you could selectively distort it.

Luvulongtime!

Max Patch
Copy patch and select New From Clipboard in Max.