Live data from Hacker News

Show HN: Visualizing the math that powers 3D character animation

diegomacario.github.io

11–20 of 55 posts

Re: Show HN: Visualizing the math that powers 3D character animation

#11

Earlier quoted context omitted.

Works for me on safari MacOS even if it feels slow

I recommend running it on Chrome. It runs more smoothly there. I'm still improving the performance on Safari.

Downvote for actually suggesting turning us back into 90s era "Best Viewed In" situation.

I do applaud the wanting to improve performance elsewhere, but still gets a big shake of my head in disappointment that dev is allowed to get to a place where it only works in one browser at first until some amount of work after release to fix to work in other browsers. My sincere hope that you do get it to work universally, realize what was done that made it one-sided to begin with, and avoid those things in any future projects.

Re: Show HN: Visualizing the math that powers 3D character animation

#12
post #4

On the subject of quaternions, here is an article that pops up on HN from time to time. https://marctenbosch.com/quaternions/ It is called "Let's remove Quaternions from every 3D Engine". The author suggests replacing quaternions with rotors and geometric algebra. In 3D, the formulas are essentially the same, but framed differently. It makes some "surprising" properties more intuitive and is extensible to any number…

Wow that's fascinating, thanks for sharing it!

Although I disagree with how the author describes quaternions as black boxes. The two questions he asks:

- Why does i2=j2=k2=−1 and ij=k? - Why do we take a vector and upgrade it to an "imaginary" vector in order to transform it, like q(xi+yj+zk)q∗?

Are clearly explained in these interactive videos created by Grant Sanderson and Ben Eater: https://eater.net/quaternions

After I watched those videos, quaternions stopped being so opaque to me. I recommend them :-)

Re: Show HN: Visualizing the math that powers 3D character animation

#13

Earlier quoted context omitted.

I recommend running it on Chrome. It runs more smoothly there. I'm still improving the performance on Safari.

Downvote for actually suggesting turning us back into 90s era "Best Viewed In" situation. I do applaud the wanting to improve performance elsewhere, but still gets a big shake of my head in disappointment that dev is allowed to get to a place where it only works in one browser at first until some amount of work after release to fix to work in other browsers. My sincere hope that you do get it to work universally, rea…

To be honest I don't see this as such a bad thing. Google Chrome has 70% of the browser market share, while Safari has 4%. I don't think there's anything wrong with prioritizing more popular platforms, specially when you just want to ship a project that you worked on in your spare time to learn new things.

Re: Show HN: Visualizing the math that powers 3D character animation

#14

Earlier quoted context omitted.

Downvote for actually suggesting turning us back into 90s era "Best Viewed In" situation. I do applaud the wanting to improve performance elsewhere, but still gets a big shake of my head in disappointment that dev is allowed to get to a place where it only works in one browser at first until some amount of work after release to fix to work in other browsers. My sincere hope that you do get it to work universally, rea…

To be honest I don't see this as such a bad thing. Google Chrome has 70% of the browser market share, while Safari has 4%. I don't think there's anything wrong with prioritizing more popular platforms, specially when you just want to ship a project that you worked on in your spare time to learn new things.

Again, why I offered learning what was specific to Chrome and no longer using them for future projects. Yet more learning on top of the learning

Re: Show HN: Visualizing the math that powers 3D character animation

#15
I AM IN LOVE WITH THIS DATA:

But hear me out as to why:

Surely - the amount of spatial kinematic maths that has been built around how we 'perceive' natural movement within a scene by object has been immense...

---

I have an idea. (this is just off the cuff and what caused me to have goose-bumps immediately when I saw this):

Actually -- I am going to email you... rather than post publicly.

May you please update your profile with an email... or post a way to contact you here

Re: Show HN: Visualizing the math that powers 3D character animation

#16
Really cool, thank you. This is the standard way of animating in most engines, right? I'm wondering if there are other techniques that save on sampling the data. Bones form a hierarchy and when the spine bone moves it affects the movement of all the other limbs, but I'm not sure if that's more or less expensive.

Re: Show HN: Visualizing the math that powers 3D character animation

#17
post #16

Really cool, thank you. This is the standard way of animating in most engines, right? I'm wondering if there are other techniques that save on sampling the data. Bones form a hierarchy and when the spine bone moves it affects the movement of all the other limbs, but I'm not sure if that's more or less expensive.

Thanks proc0! What you are describing (a hierarchy of bones) is exactly what I'm doing. I decided not to mention that to simplify the explanation of how character animations work, but here are the missing details:

- All the little curves that I'm plotting show the local orientation of each joint.

- To obtain the world orientation of a particular joint, it's necessary to combine the transform matrices of all its parent joints until you reach the root of the hierarchy.

For example, to get the world transform of a wrist joint, you need to combine the local transforms of the wrist, elbow, shoulder, neck, etc. joints.

Animation curves are stored in local space in glTF files, and those are the curves that I'm displaying.

I hope this explains things.

Re: Show HN: Visualizing the math that powers 3D character animation

#18
post #16

Really cool, thank you. This is the standard way of animating in most engines, right? I'm wondering if there are other techniques that save on sampling the data. Bones form a hierarchy and when the spine bone moves it affects the movement of all the other limbs, but I'm not sure if that's more or less expensive.

Thanks proc0! What you are describing (a hierarchy of bones) is exactly what I'm doing. I decided not to mention that to simplify the explanation of how character animations work, but here are the missing details: - All the little curves that I'm plotting show the local orientation of each joint. - To obtain the world orientation of a particular joint, it's necessary to combine the transform matrices of all its paren…

Nice, I was thinking they had absolute coordinates. Thanks for clarifying.

Re: Show HN: Visualizing the math that powers 3D character animation

#19

Earlier quoted context omitted.

To be honest I don't see this as such a bad thing. Google Chrome has 70% of the browser market share, while Safari has 4%. I don't think there's anything wrong with prioritizing more popular platforms, specially when you just want to ship a project that you worked on in your spare time to learn new things.

Again, why I offered learning what was specific to Chrome and no longer using them for future projects. Yet more learning on top of the learning

What evidence is there that anything Chrome specific was used? Safari’s WebGL support has come later than others, and there are reports of WebGL being slower on Safari than Chrome, for example https://developer.apple.com/forums/thread/696821 It’s possible your incredulity maybe should be directed towards Safari and not someone trying to do their best?

Re: Show HN: Visualizing the math that powers 3D character animation

#20

Earlier quoted context omitted.

I recommend running it on Chrome. It runs more smoothly there. I'm still improving the performance on Safari.

Downvote for actually suggesting turning us back into 90s era "Best Viewed In" situation. I do applaud the wanting to improve performance elsewhere, but still gets a big shake of my head in disappointment that dev is allowed to get to a place where it only works in one browser at first until some amount of work after release to fix to work in other browsers. My sincere hope that you do get it to work universally, rea…

This is exactly the type of project where recommending a specific browser is warranted.
Post reply on HN