Daniel Holden
banner
theorangeduck.bsky.social
Daniel Holden
@theorangeduck.bsky.social
Animation & Machine Learning at Epic Games. Ex Ubisoft La Forge. Programmer & Occasional Writer. https://theorangeduck.com/
Because we couldn't release the code and data we've also prepared a small example implementation which I hope will prove useful to those trying to implement the method:

github.com/gouruiyu/Con...
November 24, 2025 at 7:02 PM
Briefly, Control Operators provide a way of encoding arbitrary inputs to Neural Networks. This is particularly useful for game development as you can't be sure what the structure of input data will be like. For full explanation check out this blog post we prepared:

theorangeduck.com/page/impleme...
November 24, 2025 at 7:02 PM
I'm so happy to finally be able to talk about our new SIGGRAPH Asia paper "Control Operators for Interactive Character Animation". It's been by far the most work I've seen go into a SIGGRAPH paper (thanks goes to @gouruiyu.bsky.social) and a fun project all round.

theorangeduck.com/page/control...
November 24, 2025 at 7:02 PM
Time for another short story :)

theorangeduck.com/page/review-...
October 26, 2025 at 2:06 PM
With a bit of help from the authors I've added another huge high quality dataset to my Geno retargetings. This time the very nice InterAct dataset (hku-cg.github.io/interact/).

You can find it here: github.com/orangeduck/i...
September 17, 2025 at 12:04 AM
Made a bare-bones Motion Matching implementation to test it: github.com/orangeduck/G...

Sadly I had to drop to 30fps because Python is so painfully slow even something as simple as Forward Kinematics can take several milliseconds. Eeek.
September 6, 2025 at 3:09 PM
My latest article is on the problem of joint-error propagation - and some techniques for tackling it when doing Machine Learning or other data-driven numerical methods.

theorangeduck.com/page/joint-e...
August 24, 2025 at 1:31 PM
I've added an appendix to my page on debug drawing text with lines with a contribution from @mikkomononen.bsky.social and his version of a non-monospaced font based on the Hershey Fonts Simplex characters:

theorangeduck.com/page/debug-d...
June 18, 2025 at 2:44 PM
There may not be many obvious alternatives, but CLIP is not a great embedding for describing motion. It's trained on static images so has a confused concept of time/tense/ordering, will often focus on the object rather than the action, and usually interprets verbs as nouns:
June 14, 2025 at 10:07 PM
More than once I've wanted to debug draw text in a game scene but found it not as easy as expected. I made a lookup table that allows you to draw text via line segments. It was a fun little weekend project, even if I'm sure it's something people have done before!

theorangeduck.com/page/debug-d...
April 8, 2025 at 8:45 PM
Time for another long blog post... and today it's all about how we handle the temporal aspect of animation data. And more specifically, how to approach things from a signal processing perspective, covering up-sampling, down-sampling, and everything in-between.

theorangeduck.com/page/filteri...
April 4, 2025 at 3:22 PM
I've uploaded a retargeted version of the 100STYLE dataset matching the other datasets: github.com/orangeduck/1...

I wasn't sure if I should add it at first. The quality is lower due to the inertial capture, and it's missing finger motion, but overall I figured it's still worth it.
January 24, 2025 at 6:52 PM
It's been a while since I did a pure Machine Learning article on my blog, but today I have a post for you about adding noise to Neural Networks, and some fun experiments with Flow-Matching:

theorangeduck.com/page/noise-n...
December 29, 2024 at 3:23 PM
My latest article is about one of my favorite techniques in graphics - Müller's method of Polar Decomposition.

It also details some variations, including one which is ~2x faster to compute with more regular convergence.

theorangeduck.com/page/variati...
November 23, 2024 at 4:27 PM