Project idea: 4D Visualization of (algebro-)geometric objects

Many contemporary video games are now "3D" on a flat screen (yet it seems quite realistic). This is done by using perspective drawing that dates back even further than Albrecht Dürer. The projection that is used in 3d gaming is a centric projection, which is not a linear operation from 3d space to 2d space. If you know something about computer graphics, you heard that matrix multiplication (i.e. linear operations) are super fast and almost everything else is so slow that we approximate it somehow by stuff that can be done via matrix multiplications. The nice thing is, once we use projective geometry and introduce a fourth coordinate, the central projection becomes a linear operation (from projective 3-space to 2-space).

Can we do the same for 4d? Of course we can. There are (google it!) several visualizations of the 4-dimensional hypercube which has 3d-cubes as faces, some in parallel and some in central projection. If you see them, it's quite hard to wrap your head around. We are used to three dimensions, not four.

I read somewhere [citation missing] that we can learn to experience four dimensions like we experience three, if we can move around in four dimensions. While this is impossible with our actual bodies, it is possible in a simulated environment, on a two-dimensional screen. Now imagine you see one of those pictures of a hypercube. Moving around means that you can translate the hypercube on the screen (and not the picture moves, but the object, since the projection does something different) and rotate it around all four rotation axes. Maybe this is also available somewhere already?

Once upon a time, I wanted to apply my first year course in linear algebra and implemented such a movable hypercube in Python. It worked, i.e. I could now wrap my head around this and "feel" the object somehow (not as good as 3d objects). I never managed to implement anything else than the hypercube. Rotation of four axes was done using two hands and the keyboard arrows plus keyboard WASD.

Why would one want such a thing? Curiosity, new experiences and a piece of art would be enough to do this. There is also a very concrete reason I want such a thing (and it stands as example for many similar wishes): the complex exponential function. I remember having seen somewhere "36 views of the complex exponential function", just like the famous 36 views of Mt.Fuji (but I didn't find it again now). It is notoriously hard to graph a function which would have a 4-dimensional graph (in reel coordinates), so people resort to all kinds of tricks to reduce the complexity. They graph sine and cosine instead, draw only the image of some line in the complex plane, or just draw the argument or modulus - which gives 3d pictures.

Ideally, I'd like to take the code from surf. Maybe it's better to start with some simple prototype like the graph of the complex exponential function.

[update 2014-02-05] maybe related: http://www.fourthdimensiongame.com/

[update 2014-02-12] related: mathematicians struggle with higher dimensions: Intuitive crutches for higher dimensional thinking

Author:

You can leave a response.

3 Responses

1. 1
Wuyts Guido
2016-04-18 (18. April 2016)

Hello, I think my website mentioned here does about just what you seem to look for: viewing complex functions, completely, in a projective way. You may want to have a look.
Regards
Guido 'wugi' Wuyts

2. That looks interesting, but as far as I could see you're talking about the Basic program with a Windows executable, right? I can not test that right now, as I am on Linux. The ideal thing would probably be an Android/iOS app, so that today's students can appreciate it.

3. 3
Wuyts Guido
2016-04-18 (18. April 2016)

Not only the Basic. The interesting thing is that I found a more powerful tool in the Graphing Calculator 4.0 : that offers also a ***free Viewer*** with which my downloadable grapher files can be opened, viewed and manipulated.
All links can be found on my site.
The Android app I discuss can be used for some basic functions, with the projection trick I mention there as well.

Regards
Guido 'wugi' Wuyts

*