Thanks a lot! maybe in a few hours i can understand the concept of quaternion, if my brain don't explode before it
@carstenschluter3446Ай бұрын
legend
@MDMAxАй бұрын
Graphical "Colossal Cave Adventure" :)
@thtdrgnmn2 ай бұрын
Me want know how make quaternion relative to other quaternion
@AlexRoseGames2 ай бұрын
quatBRelativeToA = quatB * inverse(quatA)
@AlexRoseGames2 ай бұрын
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
@thtdrgnmn2 ай бұрын
@@AlexRoseGames this single comment just helped me understand quaternions to a higher degree
@peggycarter65152 ай бұрын
5:21 şiş kebap dediği yerde koptum 😅güzel betimleme olmuş
@AlexRoseGames2 ай бұрын
haha, teşekkürler
@critical_always3 ай бұрын
Why have all the kiddies started talking in that weird exaggerated wayje
@AlexRoseGames3 ай бұрын
I'm 32, this is how I speak in lectures
@josephrussell14194 ай бұрын
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.
@barackgellineau17014 ай бұрын
Hey bro when you going to post again
@AlexRoseGames4 ай бұрын
I make videos when I have a good reason to share. it takes time to make videos and it's just a hobby for me. is there something you wanted to see?
@thedeeprot4 ай бұрын
@ModerateDev5 ай бұрын
The end of this video was enlightening I thank you !
@zanagi5 ай бұрын
Really cool to use rubik cube
@AlexRoseGames5 ай бұрын
thankyou
@timlindberg38335 ай бұрын
A vector also has a magnitude 🤓
@AlexRoseGames5 ай бұрын
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
@darrennew82116 ай бұрын
This is a very clever presentation that does a great job of making the non-commutitive nature of Q's intuitive.
@fuseteam7 ай бұрын
instructions unclear solved a rubik's cube with quaternions
@gasparliboreiro45727 ай бұрын
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?
@AlexRoseGames7 ай бұрын
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)
@andrey7307 ай бұрын
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 😂
@AlexRoseGames7 ай бұрын
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
@Finnon7 ай бұрын
As a belarussian who lives in Siberia I think thats a great reason to buy srbr
@AlexRoseGames7 ай бұрын
haha, hope you have fun!
@behrampatel35638 ай бұрын
This is a very unique take on the path to understand what quaternions are. It helps a lot . Thank you
@Peppinohio8 ай бұрын
Hey Alex. I recently got the platinum for super meatboy which took me 2 months and was a pain and I kinda want to Go for srbr's platinum trophy in the future, if I do, wish me luck.
@AlexRoseGames8 ай бұрын
Good luck Peppin! you're gonna need it haha
@Peppinohio8 ай бұрын
@@AlexRoseGames I'm just glad you didn't make it so like you'll get a trophy for completing that Rainbow challenge and would be required for the platinum or else it would be harder than Necrodancer's platinum which is the hardest platinum to exist
@AlexRoseGames8 ай бұрын
@@Peppinohio one person has actually done rainbow challenge lol
@Peppinohio8 ай бұрын
@@AlexRoseGames I know, its hella impressive and may be the most impressive achievement in platforming history
@Peppinohio2 ай бұрын
Yo I got the game!
@Peppinohio9 ай бұрын
Super rude bear resurrection 2 when
@AlexRoseGames9 ай бұрын
for any chance of that happening go tell your favourite streamer about srbr 1. right now I am porting games for people and in 2 months I make as much money as I made doing rude bear and that took me 3 years. if it suddenly took off and actually made money of course I would do a sequel but all it did was make me not want to make games anymore
@Peppinohio9 ай бұрын
@@AlexRoseGames oh, lemme tell ya that there is a Indie games discount section in the playstation store, maybe people could find the game more frequently or maybe if you are hella lucky, srbr could become a monthly ps plus game, if that happens, the amount of popularity it would get would skyrocket, farewell, good luck my man.
@breakdancerQ9 ай бұрын
This is a very good tip on how to visualise these damn things! Not there yet but this certainly helps a ton!
@yijieding56109 ай бұрын
using cub to do quaternion explanation is just genius. many thanks
@danibiyarslanov10 ай бұрын
i like the title
@AlexRoseGames10 ай бұрын
thankyou, i like your comment
@thedeeprot10 ай бұрын
👌👌👌
@Jay-kb7if10 ай бұрын
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.
@KaoukabiJaouad10 ай бұрын
you didn't explained 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.
@AlexRoseGames10 ай бұрын
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
@KaoukabiJaouad10 ай бұрын
@@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.
@AlexRoseGames9 ай бұрын
@@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Ай бұрын
@@AlexRoseGamesim so sorry that you have to deal with people like this
@zoop39111 ай бұрын
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.
@randyklucznik762311 ай бұрын
Also here from reddit. Damn dude you smart
@abrahambrookes192711 ай бұрын
I have been making games in unity for around 5 years now and there is absolutely zero chance I can make anything more than a cube with a character controller attached in one whole weekend, no matter how hard I crunch. There's no way these devs are only using 48 hours in these jams, I refuse to believe
@AlexRoseGames11 ай бұрын
haha, you get used to it, you just have to keep your vision reasonably scoped
@abrahambrookes192711 ай бұрын
I love how unhinged you get towards the end of the video - the only reasonable reaction to a physics degree
@roberthernandez580211 ай бұрын
Came her from reddit. Good stuff.
@talisynstoy11 ай бұрын
Me, too 😁
@alcaudon11 ай бұрын
@@talisynstoyme too
@_tioanon11 ай бұрын
That's abbsolutely brilliant. Thank you!
@AlexRoseGames11 ай бұрын
No problem. Enjoy!
@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
@no3339 Жыл бұрын
Geometric algebra >>
@Ar3Ar3 Жыл бұрын
You just made Quaternions easy for me.
@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 Жыл бұрын
one is mathematician's explanation, the other is programmer's explanation.
@angeldude10110 ай бұрын
@@minhajsixbyte Ya, 3B1B's explanation is the programmer's explanation, and this is the mathematician's explanation.
@gameuniverse9419 ай бұрын
Rubik’s*
@pronounjow8 ай бұрын
@@angeldude101Isn't it the other way around?
@angeldude1018 ай бұрын
@@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.
@petethechin Жыл бұрын
Im still confused.....
@jr8209 Жыл бұрын
The puzzle cube adds unnecessary complexity.
@fakeit6339 Жыл бұрын
that rubiks website or game please
@AlexRoseGames Жыл бұрын
just google rubiks online, I went on the first link
@RaphpowerSGSUModding Жыл бұрын
When you make a sonic fan-game and your character need to have a tube based movement system this is perfect
@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.
@behrampatel35638 ай бұрын
Thanks for adding your valuable insight. Do you have a page or blog I can follow you on. Cheers, b
@StriderAngel496 Жыл бұрын
it's quite frustrating that you keep missing the -obstacle- variable declaration and just confuse the 2 (multiple times) :(
@AlexRoseGames Жыл бұрын
yeah, at 54:58 I realised the mistake. I didn't want to spend too long reading code because the interviewer was not a programmer/gamedev and we were on a time constraint. I was just glancing at the code blocks and filling in the blanks in my head rather than reading it properly either way, it wasn't a big deal since it was just a colour change and I ended up switching it from a SpriteRenderer to a Renderer once we transitioned into 3d. imo the bigger mistake is that I just lazily expected it to be running right and not forward and started building the project in 2d instead of 3d
@StriderAngel496 Жыл бұрын
@@AlexRoseGames I think this could be pretty useable(right now) if they just increased the character limit and the number of tokens it can take 😁
@AlexRoseGames Жыл бұрын
@@StriderAngel496 definitely as time went on it was showing its weaknesses in that.. we were waiting long periods of time to get answers back
@radishmonster2760 Жыл бұрын
Are you related to mike rose?
@AlexRoseGames Жыл бұрын
yes
@MrBr3ast Жыл бұрын
someone did this 2 weeks ago
@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!
@PaulSpeed42 Жыл бұрын
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 Жыл бұрын
Not quite interchangeable, Euler angles suffer from the gimble lock problem, which quaternions inherently overcome.
@PaulSpeed42 Жыл бұрын
@@FranziskanerFranz that's why I never mentioned Euler angles.
@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.
@angeldude10110 ай бұрын
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.