Live data from Hacker News

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

diegomacario.github.io

21–30 of 55 posts

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

#22

Nice work, but displaying the time evolution of individual quaternion components is about as intuitive of a visualization as displaying the time evolution of an individual pixel to visualize video compression...

Hahaha this is a fair comment. I guess my intention was to show the complex number crunching that happens in the background to make characters move. I'm still thinking about better ways to visualize things.

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

#23
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…

GA is more general than (and superior to) quaternions (the even subalgebra of G3). However, it requires a powerful type system and compiler to compile general GA expressions to something as efficient as quaternions. C++ won't cut it. You might be able to get clever by defining a special numerically indexed type for Gn or its even subalgebras; C++ could probably do that. But it wouldn't be as nice as fully generic GA.

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

#24
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 A…

Although I grokked quaternions before learning GA, I am 100% certain that the GA explanation is better and more intuitive.

GA breaks down quaternions (and their generalization to arbitrary dimensions) into smaller pieces that are much more obvious.

It takes hundreds of years to invent quaternions from scratch, but it takes 10 minutes to invent quaternions from GA.

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

#25
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…

Given that Miegakure has been “coming soon” for over ten years (maybe the dev initially planned it as a 10-year-game, but if so I wish he would’ve said so when people asked when it was coming) I’m going to suggest putting a hold on deciding whether this way of reckoning rotations results in a better development process.

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

#27

Nice work, but displaying the time evolution of individual quaternion components is about as intuitive of a visualization as displaying the time evolution of an individual pixel to visualize video compression...

Hahaha this is a fair comment. I guess my intention was to show the complex number crunching that happens in the background to make characters move. I'm still thinking about better ways to visualize things.

Could you overlay the graphs with a sort of arrow, indicating the the actual direction the quaternion is pointing in? I had no knowledge on animation before, this was a great primer! Maybe having the graphs sync up could be a toggle - I feel like at low animation speeds, this would help visualize what's going on.

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

#28
post #25
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…

Given that Miegakure has been “coming soon” for over ten years (maybe the dev initially planned it as a 10-year-game, but if so I wish he would’ve said so when people asked when it was coming) I’m going to suggest putting a hold on deciding whether this way of reckoning rotations results in a better development process.

I don't anyone who took the 4D game concept further than him, there is no "better development process" yet.

And if anything, I don't think the engine is the problem. He already shipped 4D toys, which I suspect is a way to monetize the devtools he made for Miegakure (nothing wrong with that). And even before that, the 4D was fine.

But while it is nice having good 4D, turning it into an entertaining game with good graphics, good puzzle design, a story that doesn't suck (even a simple one), etc... is hard. And we are not talking about a FPS or 2D platformer here, there are no game design books about making games like Miegakure, and there are many, many things that can go wrong. And to be honest, I hope for the best, but I don't expect much.

One big difficulty I see is that not only the designers have to understand 4D to make interesting worlds/puzzles, but the game has to teach that to players too, with the right difficulty curve.

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

#29
I'm a little confused about why the curves are "sampled" to update the joint transformations: ``` So if we are rendering 60 frames per second, we are basically doing the following 60 times a second:

Sample all the curves you see on the graphs to get the orientation of each joint... ```

When the curves are "sampled", does that mean in a 60 fps animation, there are 60 timestep values t={t1, t2, ... t60} sampled from a uniform distributions, and evaluated at x(t), y(t), z(t), and w(t), and then those values are stepped through sequentially? If that is the case, why not just set t={1/60, 2/60, ... 1}?

Or does "sampling" here just mean function is evaluated at an appropriate t value, and not refering to statistical sampling?

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

#30
post #29

I'm a little confused about why the curves are "sampled" to update the joint transformations: ``` So if we are rendering 60 frames per second, we are basically doing the following 60 times a second: Sample all the curves you see on the graphs to get the orientation of each joint... ``` When the curves are "sampled", does that mean in a 60 fps animation, there are 60 timestep values t={t1, t2, ... t60} sampled from a…

Pretty sure it just means evaluated at a finite number of appropriate t values and interpolated to find intermediate values.

I agree that it's definitely an abuse of terminology.

Post reply on HN