People always get the concept of rotation wrong ^^. The fact that a rotation is around an "axis" is only true for 3d, no other dimension has this link. You don't have the concept of a rotation axis in 2d without using the 3rd dimension as helper. Rotations actually happens in 2d rotation planes. The 2d space only has one plane, the 2d space itself. 3d has exactly 3 planes. A 2d plane in 3d has exactly one normal vector. However in 4d we have 6 rotation planes and each 2d plane has two normal vectors. It's basically just the number of combinations you can make from the component count. In 3d it's XY, XZ. YZ. In 4d it's XY, XZ, XW, YZ, YW, ZW. Any rotation in 3d is a "single" rotation. So even you rotate in several planes at the same time you always get a single rotation within a rotated plane (where the normal is the rotation axis). In 4d you can actually have double rotations that are independet from each other. Keep in mind a rotation matrix only changes the coorindates where the sin and cos are. Every "1" in a rotation matrix means that this dimension stays unchanged. In 4d you have two "1s". So a double rotation would be a combination where you exchange the two 1s with another rotation. So (XY and ZW) or (XZ and YW) or (XW and YZ). This gets more complex when dealing with 5d (10 rotation planes), 6d (15 rotation planes) or 7d (21 rotation planes). btw: Doing a double perspective projection and only from the center of an object is a rather arbitrary choice for projecting 4d into 2d. Keep in mind that you can also offset (move) 4d objects in 4 different directions. Usually in 3d we work with homogeneous coordinates to allow translation to be applied through a matrix. Though that means we actually use 4d vectors and 4x4 matrices for ordinary 3d. Lifting that up one dimension we actually need a 5x5 matrix and 5d vectors to do proper 4d stuff. This is important since the power of matrices lies in the fact that you can simply combine them into one. So you finally have a single matrix that does all sorts of local space rotation, position offsets, projecting down to 3d as a single matrix. Successive perspective projections can't be done as the perspective divide can't be performed in a matrix. It's done by the homogeneous divide at the end. 4d (or higher dimensions in general) is / are really fascinating. It gives you a new way of thinking of fundamental measures. "0d" you only have a single point with no size and no location since the whole space is just a single point. Therefore an "object" in 0d doesn't require any components in a vector to describe that object. "1d" space consists of infinitely points in a single direction. Now a new measure is born: length. The length between two points in 1d is the sum of infinitely many points between the start and end point. "2d" space consists of infinitely many "1d spaces" stacked next to each other. We get a second independent direction and a new measure: "area". A finite area is the sum of infinitely many 2d lines which each contains infinitely many points. So points squared (p^2) "3d" space consists of infinitely many "2d spaces" stacked next to each other. Again a new independent direction is used here. The new measure is "3d volume". A finite 3d volume contains infinitely many finite 2s spaces which contains infinitely many 1d spaces which contains infinitely many points (p^3) "4d" space consists of infinitely many 3d spaces stacked next to each other in a new independent direction. The new measure is "4d volume". A finite 4d volume contains infinitely many finite 3d volumes. (p^4) The 8 3d cubes which represent the boundary of the 4d volume are just the "surface" of the 4d volume. Inside a tesseract there is infinitely 3d volume, just like in a 3d solid cube there is infinitely many area if you could chop up the 3d volume into infinitely many slices. Note that the sum of 3d space inside a 4d volume is non overlapping. So inside a 1x1x1 4d cube there would be enough 3d space to hold our entire universe :P though, just statistically. We have a continous 3d space. The 3d space inside a 4d hypercube is folded in a weird way.
I really appreciate the amount of work put into this comment to convey such an amount of information in a comprehensive way that's not entirely mathematical yet enough to grasp the context and understand it. Bravo. Bravo.
The important thing to realize about rotations in n dimensions, is that the "basic" rotations *always* rotate within a plane. That is, there is a plane of rotation. There *is* still an "axis," but its dimension is n-2, so In two dimensions, n=2, the axis is a point. In n=3, the axis is a line. In n=4, the axis is a plane. Etc. In linear-algebra-speak, it is the invariant subspace of the rotation; the set of vectors that are invariant under the rotation. Fred
I'm that guy that subscribed to this channel quite a while back and totally forgot about it, then I saw this video and clicked. *Then I remembered what kind of monstrosity I have brought myself into.*
4:12 when he says that, i tried to look at the cube while forcing me to ignore this illusion of 3D to just see 2D lines and dots and then the tesseract totally makes sense ! Thank you for that Mr coding train
Yep, if you try hard enough the wireframe cube rotating looks like a small square distorting and then becoming the outer square, just like the tesseract with cubes!
Project a five-dimensional cube on a fourth-dimensional projection onto a three-dimensional construct onto a two-dimensional screen brought by a large amount of 0 dimensional pixels next :)
I mean if you really think about it the values of pixels are actually best represented as points in a three-dimensional colour space. Also if you want to add another layer to what you just said you should consider that the pixel data is actually stored in a one-dimensional array.
You are more of an inspiration than all programming movies combined. I'd say you did masters in mathematics and physics then ventured into programming coz that's prolly the only way to explain it.
@@_gekyumeman4127 yeah, something like (1280x720) would be one dimensional. But I was referring to the pixels being actual physical objects that emit light which are in reality 3 dimensional, but we interpret them as 0 dimensional points.
Awesome video 👌 Laughed so much when you were like: "this code now really looks like it was written by a mad person... And it was" 🤣🤣 Gotta jump into the 4th dimension myself after work 😄
As much as I love putting each class in separate files and testing each class using TDD and using the latest version of every package I'm using and making sure I refactor my code as I go, I see the benefit of doing things in this way to get results quicker. This kind of coding looks like great fun.
Coding Challenge #5470 The black hole to the 34th dimension can now be opened via Javascript. The Coding Train has taken over all worldly systems, rendering him a god. The hyperspace travel's gotta be refactored later tho
Thanks for that wonderful train ride! To me, the next interesting thing to do is to make some other 4D shapes and subject them to these same 4D rotations. There are, e.g., 6 regular polytopes (hypersolids) in 4D, of which the tesseract is just one. Some important attributes of these, are the numbers of vertices, V, edges, E, faces, F, and cells, C (3D faces). I'll put these into a 4-list: (V, E, F, C). The simplest one (which is the 4D edition of a simplex), is the regular pentatope, or tetrahedral pyramid. It makes the least interesting model for this, but it's still worth portraying; it's analogous to the tetrahedron; its cells are tetrahedra. It has (V, E, F, C) = (5, 10, 10, 5). Then there's the hypercube; tesseract; analogous to the cube; its cells are cubes. (V, E, F, C) = (16, 32, 24, 8) Next is the "dual" of the hypercube, the cross-polytope; 16-cell; analogous to the octahedron; its cells are tetrahedra. (V, E, F, C) = (8, 24, 32, 16) Then perhaps the most interesting, the "hyperdiamond;" 24-cell; not analogous to anything else in any number of dimensions; its cells are octahedra. (V, E, F, C) = (24, 96, 96, 24) The last two are really complex & cluttered, but fascinating nonetheless: The 120-cell; analogous to the dodecahedron; its cells are dodecahedra. (V, E, F, C) = (600, 1200, 720, 120) The 600-cell; analogous to the icosahedron; its cells are tetrahedra. (V, E, F, C) = (120, 720, 1200, 600) And there are plenty of other interesting polytopes; in 4D you can "cross" one polygon with another; e.g., square x square = hypercube. What this operation amounts to is, at every point (both boundary & interior!) of polygon #1 in xy-space, you erect polygon #2 in zw-space. The result has somewhat of a "hypertorus" feel to it. Fred
From your examples, it looks like the Euler formula generalizes from V - E + F = 2, to V - E + F - C = 0 in 4D. I could not immediately establish whether this is true or why it might be, so I googled a bit and came upon this: www.ems-ph.org/journals/show_pdf.php?issn=0013-6018&vol=62&iss=4&rank=6 (it will return you a PDF file, so if that terrifies you, don't click the link)
I just challenged myself to recreate this with a slightly different method (maybe in theory it's the same) but very happy with the result. Basically grabbed the idea of a source of light somewhere out in the fourth dimension, then interpolated from that point through every vertex of the hypercube and see where it lands in the w=0 dimension. Worked like a charm :D
Seeing this years late. Anyway what helped me understand how a tesseract is a projection of 4D space into 3D space, is to stare at your projection of a 3D cube into 2D space (the screen), and watch the points and planes change shape as it rotates. Watch how the trapezoid that represents one of the sides flattens as we start to view it "edge on", and watch how they intersect each other in 2D space. We know that intersection is an artifact of the projection into a lower dimension, just like the mind-bending intersections of a tesseract are an artifact of its projection into 3D (or really into a 2D representation of 3D). Try to break the illusion of it being 3D and see how the projection itself changes shape. Once I started to see it that way, looking at a projection of a 4D shape I better understood it as a projection, and stopped trying to see it in 3D.
This video helped me just now figure out what i was doing wrong in code that i wrote like two years ago where it's a nbody sim and there are bodies flying around and i used matrices to rotate and scale/zoom but my distance scaling wasn't right and would warp the particles around the camera (like it's warping space like a massive object). so i am going to revisit that code! i can do this! thanks!
When you do stuff like that you must feel like Finn i Adventure time after he got the glasses that makes him super smart and he makes a 4-dimensional bubble.
Ahora ya entiendo por que es un tren, por que nos das el pasaje. esta vez a la cuarta dimension projectada en 3D, gracias por tanto. Saludos desde Bolivia
What you really needed there is a variable size vector, like `class PVVector { float[] elems; PVVector(float elems...) { this.elems = elems } }`, so the matrix * vector multiplication just becomes a chaining of helpers: `return matToVec(matMul(matrix, vecToMat(vector)))`
I don't know if you're going to see this, but the issue you had with returning p4vec vs pvec could have been solved using generics (specifically, make the return type T, and have the function take an type as input), and would probably be a new concept to a lot of your viewers. When I first figured that out, I was able to delete a ton of duplicate code from my projects.
there's built in library support for VR in processing (see android.processing.org/tutorials/vr_intro/index.html), if you have a VR headset and have watched a lot of the videos on this channel for some time, shouldn't be that hard to implement this yourself on top of what he did in this video
You could do a 3-axis rotation, but that would require 5d. Think of it this way: 2D: Just rotate. (rotate around a point) 3D: Rotate around a line. 4D: Rotate around a plane. 5D: Rotate around a cube. 6D: Rotate around a hypercube. 7D: Rotate around a 5-cube. 8D: Rotate around a 6-cube. 9D: Rotate around a 7-cube. . . .
36:53 : Actually, as I understand, we are usually rotating 2 dimensions (at least beacouse we can't rotate in 0 or 1D), not around one dimension ( or we can say we're rotating around all other dimensions. Infinity of them... So it's unreasonable)
When you render 3D objects on 2D screen you have to, well, fit in 2D space so it gets chopped down, with 4D figures it gets cut even further. I wonder how would 4d objects look like in 3d space from for example laser visualisation, would this make rotating on W axis more clear?
What if gravity is actualy 4th dimension? Or consequence of 4D because it is pushing space similar to X and W rotation? Also kind of proves we could create wormhole?
Před 2 lety
When i look at the 3d cube rotating it looks like the 4d cube animation but from the side
"I'll refactor later..." would make for a great shirt.
I'll get one of these :-)
I would defenitely buy it, I feel this so much! xD
Actually, put flexible LED on your shirt and put this on display to amaze your friends and passerbies
clang-format
hello sir, which programming language is this?
i love how you visualizing 4d in a 3d world on a 2d screen made of 1d rows of 0d pixles.
Reconstructed into 3D by our brains.
technically those pixels are in 2d bc they’re not perfect points, they’re circles or some other shapes
Pixels are 3D. They're made of RGB LEDs, which is 3D.
Actually everything is 3d, if we zoom in enough,everything is made up of atoms(protons,nutrons...),which are 3d
@@YOM2_UB projected as 2d in our eyes
People always get the concept of rotation wrong ^^. The fact that a rotation is around an "axis" is only true for 3d, no other dimension has this link. You don't have the concept of a rotation axis in 2d without using the 3rd dimension as helper. Rotations actually happens in 2d rotation planes. The 2d space only has one plane, the 2d space itself. 3d has exactly 3 planes. A 2d plane in 3d has exactly one normal vector. However in 4d we have 6 rotation planes and each 2d plane has two normal vectors. It's basically just the number of combinations you can make from the component count. In 3d it's XY, XZ. YZ. In 4d it's XY, XZ, XW, YZ, YW, ZW. Any rotation in 3d is a "single" rotation. So even you rotate in several planes at the same time you always get a single rotation within a rotated plane (where the normal is the rotation axis). In 4d you can actually have double rotations that are independet from each other. Keep in mind a rotation matrix only changes the coorindates where the sin and cos are. Every "1" in a rotation matrix means that this dimension stays unchanged. In 4d you have two "1s". So a double rotation would be a combination where you exchange the two 1s with another rotation. So (XY and ZW) or (XZ and YW) or (XW and YZ). This gets more complex when dealing with 5d (10 rotation planes), 6d (15 rotation planes) or 7d (21 rotation planes).
btw: Doing a double perspective projection and only from the center of an object is a rather arbitrary choice for projecting 4d into 2d. Keep in mind that you can also offset (move) 4d objects in 4 different directions. Usually in 3d we work with homogeneous coordinates to allow translation to be applied through a matrix. Though that means we actually use 4d vectors and 4x4 matrices for ordinary 3d. Lifting that up one dimension we actually need a 5x5 matrix and 5d vectors to do proper 4d stuff. This is important since the power of matrices lies in the fact that you can simply combine them into one. So you finally have a single matrix that does all sorts of local space rotation, position offsets, projecting down to 3d as a single matrix. Successive perspective projections can't be done as the perspective divide can't be performed in a matrix. It's done by the homogeneous divide at the end.
4d (or higher dimensions in general) is / are really fascinating. It gives you a new way of thinking of fundamental measures.
"0d" you only have a single point with no size and no location since the whole space is just a single point. Therefore an "object" in 0d doesn't require any components in a vector to describe that object.
"1d" space consists of infinitely points in a single direction. Now a new measure is born: length. The length between two points in 1d is the sum of infinitely many points between the start and end point.
"2d" space consists of infinitely many "1d spaces" stacked next to each other. We get a second independent direction and a new measure: "area". A finite area is the sum of infinitely many 2d lines which each contains infinitely many points. So points squared (p^2)
"3d" space consists of infinitely many "2d spaces" stacked next to each other. Again a new independent direction is used here. The new measure is "3d volume". A finite 3d volume contains infinitely many finite 2s spaces which contains infinitely many 1d spaces which contains infinitely many points (p^3)
"4d" space consists of infinitely many 3d spaces stacked next to each other in a new independent direction. The new measure is "4d volume". A finite 4d volume contains infinitely many finite 3d volumes. (p^4)
The 8 3d cubes which represent the boundary of the 4d volume are just the "surface" of the 4d volume. Inside a tesseract there is infinitely 3d volume, just like in a 3d solid cube there is infinitely many area if you could chop up the 3d volume into infinitely many slices. Note that the sum of 3d space inside a 4d volume is non overlapping. So inside a 1x1x1 4d cube there would be enough 3d space to hold our entire universe :P though, just statistically. We have a continous 3d space. The 3d space inside a 4d hypercube is folded in a weird way.
Thanks for this comprehensive feedback!!
Bendix Perschk so true
Yess
I know some of these words!
I really appreciate the amount of work put into this comment to convey such an amount of information in a comprehensive way that's not entirely mathematical yet enough to grasp the context and understand it. Bravo. Bravo.
4D doesn't rotate about axes; it rotates about *PLANES* .
This is a very important correction / clarification thank you!
we'll figure all of this out together!
The important thing to realize about rotations in n dimensions, is that the "basic" rotations *always* rotate within a plane.
That is, there is a plane of rotation.
There *is* still an "axis," but its dimension is n-2, so
In two dimensions, n=2, the axis is a point.
In n=3, the axis is a line.
In n=4, the axis is a plane.
Etc.
In linear-algebra-speak, it is the invariant subspace of the rotation; the set of vectors that are invariant under the rotation.
Fred
Yes!
Nothing rotates "about" anything. Things rotate AROUND axes, or other things.
Coding challenge #2312: Representing string theory in p17js!
What a terrifying sentence
Euclides: "Math is the language that describes the universe"
modern matematitions creating formulas for the 4th dimention: We don't have of that here
"looks like a completely insane person wrote this code when in fact a completely insane person did write this code" xD
I'm that guy that subscribed to this channel quite a while back and totally forgot about it, then I saw this video and clicked.
*Then I remembered what kind of monstrosity I have brought myself into.*
lmao
go through the playlists one by one, it's a really great journey.
@@sadhlife give me a minute, I need to get high first.
DANDAN THE DANDAN nice.
I definitely agree
This guy is so wholesome and his coding videos are really helpful for my own projects :)
Thank you coding train!
Please don't make a Tessaract. We only have a few Avengers left.
"Any sufficiently advanced technology is indistinguishable from magic." - Arthur C. Clark
4:12 when he says that, i tried to look at the cube while forcing me to ignore this illusion of 3D to just see 2D lines and dots and then the tesseract totally makes sense ! Thank you for that Mr coding train
Yep, if you try hard enough the wireframe cube rotating looks like a small square distorting and then becoming the outer square, just like the tesseract with cubes!
Project a five-dimensional cube on a fourth-dimensional projection onto a three-dimensional construct onto a two-dimensional screen brought by a large amount of 0 dimensional pixels next :)
I mean if you really think about it the values of pixels are actually best represented as points in a three-dimensional colour space.
Also if you want to add another layer to what you just said you should consider that the pixel data is actually stored in a one-dimensional array.
A one dimensional array can still describe two dimensional space.
he prob doesnt have enough ritalin for that
Excuse wtf lol
@@yesveryprofesionalnameyes6055 lol
I’m going to attempt to take the challenge of creating a 5D and further render.
How did it go?
You are more of an inspiration than all programming movies combined. I'd say you did masters in mathematics and physics then ventured into programming coz that's prolly the only way to explain it.
Yeeeeessss!!!! I watched it!!! And now I'm going to clean my room from my brains all over the walls...
and btw, thank you so much for teaching ME how to do this. i cant wait to try this in my game with unity!
I just found this channel today and it's hella fun! Added to my subscriptions!
You've inspired me to program. I love your vids
Amazing series, continue with it! A dynamic programming series would be awesome too!
It's like projecting a cube onto a 1D space
I've just started learning to code and these videos are why!
Keep it up!
coding with u from Kenya💜
The 4D cube is rendered in 3D matrix on 2D display by 0D pixels
0D pixels would not be visible tbf
They are only 0D in theory when they are really 3D objects in real life.
in 1D array of pixels
@@MattRose30000 the resolution is 0d though
@@_gekyumeman4127 yeah, something like (1280x720) would be one dimensional. But I was referring to the pixels being actual physical objects that emit light which are in reality 3 dimensional, but we interpret them as 0 dimensional points.
"Java is a weird place"
I live in java, i am a weird person
Yes brother
JS!
Awesome video 👌
Laughed so much when you were like: "this code now really looks like it was written by a mad person... And it was" 🤣🤣
Gotta jump into the 4th dimension myself after work 😄
As much as I love putting each class in separate files and testing each class using TDD and using the latest version of every package I'm using and making sure I refactor my code as I go, I see the benefit of doing things in this way to get results quicker. This kind of coding looks like great fun.
Coding Challenge #5470
The black hole to the 34th dimension can now be opened via Javascript. The Coding Train has taken over all worldly systems, rendering him a god.
The hyperspace travel's gotta be refactored later tho
No, The Strillio Metadimensional Inception Rule will be refactored
Really fun project! Made this in Pure Data ext, and am having lots of fun playing with all the possible variables!
Why is this man the Bob Ross of coding
Thanks for that wonderful train ride!
To me, the next interesting thing to do is to make some other 4D shapes and subject them to these same 4D rotations.
There are, e.g., 6 regular polytopes (hypersolids) in 4D, of which the tesseract is just one. Some important attributes of these, are the numbers of vertices, V, edges, E, faces, F, and cells, C (3D faces). I'll put these into a 4-list: (V, E, F, C).
The simplest one (which is the 4D edition of a simplex), is the regular pentatope, or tetrahedral pyramid. It makes the least interesting model for this, but it's still worth portraying; it's analogous to the tetrahedron; its cells are tetrahedra. It has (V, E, F, C) = (5, 10, 10, 5).
Then there's the hypercube; tesseract; analogous to the cube; its cells are cubes. (V, E, F, C) = (16, 32, 24, 8)
Next is the "dual" of the hypercube, the cross-polytope; 16-cell; analogous to the octahedron; its cells are tetrahedra. (V, E, F, C) = (8, 24, 32, 16)
Then perhaps the most interesting, the "hyperdiamond;" 24-cell; not analogous to anything else in any number of dimensions; its cells are octahedra.
(V, E, F, C) = (24, 96, 96, 24)
The last two are really complex & cluttered, but fascinating nonetheless:
The 120-cell; analogous to the dodecahedron; its cells are dodecahedra. (V, E, F, C) = (600, 1200, 720, 120)
The 600-cell; analogous to the icosahedron; its cells are tetrahedra. (V, E, F, C) = (120, 720, 1200, 600)
And there are plenty of other interesting polytopes; in 4D you can "cross" one polygon with another; e.g., square x square = hypercube.
What this operation amounts to is, at every point (both boundary & interior!) of polygon #1 in xy-space, you erect polygon #2 in zw-space.
The result has somewhat of a "hypertorus" feel to it.
Fred
Oh, thank you for this feedback, this would be super fun to do yes!
@@TheCodingTrain Yes!! Only trouble is getting coordinates for all those figures, and then, figuring out which edges to connect.
Fred
From your examples, it looks like the Euler formula generalizes from V - E + F = 2, to V - E + F - C = 0 in 4D. I could not immediately establish whether this is true or why it might be, so I googled a bit and came upon this: www.ems-ph.org/journals/show_pdf.php?issn=0013-6018&vol=62&iss=4&rank=6
(it will return you a PDF file, so if that terrifies you, don't click the link)
this guy is the perfect example for the word " nobody gets the right values at first try "
I just challenged myself to recreate this with a slightly different method (maybe in theory it's the same) but very happy with the result. Basically grabbed the idea of a source of light somewhere out in the fourth dimension, then interpolated from that point through every vertex of the hypercube and see where it lands in the w=0 dimension. Worked like a charm :D
Hahahaha. You are the best teacher ever! Congratulations!
Thank's and love from Sweden !
Seeing this years late. Anyway what helped me understand how a tesseract is a projection of 4D space into 3D space, is to stare at your projection of a 3D cube into 2D space (the screen), and watch the points and planes change shape as it rotates. Watch how the trapezoid that represents one of the sides flattens as we start to view it "edge on", and watch how they intersect each other in 2D space. We know that intersection is an artifact of the projection into a lower dimension, just like the mind-bending intersections of a tesseract are an artifact of its projection into 3D (or really into a 2D representation of 3D). Try to break the illusion of it being 3D and see how the projection itself changes shape. Once I started to see it that way, looking at a projection of a 4D shape I better understood it as a projection, and stopped trying to see it in 3D.
Love the jump scare
37:03 i am laughing so hard.
This is probably the most underrated comment I've ever seen lol
This video helped me just now figure out what i was doing wrong in code that i wrote like two years ago where it's a nbody sim and there are bodies flying around and i used matrices to rotate and scale/zoom but my distance scaling wasn't right and would warp the particles around the camera (like it's warping space like a massive object).
so i am going to revisit that code! i can do this! thanks!
This channel is the best resource for learning code 👍 thanks
Hey dan! It's amazing to see how far you came with this channel! You truly are a genius!
Yes Dan! finally. I've heard you talk about making this for some time. nice work :)
This guy is so cool... I wish I listen more in my computer class
You are so good at explaining this, thanks!
When you do stuff like that you must feel like Finn i Adventure time after he got the glasses that makes him super smart and he makes a 4-dimensional bubble.
21:00 I love this part. Cool Debug.
3:33 I feel like he was about to start talking about Flatland. Anyone else get that vibe?
He sounds like a scientist in the intro till 5 or 6 mins
Literally making things which you can't even imagine 😂
6:51 i paused and watched, still thoroughly confused but hell lets roll with it, im learning even though im confused as hell..
Laughed so hard 16:40 i feel this way so often.
same I lol-ed xD looks like a completely insane person wrote this code
Love your videos !! Huge fan of your excitement
Awesome ending!
not understand something feels bad, but half understand something feels even worse
Anybody know the origin or demonstration of the formula: w = 1 / (distance - v.w)?
*we have now entered the fourth dimension*
Ahora ya entiendo por que es un tren, por que nos das el pasaje. esta vez a la cuarta dimension projectada en 3D, gracias por tanto. Saludos desde Bolivia
19:55 That looked cool too
What you really needed there is a variable size vector, like `class PVVector { float[] elems; PVVector(float elems...) { this.elems = elems } }`, so the matrix * vector multiplication just becomes a chaining of helpers: `return matToVec(matMul(matrix, vecToMat(vector)))`
Great suggestion!
This helped me do the genetic solve.
The Cross.
God is amazing.
Love this video. God Bless.
Lookup Urticator's 4D maze if you're into this; the writings on the site are quite interesting.
I don't know if you're going to see this, but the issue you had with returning p4vec vs pvec could have been solved using generics (specifically, make the return type T, and have the function take an type as input), and would probably be a new concept to a lot of your viewers. When I first figured that out, I was able to delete a ton of duplicate code from my projects.
I love this dude
you did it!!!!!
YOU ARE A MAD SCIENTIST
Weekend Project, get all the rotations + and extra dimension working. Should be fun little experiment.
You just blown my mind....
This video was awesome
I'm using this for a DnD closed room puzzel! ;)
That ending was so epic... lol
Brilliant video and so entertaining as usual :)
lol, I started to watch this vid at 4:29 pm the same time The Coding Train made the vid but just in a completely different day, year and month.
I am trying to analyse 4 dimentional object, in this 3 dimensional universe by holding a 2 dimentional screen with my 1 dimentional brain... :(
rohit gulati 😂
I want to add a like for every time you use music
im about to make this in Unreal Engine and try walking around it
@Zerofever so how did it turn out
u made it??
his brain melted at the sight of it
Playing with the same thing ! Love you !
Now make VR support for it! Would be interesting seeing a 4D object only semi one dimension down, instead of from 4D, down to 2D 🤔😅
there's built in library support for VR in processing (see android.processing.org/tutorials/vr_intro/index.html), if you have a VR headset and have watched a lot of the videos on this channel for some time, shouldn't be that hard to implement this yourself on top of what he did in this video
@@AfonsodelCB Yeah, nice, but it'll take some time before I have the time to check it out 🙃😅
yeah I know the feel, too many great things to do in this world :p
I like 1D (The singing kind). And I was right there with you making weird faces trying to imagine 4D.
“Smoke and Brain Matter will start leaking out of my nostrils” oh yeah, that’s hot xD!!!
Wow really awesome
Why u gotta do my brain like this
oof
You could do a 3-axis rotation, but that would require 5d.
Think of it this way:
2D: Just rotate. (rotate around a point)
3D: Rotate around a line.
4D: Rotate around a plane.
5D: Rotate around a cube.
6D: Rotate around a hypercube.
7D: Rotate around a 5-cube.
8D: Rotate around a 6-cube.
9D: Rotate around a 7-cube.
.
.
.
If you go beyond 4D into dimensions our brains can't even comprehend, how do you even know if it's wrong?
You're just awesome man.
I'll just call the P4D library. Easy peazy.
A line bound by two points is called a line segment.
16:42 "This looks like a completly insane person wrote this code 🤣(actualy a completly insane person wrote this code...)"
hypercubes make my brain hurt.
I have officially entered the 4th dimension ♥️
3:18 "You sure you don't want to go to the bathroom?"
36:53 : Actually, as I understand, we are usually rotating 2 dimensions (at least beacouse we can't rotate in 0 or 1D), not around one dimension ( or we can say we're rotating around all other dimensions. Infinity of them... So it's unreasonable)
37:29 he is actually using the two-dimensional determination of rotation in his code.
Blew my mind...
When you render 3D objects on 2D screen you have to, well, fit in 2D space so it gets chopped down, with 4D figures it gets cut even further. I wonder how would 4d objects look like in 3d space from for example laser visualisation, would this make rotating on W axis more clear?
I thought the last (4) element was the time, btw, nice video.
What if gravity is actualy 4th dimension? Or consequence of 4D because it is pushing space similar to X and W rotation? Also kind of proves we could create wormhole?
When i look at the 3d cube rotating it looks like the 4d cube animation but from the side
Just out of interest how many years of experience in coding do you have
Please create a 5D hypercube. you are awesome.
Just stumbled upon this video, proud to be one of the firsts hahaa, awesome video, and a great tutorial to the math of projections :)
10:32 Hahaha