Schwarzschild black hole simulation

Simulation of observers moving and emitting light in a Schwarzschild spacetime, in either Schwarzschild or Kruskal-Szekeres coordinates.

You are now following this Submission

This simulation show observers emitting light while in fixed positions or freely falling in a Schwarzschild spacetime. The simulation can be shown in either the standard Schwarzschild coordinates or in Kruskal-Szekeres coordinates that extend to times after an observer has crossed the event horizon. Each observer emits a light signal periodically according to his internal clock.

Example:
create a simulation with one fixed observer at r=2 and one free falling observer starting from r=1.5 (distances are in units of the Schwarzschild radius)

>> obs(1) = struct('type','fixed','r',2,'phi',pi/4,'pulsePeriod',0.5,'n',400) ;
>> obs(2) = struct('type','free','r',1.5,'phi',pi/4,'pulsePeriod',0.5,'n',400) ;
>> Tmax = 5; %simulation time

run in Schwarzschild coordinates :

>> AxisLimits = [0 2.5 0 2.5] ;
>> run_Schwarzschild(obs,Tmax , AxisLimits)

run in Kruskal coordinates :

>> obs_clock = 2 ; % adjust simulation time to observer 2 proper time
>> run_Kruskal( obs, obs_clock , Tmax)

Example video :
https://www.youtube.com/watch?v=WoCrkn8ZvQo&t=9s

Note that these function require the Lambert_W function available here:
https://www.mathworks.com/matlabcentral/fileexchange/43419-the-lambert-w-function

Cite As

ofer v (2026). Schwarzschild black hole simulation (https://www.mathworks.com/matlabcentral/fileexchange/72254-schwarzschild-black-hole-simulation), MATLAB Central File Exchange. Retrieved .

Categories

Find more on General Physics in Help Center and MATLAB Answers

General Information

MATLAB Release Compatibility

  • Compatible with R2016b and later releases

Platform Compatibility

  • Windows
  • macOS
  • Linux
Version Published Release Notes Action
1.0.2

fix link

1.0.1

added demo video to description

1.0.0