Trajectories & automating trip & more using fluid.plotter?

Hi there,

I’m interested by automating trip within my datasets.
Possibly using fluid.plotter for easiness.

Making the nearest neighbors number variable is interesting too: I know how to do it using fluid.kdtree~ but I’d like to

1/ is it possible to use only one plotter but with multiple cursors moving ?
(if not I already have a patch using multiple plotter (as I already need multiple players if I have multiple cursors…)

2/ what kind of messages should I send (and is it the good practice?) to my plotter to make my cursor traveling automatically using an external process ?

3/ Finding “path”
I’d like to calculate trajectories and to follow some path in the dataset.
These movements could be jumping cursor: looped sequences of dots or random. It could be continuous trajectories too. Both, easy as soon as 2/ is solved.

But I’d like to automatically calculate trajectories according to my dataset’s features.
I just mean… plotted points on my plotter.

For instance, using density of dots according to a threshold.
I’d have kind of equal density, and my cursor would follow this.
Concepts like that.

Would you suggest to calculate that using the kdtree data ?
With js ? (as it is calculated one time) and dump that into a data structure then from this calculate “some trajectories” reusable ?

I know the part 3 is not the easiest…

Any ideas would be appreciated :slight_smile:

Thanks a lot.

The plotter doesn’t really have the concept of multiple cursors because it only reports the position of your mouse in the jsui window. You can however highlight any of the valid data points in your dataset with the highlight <point1> <point2> message structure, so you can create the effect that you are asking for with this. There is no restriction on which points you highlight and how many you do in any one go.

Again the plotter doesn’t really have a concept of a cursor, it just reports the mouse position inside the jsui window. So you can emulate it by skipping the plotter altogether and just sending the coordinates you want to whatever downstream objects would receive mouse position.

Again, the plotter is incredibly generic and doesn’t restrict what you do with it or how you paint on to it. You can inject your own jsui code into the script or overlay a translucent one over the top.

Creating a trajectory however is entirely up to you, and how you represent that is bounded by what the plotter can do, such as highlighting points or changing their size and colour. Check the “advanced” tab of the help file to see what is offered. Any feature requests and I’m willing to check out a contribution and advise or work on some parts myself.

@tedmoore’s piece where he draws pathways through a UMAP project might give you some inspiration on this front!


Hi @jamesbradbury and thanks a lot for your answer. That’s totally clear.