Daniel Holden

202 Followers
72 Following
32 Posts
Animation & Machine Learning at Epic Games. Ex Ubisoft La Forge. Programmer & Occasional Writer.
Websitehttps://theorangeduck.com/
In the name of trying to stick to one platform, I think I'll discontinue posting on Mastodon. I'm going to host my tweets on my website (https://theorangeduck.com/page/microblog) and you can still find me on bluesky (https://bsky.app/profile/theorangeduck.bsky.social) for now. See you all there!
Microblog

Computer Science, Machine Learning, Programming, Art, Mathematics, Philosophy, and Short Fiction

Learned a new spring fact from my colleague Danny Chapman recently. For a critically damped spring tracking a target moving at a constant velocity, the amount of time the spring will lag behind the target is given by "halflife / ln(2)". Added to my blog post! https://theorangeduck.com/page/spring-roll-call#timedspring
Spring-It-On: The Game Developer's Spring-Roll-Call

Computer Science, Machine Learning, Programming, Art, Mathematics, Philosophy, and Short Fiction

I've uploaded a retargeted version of the 100STYLE dataset matching the other datasets: https://github.com/orangeduck/100style-retarget/

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.

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:

https://theorangeduck.com/page/noise-neural-networks-flow-matching

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.

https://theorangeduck.com/page/variations-muller

Variations on Müller's method of Polar Decomposition

Computer Science, Machine Learning, Programming, Art, Mathematics, Philosophy, and Short Fiction

Finally, I've made a very simple example raylib application which can be used to visualize animation data from these datasets on the common character mesh:

https://github.com/orangeduck/GenoView

GitHub - orangeduck/GenoView: An example raylib application for viewing animation on the Geno character

An example raylib application for viewing animation on the Geno character - orangeduck/GenoView

GitHub

By default it works with the Geno character from the following animation datasets:

https://github.com/orangeduck/lafan1-resolved
https://github.com/orangeduck/zeroeggs-retarget
https://github.com/orangeduck/motorica-retarget

But you should be able to hack it (using some of the scripts included) to work on other characters and datasets too.

GitHub - orangeduck/lafan1-resolved: Resolving of the Ubisoft La Forge Animation dataset onto a common skeleton

Resolving of the Ubisoft La Forge Animation dataset onto a common skeleton - orangeduck/lafan1-resolved

GitHub

I've just uploaded a simple #raylib example application for viewing animation data on a skinned mesh:

https://github.com/orangeduck/GenoView

It has (what I consider) the minimum rendering required to actually evaluate skinned animation: basic lighting, shadow maps, SSAO, and a grid shader.

GitHub - orangeduck/GenoView: An example raylib application for viewing animation on the Geno character

An example raylib application for viewing animation on the Geno character - orangeduck/GenoView

GitHub

I just added another appendix to my page on cubic interpolation of quaternions, with an explanation of how to prevent overshooting using Monotone Cubic Interpolation:

https://theorangeduck.com/page/cubic-interpolation-quaternions#overshoot

Taken from this fantastic blog post (https://jbrd.github.io/2020/12/27/monotone-cubic-interpolation.html) by James Bird

Cubic Interpolation of Quaternions

Computer Science, Machine Learning, Programming, Art, Mathematics, Philosophy, and Short Fiction

To prepare for the article I took the time to re-process some of the highest quality datasets in the community onto a common character. I hope that can be useful too!

https://github.com/orangeduck/lafan1-resolved
https://github.com/orangeduck/motorica-retarget
https://github.com/orangeduck/zeroeggs-retarget

GitHub - orangeduck/lafan1-resolved: Resolving of the Ubisoft La Forge Animation dataset onto a common skeleton

Resolving of the Ubisoft La Forge Animation dataset onto a common skeleton - orangeduck/lafan1-resolved

GitHub