This uses a 4D space to model the 3D world, the additional dimension gets round some problems we have when using the usual 3D vector space. The extra dimension can be thought of as the point at the origin in the physical space.
This space, known as Projective Space, allows us to represent a location in physical space as a direction (ratio of x,y,z with w). Since rotations operate on directions then this gives us a way to represent rotations and translations in a common way.
It is useful where:
- we want to model both rotations and translations in a single operation.
- we are projecting 3D models onto a 2D screen.
Projective Space
This is used as the coordinate system for projective space. Projective space has one additional dimension compared to the equivalent euclidean space.
This page discusses rendering 3D models on a 2D screen.

| (x,y,z) | (x:y:z:w) |
Plücker Coordinates
If a point is at (x,y,z) in euclidean space then the equivalent in projective space is (x*w, y*w, z*w, w). Or to put it the other way round, if a point is defined as (x',y',z',w) in projective space this is equivalent to (x'/w,y'/w,z'/w) in euclidean space. So we can scale the object in projective space without affecting what it represents.
more about Plücker coordinates here.
We can also use Geometric Algebra or Matrices to represent the homogeneous geometry.
Geometric Algebra Representation
Here we can see how we represent a location in physical space as a direction (ratio of x,y,z with w) in homogeneous space
| quantity | Physical Space | Homogeneous Space |
|---|---|---|
![]() |
![]() |
|
| coordinate | x,y,z | x,y,z,w |
| direction | a (notation as bold) |
a |
location |
a = vector (representing an offset from origin) |
a + e0 |
| oriented line | outer product of two vectors: a^b |
|
| oriented plane | outer product of three vectors: a^b^c |
|
For a discussion of alternative ways to use Geometric Algebra to combine rotations and translations see this page.
This geometric algebra has 4 dimensions (which all square to +ve), known as G4,0,0, this is discussed on this page. We could alternatively allow e0 to square to -ve, this would work just as well.
One of the advantages of projective space is that it allows points at infinity to be defined. The plane at infinity is identified by (x,y,z,0).










