Pressure Project 2 – A Mystery is Revealed

My original intention in creating this project was to develop an interactive visual experience that allows users to control flames with their hands. I drew inspiration from K/DA’s new song “Firestarter,” particularly the song’s energetic vibe and its flame-related visual effects. I wanted to create a sensation of manipulating flames or magical energy—not through a keyboard or mouse, but by interacting directly with hand gestures.

I first used MediaPipe to track the position of my hands via the camera, then wrote Python code in a Script CHOP to recognize different gestures. For example, making a fist makes the flames disappear, and clapping changes the color of the flames. I also designed a new gesture: when one hand is raised and the other is lowered, the flame transforms into a fireball. I used the Sphere SOP and Switch SOP to change the shape of the flame emitter, and then used the Transform SOP to make the fireball follow the position between my hands. At first, the fireball’s movement was very erratic, so I later added a Lag CHOP to smooth out the tracking data.

The flame itself was created using NVIDIA Flow. I adjusted parameters such as speed, smoke, temperature, and fuel in the NV Flow Emitter to achieve the effect I was looking for. I also used the HSV Adjust TOP to change the flame’s color. Rather than a completely realistic flame, I wanted it to have a colorful, energetic visual effect, since my inspiration came from musical performances.

Another part of the project was creating a transformation effect. When the user holds both hands open for five seconds, a countdown starts, and the screen eventually changes into a thermal-camera-style view. I used Timer CHOP to control the timing and Python to make sure the interaction only triggers once. For the thermal effect, I combined Monochrome TOP, Lookup TOP, Ramp TOP, and Edge TOP, and used Switch TOP to change between the regular camera view and the thermal visualization. I also added music and fire sound effects using Audio File In CHOP and Audio Device Out CHOP.

One of the biggest challenges was getting all the gestures to work consistently. Sometimes MediaPipe would incorrectly detect a hand movement, which caused the timers to restart or the fireball to jump around. I spent quite a lot of time adjusting the Python code and the tracking settings to make everything work together.

Overall, I had a lot of fun experimenting with this project. I especially liked seeing how a simple hand movement could create such a dramatic visual change. This project helped me understand how different TouchDesigner operators can work together to create an interactive experience, and it made me want to explore more gesture-based interactions in the future.



Leave a Reply