• Stars
    star
    685
  • Rank 65,982 (Top 2 %)
  • Language
    Python
  • License
    GNU General Publi...
  • Created over 9 years ago
  • Updated 6 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Starless is a CPU black hole raytracer in numpy suitable for both informative diagrams and decent wallpaper material.

Python Black Hole Raytracer

Starless is a CPU black hole raytracer in numpy suitable for both informative diagrams and decent wallpaper material.

It is still in development and will be presented on my site along with my real time black hole visualizer. Starless, instead, is not real time but offers greater functionality, performing actual raytracing (while the mentioned WebGL applet uses a precomputed lookup texture for deflection).

Features

  • Full geodesic raytracing in Schwarzschild geometry
  • Predicts distortion of arbitrary objects defined implicitly
  • Alpha-blended accretion disk
  • Optional blackbody mode for accretion disk with realistic redshift (doppler + gravitational)
  • Sky distortion
  • Dust
  • Bloom postprocessing by Airy disk convolution with spectral dependence
  • Completely parallel - renders chunks of the image using numpy arrays arithmetic
  • Multicore (with multiprocessing)
  • Easy debugging by saving masks and intermediate results as images

(Possible) future features

  • Non-stationary observers, aberration, render from inside the event horizon
  • Kerr geometry (rotating black holes with frame dragging)
  • Integration of time variable, time dependent objects (e.g. orbiting sphere with retarded time rendering) with worldtube-null geodesic intersection
  • Generic redshift framework for solid colour objects

Installation and usage

Please refer to the Wiki.