Skip to content

❍ Schwarzschild space-time

JavaScriptThree.js

🎯 Visualization of space-time curvature

  • orange → real motion: geodesic flow in 4D (t,r,ϕ)(t, r, \phi)
  • cyan → Geodesic-projection on embedded equatorial surface
  • red → flat motion (Newtonian/Euclidian projected trail)

🧠 Original idea and code by M. Ryston (Department of Physics Education)
📌 Described in Interactive animations as a tool in teaching general relativity […]
📌 See also Spacetime Embedding Diagrams for Black Holes
👉 The closer to the sun, the greater the difference between red and orange!
🐍 A 3D VPython demo is available as well, see schwarzschild_space_time.py

Source


The Schwarzschild metric describes a gravitational field of a non-rotating spherical mass (and without electric charge), see Wikipedia:

ds2=cdτ2=(1rsr)c2dt2(1rsr)1dr2r2dΩ2ds^2=cd\tau^2=\left(1-\dfrac{r_s}{r}\right)c^2dt^2-\left(1-\dfrac{r_s}{r}\right)^{-1}dr^2-r^2d\Omega^2

where

dΩ2=(dθ2+sin2θdϕ2)rs=2GMc2d\Omega^2=\left(d\theta^2 + \sin^2\theta d\phi^2\right) \text{, } r_s=\dfrac{2GM}{c^2}

and GG is Newton’s gravitational constant, cc the speed of light and MM is the mass of the non-rotating spherical object.

When we assume the time to be constant (dt=0dt=0), we get:

ds2=dr212GMc2r+r2dϕ2ds^2 = \dfrac{dr^2}{1 - \dfrac{2GM}{c^2r}} +r^2d\phi^2

Now, according to Ryston’s article:

In order to visualize the curvature in the 𝑟 direction, we embed this surface into the three-dimensional Cartesian space (where 𝑟 and 𝜑 are identical to polar coordinates and the third, vertical Cartesian coordinate 𝑧 is used to visualize the actual curvature – see figure 1 below). As a result, we get an equation for the 𝑧 coordinate as a function of 𝑟: z(r)=8GMrc216M2g2c4z(r)=\sqrt{\dfrac{8GMr}{c^2} - \dfrac{16M^2g^2}{c^4}} Of course, this equation 𝑟 and 𝑧 are in meters, which is not very convenient for visualizing large regions of space. For this reason, geometricized units where 𝑐 = 𝐺 = 1 are often used. Then we get the simpler form: z(r)=8Mr16M2z(r) = \sqrt{8Mr - 16M^2}

Flamm paraboloid

Figure 1: Flamm’s paraboloid: the exterior t=const equatorial plane of a Schwarzschild Black Hole — Wikipedia

This is the quintessential formula that is used in this visualization:

class SchwarzschildSurfaceDefinition extends SurfaceDefinition {
static zAsFunctionOf = (r, M) => Math.sqrt(Math.max(0, 8 * M * r - 16 * M * M));
// ...
sample(u, v, target) {
const eps = 0.01;
const r = (this.rMin + eps) + u * (this.rMax - (this.rMin + eps));
const phi = v * 2 * Math.PI;
target.set(
r * Math.cos(phi),
SchwarzschildSurfaceDefinition.zAsFunctionOf(r, this.M),
r * Math.sin(phi)
);
}
}

A real circular orbit implies:

  • r=constantr = \text{constant}
  • r˙=0\dot r = 0
  • r¨=0\ddot r = 0

So:

  • No radiale drift
  • centripetal balance exact

We only need one equation: radiale acceleration = 0

The following equation is used:

r¨=Mr3(r2M)t˙2+Mr(r2M)r˙2+(r2M)ϕ˙2\ddot r = -\frac{M}{r^3}(r-2M) {\dot t}^2 + \frac{M}{r(r-2M)} {\dot r}^2 + (r-2M) {\dot \phi}^2

For a circular orbit we have r˙=0\dot r = 0, so all terms with r˙\dot r vanish:

0=Mr3(r2M)t˙2+(r2M)ϕ˙20 = -\frac{M}{r^3}(r-2M) {\dot t}^2 + (r-2M) {\dot \phi}^2

Factor (r2M)0(r-2M) \neq 0:

0=Mr3t˙2+ϕ˙2Mr3t˙2=ϕ˙2ϕ˙=t˙r3/2M0 = -\frac{M}{r^3} {\dot t}^2 + {\dot \phi}^2 \Rightarrow \frac{M}{r^3} {\dot t}^2 = {\dot \phi}^2 \Rightarrow \boxed{ \dot\phi = \frac{\dot t}{r^{3/2}} \sqrt{M} }

In order to obtain t˙\dot t, we note that in Schwarzschild we have the normalization:

1=(12M/r)t˙2+r2ϕ˙2-1 = -(1 - 2M/r) {\dot t}^2 + r^2 {\dot \phi}^2

Substitution of ϕ˙\dot \phi gives us:

1=(12M/r)t˙2+r2Mr3t˙2=(12M/r)t˙2+Mrt˙2-1 = -(1 - 2M/r) {\dot t}^2 + r^2 \frac{M}{r^3} {\dot t}^2 = -(1 - 2M/r) {\dot t}^2 + \frac{M}{r} {\dot t}^2

Pulling t˙2{\dot t}^2 out of the brackets we get:

1=t˙2(12MrMr)=t˙2(13Mr)-1 = -{\dot t}^2 (1 - \frac{2M}{r} - \frac{M}{r} ) = -{\dot t}^2 (1 - \frac{3M}{r} )

The solution for t˙\dot t is therefore:

t˙=113M/r\boxed{ \dot t = \frac{1}{\sqrt{1 - 3M/r}} }

As a consequence, for ϕ˙\dot \phi we obtain:

ϕ˙=Mr3/213M/r\boxed{ \dot \phi = \frac{\sqrt{M}}{r^{3/2} \sqrt{1 - 3M/r}} }

A stable circular orbit only exists if r>3Mr > 3M!

For:

  • r=3Mr = 3M → photon sphere (instable light orbit)
  • r<3Mr < 3M → no stable circular orbit possible
const tDot = 1 / Math.sqrt(1 - 3 * sun.mass / r);
const rDot = 0;
const phiDot = Math.sqrt(sun.mass) /
(r ** 1.5 * Math.sqrt(1 - 3 * sun.mass / r));
Evolution of stars
Black hole size comparison