black hole real equations

I’m trying to make a real rendering in with four-dimension equations ( space-time equations )
for now I have this :
a man falling towards a black hole - in the bottom - with a no moving space ship far away -
light ray follow the flat space time

here is the blender python :

#V01 erreur la taille en frame 0 n'est pas bonne
import bpy
from  mathutils import *

G,M,c=6.6742E-11 , 5.9736E24 *1.0E4 , 299792458.0
r0=6371000.0
rTN=G*M/c**2 #44.36024633096978


########## initialisation
rinit = rTN * 20.0
#r , t = rinit , 0.0
#dt,dr=1.0,0.0
#temps propre
Tp=0.0


scene=bpy.data.scenes['Scene']

cam=scene.objects['Camera']

obj=scene.objects['moi:jeans01decimate']
mesh=obj.data
obj.location=Vector((0.0,0.0,0.0))
scene.frame_current=0
for m in mesh.vertices:
    #m.co+=Vector((0.0,0.0,rinit))
    m.keyframe_insert('co')

Ctr=Vector((0.0,0.0,0.0))
points=[]
scene.frame_current=0
for n in range(len(mesh.vertices)):
    m=mesh.vertices[n]
    r=(m.co-Ctr).length
    pos=[0.0,r]
    vit=[1.0,0.0] # dt/da dr/da
    points.append([pos,vit])
'''    
for n in range(len(mesh.vertices)):
    m=mesh.vertices[n]
    #print("m.co",m.co)
'''

DTp=4.0E-8
def rva(DTp,pos,vit):
    t , r = pos[0],pos[1]
    K=2.0*G*M/r/c**2.0
    dt,dr = vit[0],vit[1]
    rr=r + dr * DTp
    tt = t + dt * DTp
    
    dr += DTp * 1.0 / (2.0*r) * K * (1-K) * ( - (c*dt) **2 + dr**2 )
    dt += DTp *  -  (1.0 / r) *K  / (1-K)**2.0 * dt *dr
    
    return [tt,rr],[dt,dr]    

def AfficheLaFrame(frame,dt):#temps= frame*dt
    if frame % 1==0:
        return True
    if frame % 1 !=0:
        return False

fini=False
for s in range(1,1000):    
    #print(s)
    Tp=Tp+DTp
    CentreGrav=Vector((0.0,0.0,0.0))
    for n in range(len(mesh.vertices)):
        if fini==False:
            pos,vit=points[n][0],points[n][1]
            pos,vit=rva(DTp,pos,vit)
            points[n][0],points[n][1]=pos,vit
            t,r=pos[0],pos[1]
            #print('r=',r)
            if r<rTN  or abs(r)> 1E10: 
                fini=True
        if fini==False and AfficheLaFrame(s,DTp)==True:            
            scene.frame_current=s
            m=mesh.vertices[n]
            m.co=(m.co-Ctr).normalized()*r+Ctr
            m.keyframe_insert('co')
        #CentreGrav+=m.co    
    #cam.location=CentreGrav/len(mesh.vertices)+Vector((0.0,50.0,0.0))
    if fini==False and AfficheLaFrame(s,DTp)==True:
        print(s)
        cam.location=mesh.vertices[0].co+Vector((0.0,5.0,-2.0))
        cam.keyframe_insert('location')
print(rinit,rTN)    
    

Attachments

humainV02.blend (1.39 MB)

But what is our our frame of reference? Wouldn’t the man redshift out before we see spaghettification, indeed wouldn’t he just appear to stop at the boundary?

the boundary is not seen - after the last frame I should have change the step
no redshift because it’s the first try
I’m not sure the way to transform from 4d to 3d so for this first try I have just transformed proper time to frame

I wonder if the effect on the man is the consequence of general relativity or just gravitation : GM/c**2 ~ 40m

maybe you can help me for redshift : because the photon will follow a curve , how to have the photons which go from one point on the man to the camera
probally i will start without this problem and just change the vertex color with the speed

I guess that if you must show stretching then the redshift will occur along the body, changing from white at the head to red at the toes as he enters a stronger gravitational field?
However as the light slows perhaps the appearance of stretching will reduce too? As the light from the toes will come to viewer more slowly, perhaps there’s a chance that the spaceman will look squashed instead (but he would still actually stretch).

Probably you and me , we have read most description about what should, would happen
As I have tried many times to describe to a non physician a black hole I can see I m not sure about what will happen :
so I wanna just let the equations speak.

Good idea about using equation result, but I don’t think that light rays behave physically in Blender enough to reconstruct gravitational bending. Will you use optics and refraction to simulate this effect?

Also, about the redshift, you would need to simulate all the colours–invisible ones like x rays, gamma rays, UV light, into the rendering so that when those come into view they are adequately represented, would you not?

This seems to be all rather beyond the scope of normal Blender works, though. Maybe we need a new Relativistic Rendering engine? Otherwise it seems that complicated tricks are about the best you can get. I am not sure that the glass trick would work, as it seems that 1) there is a lot more going on than mere refraction, and 2) it seems that the ‘glass’ would need to be of inconsistent IOR over its volume. Then again, I lack a better suggestion.

I agree about letting the actual physical understanding guide the image, but for much of this it seems to be, stretching what Blender is meant to do, and letting the equations speak is very difficult, if you lack a rendering engine that can interpret those equations.

I shall be thinking of ways to get around that, though, and by no means think that it is a silly attempt. Quite the contrary.

Although a variable IOR through a volume is interesting.