Dismiss Notice
Join Physics Forums Today!
The friendliest, high quality science and math community on the planet! Everyone who loves science is here!

Special Relativity Simulator

  1. Feb 20, 2012 #1

    I have no formal relativistic education, however, I am plenty of an enthusiast. Finding relativity fascinating I decided to learn it the best way that I know of, that is - putting it into a computer program. So, I've written a special relativity simulator.

    It doesn't show Doppler and headlight effects as some other fine simulators out there, but it can simulate relativistic motion of "bodies", their 3d models and has some features I haven't found elsewhere. It can show the scene as-observed (typical text-book view) or as-seen (with optical aberration). The camera is put outside of the current observer, which is rather unrealistic, but I find such 3rd person view to show with more clarity what is going on. The bodies can do accelerations, you can rewind the time and switch among observers on-the-fly (every body can be an observer). User interface is limited to 2D plane, but the engine is fully 3D capable. I've prepared several scripts/examples which you can try, such as the classical length contraction, time dilation, simultaneity, twin paradox, ladder and barn...

    There are screens/video, a Linux build and source code available at http://thelarge.org . All the libraries used are cross-platform.

    I though the physics forum would be the best place to kindly ask for some feedback. If anyone is interested, I'd appreciate any comments, especially on the correctness and accuracy of the simulation.

  2. jcsd
  3. Feb 20, 2012 #2


    User Avatar
    Staff Emeritus
    Science Advisor
    Gold Member

    The demo video looks cool, and it's great that this is open source. I assume you're familiar with the ANU videos.
  4. Feb 21, 2012 #3
    Yes, I've seen those, also, they did Real Time Relativity, which is really nice :) . However, I believe RTR's world is pretty static, I wanted to do fully dynamic simulation, similar to Bullet or ODE (OpenDynamicsEngine), but relativistic. I wanted to be able to specify initial velocities and positions of the bodies, then have an update callback at each time-step to apply accelerations. The program keeps track of history/worldlines, so you can go back in time and switch observers. That way it is possible to, say, program a game or some other interactive dynamic simulation using special-relativistic physics.
Share this great discussion with others via Reddit, Google+, Twitter, or Facebook