Hi everyone,
I’m working on a TouchDesigner project where I have a row of 6 simple 2D characters standing side by side. The idea is that when a finger is detected by MediaPipe (the finger controls a vinyl record graphic), the characters should:
• “Run away” in various directions when the record approaches them,
• Bounce off each other as they flee,
• Slowly return to their starting positions when the record disappears from the screen.
Setup:
• The starting positions for the characters are stored in a DAT table.
• The vinyl record is linked to the finger tip position from MediaPipe.
• Each character has its own Constant CHOP with tx
/ty
channels, connected to a geo.
• The movement logic is implemented in an Execute DAT (Python): repulsion from the record, return-to-home force, and collision/bounce between characters.
Problems:
• Despite many attempts, the characters often don’t react to the record’s movement or don’t return to their home positions.
• The code, which updates values in Constant CHOPs, isn’t always reliable-sometimes values don’t update, or I get NoneType
errors or issues accessing DAT table cells.
• I’ve tried different force multipliers, forcing CHOPs to cook, various methods for reading DAT data, but the effect is unstable or invisible.
• I’m not using Bullet Solver anymore-this is all custom logic.
Questions:
• What’s the most robust way to implement this kind of “repulsion and return” system in TouchDesigner?
• Is there a more reliable method for dynamically controlling geo positions via CHOP/Python?
• Has anyone built a similar setup and can share their workflow or code snippets?
Any advice, examples, or links to similar projects would be greatly appreciated!
Thanks,
Adam