Math in Game Development Summit: A Visual Guide to Quaternions and Dual Quaternions

38,660
0
Published 2024-05-01
Sometimes people say "Quaternions are 4 dimensional". They are trying to scare you. It's no more true than "3x3 matrices are 9 dimensional", and no more helpful either. There is a concrete, 3D way to visualize quaternions. In this GDC 2023 session, Hamish Todd dives into how quaternions are created, interpolated, and composed together.

GDC returns to San Francisco in March 2025! For more information, be sure to visit our website and follow the #GDC2025 hashtag on social media.

Subscribe to the GDC newsletter and get regular updates via Facebook, Twitter, LinkedIn, or RSS.

Join the GDC mailing list: www.gdconf.com/subscribe

Follow GDC on Twitter: twitter.com/Official_GDC

GDC talks cover a range of developmental topics including game design, programming, audio, visual arts, business management, production, online games, and much more. We post a fresh GDC video every day. Subscribe to the channel to stay on top of regular updates, and check out GDC Vault for thousands of more in-depth talks from our archives.

All Comments (21)
  • @3DWithLairdWT
    I wrote the Quaternion shader library for a FAANG company, and still I found this to be a great and informative presentation where I learned some new things. Amazing presentation :D
  • @gregsmith80
    I'm in the first 5 minutes and this has already clarified quaternions better than anything else in the past 10 years.
  • @atlas4074
    This was a great explanation of quaternions and dual quaternions. They finally make sense to me
  • oh man, there was a time when I thought I wish there was a visual tutorial on Quaternions. Quaternion is such a bad boy. No interviewers ever dared to ask questions around that cuz they themselves are not confident how it works. Thank you so much for putting so much passion in this.
  • @eofirdavid
    As a mathematician, I always find it weird to hear talks like this. In my head there is the geometry of the space, and I am just looking how they were implemented in the program (e.g. Quaternion, Euler angles, etc). Every time I hear such a talk, it always seems like there are 20 different objects, each one with weird properties that you need to remember, which are almost trivial once you know where they came from. But in general, great talk.
  • @Comenta-san
    me explaining to my parents how playing games is just as constructive as studying math :
  • @corndogblue7
    Wow great talk, I now realize I had almost come up with dual quaternions on my own once working in AR 3DOF for years, this really filled in some gaps though. It's a tricky topic to describe visually but the presenter made it all make as much sense as possible. I often use finding the from-to vector as essentially the same math, in concept, as from-to quaternions rotation, but I get a lot of funny looks when I do it, so at least I can now say, no I'm not just saying dark magic juju words and making weird finger gestures, there is a video!
  • @Baelfyr
    Amazing talk, really helped me to understand quaternions, just starting my game dev career and i have to say, quaternions are something i need to get use to, but this certainly helped a lot.
  • @bpdhoplite
    Ive only been programming for a year and Im following everything hes saying. Fantastic presentation here lmao
  • "If you cannot build something with a concept you think you understand, you don't understand that concept." -
  • @sarahlynn7807
    This is probably the most useful GDC talk i've seen in a long time.
  • @UlissesSampaio
    Great video! Though I wish you had more time to explain how each element of the Double-quaternion works.
  • @diribigal
    Very nice presentation! I wish there were some combination of this and Marc ten Bosch's "Let's remove Quaternions from every 3D Engine"
  • @FUZASHIII
    Very clearly explained, thank you !
  • @hamish_todd Am i on the right track here? I have a tidally locked rigid body on a circular orbit around the origin of the local coordinate system, i can represent that movement as a dual quaterion function of the position over time, where i move the center of rotation along the circular path (sin(r*t),cos(r*t),0) and also do a rotation "in the same (or similar in case of axial tilt) direction" to offset the rotation with a skrewniness so both happen once per orbit (keeping the /2 in mind)?
  • @killavus
    Is there any chance to get an access to software you're using for demos? I'd love to tinker around with quaternion values to understand them better :).