Pangolin CHOP Update

hello! im a creative technologist working with lasers and Pangolin Beyond. i am currently working on a semi-secret project that i cant say too much about, but lets just say i have 32 lasers all being run by a touchdesigner project and i’ve run into some issues i think could have a really cool fix if anyone is willing to work with me on it!

The main thing i’ve noticed is the pangolin CHOP adds one blank point to every point inputted. if my input chop has 4096 samples, the pangolin chop automatically has 8192 samples with one blank point PER input sample. this results in a bunch of seperated points instead of drawn lines by the lasers. and since i need my points drawn in a very specific order, turning on vector frame doesnt help with this. in fact, vector frame makes it run slower and lets beyond choose when to blank, and it doesnt get rid of those double blanking points. i think there should be an integer parameter that lets me control how many blank points there are per input sample, beginning at zero. this would let me make a line without blanking into points.

i also noticed the POP input isnt exactly working great, i assume since it is so new. the colors arent read properly, and the “zone” attribute is actually only read when it is a Point attribute, not a Primitive attribute, and it doesnt output to different zones at all. it does change to different zones when using chop inputs, but not pops. the Zone parameter always overrides these channels as well. it’s kind of just messy trying to use multiple zones in touchdesigner. i think the best fix for pop/sop inputs would be a specific Pangolin POP/SOP addition if possible, this would make so many things easier.

ive also noticed the enable/disable parameters only work when they want to, becoming dangerous when only controlling lasers from touchdesigner. this forced me to use the e-stop when testing my patch in person. the Disable parameter worked more as a pulse than a toggle, that disabled them for a second then re-enabled. as a certified LSO, i think this is the most critical error with the chop, with my other concerns being more project-based than safety-based.

also, if there could be a way to output to another computer’s beyond session that could be really good, for heavy touchdesigner files its really hard to avoid lag on the same pc. i tried using touchout with just one chop but that limits me to 8192 total samples if joining all my pangolin outputs into one chop, which then limits me to 4096 when considering the automatic blanking. for 32 lasers thats 128 points per laser, not great for my applications.

thanks for your help! if you want to contact me directly to talk out these ideas and come up with reasonable solutions my email is vibraize@outlook.com

Thank you for the feedback.

For CHOP inputs, an id channel can be used to group samples into a single shape. If no id channel is included in the input, then each sample will be considered a separate shape.

For POP inputs:

  • Are you using point colors? Only point Color attributes are supported at this time, not Primitive or Vertex, though we may extend this in the future.
  • Zone is explicitly a Primitive only attribute so that’s strange that it would be functioning as a point attribute for you. Do you have an example? Zone must be of type uint or it will not work, but upon testing this today I see that the error is not correctly output to the CHOP. I’ll fix this.

ive also noticed the enable/disable parameters only work when they want to, becoming dangerous when only controlling lasers from touchdesigner. this forced me to use the e-stop when testing my patch in person. the Disable parameter worked more as a pulse than a toggle, that disabled them for a second then re-enabled. as a certified LSO, i think this is the most critical error with the chop, with my other concerns being more project-based than safety-based.

This is the Enable/Disable Laser Output pulses you’re referring to here, correct? Does disabling the Active parameter in combination with pulsing Disable Laser Output have the desired effect and keep it disabled? Those are exposed through the SDK and are supposed to directly toggle the Output button within BEYOND, and it’s the only way we expose/use that behavior, so it is concerning to me that it’s getting re-enabled. Perhaps something within BEYOND itself is immediately re-enabling it. I’ll reach out to our contact at Pangolin about this.

also, if there could be a way to output to another computer’s beyond session

Unfortunately, this is not possible because, to my knowledge, Pangolin’s BEYOND SDK uses Windows Messages, which only works between processes on a single operating system.


I am also involved in this project, Here is an example of some of the routing i’m using. the 2 chops at the top right were an earlier solution i found to create a single pangolin chop to send all 32 lasers their own unique data. I hadn’t figured out the stair step solution for the zone routing so i was using a single zone and creating a pixelmap in beyond using also to. The latest patch i am currently using involves creating a zone pattern chop that sequentially steps un from 1-32. I figured i may be able to name another one ID and see if that fixes the blanking problem. I think i may be doing it wrong. I would be willing to show you the patch we’ve been working on if you want to see the type of use case that is possible with the pangolin chop, i think its pretty remarkable and i would love to see the features become more robust and i would like to work with you to try and help improve it.

Channel names are case sensitive, so it should be id not ID, if that is indeed the intention of that channel.

1 Like