I've done a little program today that tries to illustrate the effects of the special theory of relativity. What I show here is a so-called Lorentz-Boost (here in x-direction). It can be described as an simple 4x4 matrix, but in this case I just used the 3x3 submatrix for the spatial components. I also decided to accelerate my observer relatively to the shown sphere (or accelerated the sphere, how you like it) according to relativistic acceleration. As velocity increases, the gamma-factor (1-v^2)^(-1/2) increases (I used natural units, so c=1, that also reduces performance loss because of additional divisions that would be needed) and the sphere shrinks in size along the moving direction. This is called Lorentz Contraction.
At the moment I'm struggling with OpenGLs internal coordinate systems (homogenous coordinates, projection, model coordinates, etc.) and try to understand how it work. I think with time I can improve some issues this program has at the moment. When you look at the sphere at the end of the video, I think it's not just a boost in x direction, but in some more general direction in the x-z plane. So the real image of the sphere might look different, but maybe I can fix this.
I'm currently thinking about a 3D-Space Simulation that respects special relativity and shows its effects like lorentz contraction, time dilatation (time "flows" slower in a moved system), doppler effect and light aberration. The lorentz contraction would follow from the lorentz group, especially from the boosts and time dilatation could easily be simulated with a different internal "clocking" of the moved objects - when the CPU clock gives your local system 1000 cycles, than a moved one just will get something like 100 cycles, for example. Doppler effect could be accomplished with pixel shader operations - the only problem I see is the aberration of light: When you travel fast enough, you will see lightsources that were behind you coming in front of you. This effect doesn't show up in a normal program because the speed of light inside a computersystem is infinit - everything is drawn instantanously onto the screen.
But at the moment I would be glad if I accomplish in getting a moving camera, that doesn't behave like a drunken monkey. ^^
EDIT:
Today I just learned about the "invisible lorentz contraction" effect. If you look at a sphere that moves fast in a direction that is orthogonal to your view, and you measure the sphere's length, then you will see a contraction. But if you take a photograph (with a very fast camera ^^), you will see a sphere again on this photograph, not an ellipsoid. That happens because the aberration of light, that seems to compensate the effect of lorentz contraction. But the size doesn't need to be the same and the geodecics might be distorted. So this video does only show the "real" sphere, it's not what you would actually "see" in reality. Here one has to distinguish "measuring" and "seeing".
Have you ever heard of a Mach-Lorentz thruster? There was supposedly a video about them but I have been unable to find it.
EccentricInTexas 8 months ago
@EccentricInTexas I think so. Why do you ask?
Copycap 8 months ago
@Copycap Well I don't fully understand the particulars of it how it works. I do however understand what it would mean if it works.
EccentricInTexas 8 months ago
@EccentricInTexas I can't find any serious papers regarding that topic, and all I can find about it and related stuff is somehow "esotheric".
Copycap 8 months ago
what sovtware did you use for this?
Dextomus 11 months ago
@Dextomus Software? Well - I could've done it with Vim and g++ but I think I used the IDE Code::Blocks cause it's easier to work with.
Used Libs: mesa3d implementation of OpenGL and freeglut.
Copycap 11 months ago