Fafa Zhu
Lead Motion Designer @flatwhitemotion
Personal @fawithtao
📍Qingdao,China
📩 heyfafamotion@gmail.com
This is my #motionflashback for this year — basically a tiny “business card” I throw out into the world. I’ve been doing this every year since @ordinaryfolkco started the tradition back in 2019.
It kind of sums up my whole year — my mindset, my habits, and all the things I got obsessed with.
A lot of the commercial shots were done at @flatwhitemotion where I work as an animator. And of course, there were tons of exploration clips I couldn’t even fit in 😂. Super grateful for my team!
I was also lucky to chat about animation with people from different countries and regions this year. That made me genuinely happy. I’m extremely introverted and not a big fan of socializing… except when it comes to animation. Then I turn into a completely different person.
This industry keeps changing every year. AI hasn’t really affected my job, but I do feel like it’s lowering people’s taste for animation.
There’s still so much I want to improve, and I’ll keep pushing. I always say I don’t like this industry, but the moment I start animating, I forget everything else.
We still have a month before the new year, but I’ll say it early — happy new year! Whatever you’re working on, I hope it goes smoothly. Stay healthy and take care.
I’m Fafa, a 2D motion designer from China.
🎵 Marco Martini – Vivaldi Legacy
I used @yevgenymakarov plugin, Cube Shape, to make some small Duplicator animations. The controls are super convenient, and it can create some interesting patterns. But solving the intersection/overlap issues is a bit tricky haha.
Software @cavalry.app
I used @yevgenymakarov plugin, Cube Shape, to make some small Duplicator animations. The controls are super convenient, and it can create some interesting patterns. But solving the intersection/overlap issues is a bit tricky haha.
Software @cavalry.app
Sharing a part I worked on from our latest team project @flatwhitemotion . I used @cavalry.app for most of the shots and the early exploration.
Huge thanks to the Cavalry community I got a lot of help along the way, both directly and indirectly. Special shoutout to @michielvankleef @kamilk_mograph @shoobaka @scenery__io_ @antonin.work .
It always feels great when you pick up something new from a project.
Work like this really comes down to having good taste trying to stay true to the original style frames while also pushing more detail using what the software can do.
A couple things that might help:
1. iswithin is great for limiting where objects show up, but it can slow previews down a lot. If you’re okay with shapes not being fully “complete,” using submesh opacity is a bit faster (especially with lots of text).
2. I didn’t use Sweep in falloff much before, but it turned out to be really useful when working with text patterns. For example, if you start with a full line of the same character and want a small section in the middle to switch into a different character, Sweep gives you a really clean way to control where that change happens and how it moves across the line.
Still learning and trying to get better at all of this. Thanks everyone.
Sharing a part I worked on from our latest team project @flatwhitemotion . I used @cavalry.app for most of the shots and the early exploration.
Huge thanks to the Cavalry community I got a lot of help along the way, both directly and indirectly. Special shoutout to @michielvankleef @kamilk_mograph @shoobaka @scenery__io_ @antonin.work .
It always feels great when you pick up something new from a project.
Work like this really comes down to having good taste trying to stay true to the original style frames while also pushing more detail using what the software can do.
A couple things that might help:
1. iswithin is great for limiting where objects show up, but it can slow previews down a lot. If you’re okay with shapes not being fully “complete,” using submesh opacity is a bit faster (especially with lots of text).
2. I didn’t use Sweep in falloff much before, but it turned out to be really useful when working with text patterns. For example, if you start with a full line of the same character and want a small section in the middle to switch into a different character, Sweep gives you a really clean way to control where that change happens and how it moves across the line.
Still learning and trying to get better at all of this. Thanks everyone.
Sharing a part I worked on from our latest team project @flatwhitemotion . I used @cavalry.app for most of the shots and the early exploration.
Huge thanks to the Cavalry community I got a lot of help along the way, both directly and indirectly. Special shoutout to @michielvankleef @kamilk_mograph @shoobaka @scenery__io_ @antonin.work .
It always feels great when you pick up something new from a project.
Work like this really comes down to having good taste trying to stay true to the original style frames while also pushing more detail using what the software can do.
A couple things that might help:
1. iswithin is great for limiting where objects show up, but it can slow previews down a lot. If you’re okay with shapes not being fully “complete,” using submesh opacity is a bit faster (especially with lots of text).
2. I didn’t use Sweep in falloff much before, but it turned out to be really useful when working with text patterns. For example, if you start with a full line of the same character and want a small section in the middle to switch into a different character, Sweep gives you a really clean way to control where that change happens and how it moves across the line.
Still learning and trying to get better at all of this. Thanks everyone.
I’m sharing some shots I worked on earlier this year at @flatwhitemotion . I don’t usually do pixel style animation, especially something like a Pac Man game, so this was a fun change!
Most of it was done in @cavalry.app . For the beginning, I mainly used a falloff rotation to drive the index—kind of like a code rain effect. There are honestly so many possibilities with this kind of visual layout, I’m still not sure which one works best🥹
And finally, big thanks to @penrose_audio for the sound design!
I’m sharing some shots I worked on earlier this year at @flatwhitemotion . I don’t usually do pixel style animation, especially something like a Pac Man game, so this was a fun change!
Most of it was done in @cavalry.app . For the beginning, I mainly used a falloff rotation to drive the index—kind of like a code rain effect. There are honestly so many possibilities with this kind of visual layout, I’m still not sure which one works best🥹
And finally, big thanks to @penrose_audio for the sound design!
For the Year of the Horse, we made two small animations internally @flatwhitemotion , and this is the 2D part of one that I worked on.
My idea was actually pretty simple: I wanted to recreate a hand drawn, frame by frame feeling as much as possible inside After Effects. Thanks to the brush files shared on the @ordinaryfolkco website, I added a lot of animated brush strokes to give it that traditional frame by frame texture (hopefully it doesn’t look too messy 😅).
I really enjoy animating Chinese characters based on different design styles. This time it’s the character “福” (Fu), which can mean blessing, happiness, or good fortune. In China, we usually stick this character on our doors during the New Year, wishing for a smooth and lucky year ahead.
For the animation, I broke the character apart directionally. I treated the left side as a person, and had that “person” breathe out or generate the visual elements on the right. When they come together, they form the full character “福.” To me, it symbolizes that a happy and blessed life is something we create ourselves ☺️
This little detail is something I’m personally very proud of haha. Hope you enjoy the idea, and happy Year of the Horse 🐎✨
For the Year of the Horse, we made two small animations internally @flatwhitemotion , and this is the 2D part of one that I worked on.
My idea was actually pretty simple: I wanted to recreate a hand drawn, frame by frame feeling as much as possible inside After Effects. Thanks to the brush files shared on the @ordinaryfolkco website, I added a lot of animated brush strokes to give it that traditional frame by frame texture (hopefully it doesn’t look too messy 😅).
I really enjoy animating Chinese characters based on different design styles. This time it’s the character “福” (Fu), which can mean blessing, happiness, or good fortune. In China, we usually stick this character on our doors during the New Year, wishing for a smooth and lucky year ahead.
For the animation, I broke the character apart directionally. I treated the left side as a person, and had that “person” breathe out or generate the visual elements on the right. When they come together, they form the full character “福.” To me, it symbolizes that a happy and blessed life is something we create ourselves ☺️
This little detail is something I’m personally very proud of haha. Hope you enjoy the idea, and happy Year of the Horse 🐎✨
I wanted to share a bit about an animation I recently worked on at @flatwhitemotion
Because the screen was massive, the first thing I thought about was the overall motion rhythm. If things move too fast, your eyes basically start filing complaints on-site. That, plus our visual style, naturally pushed the animation toward a slower, calmer rhythm.
I also hadn’t touched gradients in a while, so playing with them again was honestly a lot of fun.
A quick breakdown of what I did:
2. Early motion exploration
3. I built a transition layout in Cavalry.
4. I used GPT-generated expressions to recreate Cavalry style parameter controls in After Effects. One shot was done in AE, the other in Cavalry, so having the same controls made transitions much easier.
That said… the amount of AE expressions was insane. Truly a crime scene.
5. The Linear Wipe was a total accident. I was just randomly testing effects 🤣 and somehow… it worked.
6. The final animation was rendered directly from Cavalry. I barely touched it in After Effects afterward.
That’s basically it. Most of the time, I just rely on intuition and timing to decide which tool makes sense. Sometimes I’ll intentionally choose a more “inefficient” or manual approach—not because it’s smarter, but because it gives me more control and saves me time thinking about tools.
Lately, a lot of projects I have been using an AE + @cavalry.app workflow. Since this is team based animation, this setup is simply more practical and easier for everyone to jump in and tweak.
My role has been shifting this year, and I’m still adapting, doing my own shots, giving others feedback, and making sure the overall quality doesn’t fall apart. I know I still have plenty to improve, and I’m working on it 🫡
I wanted to share a bit about an animation I recently worked on at @flatwhitemotion
Because the screen was massive, the first thing I thought about was the overall motion rhythm. If things move too fast, your eyes basically start filing complaints on-site. That, plus our visual style, naturally pushed the animation toward a slower, calmer rhythm.
I also hadn’t touched gradients in a while, so playing with them again was honestly a lot of fun.
A quick breakdown of what I did:
2. Early motion exploration
3. I built a transition layout in Cavalry.
4. I used GPT-generated expressions to recreate Cavalry style parameter controls in After Effects. One shot was done in AE, the other in Cavalry, so having the same controls made transitions much easier.
That said… the amount of AE expressions was insane. Truly a crime scene.
5. The Linear Wipe was a total accident. I was just randomly testing effects 🤣 and somehow… it worked.
6. The final animation was rendered directly from Cavalry. I barely touched it in After Effects afterward.
That’s basically it. Most of the time, I just rely on intuition and timing to decide which tool makes sense. Sometimes I’ll intentionally choose a more “inefficient” or manual approach—not because it’s smarter, but because it gives me more control and saves me time thinking about tools.
Lately, a lot of projects I have been using an AE + @cavalry.app workflow. Since this is team based animation, this setup is simply more practical and easier for everyone to jump in and tweak.
My role has been shifting this year, and I’m still adapting, doing my own shots, giving others feedback, and making sure the overall quality doesn’t fall apart. I know I still have plenty to improve, and I’m working on it 🫡
I wanted to share a bit about an animation I recently worked on at @flatwhitemotion
Because the screen was massive, the first thing I thought about was the overall motion rhythm. If things move too fast, your eyes basically start filing complaints on-site. That, plus our visual style, naturally pushed the animation toward a slower, calmer rhythm.
I also hadn’t touched gradients in a while, so playing with them again was honestly a lot of fun.
A quick breakdown of what I did:
2. Early motion exploration
3. I built a transition layout in Cavalry.
4. I used GPT-generated expressions to recreate Cavalry style parameter controls in After Effects. One shot was done in AE, the other in Cavalry, so having the same controls made transitions much easier.
That said… the amount of AE expressions was insane. Truly a crime scene.
5. The Linear Wipe was a total accident. I was just randomly testing effects 🤣 and somehow… it worked.
6. The final animation was rendered directly from Cavalry. I barely touched it in After Effects afterward.
That’s basically it. Most of the time, I just rely on intuition and timing to decide which tool makes sense. Sometimes I’ll intentionally choose a more “inefficient” or manual approach—not because it’s smarter, but because it gives me more control and saves me time thinking about tools.
Lately, a lot of projects I have been using an AE + @cavalry.app workflow. Since this is team based animation, this setup is simply more practical and easier for everyone to jump in and tweak.
My role has been shifting this year, and I’m still adapting, doing my own shots, giving others feedback, and making sure the overall quality doesn’t fall apart. I know I still have plenty to improve, and I’m working on it 🫡
I wanted to share a bit about an animation I recently worked on at @flatwhitemotion
Because the screen was massive, the first thing I thought about was the overall motion rhythm. If things move too fast, your eyes basically start filing complaints on-site. That, plus our visual style, naturally pushed the animation toward a slower, calmer rhythm.
I also hadn’t touched gradients in a while, so playing with them again was honestly a lot of fun.
A quick breakdown of what I did:
2. Early motion exploration
3. I built a transition layout in Cavalry.
4. I used GPT-generated expressions to recreate Cavalry style parameter controls in After Effects. One shot was done in AE, the other in Cavalry, so having the same controls made transitions much easier.
That said… the amount of AE expressions was insane. Truly a crime scene.
5. The Linear Wipe was a total accident. I was just randomly testing effects 🤣 and somehow… it worked.
6. The final animation was rendered directly from Cavalry. I barely touched it in After Effects afterward.
That’s basically it. Most of the time, I just rely on intuition and timing to decide which tool makes sense. Sometimes I’ll intentionally choose a more “inefficient” or manual approach—not because it’s smarter, but because it gives me more control and saves me time thinking about tools.
Lately, a lot of projects I have been using an AE + @cavalry.app workflow. Since this is team based animation, this setup is simply more practical and easier for everyone to jump in and tweak.
My role has been shifting this year, and I’m still adapting, doing my own shots, giving others feedback, and making sure the overall quality doesn’t fall apart. I know I still have plenty to improve, and I’m working on it 🫡
I wanted to share a bit about an animation I recently worked on at @flatwhitemotion
Because the screen was massive, the first thing I thought about was the overall motion rhythm. If things move too fast, your eyes basically start filing complaints on-site. That, plus our visual style, naturally pushed the animation toward a slower, calmer rhythm.
I also hadn’t touched gradients in a while, so playing with them again was honestly a lot of fun.
A quick breakdown of what I did:
2. Early motion exploration
3. I built a transition layout in Cavalry.
4. I used GPT-generated expressions to recreate Cavalry style parameter controls in After Effects. One shot was done in AE, the other in Cavalry, so having the same controls made transitions much easier.
That said… the amount of AE expressions was insane. Truly a crime scene.
5. The Linear Wipe was a total accident. I was just randomly testing effects 🤣 and somehow… it worked.
6. The final animation was rendered directly from Cavalry. I barely touched it in After Effects afterward.
That’s basically it. Most of the time, I just rely on intuition and timing to decide which tool makes sense. Sometimes I’ll intentionally choose a more “inefficient” or manual approach—not because it’s smarter, but because it gives me more control and saves me time thinking about tools.
Lately, a lot of projects I have been using an AE + @cavalry.app workflow. Since this is team based animation, this setup is simply more practical and easier for everyone to jump in and tweak.
My role has been shifting this year, and I’m still adapting, doing my own shots, giving others feedback, and making sure the overall quality doesn’t fall apart. I know I still have plenty to improve, and I’m working on it 🫡
I wanted to share a bit about an animation I recently worked on at @flatwhitemotion
Because the screen was massive, the first thing I thought about was the overall motion rhythm. If things move too fast, your eyes basically start filing complaints on-site. That, plus our visual style, naturally pushed the animation toward a slower, calmer rhythm.
I also hadn’t touched gradients in a while, so playing with them again was honestly a lot of fun.
A quick breakdown of what I did:
2. Early motion exploration
3. I built a transition layout in Cavalry.
4. I used GPT-generated expressions to recreate Cavalry style parameter controls in After Effects. One shot was done in AE, the other in Cavalry, so having the same controls made transitions much easier.
That said… the amount of AE expressions was insane. Truly a crime scene.
5. The Linear Wipe was a total accident. I was just randomly testing effects 🤣 and somehow… it worked.
6. The final animation was rendered directly from Cavalry. I barely touched it in After Effects afterward.
That’s basically it. Most of the time, I just rely on intuition and timing to decide which tool makes sense. Sometimes I’ll intentionally choose a more “inefficient” or manual approach—not because it’s smarter, but because it gives me more control and saves me time thinking about tools.
Lately, a lot of projects I have been using an AE + @cavalry.app workflow. Since this is team based animation, this setup is simply more practical and easier for everyone to jump in and tweak.
My role has been shifting this year, and I’m still adapting, doing my own shots, giving others feedback, and making sure the overall quality doesn’t fall apart. I know I still have plenty to improve, and I’m working on it 🫡
Step into the heart of Hong Kong’s iconic Yau Ma Tei Fruit Market. This book is a seamless fusion of culture, history, and sustainable creativity, transforming the market’s bustling energy into an immersive visual journey. Crafted with recycled and upcycled paper from leading paper supplier Antalis—including some made from post-consumer fruit waste—it celebrates both innovation and eco-consciousness. From the calligraphy signage to the textures of fresh fruit and worn cartons, every detail is brought to life through cutting-edge printing by Colham Printing Co. This project bridges tradition and innovation, offering a fresh perspective on how design can preserve and celebrate cultural heritage while embracing sustainability.
Paper by @antalishk
Printed by @colham_printing_
Design by @ffranklo
Motion Design by @fafa_motion
Sound Design by @penrose_audio
This is the BTS from the calligraphy exhibition animation I made with @ink.brush.city a few months ago in Hong Kong. Most of it was done in @cavalry.app , and a little bit in After Effects. And yes… I’m still that weirdo who keyframes every single shot by hand.
Editing this bts was actually kind of fun, mostly because it’s the only time I force myself to rename my layers again😂
Got some new inspiration from @heyalisamotion tutorial in @cavalry.app
🪄Forge Dynamics + Trails = Particles
So I did a bit of experimenting and testing—it turned out really fun. Looks like this technique could be useful in some places. And if you add a Glow and switch the blend mode to Replace, it gets even more interesting.
You should give it a try.
Got some new inspiration from @heyalisamotion tutorial in @cavalry.app
🪄Forge Dynamics + Trails = Particles
So I did a bit of experimenting and testing—it turned out really fun. Looks like this technique could be useful in some places. And if you add a Glow and switch the blend mode to Replace, it gets even more interesting.
You should give it a try.
Got some new inspiration from @heyalisamotion tutorial in @cavalry.app
🪄Forge Dynamics + Trails = Particles
So I did a bit of experimenting and testing—it turned out really fun. Looks like this technique could be useful in some places. And if you add a Glow and switch the blend mode to Replace, it gets even more interesting.
You should give it a try.
Got some new inspiration from @heyalisamotion tutorial in @cavalry.app
🪄Forge Dynamics + Trails = Particles
So I did a bit of experimenting and testing—it turned out really fun. Looks like this technique could be useful in some places. And if you add a Glow and switch the blend mode to Replace, it gets even more interesting.
You should give it a try.
Got some new inspiration from @heyalisamotion tutorial in @cavalry.app
🪄Forge Dynamics + Trails = Particles
So I did a bit of experimenting and testing—it turned out really fun. Looks like this technique could be useful in some places. And if you add a Glow and switch the blend mode to Replace, it gets even more interesting.
You should give it a try.
Some more little experiments in @cavalry.app (and of course, @scenery__io_ :)) still just exploring and seeing where things go. I honestly don’t even know what these animations are meant for, but that’s kind of the fun part. It’s a great way to spark ideas and play with different motion vibes.
Reworked these from some old projects — that’s what I love about Cavalry: you can never make the exact same thing twice.
😊(Images are from people I follow :))
Some more little experiments in @cavalry.app (and of course, @scenery__io_ :)) still just exploring and seeing where things go. I honestly don’t even know what these animations are meant for, but that’s kind of the fun part. It’s a great way to spark ideas and play with different motion vibes.
Reworked these from some old projects — that’s what I love about Cavalry: you can never make the exact same thing twice.
😊(Images are from people I follow :))
Some more little experiments in @cavalry.app (and of course, @scenery__io_ :)) still just exploring and seeing where things go. I honestly don’t even know what these animations are meant for, but that’s kind of the fun part. It’s a great way to spark ideas and play with different motion vibes.
Reworked these from some old projects — that’s what I love about Cavalry: you can never make the exact same thing twice.
😊(Images are from people I follow :))
Some more little experiments in @cavalry.app (and of course, @scenery__io_ :)) still just exploring and seeing where things go. I honestly don’t even know what these animations are meant for, but that’s kind of the fun part. It’s a great way to spark ideas and play with different motion vibes.
Reworked these from some old projects — that’s what I love about Cavalry: you can never make the exact same thing twice.
😊(Images are from people I follow :))
Some more little experiments in @cavalry.app (and of course, @scenery__io_ :)) still just exploring and seeing where things go. I honestly don’t even know what these animations are meant for, but that’s kind of the fun part. It’s a great way to spark ideas and play with different motion vibes.
Reworked these from some old projects — that’s what I love about Cavalry: you can never make the exact same thing twice.
😊(Images are from people I follow :))
Some more little experiments in @cavalry.app (and of course, @scenery__io_ :)) still just exploring and seeing where things go. I honestly don’t even know what these animations are meant for, but that’s kind of the fun part. It’s a great way to spark ideas and play with different motion vibes.
Reworked these from some old projects — that’s what I love about Cavalry: you can never make the exact same thing twice.
😊(Images are from people I follow :))
Cavalry just added some new and interesting demo scenes — one of them is called Spirograph Distribution. It uses JavaScript to control some of the animations, and I’ve been using it to practice motion rhythm!
@cavalry.app
Cavalry just added some new and interesting demo scenes — one of them is called Spirograph Distribution. It uses JavaScript to control some of the animations, and I’ve been using it to practice motion rhythm!
@cavalry.app
*We all live on the same planet — people meet and part all the time!
-
Big thanks to @mariodemeyer for sharing this awesome trick! Using the Voronoi Shader to affect the position of the text is such a helpful technique.
-
Made @cavalry.app
*We all live on the same planet — people meet and part all the time!
-
Big thanks to @mariodemeyer for sharing this awesome trick! Using the Voronoi Shader to affect the position of the text is such a helpful technique.
-
Made @cavalry.app
*We all live on the same planet — people meet and part all the time!
-
Big thanks to @mariodemeyer for sharing this awesome trick! Using the Voronoi Shader to affect the position of the text is such a helpful technique.
-
Made @cavalry.app
The Instagram Story Viewer is an easy tool that lets you secretly watch and save Instagram stories, videos, photos, or IGTV. With this service, you can download content and enjoy it offline whenever you like. If you find something interesting on Instagram that you’d like to check out later or want to view stories while staying anonymous, our Viewer is perfect for you. Anonstories offers an excellent solution for keeping your identity hidden. Instagram first launched the Stories feature in August 2023, which was quickly adopted by other platforms due to its engaging, time-sensitive format. Stories let users share quick updates, whether photos, videos, or selfies, enhanced with text, emojis, or filters, and are visible for only 24 hours. This limited time frame creates high engagement compared to regular posts. In today’s world, Stories are one of the most popular ways to connect and communicate on social media. However, when you view a Story, the creator can see your name in their viewer list, which may be a privacy concern. What if you wish to browse Stories without being noticed? Here’s where Anonstories becomes useful. It allows you to watch public Instagram content without revealing your identity. Simply enter the username of the profile you’re curious about, and the tool will display their latest Stories. Features of Anonstories Viewer: - Anonymous Browsing: Watch Stories without showing up on the viewer list. - No Account Needed: View public content without signing up for an Instagram account. - Content Download: Save any Stories content directly to your device for offline use. - View Highlights: Access Instagram Highlights, even beyond the 24-hour window. - Repost Monitoring: Track the reposts or engagement levels on Stories for personal profiles. Limitations: - This tool works only with public accounts; private accounts remain inaccessible. Benefits: - Privacy-Friendly: Watch any Instagram content without being noticed. - Simple and Easy: No app installation or registration required. - Exclusive Tools: Download and manage content in ways Instagram doesn’t offer.
Keep track of Instagram updates discreetly while protecting your privacy and staying anonymous.
View profiles and photos anonymously with ease using the Private Profile Viewer.
This free tool allows you to view Instagram Stories anonymously, ensuring your activity remains hidden from the story uploader.
Anonstories lets users view Instagram stories without alerting the creator.
Works seamlessly on iOS, Android, Windows, macOS, and modern browsers like Chrome and Safari.
Prioritizes secure, anonymous browsing without requiring login credentials.
Users can view public stories by simply entering a username—no account needed.
Downloads photos (JPEG) and videos (MP4) with ease.
The service is free to use.
Content from private accounts can only be accessed by followers.
Files are for personal or educational use only and must comply with copyright rules.
Enter a public username to view or download stories. The service generates direct links for saving content locally.