Creating a Medusa AR Filter in TikTok Effect House
18 May 26 (2mo ago)
I’ve always wanted to experiment with Augmented Reality (AR), but it took me a while to finally dive in. My initial spark of interest came from a talk by Mitsuko Ono at Graphika Manila. I already knew about AR technology, but seeing how much fun she had creating with it really pushed me.
Fast forward to today, and I’m finally building my own AR filters. Since Meta Spark has been sunsetted, I decided to build this project using TikTok’s Effect House.
Modeling and Weighting the Snakes
This was a relatively simple personal project aimed at experimenting with Inverse Kinematics (IK) chains on an elongated model.

I started by modeling a cartoony snake with exaggerated, large eyes. They are not rigged, only weighted, since there are no controls involved.

Of course, you can't have just one snake—that wouldn't be very interesting. But adding multiple snakes haphazardly would look messy and disjointed. That gave me the perfect excuse to create a full Medusa-inspired snake headdress.
Learning TikTok Effect House

The starter templates in Effect House are incredibly helpful for learning the ropes. While there are plenty of tutorials out there, I personally prefer having an actual project file I can pick apart and reverse-engineer to see how the features work.
That said, I did hit a few technical roadblocks. I have a feeling my ideas are possible within the software, but I haven't quite figured out how to execute them yet—even after experimenting with both the visual nodal scripting and standard scripting features.
Technical Roadblocks
Here are a few dynamics issues I'm still trying to solve:
- Stacked Dynamics: I was hoping to create a stacked dynamics animation. Right now, the animation delay is uniform from the root of the snake to the head. I wanted the eyes to have a different wobble factor. I tried adding multiple dynamic chains within the same joint chain to assign different values, but I didn't have any luck.
- Independent Idle Animation: I also wanted to add a random, constant base animation at the root of the snakes, so they would move independently rather than relying entirely on the physical movement of the user's head. I wasn't able to implement this yet.
Setting this up in Houdini would have been straightforward, but translating those procedural physics into a real-time AR engine is a different challenge altogether.