special relativity support
This may sound crazy at the first moment, but for educational purposes and certain kinds of simulations, it would be nice when animations optionally could follow the laws of special relativity. Possibly this could slow down calculations too much, but I'm sure there are fast approximation procedures.
I'm sure there are many people out there, especially the physicists, who would be happy :-)
A fast moving cube for example would look like that:
Some light modifications of the physics engine are necessary: The fomular below takes only x component into account. For all 3 dimensions it'll be slighty more complicated :-)
Set beta = v/c and gamma = 1/sqrt(1-v^2/c^2) and replace as follows:
6 Comments
A straightfoward method to recreate the moving die image is called special-relativistic polygon rendering. The idea is to transform the 3d geometry to the apparent shape an observer would see. I've put a simple blender add-on on github: github.com/tauzero7/BlenderSRPolygon .
This would be wonderful. I've spent the last few hours digging around for 3D visualization software for manipulating tensor maths intuitively. SageMath will do it. But takes text as input and outputs a plot. It doesn't have a real GUI with sliders and such to allow for intuitively exploring Riemann or Minkowski geometries. This seems a perfect Blender add-on project. Especially as a teaching tool.
Hmm, do you just want a finite speed of light for rendering moving (animated) objects at the location there were when the light arrives at the camera? Or this plus Lorentz contraction of moving objects? Or do you really want the physics simulations use relativistic mechanics? For the former there is no need for the Lorentz transform. Computing light propagation delays from the distance to the camera is sufficient. For the second, yes, then it would be used to compute the apparent deformation. For the latter it is very much insufficient, as the whole simulation modules which are based on classical mechanics would also have to be converted to relativistic.
Thinking about it a little bit more, even for the first case, as lines won't stay lines, triangles won't stay triangles. So even your simple cubes would need an extra subsurf applied (automatically?).
@o.mangold: Hi, yes of course I think an interesting option would be to visualize the Lorentz transformed (moving) objects since this is something which could improve comprehension of special relativity e.g. for students or interested people in general. To be honest I have too less undestanding of Blender programming to estimate the amount of work and the scope to realize that. It maybe that it's really too much changes (and may cause a peformance issue) but I just wanted to yield this idea to you guys to think about it. :-)
On the other hand maybe there could be a way to approximate the effects without beeing too exact in a physical sense. For example with an add-on which just produces a set of appropriate key frames from a set of initial parameters.
(and by the way please take my explanation ( light changes...) below the picture with the basic formulas not too serious, this part was meant to be a joke, not the general idea indeed )
@kit03: Ah,okay. Of course such animations of speed-distorted worlds are quite for physics teachers to show to students. I would assume, though, that it is too exotic a use case for integrating such a feature into the Blender core.
Doing it in a plugin could certainly allow to get the looks of that, but simply deforming the geometry. But what it could do would be very limited. For example, the apparent location of objects in space is affected by the time delay until the light reaches the camera, and thus the distance to it. So any displacement a plugin would do, would only be physically correct when viewed from a fixed, predefined location. But if that is good enough, a little Python programming should give you what you want.
But to be physically more accurate, a deep integration into the render engine probably couldn't be avoided. Think for example about the shadows object cast. To get the location right, the time delays would also have to be accounted for when tracing rays. Thus the rendering could not done frame by frame (meaning timestep by timestep), but would actually have to be done in 4-dimensional spacetime. That is of course completely unrealistic to expect to be implemented any time soon. It would be a task for a mad physics professor who really, really wanted to show his students how a relativistic world looks :) Then he might want also to think about color changes caused by Doppler shift, which could also not be handled realistically with only 3 color components, but would need full spectrum. OMG. You see, completely crazy stuff :)
@o.mangold: Hmm unfortunately I must aggree with you, so far.
But regarding the incredible improvements from 2.79 to 2.8 and the fast development of hardware I expect to see it at least in 3.0 :-) (assumed there is a mad physics professor among the developers :-)
However thanks for your comments ! Cheers, Peter