"I'll refactor later..." would make for a great shirt.
@jean-micheltorres69256 жыл бұрын
I'll get one of these :-)
@IbakonFerba6 жыл бұрын
I would defenitely buy it, I feel this so much! xD
@dandanthedandan75586 жыл бұрын
Actually, put flexible LED on your shirt and put this on display to amaze your friends and passerbies
@kim157426 жыл бұрын
clang-format
@manikantaneerugatti52066 жыл бұрын
hello sir, which programming language is this?
@ziggyzoggin10 ай бұрын
This guy is so wholesome and his coding videos are really helpful for my own projects :) Thank you coding train!
@rodrigoqteixeira Жыл бұрын
Euclides: "Math is the language that describes the universe" modern matematitions creating formulas for the 4th dimention: We don't have of that here
@Jianju696 жыл бұрын
4D doesn't rotate about axes; it rotates about *PLANES* .
@TheCodingTrain6 жыл бұрын
This is a very important correction / clarification thank you!
@Jianju696 жыл бұрын
we'll figure all of this out together!
@ffggddss5 жыл бұрын
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
@Lyle-xc9pg5 жыл бұрын
Yes!
@jojolafrite904 жыл бұрын
Nothing rotates "about" anything. Things rotate AROUND axes, or other things.
@__-to3hq5 жыл бұрын
"looks like a completely insane person wrote this code when in fact a completely insane person did write this code" xD
@harrymack35656 жыл бұрын
i love how you visualizing 4d in a 3d world on a 2d screen made of 1d rows of 0d pixles.
@YOM2_UB5 жыл бұрын
Reconstructed into 3D by our brains.
@AlgyCuber5 жыл бұрын
technically those pixels are in 2d bc they’re not perfect points, they’re circles or some other shapes
@humanoidx9775 жыл бұрын
Pixels are 3D. They're made of RGB LEDs, which is 3D.
@AmazingVideoGaming4 жыл бұрын
Actually everything is 3d, if we zoom in enough,everything is made up of atoms(protons,nutrons...),which are 3d
@martysh12264 жыл бұрын
@@YOM2_UB projected as 2d in our eyes
@Bunny99s6 жыл бұрын
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.
@TheCodingTrain6 жыл бұрын
Thanks for this comprehensive feedback!!
@ewanarends55126 жыл бұрын
Bendix Perschk so true
@swiftjsulli6 жыл бұрын
Yess
@helhel97536 жыл бұрын
I know some of these words!
@shepherds3146 жыл бұрын
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.
@riuza96815 жыл бұрын
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
@ziggyzoggin10 ай бұрын
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!
@tobiumevolume98906 жыл бұрын
Coding challenge #2312: Representing string theory in p17js!
@whimsy56234 жыл бұрын
What a terrifying sentence
@monkeyrobotsinc.9875 Жыл бұрын
and btw, thank you so much for teaching ME how to do this. i cant wait to try this in my game with unity!
@dandanthedandan75586 жыл бұрын
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.*
@sadhlife6 жыл бұрын
lmao go through the playlists one by one, it's a really great journey.
@dandanthedandan75586 жыл бұрын
@@sadhlife give me a minute, I need to get high first.
@sadhlife6 жыл бұрын
DANDAN THE DANDAN nice.
@harshsrivastava95706 жыл бұрын
I definitely agree
@kevnar6 жыл бұрын
"Any sufficiently advanced technology is indistinguishable from magic." - Arthur C. Clark
@danielhazel72053 жыл бұрын
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.
@socolovalexandr6 жыл бұрын
Yeeeeessss!!!! I watched it!!! And now I'm going to clean my room from my brains all over the walls...
@dandanthedandan75586 жыл бұрын
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 :)
@inv41id6 жыл бұрын
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.
@lkajsdflkasjdf15976 жыл бұрын
A one dimensional array can still describe two dimensional space.
@americanengineering20636 жыл бұрын
he prob doesnt have enough ritalin for that
@yesveryprofesionalnameyes60555 жыл бұрын
Excuse wtf lol
@samuelsimon40875 жыл бұрын
@@yesveryprofesionalnameyes6055 lol
@greencoder74196 жыл бұрын
Please don't make a Tessaract. We only have a few Avengers left.
@aneon12736 жыл бұрын
I just found this channel today and it's hella fun! Added to my subscriptions!
@GogiRegion6 жыл бұрын
I’m going to attempt to take the challenge of creating a 5D and further render.
@0xKilty2 жыл бұрын
How did it go?
@patanpaul68976 жыл бұрын
Amazing series, continue with it! A dynamic programming series would be awesome too!
@sachinkainth95083 жыл бұрын
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.
@eliashaider68572 жыл бұрын
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 😄
@PerryShops2 жыл бұрын
3:33 I feel like he was about to start talking about Flatland. Anyone else get that vibe?
@sotofpv Жыл бұрын
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
@scatterrealms51662 жыл бұрын
I've just started learning to code and these videos are why!
@TheCodingTrain2 жыл бұрын
Keep it up!
@LIGHTRAYMultimedia3 жыл бұрын
Hahahaha. You are the best teacher ever! Congratulations!
@RedCocoon6 жыл бұрын
The 4D cube is rendered in 3D matrix on 2D display by 0D pixels
@sadhlife6 жыл бұрын
0D pixels would not be visible tbf
@MattRose300006 жыл бұрын
They are only 0D in theory when they are really 3D objects in real life.
@jansustar45656 жыл бұрын
in 1D array of pixels
@wontonjigsaw6 жыл бұрын
@@MattRose30000 the resolution is 0d though
@MattRose300006 жыл бұрын
@@wontonjigsaw 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.
@cindy85336 жыл бұрын
coding with u from Kenya💜
@hamidbakhtiari39863 жыл бұрын
this guy is the perfect example for the word " nobody gets the right values at first try "
@patrykmierzynski62216 жыл бұрын
You've inspired me to program. I love your vids
@monkeyrobotsinc.9875 Жыл бұрын
you did it!!!!!
@truefiasco26376 жыл бұрын
Really fun project! Made this in Pure Data ext, and am having lots of fun playing with all the possible variables!
@graceyudha4 жыл бұрын
"Java is a weird place" I live in java, i am a weird person
@ahmadyogi13404 жыл бұрын
Yes brother
@isaacgarcia29794 жыл бұрын
JS!
@reynalindstrom24964 жыл бұрын
Thank's and love from Sweden !
@jakefisher16385 жыл бұрын
Why is this man the Bob Ross of coding
@ShranjaniShukla6 жыл бұрын
37:03 i am laughing so hard.
@leandroaraujo42016 жыл бұрын
This is probably the most underrated comment I've ever seen lol
@duality4y4 жыл бұрын
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!
@ethanhermsey6 жыл бұрын
Yes Dan! finally. I've heard you talk about making this for some time. nice work :)
@HKCmoris6 жыл бұрын
It's like projecting a cube onto a 1D space
@vowel10004 жыл бұрын
This channel is the best resource for learning code 👍 thanks
@cristix112 жыл бұрын
Love the jump scare
@johnnyserup55003 жыл бұрын
You are so good at explaining this, thanks!
@annevandalej4966 жыл бұрын
Awesome ending!
@ffggddss5 жыл бұрын
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
@TheCodingTrain5 жыл бұрын
Oh, thank you for this feedback, this would be super fun to do yes!
@ffggddss5 жыл бұрын
@@TheCodingTrain Yes!! Only trouble is getting coordinates for all those figures, and then, figuring out which edges to connect. Fred
@michaeldamolsen5 жыл бұрын
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)
@juanluisclaure64856 жыл бұрын
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
@sarveshwarans80376 жыл бұрын
Love your videos !! Huge fan of your excitement
@luismiguelgallegogomez80006 жыл бұрын
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
@shak71853 жыл бұрын
Brilliant video and so entertaining as usual :)
@alexcubed42706 жыл бұрын
This video was awesome
@mavriksc5 жыл бұрын
Laughed so hard 16:40 i feel this way so often.
@__-to3hq5 жыл бұрын
same I lol-ed xD looks like a completely insane person wrote this code
@ShevkoMore6 жыл бұрын
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)
@ShevkoMore6 жыл бұрын
37:29 he is actually using the two-dimensional determination of rotation in his code.
@soyitiel4 жыл бұрын
I love this dude
@deadmusik99694 жыл бұрын
6:51 i paused and watched, still thoroughly confused but hell lets roll with it, im learning even though im confused as hell..
@juanfranciscogarciacasado61176 жыл бұрын
Anybody know the origin or demonstration of the formula: w = 1 / (distance - v.w)?
@gxglee56165 жыл бұрын
This guy is so cool... I wish I listen more in my computer class
@zarblitz2 жыл бұрын
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.
@elementallobsterx6 жыл бұрын
Hey dan! It's amazing to see how far you came with this channel! You truly are a genius!
@devashishrai19646 жыл бұрын
You're just awesome man.
@tiagotiagot5 жыл бұрын
Lookup Urticator's 4D maze if you're into this; the writings on the site are quite interesting.
@krishnanshudey38316 жыл бұрын
Wow really awesome
@aaronwong27732 жыл бұрын
21:00 I love this part. Cool Debug.
@jojolafrite904 жыл бұрын
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.
@tristunalekzander56085 жыл бұрын
YOU ARE A MAD SCIENTIST
@redcartoonanimation6546 жыл бұрын
You just blown my mind....
@hermannbarbato6 жыл бұрын
*we have now entered the fourth dimension*
@thomaskishmanii26752 жыл бұрын
The Cross. God is amazing. Love this video. God Bless.
@SubparFiddle6 жыл бұрын
That ending was so epic... lol
@xuhaomin77076 жыл бұрын
Playing with the same thing ! Love you !
@madghostek30266 жыл бұрын
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?
@cryptover44914 жыл бұрын
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.
@darkdelphin8344 жыл бұрын
19:55 That looked cool too
@arto_17904 жыл бұрын
not understand something feels bad, but half understand something feels even worse
@i_Hally6 жыл бұрын
I want to add a like for every time you use music
@moonman61136 жыл бұрын
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?
@noodian32685 жыл бұрын
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
@hernandostefanamisola80435 жыл бұрын
No, The Strillio Metadimensional Inception Rule will be refactored
@jeremywong77632 жыл бұрын
How to make the beginning code at the start of the video because when I click the link that says code it says that the coding train has been recently renovated
@toastyPredicament3 жыл бұрын
This helped me do the genetic solve.
@ivelinmarkov82456 жыл бұрын
The best video I have ever watched THANKS! Would you try 5D ?
@ranvirchoudhary9294 жыл бұрын
He sounds like a scientist in the intro till 5 or 6 mins
@Tordek6 жыл бұрын
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)))`
@TheCodingTrain6 жыл бұрын
Great suggestion!
@larvenkarlsson4405 жыл бұрын
I'm using this for a DnD closed room puzzel! ;)
@lcmattern5 жыл бұрын
Weekend Project, get all the rotations + and extra dimension working. Should be fun little experiment.
@shanzid016 жыл бұрын
Literally making things which you can't even imagine 😂
@ZerofeverOfficial6 жыл бұрын
im about to make this in Unreal Engine and try walking around it
@sanchitverma28925 жыл бұрын
@Zerofever so how did it turn out
@rukna37755 жыл бұрын
u made it??
@buckiethecat5 жыл бұрын
his brain melted at the sight of it
@trousersnake813 жыл бұрын
24:50 where's that 45 minute tangent vid?
@fastterior6 жыл бұрын
I have officially entered the 4th dimension ♥️
@paweldraws78002 жыл бұрын
I wonder how to program an object that must rotate by 4PI in order to return to its original state.
@AshDan1123 жыл бұрын
“Smoke and Brain Matter will start leaking out of my nostrils” oh yeah, that’s hot xD!!!
@immjs6 жыл бұрын
3:18 "You sure you don't want to go to the bathroom?"
@emngaiden6 жыл бұрын
Nice videos! Where can I watch your live streams? Greetings from Mexico!.
@TheCodingTrain6 жыл бұрын
Right here! If you subscribe and click the alarm bell you'll be a notification.
@vorobei-_-20756 жыл бұрын
WOW! Incredible;)
@tahmmyTV6 жыл бұрын
I mean if you template something like this , you could do any dimension since they just scale down
@jimmysyar8894 жыл бұрын
can you use quaternions instead of rotation matrices?
@gomezvillegasdaniel6 жыл бұрын
awesome!
2 жыл бұрын
When i look at the 3d cube rotating it looks like the 4d cube animation but from the side
@listeningcosmos3 жыл бұрын
Blew my mind...
@rodrigoqteixeira Жыл бұрын
16:42 "This looks like a completly insane person wrote this code 🤣(actualy a completly insane person wrote this code...)"
@rohitgulati25006 жыл бұрын
I am trying to analyse 4 dimentional object, in this 3 dimensional universe by holding a 2 dimentional screen with my 1 dimentional brain... :(
@harryt58786 жыл бұрын
rohit gulati 😂
@numero7mojeangering6 жыл бұрын
What about demenssion -1D ? Use complexe numbers ?
@synergydevelopment3666 Жыл бұрын
I thought the last (4) element was the time, btw, nice video.
@Kestrel_5 жыл бұрын
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.