Тёмный

How to think about Quaternions without your brain exploding 

Alex Rose
Подписаться 503
Просмотров 36 тыс.
50% 1

Опубликовано:

 

26 сен 2024

Поделиться:

Ссылка:

Скачать:

Готовим ссылку...

Добавить в:

Мой плейлист
Посмотреть позже
Комментарии : 79   
@angeldude101
@angeldude101 Год назад
Quaternions really are very natural for representing rotations when they're not being unnecessarily obfuscated. The three "imaginary" -bivector- terms are pretty understandable; they're the 3 basis axes / basis planes and all of them do 180° rotations (with 2-sided rotations). The scalar then has absolutely nothing to do with 4D space and _everything_ to do with _doing absolutely nothing._ A quaternion is just a weighted sum of rotations around each of the three basis axes plus the action of doing nothing. I will briefly mention the existence of "dual quaternions," which let you encode the transformation as a multiplication just like the rotations, and then you can just translate from the object to the origin, apply a rotation, and then translate back as TRT¯¹ (assuming you're composing from right to left), and the whole thing will perform a rotation around the origin of the object in the same plane as R. It's basically what you did manually with addition, but more composable.
@behrampatel3563
@behrampatel3563 11 месяцев назад
Thanks for adding your valuable insight. Do you have a page or blog I can follow you on. Cheers, b
@yijieding5610
@yijieding5610 Год назад
using cub to do quaternion explanation is just genius. many thanks
@midniteoilsoftware
@midniteoilsoftware Год назад
I’ve been using Quaternion.Identity and Quaternion.LookRotation for a couple years but but never understood how they worked until watching your video. Thanks for this!
@behrampatel3563
@behrampatel3563 11 месяцев назад
This is a very unique take on the path to understand what quaternions are. It helps a lot . Thank you
@darrennew8211
@darrennew8211 10 месяцев назад
This is a very clever presentation that does a great job of making the non-commutitive nature of Q's intuitive.
@botalex4845
@botalex4845 Год назад
I cannot believe that a 10-minute video, that was made with paint and a Rubix cube explained Quaternions better than 3blue1grey and their fancy graphics. Thank you!
@minhajsixbyte
@minhajsixbyte Год назад
one is mathematician's explanation, the other is programmer's explanation.
@angeldude101
@angeldude101 Год назад
​@@minhajsixbyte Ya, 3B1B's explanation is the programmer's explanation, and this is the mathematician's explanation.
@speedcubergd
@speedcubergd Год назад
Rubik’s*
@pronounjow
@pronounjow Год назад
​@@angeldude101Isn't it the other way around?
@angeldude101
@angeldude101 Год назад
@@pronounjow Nope. A programmer would care mostly about how to implement something and use it. From the perspective of lists of numbers, quaternions are 4D and have crazy multiplication table that you just need to write down in your code and then forget about it. A mathematician should actually care about the meaning behind the symbols and the relationships between them. Basically, as a programmer, quaternions are a compact but arcane data structure that happens to be good at rotating vectors. As a mathematician, quaternions _are_ rotations, and the multiplication table is just a reflection of the physical rotations that quaternions translate into algebra.
@zoop391
@zoop391 Год назад
Just what I needed :) I've been struggling to understand quaternions mathematically, so just to understand how to use the tool is good enough for me for now.
@TrueBlur
@TrueBlur 2 года назад
This helped me get through a problem on the last day of my internship! Thanks!
@AlexRoseGames
@AlexRoseGames 2 года назад
haha, glad I could help, congrats
@breakdancerQ
@breakdancerQ Год назад
This is a very good tip on how to visualise these damn things! Not there yet but this certainly helps a ton!
@MattRix
@MattRix 2 года назад
This is great! I find that most of the time when I use quaternions I'm thinking of them in the way you talked about right at the end, either as a Quaternion.LookRotation (forward vector, up vector) or as an angle around an axis vector with Quaternion.AngleAxis (angle, axis vector), which works like a shish kebab as you described.
@RaphpowerSGSUModding
@RaphpowerSGSUModding Год назад
When you make a sonic fan-game and your character need to have a tube based movement system this is perfect
@mactyler
@mactyler 2 года назад
Dude oh my god, thank you so much for this, first time its ever clicked for me!
@AlexRoseGames
@AlexRoseGames 2 года назад
haha glad I could help
@fuseteam
@fuseteam 10 месяцев назад
instructions unclear solved a rubik's cube with quaternions
@DanielJKlug
@DanielJKlug 2 года назад
This is super helpful as a visualization tool. Thank you!
@Ar3Ar3
@Ar3Ar3 Год назад
You just made Quaternions easy for me.
@iraf27
@iraf27 5 месяцев назад
Thanks a lot! maybe in a few hours i can understand the concept of quaternion, if my brain don't explode before it
@spoopyradicalsnake
@spoopyradicalsnake Год назад
to really understand quaternions you need : direction cosine matrix, euler rotation matrix --> rodrigues rotation formula, finally quaternions. when you use euler rotation matrix, you will see why we need quaternions really bad
@_tioanon
@_tioanon Год назад
That's abbsolutely brilliant. Thank you!
@AlexRoseGames
@AlexRoseGames Год назад
No problem. Enjoy!
@ModerateDev
@ModerateDev 8 месяцев назад
The end of this video was enlightening I thank you !
@peggycarter6515
@peggycarter6515 6 месяцев назад
5:21 şiş kebap dediği yerde koptum 😅güzel betimleme olmuş
@AlexRoseGames
@AlexRoseGames 6 месяцев назад
haha, teşekkürler
@michaeldiaz4285
@michaeldiaz4285 2 года назад
Solid explanations and examples
@carstenschluter3446
@carstenschluter3446 5 месяцев назад
legend
@susanollington5257
@susanollington5257 2 года назад
Haven’t really needed to use this before because I’ve been in 2D, but this was fascinating and a good explanation of something I’ve always heard people explain as “something you don’t really need to understand yet”
@AlexRoseGames
@AlexRoseGames 2 года назад
I still find use for quaternions in 2d. They're nice because they can always find the shortest angle. say you're at 270 degrees and you want to get to 30 degrees, the best way to go is to translate from 270 to 360/0 through to 30 (60 degrees), but if you lerped you would go 240 degrees in the opposite direction instead. you can fix this with modulos but sometimes it's easier to just use quaternions, especially if you're moving things around by position too. like you want an eye that spins but the iris follows you
@MattRix
@MattRix 2 года назад
@@AlexRoseGames Worth noting that Unity users can also use Mathf.DeltaAngle() for that specific use case.
@petethechin
@petethechin Год назад
Im still confused.....
@PaulSpeed42
@PaulSpeed42 2 года назад
In case it's helpful to anyone stuck using 3x3 rotation matrices, for everything in this video Quaternion can be replaced with 3x3 rotation matrix and its all still true. They are interchangeable in this conversation. But I guess "quaternion" is easier to say than "3D rotation" all the time.
@FranziskanerFranz
@FranziskanerFranz Год назад
Not quite interchangeable, Euler angles suffer from the gimble lock problem, which quaternions inherently overcome.
@PaulSpeed42
@PaulSpeed42 Год назад
@@FranziskanerFranz that's why I never mentioned Euler angles.
@FranziskanerFranz
@FranziskanerFranz Год назад
@@PaulSpeed42 ah that's right, my bad. As soon as I read matrix I jumped to euler angles, simply because I never wrote down quaternions as matrix.
@angeldude101
@angeldude101 Год назад
Rotation matrices are not rotations, but rather _orientations._ They don't distinguish between clockwise and counterclockwise. Quaternions meanwhile are _rotations,_ with 2 distinct quaternions for every orientation, one which travels clockwise from a given perspective, and one which travels counterclockwise from that perspective. Also regardless of rounding errors, every quaternion is a scaled copy of a unit rotation, where as matrices, with 5 extra redundant components can be much easier to accidentally turn a normalized orientation into something that definitely _isn't_ an orientation.
@gasparliboreiro4572
@gasparliboreiro4572 10 месяцев назад
can someone explain me how to interpretate the components in a cuaternion? like a + ib + jc + kd i can only think about a, b, c, d as a 4d vector, like (a, b, c, d), how does that ends up being a rotation?
@AlexRoseGames
@AlexRoseGames 10 месяцев назад
it's not something that's easily human parseable. if pitch is a, yaw is b and roll is c, quaternion x y z and w are: x = sin(c/2) * cos(a/2) * cos(b/2) - cos(c/2) * sin(a/2) * sin(b/2) y = cos(c/2) * sin(a/2) * cos(b/2) + sin(c/2) * cos(a/2) * sin(b/2) z = cos(c/2) * cos(a/2) * sin(b/2) - sin(c/2) * sin(a/2) * cos(b/2) w = cos(c/2) * cos(a/2) * cos(b/2) + sin(c/2) * sin(a/2) * sin(b/2)
@danibiyarslanov
@danibiyarslanov Год назад
i like the title
@AlexRoseGames
@AlexRoseGames Год назад
thankyou, i like your comment
@andrey730
@andrey730 11 месяцев назад
Example at 9:17 helps understanding how quaternions inverses can be used but I'd probably just add to pos_A some offset_vector multiplied by transform_matrix_A. Or it can even be just 1 basis vector from transform_matrix_A multiplied by offset magnitude (in case if we're sure about the axis). Unsure though how much quaternions more efficient than matrix multiplication. Multiplying matrix by vector typically takes 9 multiplications and 3 adds, don't know about the quats. PS Love the shish kebab metaphor 😂
@AlexRoseGames
@AlexRoseGames 10 месяцев назад
yeah, the example was there to demonstrate how you can operate on inverses with a simple example, but in reality I would do the same as you. though there are more complicated scenarios where I would use the method I described
@zanagi
@zanagi 8 месяцев назад
Really cool to use rubik cube
@AlexRoseGames
@AlexRoseGames 8 месяцев назад
thankyou
@cristianjuarez1086
@cristianjuarez1086 2 года назад
Excellento
@thtdrgnmn
@thtdrgnmn 5 месяцев назад
Me want know how make quaternion relative to other quaternion
@AlexRoseGames
@AlexRoseGames 5 месяцев назад
quatBRelativeToA = quatB * inverse(quatA)
@AlexRoseGames
@AlexRoseGames 5 месяцев назад
e g let's say you spun your cube to configuration A: +z then +x then +x the inverse of this (to get back to a solved rubiks cube) is -x then -x then -z let's say your new configuration B is +z +x + x +y. I think you will agree that relative to A you would expect B to be simply +y so let's see, inverse (A) = -x -x -z, B is +z +x +x +y, so B * inverse(A) does all of the righthand instructions then all of the left so -x -x -z +z +x +x +y as you can see from the middle, the -z and +z cancel, then the two pairs of x's cancel, leaving just +y. so we can see in this example the formula works
@thtdrgnmn
@thtdrgnmn 5 месяцев назад
@@AlexRoseGames this single comment just helped me understand quaternions to a higher degree
@josephrussell1419
@josephrussell1419 7 месяцев назад
You are comparing how multiplication works in quaternions with how addition works in 3D vectors. But the quaternions still also have addition with an additive identity and additive inverses and behave just like 4D vectors in that sense. You saying that quaternions have multiplication "instead" of addition will make people feel they understand things when they'll just get horribly confused if they delve any deeper. Also, the two systems do not have different notions of an "origin". You are confusing the idea of an origin in the sense of (0,0,0) or (0,0,0,0), i.e., a coordinate system, with the idea of identity with respect to some transformation. When we say that one times two equals two, and two times 1/2 equals one, we don't call "one" the "origin". It's the same in any higher-dimensional number system. I like the Rubik's Cube demo though.
@timlindberg3833
@timlindberg3833 8 месяцев назад
A vector also has a magnitude 🤓
@AlexRoseGames
@AlexRoseGames 8 месяцев назад
in this case I was using the word direction a bit colloquially for non layman, as in like "the pub is 5 miles north east of here". more technically I meant a displacement (aka a unit vector direction and its magnitude) not just a normalised direction. the point anyway was to distinguish that a vector does not have a preferred origin, it describes a transform that takes you from any arbitrary point to another calculable point based on that transformation applied in a specific frame
@radishmonster2760
@radishmonster2760 Год назад
Are you related to mike rose?
@AlexRoseGames
@AlexRoseGames Год назад
yes
@fakeit6339
@fakeit6339 Год назад
that rubiks website or game please
@AlexRoseGames
@AlexRoseGames Год назад
just google rubiks online, I went on the first link
@no3339
@no3339 Год назад
Geometric algebra >>
@Official_Zeusifer
@Official_Zeusifer 2 года назад
tNice tutorials software
@critical_always
@critical_always 6 месяцев назад
Why have all the kiddies started talking in that weird exaggerated wayje
@AlexRoseGames
@AlexRoseGames 6 месяцев назад
I'm 32, this is how I speak in lectures
@jr8209
@jr8209 Год назад
The puzzle cube adds unnecessary complexity.
@user-dd9is6iy9m
@user-dd9is6iy9m 2 года назад
This was pretty helpful! As a guy who hates dealing with Quaternions - thank you.
@AlexRoseGames
@AlexRoseGames 2 года назад
no problem! whenever I looked for how to deal with quaternions it was always like "now imagine this 4th dimensional sphere" and I was just like... okay this makes zero intuitive sense to me
@Jay-kb7if
@Jay-kb7if Год назад
it's frustrating that it's all about the gimbal lock. People need to start thinking about whether they can rotate at points other than the x y or z axis with a gimbal.
@KaoukabiJaouad
@KaoukabiJaouad Год назад
you didn't explain quaternions at all, you explained basic rotations, and transformations, the whole point of quaternions is avoid gimbal lock, so it never ever happen, you introduced your videos with that premise and the whole time you didn't tackle the subject.
@AlexRoseGames
@AlexRoseGames Год назад
the video is called how to *think about* quaternions, the description states it's to use in your game engine. in the first 25 seconds I said I wouldn't be talking about the mathematical aspect of quaternions. this video is aimed at people who need to use quaternions in their development. if you want a mathematical description of quaternions I recommend 3blue1brown's video, it should be the top hit on youtube when you search up quaternions
@KaoukabiJaouad
@KaoukabiJaouad Год назад
@@AlexRoseGames you made a mistake, just change the video description, and put mathematical rotations applied to games, if you put quaternions there, you have to talk about what makes quaternions, quaternions, you introduced the video on gimbal lock and the need for quaternions and you followed on rotations being not commutative the order is important(that algebra 101), and you stretched that point the whole video, your title is a clickbait, people are so dumb look at the comment below this one, one guy thought you explained quaternions better than 3blue1brown.
@AlexRoseGames
@AlexRoseGames Год назад
@@KaoukabiJaouad you are just not the target audience for this video. 3blue1brown's video is great, the video you want to watch already exists. you are irrationally mad that people here found this video useful, they're exactly whom I made it for. developers applying quaternions to game development or robotics don't need to know about complex spaces, they need an intuitive way to think about applying them. if you didn't listen to the intro or read the description, that's a you problem not a me problem
@Oxygenationatom
@Oxygenationatom 5 месяцев назад
@@AlexRoseGamesim so sorry that you have to deal with people like this
@lanchanoinguyen2914
@lanchanoinguyen2914 Месяц назад
Maybe he was incorrect but you are also wrong.Quaternions are not there for avoid gimbal lock.Because rotation matrices don't have any gimbal lock at all! Only the false order of euler angles causes gimbal lock. Quaternions are much more memory optimized than matrices and they can be interpolated easily that is the reason why they're used.
Далее
БЕЛКА СЬЕЛА КОТЕНКА?#cat
00:13
Просмотров 1,4 млн
Avaz Oxun - Yangisidan bor
14:29
Просмотров 244 тыс.
Fantastic Quaternions - Numberphile
12:25
Просмотров 1 млн
How to Use Quaternions
14:20
Просмотров 19 тыс.
Quaternions EXPLAINED Briefly
17:51
Просмотров 304 тыс.
Euler (gimbal lock) Explained
8:07
Просмотров 1,4 млн
Quaternions
39:07
Просмотров 172 тыс.
How quaternions produce 3D rotation
11:35
Просмотров 93 тыс.
Euler vs Quaternion - What's the difference?
8:49
Просмотров 42 тыс.
Genetic Algorithms Explained By Example
11:52
Просмотров 328 тыс.
БЕЛКА СЬЕЛА КОТЕНКА?#cat
00:13
Просмотров 1,4 млн