bitfocus / companion-module-requests

Repository for tracking module requests
96 stars 10 forks source link

PosiStageNet (PSN) #991

Open gotfox opened 1 year ago

gotfox commented 1 year ago

PSN is an open protocol for 3D positional data utilized in the entertainment industry for lighting tracking, projection mapping, and automation feedback.

Since this is a data stream, this would be purely for feedback purposes. I'm looking to monitor the PSN data to know when specific IDs are being used and their values as an overview of my equipment so I can see when something is in use and if it's in the correct position without having to be in front of a control surface.

https://posistage.net https://github.com/vyv - has python and c++ repositories https://github.com/vyv/psn-cpp/blob/master/doc/PosiStageNetprotocol_v2.03_2019_09_09.pdf

who2us commented 1 year ago

I don't think it's as widespread as you think, since the rise of visualizers (and freeware like UE5 having Dmx built-in). I do believe that this has been superseded by the GDTF format anyway which integrates better with manufacturers and visualizers alike. and with the open support of the community being able to submit their own fixture files, it's much easier to grow the format. but hey power to ya.

gotfox commented 1 year ago

PSN is completely different than DMX and nothing like GDTF.

PSN is utilized by TAIT Navigator, VYV Photon/Albion/Xenon, MA Lighting, and numerous others for position data of an object (set piece, performer, winch, lift, etc.) in 3D space (X, Y, Z, X rotation, Y rotation, Z rotation, etc.). It is not a control protocol, just a multicast data stream.

willosof commented 1 year ago

I've done some work there previously. Let me think about it, and do some digging in old code ;) you'd only want to monitor the values? A specific value or all values into companion variables? Venues with PSN often has ALOT of values.

gotfox commented 1 year ago

I guess there would be a need to filter a varying set of IDs out of the multicast traffic and then select which subset of values (X, Y, Z, X rot, Y rot, Z rot, etc.) for that ID to monitor.

gotfox commented 1 year ago

@willosof Any further thoughts on a module for this?

willosof commented 1 year ago

Hi! I have zero capacity to spare these days 🥵

gotfox commented 1 year ago

I feel you on that. I'm not great at coding from scratch but if you have any bits you want to throw at me, I'd be happy to try and run with it.

Stay well.