I saw a thread where @rodrigo.constanzo and @tmhglnd made an abstraction for plotting a 3-dimensional dataset. I was wondering if there is someone who has made this kind of tool in SuperCollider. I think porting these tools from rodrigo’s abstraction , timo’s 3d sample scrubber to supercollider would be really great.
I skimmed the
FluidPlotter.sc file and thought it could be extended with some functionalities of
ScatterView3d.sc. So adding arguments for the
z axis, possibility for rotating the points, maybe automatically highlighting points in the 3d space to which are relatively closest to a reference plane.
I’m asking it here as I would think it could be useful to navigate a multi-dimensional corpus for example a dimension-reduction like UMAP of 13 MFCC coefficients to 3 dimensions.
I’m going to try and tackle this, but any help is gladly appreciated!
I know @tedmoore has done a load of this sort of thing, so perhaps he has some suggestions for pre-existing things.
Sadly I’m pretty useless in SC, so I don’t have much to add there.
It would be worthwhile experiment with 3d by using color (or size) for the 3rd dimension, as I’ve found that quite useful for getting a different perspective on the data. I’ve since pushed that exploration to the background, but I was quite pleased with the results I was getting with 5d representations (3d space + size/color) with the help of @balintlaczko a while back.
FluidPlotter should be able to do this for you! Check out the
pointColor_ methods, or even just the
setPoint_ methods which will let you set x, y, size, and color all at once! It’s true you may need to hand roll the scaling for the size and the scheme for your coloration.
Also, you could check out this, GitHub - tedmoore/PlotXYColor: class for easily plotting multidimensional data in 3 dimensions: x, y, color, which is actually a precursor to FluidPlotter, but has some different/more functionality. The interface for providing the data is totally different though (again, pre-FluCoMa) so you’d have to do some data wrangling.
Let me know if these ideas help!