Relativistic Effects on Objects at High Speeds

The following scenes were generated using a modified version of the freeware ray-tracing package POV-Ray. PhD Candidate Andrew Howard modified POV-Ray to show some of the relativistic effects of high speed motion. Namely, the. Lorentz Transformation . Oddly enough, the major distorting effects that we will see here are not from Lorentz Contraction , but due to the shape of the camera and the finite speed of light. The equations for the Lorentz Transformation are as follows:


In the POV-Ray program, v/c is represented as a variable called Beta. Anyone familiar with POV-Ray will have no trouble figuring out exactly how this changes POV sources based on a simple example by Andrew Howard. If you're not familiar with POV-Ray, read the comments in my POV sources where the details involving relativity are explained.

Some of the Mathy stuff

In order to created the type of animations here, the camera needs to "follow itself". Let me explain. The camera is travelling past our objects at some extremely high speed. When it takes a snapshot of the object, it will not center the object in our frame unless we account for the fact that the camera is moving, so we have to offset the camera by the distance it traveled. This is handled by the following equations:


Unfortunately, POV-Ray 2.2 does not have a square root function so I could not calculate this formula directly in my POV code. Using POV-Ray 3.0 would have fixed this problem, but the relativity code was written for 2.0. Rather then re-invent the wheel, I faked the math. Here's what I did:
I looked at some of the data Andrew Howard had collected, took the following set of points and graphed them:
 Beta  = 0.0,  DeltaX = 0 ; 
 Beta  = 0.5,  DeltaX = 1.73 ; 
 Beta  = 0.9,  DeltaX = 9.17 ; 
	     
I obtained a curve that appeared to be cubic. Using my favorite mathematical technique (trial and error) I guessed at the equation of the line and found that x' as a function of Beta is roughly:
		
((2 *  Beta  + .25)^2 )* 1.2
This is how the offset used to keep the camera pointed at the object is calculated. What this allows me to do is to simulate the following situation:

Imagine that my head were a perfect sphere floating out in the middle of deep space. Next pretend that there were 18 cameras lined up parallel to a vector that my head will travel along. All 18 camaras are pointed perpendicular to the direction of my head,ss travel, but pointed so they will see my head zooming by. The cameras are placed so that when my head passes by, the distance between my head and the cameras will be equal to the width of my head. Now, we will accelerate my head from rest up to .99c. Cameras are placed at intervals so we will get snapshots of my head at the following speeds:
0.0c,  0.1c,  0.2c,  0.3c,  0.4c,  0.5c,
0.6c,  0.65c, 0.7c,  0.75c, 0.8c,  0.85c,
0.9c,  0.92c, 0.95c, 0,97c, 0.98c, 0.99c
		         

What we will observe when we view these pictures of my head at varying speeds is an appearent rotation and a rather pronounced squishing and stretching effect on my head. The parts of my head that make up the back (farther away from the diretion the sphere is traveling) will get stretched out and the parts of my head from the middle of the sphere to the front will all get pushed up to the front. Lets take a look at some of these effects on more familiar objects before looking at my head being squished.
Stretching and Squishing Effects

Camera at rest relative to the image.
Camera moving at 1/2c relative to the image.
Camera moving at .8c relative to the image.
Camera Moving at .9c relative to the image.

Now, without further adieu, my head accelerating up to .99c as an animated gif or as an mpeg

Anyone interested in playing with modified version of POV-Ray 2.2 can download it below. It can be built on most platforms relatively painlessly. (I built it under Windows NT 4.0 and Solaris 2.5.1 to do this project). For Windows users, I suggest using Borland's C compilier and build it as a 16bit DOS application. For Unix users, it comes with a Makefile that is actually pretty good. Just change the -486 flag it tries to force gcc to use and everything should be ok.
POV-Ray 2.2 w/Relativity stuff.