Geometric Algebra - 3D Rotations and Rotors

  Рет қаралды 22,775

Mathoma

Mathoma

Күн бұрын

Пікірлер: 75
@jeanhealey1354
@jeanhealey1354 7 жыл бұрын
WOW! I really enjoy all of these videos. I'm not significantly educated in mathematics and the idea of something that needs to do a 4pi rotation to return to its initial state is something that completely blows my mind and I commend the creator of these videos for simplifying these complex ideas into something that a lay-person like me can play around with and (sort of) understand. AMAZING STUFF!
@albat6538
@albat6538 5 жыл бұрын
@Matoma, I can't thank you enough for your insightful videos on geometric algebra. This approach is very intuitive and saves a lot of time.
@danielkuntz8141
@danielkuntz8141 6 жыл бұрын
These videos are brilliant! Thank you so much for putting them together. As an engineer who has used complex number and rotation matricies for a ton of stuff, I really appreciate this new conceptual understanding that geometric algebra gives me of them! You make it very easy to understand! I have binge watched all these videos up to this point in utter fascination and don't plan on stopping. Good work!
@chimetimepaprika
@chimetimepaprika 4 жыл бұрын
This is one of my favorite channels ever.
@kevinportillo9882
@kevinportillo9882 3 жыл бұрын
I had so much trouble understanding why rotations are often in that from. This is so simple to follow an understand. Thank you!
@jamesmarlar4231
@jamesmarlar4231 7 жыл бұрын
I hope you continue this series all the way through Geometric Calculus.
@arcshinus7238
@arcshinus7238 10 күн бұрын
35:04 Why do you define the rotor as having a negative angle and put it on the left side? It is more natural to define R as having a positive angle and being on the right side (reversed on the left) - that is the way David Hestenes defined it.
@sdmartens22
@sdmartens22 7 жыл бұрын
Your content is among the best on youtube. I feel like i didn't get a good intuition of what rotors are when not paired with their counterparts. You mentioned there were two ways to perform any rotation theta, is the second way rotating the other way two pi minus theta? Thanks for your time!
@Math_oma
@Math_oma 7 жыл бұрын
+Shannon Martens Thanks! There's a lot to say about rotors, so what they are shouldn't be self-evident from the video other than that I form them by multiplying even numbers of unit vectors and in G(3) they can all be written in that exponential form with an angle and unit bivector. The observation about the two possible ways to rotate, one using simply theta or the other using 2pi-theta (but rotated in the opposite _sense_) is a good one. If you want, you can identify one rotor for each sense of rotation - two different rotors but equivalent action upon vectors.
@annakinderman8135
@annakinderman8135 Жыл бұрын
These videos are immensely helpful! We are using Geometric Algebra in our Quantum Mechanics class, and there aren't many resources out there for this topic...
@jaca2899
@jaca2899 4 жыл бұрын
1:04 YOU HAD A CHANCE TO WRITE UWU
@Vannishn
@Vannishn 4 жыл бұрын
Hello ! I love your videos, watched the geometric algebra playlist up to here and I have a question. Why couldn't we rotate the projection of a 3d vector u onto the plane of rotation with |u//| exp(theta B) and then add the previously rejected part instead of using the rotor sandwich ?
@thomaskaldahl196
@thomaskaldahl196 3 жыл бұрын
48:53 I'm angry I didn't learn about your awesome channel sooner >:(
@jamesking2439
@jamesking2439 5 жыл бұрын
Thank you for creating these videos! I was able to implement rotors in my engine after watching them.
@inv41id
@inv41id 3 жыл бұрын
Relating to rotating around an axis only working in 2 or 3 dimensions and rotating in a plane generalizing to higher dimensions: I (used to) like to think of it as rotations in dimension n happening around an object of dimension n - 1 In 2D you rotate around a point, in 3D you rotate around a line, in 4D you would rotate around a plane (as mind-bending as that is) I have to agree this way of thinking about is much more intuitive
@angeldude101
@angeldude101 2 жыл бұрын
Actually, there's a way of thinking about geometric algebra that in some ways does generalize better using an axis of rotation rather than a plane of rotation, and that mainly comes when you're no longer rotating around the origin. In 2D, rotating within the plane implies that you're rotating around the origin, but if you actually want to rotate around some other point, that's all the same plane. This is the case in what I call "mirror space," where the vectors instead represent mirrors. e₁ and e₂ now represent the mirrors that reflect across the hyperplanes of x = 0 and y = 0 respectively (note I still avoid mentioning "normal vectors" because those are still unhelpful.) Attempting to compose two mirrors like that gives a rotation just like in the version used here, but what plane is it in? It's not in either plane that was composed, but rather it's all the points that didn't get moved by either reflection, which is the line (in 3D), plane (in 4D), point (in 2D), etc where they intersect. And depending on what algebra you're in, this axis can take different positions or even shapes. A circular axis? Perfectly legal with the use of 2 spherical mirrors in CGA. It does require expanding the meaning of axis to include a plane in 4D, as well as whatever other esoteric shapes your geometry of choice allows, but it does allow for "rotation" to mean things other than a simple rotation around the origin. Translations are rotations around an axis that lies all the way at the horizon, which is also the line where two parallel planes intersect. This way of thinking is standard when doing Projective Geometric Algebra, but it works just as well in almost any other Geometric Algebra that I can think of.
@angelmendez-rivera351
@angelmendez-rivera351 Жыл бұрын
@@angeldude101That kind of application is better when dealing with affine spaces, not vector spaces
@angeldude101
@angeldude101 Жыл бұрын
@@angelmendez-rivera351 Affine spaces _are_ vector spaces. They're not spaces of _arrows_ though, but at the same time _vectors are not arrows._ Arrows are vectors, but not the other way around.
@angelmendez-rivera351
@angelmendez-rivera351 Жыл бұрын
@@angeldude101 That's not correct. All affine spaces have a vector space associated to them, but the association is neither identity nor isomorphism.
@abdwyer
@abdwyer 2 жыл бұрын
At 1:12 in the video, I'm just wanting to understand the terminology. Are you saying the word "hit", as in you "hit it on both left and right"?
@Math_oma
@Math_oma 2 жыл бұрын
Yes
@Kelikabeshvill
@Kelikabeshvill 2 жыл бұрын
You’re awesome! Please do 4 and higher dimension rotations. It would be great to see how those bivectors that are not 2-blades look like
@dougb681
@dougb681 7 жыл бұрын
Fascinating stuff! You mention around 29:33 that Rdagger = Rinverse, and then go on to complete the rest of the video using dagger notation. So what is the purpose of dagger notation? Why not just use inverse notation?
@Math_oma
@Math_oma 7 жыл бұрын
+Doug B The dagger symbol may be used later to denote _reversal_ whereas in this special case where the rotor is normalized, the reverse is the same as the inverse.
@dougb681
@dougb681 7 жыл бұрын
Cool! Hope you have a chance to add the later material at some point. Thanks.
@orsobianco1402
@orsobianco1402 Жыл бұрын
I just discovered this very interesting series of videos, and I thank you a lot for this new (to me) presentation. I have a small question. Wouldn't it be better to avoid the exponential notation e^B.theta for cos(theta)+B.sin(theta)? The exponential notation is usually reserved for commutative algebra and there is no commutativity here in Clifford algebra. This notation can be misleading, since e^B1.theta1 * e^B2.theta2 will generally not be equal to e^(B1*theta1+B2*theta2) . As a simple example, consider exp(Pi/2*e1e2) which is e1e2. If exp(Pi/2*e1e2) * exp(Pi/2*e2e3) = exp(Pi/2*(e1e2+e2e3), we have e1e2e2e3 = e1e2 + e2e3, thus e1e3-e1e2-e2e3 = 0, which is impossible as e1e2, e2e3, e3e1 are bivector base elements. Could you please give me your opinion? Thank you.
@angelmendez-rivera351
@angelmendez-rivera351 Жыл бұрын
Yes, you are correct
@byronwatkins2565
@byronwatkins2565 3 жыл бұрын
We can always define rotations in higher dimensions similarly, but the physical significance might be less apparent. The exponents are bivectors in the plane of rotation with magnitude angle/2. How that bivector gets constructed is irrelevant, but given two vectors in the plane, angle/2 (u^v)/|u^v| is such a bivector. Given a vector perpendicular to the plane, angle/2 v I /|v| is such a bivector. In a way the tendency of bivectors to rotate is activated by exponentiating it; however, the reflection through the plane that accompanies it must be reversed afterward.
@dsusoftwarecommunity7864
@dsusoftwarecommunity7864 7 жыл бұрын
Awesome videos! It really helped for me to understand underlying details of 3D rotations! Thanks.
@Math_oma
@Math_oma 7 жыл бұрын
+SideCommunity You're welcome.
@allanrocha4647
@allanrocha4647 3 жыл бұрын
Awesome well explained videos! thanks and keep it up!
@darthmoomoo
@darthmoomoo 4 жыл бұрын
Are rotations of a vector always in a 2D plane regardless of how many dimensions a space has?
@daemond8093
@daemond8093 4 жыл бұрын
Did you get any answer for this?.. I have the same question
@jaredhughes2679
@jaredhughes2679 3 жыл бұрын
The input vector and output vector, if you put their tails together, form three points, and you can always find a plane passing through those three points regardless of the number of dimensions.
@alanmochel5096
@alanmochel5096 7 жыл бұрын
Very well done set of videos introducing geometric algebra along with a single application to Kepler's laws of planetary motion. My only complaint is that it stops at video 13.
@Math_oma
@Math_oma 7 жыл бұрын
+Alan Mochel There will be more videos.
@Michallote
@Michallote 2 жыл бұрын
@@Math_oma we miss you man
@KieranORourke
@KieranORourke 7 жыл бұрын
Bravo! Wonderful series of videos. I was reared on the concept of an 'imaginary scalar' (two words; one fanciful, the other incorrect), justified by some some annoying Polynomialist insisting on a solution to the almost trivial equation x^2+1=0 The fact that this produced such extraordinary mathematical richness was, for me, an itch I could not scratch, for decades. Geometric Algebra shivers my tiny brain in it's ability to explain, simplify & clarify the structures I use in Physics and Mathematics, and Quantum Mechanics is being re-written in this language with quiet gasps of "Ah! so that's what I was really doing" .
@Michallote
@Michallote 2 жыл бұрын
Can we make it so we only have to specify the angle of rotation from the first vector of a unit bivector?
@Michallote
@Michallote 2 жыл бұрын
Oh now I see I should have finished the video instead of going on a tangent trying to define w in terms of v and theta just to use it for this formula. Much more concise. I have one doubt though. For the rotors unit bivectors the u and v vectors have to be orthonormal as well?
@angelmendez-rivera351
@angelmendez-rivera351 Жыл бұрын
@@MichalloteThey don't have to be orthonormal. The magnitudes will always cancel out if you use the correct formula.
@MauritianStruggle
@MauritianStruggle 7 жыл бұрын
Dude thanks I am covering this in my 3d graphics course.
@Math_oma
@Math_oma 7 жыл бұрын
+Mauritian Struggle Yeah, this seems to be an important topic for computer graphics people. You might notice that there's a lot of discussion along those lines in my quaternion videos too because that's one formalism for doing rotations (intimately linked to the material in this video).
@pronounjow
@pronounjow 6 жыл бұрын
I think I'm starting to understand why Euler's formula for the quaternions has half-angles instead of full angles, especially after reviewing deriving Euler's formula. I found this pdf slideshow while looking around on Google Image Search that used exponent addition to derive the formula (EDIT: Thanks Angel for your correction; I'll just change the operators on the left of these equations and otherwise leave this post as is) ( Cis(x)*Cis(y)=Cis(x+y) -(resembles)> a^x * a^y = a^(x+y) ; replace a with e^ln(a) and then ln(a) with A, and then you would get A=i, the imaginary unit) before proving the derivation with the Taylor series expansions of e, Cos, and Sin. Of course, there is a video on this channel regarding this topic, so I'll be reviewing that again. I really like how this stuff is generalized, and made easier and more intuitive with GA. It's...clicking, at least. 😀
@angelmendez-rivera351
@angelmendez-rivera351 Жыл бұрын
You made a mistake. a^x + a^y ≠ a^(x + y). Rather, (a^x)•(a^y) = a^(x + y), and similarly, cis(x)•cis(y) = cis(x + y). However, both of these are incorrect when it comes to quaternions, because quaternion multiplication is not commutative, and the above formulae only hold when multiplication is commutative.
@pronounjow
@pronounjow Жыл бұрын
@@angelmendez-rivera351 Oh, thank you for the correction! I've since watched other videos about quaternion multiplication and rotation that made the half-angle thing much easier to grasp, and I also learned that it has something to do with spinors.
@Achrononmaster
@Achrononmaster 7 жыл бұрын
The other nice thing about GA formulations is that you are dealing only with the algebra acting on itself! This is not widely appreciated. You do not need to select a matrix operator outside of the algebra in order to transform your vectors. I believe this is a huge simplification when formulating quantum mechanics for instance, but few other than Hestenes and the DAMTP group have taken this approach. I think there are still a lot of insights that can be made which the work of Hestene's and Lasenby-Doran et al., have not fully explored. For instance, a lot of the gauge groups should drop out just from the algebra, without any need for invoking quantization, at least the representations for the Poincare-Lorentz group. Any chance you have time to investigate this and give it one of your nice KZbin expositions?
@MustSeto
@MustSeto 5 жыл бұрын
I'm curious about something, is it possible to have fractions/multiples of rotors? If I have a rotor that rotates some amount, can I use it to find another rotor that rotates ~2.3 times as much, or ~0.12 times as much, or whatever? But with a catch: can it be done _without_ calculating any angles?
@demr04
@demr04 3 жыл бұрын
You would have to work the angles any way. If you divide a rotor, you are just dividing e^theta*B. Maybe you could use the geometric product form, but to find the pair of vectors, you also have to work the angles. How rotors are not linear, to find the k-times rotation, you have to take de k-power of the rotor. Ex: the rotor(a) which does 1.5 times the rotation of rotor(b) is rotor (a) = exp( theta/2 *1.5B) = (exp (theta/2 B)) ^1.5 = (rotor(b)) ^1.5. it seems like you don't have to work angles, but just remind that exp(theta/2 B) is just cos(theta/2) + sin(theta/2)B, so you are taking the k-power of a multivector which is a function of theta
@MustSeto
@MustSeto 3 жыл бұрын
@@demr04 Rotors/Quaternions can be stored as a list of 4 values (one per bivector element plus the scalar), and once you have them you can perform operations on them without referring to angles, including multiplying them, which composes them. You don't _always_ need to think of it or operate on it as being e^theta*B. I've done this much before So if you have a "base" rotor, you can definitely use it to rotate by any (positive) integer multiple of it without needing any angles/trigonometry (sin/cos/etc), though I'm not sure if there's an efficient way to do that Calculating rotor^(n) by literally multiplying it n times wouldn't be great, but maybe there's a shortcut which doesn't grow with n. That's part of what I wanted, but I also wanted to do it with fractional exponents. I think if the first is possible then so is the second Ultimately I was curious if it'd be possible to write a program which implements rotors but never has to use trigonometric functions directly
@phlimy
@phlimy 7 жыл бұрын
Thank you very much for this! It's very useful. I have a question regarding rotors in G^4. I'm trying to make a 4D rendering engine. EDIT: Okay, actually, nvm the question! Rotor-vector-rotor multiplication wasn't that hard! Again thank you very much for this series! /* irrelevant now */ If I understand correctly, in G^3, a general rotor can be defined like this: a + be2e3 + ce3e1 + de1e2 Which is very similar to a quaternion: a+bi+cj+dk To rotate a vector by a quaternion, you can change the vector into a quaternion with 0 -> a, x->b, y->c, and z->d That makes it easier since you can then just multiply it as you would with a quaternion. In G^4 though, from what I understand, a rotor would be defined like this : a + be1e2 + ce1e3 + de1e4 + ee2e3 + fe2e4 + ge3e4 (+ possibly he1e2e3e4 for multiplication) Is it possible to convert a 4D vector into a rotor like in G^3 ? If so, how ? I have already done a function for Rotor-rotor multiplication and it was very confusing and messy, and it looks like it would be orders of magnitude worse if I had to do Rotor-vector-rotor multiplication...
@Math_oma
@Math_oma 7 жыл бұрын
+Phlimy I'll eventually get to higher dimensional stuff in this series but what's nice is that there are no ad hoc techniques needed in higher dimensions. The ideas gained in low-dimensional rotations transfer naturally to higher dimensions.
@michaelstark2832
@michaelstark2832 4 жыл бұрын
When I multiply by just the Geometric Product, the vector rotates by the angle between the two vectors used to create the Geometric Product(per your example)! Why do I need to multiply by the GP inverse?
@cristian-bull
@cristian-bull 4 жыл бұрын
Because multiplying only by the geometric product doesn't rotate the vector, but the projection of the vector on the bivector plane. It would be equivalent if the vector was in the bivector plane. If you are in G(2) that will always be the case, but in G(3) you'd need to be extra careful if you want to use that formula. The sandwich using the inverse works in G(3) even if the vector is not in the plane. It's more convenient because is more general.
@michaelstark2832
@michaelstark2832 4 жыл бұрын
The reason you have to multiply by the inverse is that GA is trying to keep track of the basis vectors as well as the vector itself. In 2D it works with just one GP and the basis vectors come out right. The basis vectors don't come out right in 3D, you get that nasty 123 answer, and there's no way to get rid of it unless you multiply again by the GP inverse. Of course this means that you have just rotated the vector twice so the GP needs to start out 1/2 the angle of rotation value.
@angelmendez-rivera351
@angelmendez-rivera351 Жыл бұрын
@@cristian-bullThat problem is easily solved by just adding the rejected part of the vector from the plane, though.
@porky1118
@porky1118 7 жыл бұрын
This way you could convert a torque into a rotor. But how can this be done in heigher dimensions where double rotations exist and not all bivectors are blades? The solution seems to be splitting the torque bivector into orthogonal blades, generating a rotor for each of them and multiplying them. But how can a bivector be decomposed? Would be nice if you made a video about that. I don't find anything I understand.
@Michallote
@Michallote 2 жыл бұрын
I think it's simpler than that. Torque doesn't necessarily rotate it imparts angular momentum though. T = I α where I is the inertia tensor and alpha is just angular acceleration. In this case it is very similar to the Kepler problem T = r ^ F and it is a Bivector already
@porky1118
@porky1118 2 жыл бұрын
@@Michallote It's been 5 years already. I think, what I wanted is to convert angular momentum to a rotor. And I think, the solution is pretty simple: It's the same as in 2D or 3D, no decomposition necessary. I do "e ^ angular_momentum", which is always a versor because it's done using multiplication, even if the bivector is not a blade. Only the sin/cos formula doesn't work in higher dimensions.
@alfonshomac
@alfonshomac 7 жыл бұрын
Instant like and a comment for you. Thank you for taking the time. Hi fives.
@sansamman4619
@sansamman4619 7 жыл бұрын
who is that guy in the beginning of the channel intro
@Math_oma
@Math_oma 7 жыл бұрын
+san kitty That would be the eternal lolcow known as Alex Jones.
@robfielding8566
@robfielding8566 7 жыл бұрын
i wrote a bit if python code that uses fraction as its numeric type, and does this double reflection to implement rotations. in real applications, i imagine that you usually have two example vectors (v1,v2) as givens to define the rotation and plane for rotating a vector x. you would then need to calculate the vector v as half-angle between v1,v2. i wasn't able to compute v (in general) without square roots showing up; where you can work completely rationally when you have half-angles as givens.
@michaelstark2832
@michaelstark2832 4 жыл бұрын
If you set up v1,v2 as the half angle initially, then it's just straight multiplication after that.
@cristian-bull
@cristian-bull 4 жыл бұрын
if you are doing a 180 degrees rotation, the half vector between v1 and v2 would be 0
@rrr00bb1
@rrr00bb1 4 жыл бұрын
@@cristian-bull the order matters. say that there is 1 degree from a to b. that means 179 degrees from b to a. it works because the orientation matters. thats why you don't have handedness issues.
@cristian-bull
@cristian-bull 4 жыл бұрын
@@rrr00bb1 yes, i was talking about his idea of finding a half angle vector when you have two vectors who describe the full rotation. I assumed he averaged the vectors. Don't know why I assumed that, no average needs square roots.
@rrr00bb1
@rrr00bb1 4 жыл бұрын
​@@cristian-bull half-angle between arbitrary length vectors requires normalizing the two vectors before averaging them (or otherwise dealing with their different lengths), and normalizing that (or making the two the same length). there might be a way to get the normal in between the two of them, but i could not find a way.
@Erhannis
@Erhannis 4 жыл бұрын
"Leave your angry comments" hahahahaha, sorry; I already did that earlier on in the evening; I'm blowing through here trying to find a very brief explanation of like the one important detail missing from the explanation I got earlier
@CouchTomato87
@CouchTomato87 Жыл бұрын
Is it fair to say that the imaginary numbers i, as is classically taught, is a very special number in an "imaginary axis" that squares to -1... but rather broadly, just a bivector that happens to act as a pseudoscalar (i) in 2D and a pseudovector in 3D? In other words, the notion of "imaginary numbers" is misleading to begin with? I'm fascinated with GA because before I learned about it, I theorized that a single number 'i' does not make sense in 3D because there are an infinite number of planes on which you can rotate a number (such as x = 1) and square it to make negative 1. My idea was that each of these planes could be defined as their own imaginary number, much like how quaternions defines 3 imaginary numbers, and thus the "imaginary" part is actually simply real but defined by the plane spanned by that imaginary number. Now I know that these planes I've described are simply bivectors!
@angelmendez-rivera351
@angelmendez-rivera351 Жыл бұрын
You're taking the word "imaginary" in the name far too literally. It's just a name, nothing else.
@anon7977-z9l
@anon7977-z9l 3 жыл бұрын
Et tu Brute†
@wolftribe66
@wolftribe66 4 жыл бұрын
hope this angry comment helps the algorithm
How do you DERIVE the BELL CURVE?
35:21
Mathoma
Рет қаралды 110 М.
REAL or FAKE? #beatbox #tiktok
01:03
BeatboxJCOP
Рет қаралды 18 МЛН
My scorpion was taken away from me 😢
00:55
TyphoonFast 5
Рет қаралды 2,7 МЛН
Geometric Algebra in 2D - Vector Projection and Reflection
31:23
The Simple Math Problem That Revolutionized Physics
32:44
Veritasium
Рет қаралды 8 МЛН
Geometric Algebra - Rotors and Quaternions
36:26
Mathoma
Рет қаралды 16 М.
Geometric Algebra in 2D - Two Reflections is a Rotation
20:45
Geometric Algebra in 3D - Fundamentals
29:21
Mathoma
Рет қаралды 27 М.
Visualizing quaternions (4d numbers) with stereographic projection
31:51
Geometric Algebra in 2D - Linear Algebra and Cramer's Rule
30:00
Dirac's belt trick, Topology,  and Spin ½ particles
59:43
NoahExplainsPhysics
Рет қаралды 449 М.
A Swift Introduction to Geometric Algebra
44:23
sudgylacmoe
Рет қаралды 896 М.
REAL or FAKE? #beatbox #tiktok
01:03
BeatboxJCOP
Рет қаралды 18 МЛН