There’s always something that has intrigued me about a higher dimensional world, something that seems possible, yet is so far out of reach. So let’s try and visualise it!
The Plan
We shall do this by a projection, this should let us project an object of a higher dimension onto a lower dimension. Take a look at this royalty free image.

This building looks 3D, however you arn’t actually seeing a 3D image, you are seeing a 2D image in a way that makes it look 3D. This is because of the way the image is distorted due to the way the image is taken, all points of the building are viewed from what we will assume to be a single point, the camera, as demonstraited in this image

And what we see is then the image on the screen. One key thing to note is that moving the screen only changes the size of the image produced, the spacing between all the lines all grow or shrink by the same ratio.

So how can we turn this into something more mathematical? Let
be the shape we wish to project, for the sake of simplicity we will ignore all colour, and whether objects are in front of or behind others. This may seem like a lot to assume, but when we make shapes later, it will be easier for us to view frames of objects, like the edges of a cube, as this will make it easier to see what is going on. We can then consider
![]()
So
then contains the vectors of all the points of our object. We then also need 2 other things, we need a screen, and a camera. Now while it may seem like these are variable, as above, we can freely move the screen back and forth, and by rotating the objects, we could put the camera wherever we choose, say the
axis. This will lead to problems later on when we try to rotate the shapes, but we will find a workaround for that later. We also have the decide how far away to put the camera from the screen, we shall call this distance
. Let’s place the screen on the
dimesional structure
and then the camera at the point
. So in 2d, this would look like the following.

Note we also want to assume that any point on the shape has a lower
coordinate than
, this will make sure that the projection behaves nicely. Now let’s try projecting some point onto a screen, we can let this point be
. We shall also let
be the vector representing the camera. Now in order to remain on the rays from the camera, we can only add a scaled version of
, but how much to scale it? We want the first coordintate of our projected point to have a first coordinate of
. So let the first coordinate of
be
, we can then see that the first coordinate of
is
, so let’s scale it by
![]()
Thus the first coordinate of
![]()

We can then project all points in
to get a shape
of a dimension lower.
Rotating!
Now that we have a shape, we may want to view it from different angles, now while we could rotate the camera, however if we were to do this, we’d also have to rotate the screen (or else the image will be destorted), this complicates things. Instead, we’ll rotate the shape, we can do this by applying a rotation matrix to all the vectors in
before we project!
This does get a bit more complex for higher dimensions though. You will probably know that in 3D we have 3 ways we can rotate, which we can consider as around each axis. So how many in 4D?
6. We can see this as we are not actually rotating based on the axis, we are rotating based on the plane associated with each axis, and thus in 4D, as there 6 seperate planes on the axis, there are 6 seperate ways to rotate.
Let’s project!
In order to help us visualise this, let’s project a 3D cube into 2D.
We can then see that the projected cube does look like the 3d object. Let’s now do this to the 4D cube, however we cannot view a 4D world, so we only get to look at the projection here.
Trippy!
No Responses