Un buco nero è un corpo con un campo gravitazionale così grande da impedire persino alla luce di fuggire. Un campo gravitazionale di questa intensità è ottenuto con l'addensamento dell'intera massa del corpo in un singolo punto, spesso in seguito ad eventi catastrofici come una supernova o lo scontro tra due stelle. Proprio a causa del fatto che la luce non può sfuggire alla sua forza gravitazionale, la singolarità è impossibile da osservare. La sfera nera che di solito associamo con l'idea di un buco nero è l'orizzonte degli eventi, cioè la distanza minima a cui la luce può arrivare dalla singolarià senza esserne "inghiottita". Per "vedere" un buco nero è necessario osservare gli effetti che esso ha sullo spazio circostante. Un esempio è il fenomeno della "lente gravitazionale", per cui la luce che passa vicino ad un corpo massiccio viene deviata. Questo effetto è visibile anche nella simulazione che abbiamo creato qui a fianco, specialmente quando il disco di accrescimento è sullo stesso piano della telecamera. Un altro elemento che aiuta a riconoscere i buchi neri è il disco di accrescimento, un enorme disco di materiale a temperature altissime che ruota attorno al corpo. Un corpo simile fu ipotizzato per la prima volta da John Michell nel 1783, che considerò l'ipotesi di un corpo la cui velocità di fuga fosse superiore a quella della luce. Chiamò questi corpi "stelle oscure". Sarà poi Schwarzschild ad ipotizzarne l'esistenza dal punto di vista relativistico poco dopo la pubblicazione della teoria di relatività generale di Einstein. Le sue importanti scoperte in questo campo permisero a J. Robert Oppenheimer e George Micheal Volkoff di trovare il limite massimo di massa di una stella composta di materia degenere (limite di Tolman-Oppenheimer-Volkoff). La simulazione qui a fianco fa uso di una semplificazione della metrica di Schwarzschild che permette di calcolare di iterazione in iterazione la curvatura a cui è soggetto un fotone che si avvicina ad un corpo massiccio. Per questo, ruotando il modello, è facile notare come la curvatura della luce porta a vedere il disco di accrescimento attorno all'orizzonte degli eventi perpendicolarmente al piano della telecamera. Ancora più evidente è la curvatura che affligge lo sfondo, che viene ricalcolata ad ogni spostamento della telecamera. Questa simulazione fa uso di Babylon.js, in particolare delle shader, con cui è possibile calcolare per ogni istanza il percorso di un raggio di luce e curvarlo dove necessario.