I'm Sasha (Alexander) Plavin, an astrophysicist at Harvard's Black Hole Initiative studying quasars and black hole environments. I work with raytracing/radiative transfer simulations professionally, and wanted to make one anyone can play with — so I built this app.
Put the black hole onto your screen (any browser), or directly into your room with AR or VR (requires WebXR, for example Chrome on Android, or any VR headset). When looking around, pay attention to unintuitive relativistic effects: rays bending around the black hole, and special relativistic "Doppler boosting" changing brightness depending on the viewing angle — zoom out to see the fast jet where the latter effect is especially pronounced. Faint markers show where other viewers are standing right now.
Alternatively, put the black hole in front of your camera and watch it lens your actual surroundings. Light winds around the hole, so you see both what's in front of you and what's behind you at once (when the device and browser allow both camera feeds). The closer to the black hole, the stronger the bending — and the longer the light-travel delay: wave at it and watch the changes propagate inward. (unfortunately, WebXR restrictions make AR passthrough and the camera feed mutually exclusive)
No signup, basic features work on every device, no data uploaded — the camera feed never leaves your device. Source code: https://github.com/aplavin/blackhole.plav.in.
Enjoy having a black hole in your room, or use it for education/outreach — any questions, feedback, or suggestions are welcome!
I wouldn't mind at all if it didn't say that this was a *physically accurate* black hole specifically, but this now falls under misleading science communication in a way that often gets hand waved away as if it doesn't matter, so we've got to clear some things up!
1. The accretion disk shouldn't be red, people just expect it because it looks cool. Black hole accretion disks are near universally hot enough to be blue. Interstellar did this too, and tried to handwave it away very unconvincingly
2. This is a non/low (?) spin black hole, which isn't super duper realistic
3. It ignores the position of the camera (which affects the lorentz shifting)
4. The doppler shifting isn't terribly accurate
5. It doesn't model the accretion disk temperature distribution or colour with any kind of accuracy. Usually you model accretion disks as a blackbody radiator, shift it by the doppler, and to display this convolve this against the human eye response (LMS), go to XYZ, then RGB, do a physical tonemapping step, before an sRGB conversion. This instead does none of that - no step of this is done with any physical accuracy. Its not even illustratively correct as we'll get into
6. The actual radiative transfer is very simplified compared to what you'd use for realsies, and isn't based on any real numbers, with very simplified equations. The opacity and emissivity of the disk is arbitrary, as is the size, and it does not correctly incorporate brightness or extinction, eg here https://github.com/aplavin/blackhole.plav.in/blob/2f004bfeca... is super simplified
7. The wrong equation is used for the doppler calculation. They use the I^3 variant, whereas the data you get out of a disk sample is *radiant flux* which is actually F_obs = F_emit / (z+1)^4. This is a very common mistake in image processing, which means that the doppler shift and observer brightness isn't correct. Surface brightness over here https://github.com/aplavin/blackhole.plav.in/blob/2f004bfeca... is *not* a spectral radiance but instead a radiant flux
Stuff like the brightness -> colouring conversion is particularly inaccurate. Eg if you check out the source:
https://github.com/aplavin/blackhole.plav.in/blob/2f004bfeca...
It maps the pseudo brightness completely arbitrarily to colour. The resulting colour/brightness here then doesn't correspond to anything remotely physical. It also performs a *linear* mapping of a linear quantity (brightness) to sRGB (which is a nonlinear process!!), which means that it doesn't even retain any of the underlying physical characteristics of the brightness simulation, which itself is quite inaccurate. Its vibes all the way down
This is all fine if you're doing visualisation, but this isn't an accurate simulation. I wish this was just called a visualisation of a black hole, but its being communicated as if this is super hard science with credentials and all
I thought "oooh this is interesting I wonder how they are going to do physically accurate on an end device" Recalling how the original particle sim was something like 100TB, took 2 weeks to generate and seemed to write in a way that killed disks. but that was >10 years ago, so what clever stuff has been done to model it locally.
Its been a long time since I've looked at black holes, but what I'm not understanding is why the stars surrounding the black hole are just points, and more over why the lines are straight to the centre of the hole. from memory the way light enters the hole appears non-linear and changes on view point.
Peak HN, right here!
I consider the colormap choice to be completely arbitrary though, without affecting accuracy. Basically, it represents intensity at a given frequency, the image like one would get from a telescope. It wasn't intended as a faithful optical color representation! And really, in my (admittedly biased) view of a radio astronomer, I tend to assume frequencies invisible to the human eye anyway.
Its titled a "physically accurate black hole"! Please don't do this, if its intentionally not physically accurate and heavily simplified! The general public on here don't know better, and it takes someone else with years of experience simulating black holes to dig through your code to show what you've simplified. There's like a few hundred people who have the right experience worldwide to know that you've got some of your equations incorrect
The issue is when you're communicating doppler, if you want to correctly show the change in doppler, you can't make the intensity or colour mapping arbitrary
There's two ways to communicate accurately an example linear change in emissive power:
1. Use a perceptual brightness system, so that a linear change in power represents a linear perceptual change in perceived brightness. This accurately communicates to a viewer the underlying shift in power emission, if you want to show off how a radio telescope perceives a black hole for example
2. Use an emitted power <-> sRGB mapping (with tonemapping), so that a linear change in power is perceived as if it were a physical light getting brighter. This is more "what would this look like to a person?"
At the moment the change in your image brightness doesn't correspond to anything, which means that its not really communicating any science, and it doesn't correspond to doppler. Which is fine if its just illustrative and that's clear, but again vanishingly few people will know this is a visualisation not a physically accurate render
It also doesn't exert the gravity an actually accurate black hole should :) And also, even on a phone with two cameras, they only cover a part of sphere – while a real black hole would bend light coming from all 4pi directions. Some simplification is generally required ("the map is not the territory") and I don't see "simplified" as being opposite to "accurate".
Colormap choice: it can be a useful mode to show proper linear power -> linear perceived brightness mapping – true! But that's only one of many possible choices, and scales like logarithmic are very common in scientific images.
Are black hole accretion disks generally red in real astrophysical cases?
They're most accurately represented as being blue. Red is fine for visualisations because it looks cool (which is fine!), but blue is the physically accurate colour. Visualisations claiming to be accurate like this presenting red black holes is becoming an increasingly large science communication problem
The way that the colour and brightness are mapped together is also not correlated correctly, and some of the equations just aren't right. The doppler isn't correct at all here, partly because its simulated incorrectly (with the camera problems), and partly because the mapping done at the end doesn't correlate to any reasonable brightness
Stuff like this: Its not accurate at all. It isn't simplified, its just wrong - which is totally fine for a visualisation, if that's the intent. But:
>scales like logarithmic are very common in scientific images.
Sure. What scale are you using for the doppler brightness here? Because as far as I can tell, its a piecewise mapping of the form ~pow(x, 2.2), after being run through a non smooth function `afmhot` - a function which doesn't have a linear brightness response. So the brightness in this image doesn't really correspond to anything related to doppler or brightness, and the colour also doesn't correspond to anything involving colour (or the doppler). The entire image's look is basically accidental
Here's a specific comment from the event horizon telescope talking about exactly this problem with specifically the afmhot transform being used, because its important for visualisation:
https://github.com/achael/eht-imaging/issues/85
Which shows some of the problems here
You’ve already done great work here. That said, the feedback seems to come from someone who spent considerable time analyzing your work. Even if only a few of the suggestions are ultimately valuable, that’s still a meaningful contribution and worth considering.
Love, Death & Robots: Black hole used red for the disc, too.
The lines in the demo look upscaled and aliased for some reason.
Yeah, that was the day I learned I have a deep, crippling phobia of large objects. And Melanoheliophobia, which is fear of black holes. The only other time I've felt that way was snorkeling once near a giant 3 story tall bait ball of swirling fish, which was so disorienting and panic inducing that I vomited.
I was nervous beforehand, but once I was in (and had accepted the inevitability of my own death) it was surprisingly calm / calming floating around and having these frickin' aquatic alien species just going about their dailies around me. I went close to the massive grouper just to get the scale right (not that I can really remember, it was 26 years ago). I even looked through the perspex so I could see the non-human-safe sharks in the tank next door.
After the (awesome) experience, I went and looked at the grouper from the outside (one of those underground big perspex viewing rooms) and I was back to being awed / scared by its size, and somewhat refusing to believe that I'd been in there with it. The memory of it is scarier to me than what I remember feeling when actually doing it. It's weird.
EDIT: Apparently not licensed, just completely unrelated.
No Orcas, good rehab program, seal exhibit is good (no true seals), Polar bears are a bit sad though
I did the seal diving experience which was great - mostly disabled California sea lions and NZ Fur seals (which do well in captivity)
Strongly recommend Outer Wilds. Falling into the black hole the first time was one of my most scared moments in gaming. I was totally panicking lol
And getting close to the upper atmosphere of Giant's Deep for the first time, staring, thinking about the atmospheres of real-world gas giants, knowing that I need to take the plunge.
That game exposed some phobias that I'd only been vaguely aware of before.
I recommend the game Exo One then.
It's a surreal game of flying a spaceship around in the atmosphere of a gas giant. While beautiful to look at, I know enough that flying around in a gas giant is so terrifying a prospect I never managed to complete the demo of the game. "Oh, how do you falling through pitch black clouds with winds in the 3000+ km/h where it's raining literal diamonds until you reach a lake of supercritical fluid at extreme pressures?" You don't even have to go very far, there's 4 of these in our solar system alone.
Side effects may include overwhelming hate for Walt Disney Productions.
Tangential, but this being a nearly word-for-word translation of “black hole fear” made me realize how odd it is that we insist on latinizing these things.
https://en.wikipedia.org/wiki/Chris_Cornell#Personal_life
The modern Greek terms for "black hole" are:
μαύρη τρύπα or μελανή οπή
https://el.wikipedia.org/wiki/%CE%9C%CE%B1%CF%8D%CF%81%CE%B7...
helio- cannot mean "star" in a generic way but invariably refers to our own Sun. If referring to some other star, then we use aster-.
For example many food dishes we have retain basic naming conventions, yet have well understood meaning. In the US a customer ordering spaghetti is likely to be quite unhappy if they get a cream sauce, even though the order itself is literally just the name of the noodle.
Why would you expect that? It seems the opposite of what we see in practice. Colloquial language typically makes no concessions to technical usage.
Your example works against your own position. “Spaghetti” is an Italian word, much like the Greek portmanteau that started this discussion. The idea that it implies a particular sauce is purely regional, as you noted by saying “In the US”. (I had to ask an LLM what you might mean - apparently you would expect tomato sauce.) Ironically, that would not be expected in Italy.
So here we have a word taken from another language, which has a local connotation which depends on a shared context. As with all language, one has to learn that context. It doesn’t matter that much what the words are. If the word had been “thinnoodle” instead, that’s what you would have learned and been familiar with. (“Noodle” comes from German and entered English about 65 years before spaghetti, apparently.)
Supernova and asteroids were always scarier to me because they’re potentially planet-ending scenarios. Whereas a black hole is benign as long as you don’t move into its orbit at too acute an angle.
Many black holes have a bright accretion disk outside their event horizon, so visibility for those is not an issue.
But it’s certainly possible to have maximally scary black holes that have no accretion disk and are small enough so as not to cause significant lensing. You could fly your spaceship straight into one of those without even realizing, until you start turning to spaghetti.
> it’s certainly possible to have maximally scary black holes that have no accretion disk and are small enough so as not to cause significant lensing
Now that's a proper cosmic horror.
Thank you for mentioning this. I am an avid space nerd. One day I decided to try Space Engine, and one of the first thing I did was get warped to a black hole. Seeing a literal hole in space time appear in front of my screen was one of the most terrifying things I've experienced. I Alt-F4'd, and never opened that application again.
It's like every single atom, nay, every single subatomic carrier of information in my body was telling me to stay the hell away from that.
I wonder if some tricks, adjustments are feasible, to minimize the effects of these phobias? I see these visualizations as a pathway to make understanding such a complicated, unintuitive object more accessible – and would be great to make it even more accessible, if it makes sense... Happy to chat more, brainstorm some solutions.
Oh, here we go: your sense of scale pertains to volume, not mass. The entire point of a black hole is that its enormous mass is concentrated in the smallest size possible. A golf ball-sized black hole would be a realistic conjecture.
Okay, so this appears to be a neologism that may not be found outside of science fiction dialogue. But I can appreciate the humorous derivation here.
Wiktionary defines this as an "irrational fear" which is in-line with other irrational fears known as phobia. So, is it possible to have a rational or healthy fear of black holes? Is it rational to be unafraid of them?
I am unafraid of personally meeting the Flying Spaghetti Monster whilst not wearing a colander on my head, and I am not irrationally afraid that Azeroth will be invaded by Kardashians. I am not afraid that a dragon will bite my head off.
It seems rationally to be respectfully "fearful" of the capabilities and awesome astrophysical properties of black holes, but it would be irrational to be afraid that I could fall into one, or be personally harmed in any way by one. If someone begins "seeing" black holes at the end of their suburban cul-de-sac, then probably get some professional help.
I just get a flat floating image of a black hole. Am i holding it wrong?
Or could the brightness shown be a result of it being Kerr vs Schwarzschild?
Kerr vs Schwarzschild (static vs rotating black holes) is a much smaller effect visually – that's why it is so hard for us to measure black hole spins (= how fast they are rotating) observationally, even with the Event Horizon Telescope.
Very cool demo! Thanks for sharing!
(For reference, my experience rendering black holes is recreating Luminet's rendering from the late 70s: https://www.ioccc.org/2025/cesmoak/index.html )
Fortran punchcard style to render black holes?! That's really going full circle to the origins, I really enjoyed reading about Luminet's work some time ago.
Yep, I had fun learning a lot about punchcards, Fortran, and the math behind black holes. I suspect I'm doing something similar to you in my Fortran implementation, raymarching along the null geodesic to come up with my final image: https://imgur.com/a/czysDls
Also, I have to point out the "going full circle" pun, intended or not.
I work in the Event Horizon Telescope, studying jets accelerated by black holes, and immediate black hole surroundings as well. I do ray tracing / radiative transfer simulations, and this app is an adaptation of those simulations – with the primary focus on being physically accurate under reasonable assumptions.
And totally, I enjoyed listening to Kip Thorne's lectures and talking to him, he gives them in a very approachable style while remaining honest!
https://www.youtube.com/watch?v=C7JQ7Rpwn2k&t=1401s (the whole video is incredible, but this timestamp is the magical bit)
IMU are very useful to known your orientation though. Even an inaccurate IMU is useful to provide an initial estimate to feed vision-based algorithms.
There are a few neat black hole shaders[1][2] on Shadertoy as well.
Me: zooms in
Forgive my ignorance.
But what would it take to put a fist sized black hole in your room.
[1] https://www.omnicalculator.com/physics/schwarzschild-radius
Imagine my disappointment at finding out that I'm gonna need about 10^47 chonky house cats to make a 1cm blackhole! Where could I find that!
Obviously that's not possible by today's physics.
But lets say it was possible, by placing it some where space, how would one make it ?
I think the earliest of these black-hole-camera renderings is https://dominic-chang.com/bhi-filter/ though (also linked in readme) – a direct inspiration for the camera mode in my app!
Two black holes at once?!?!?? Yeah, I'm crazy like that.
---
Reminds me of my favorite Spongebob Squarepants gag. Spongebob and Patrick Starfish were tasked to paint the house of Mr. Krabs, Spongebob's exacting boss at the Krusty Krab. Because of course this is a cartoon, they have to paint with all the furniture and bric-a-bracs still in the room. They are just somehow expected to paint around stuff.
Because Patrick is dumb as a starfish (go figure) they end up with a big paint bubble threatening to burst and cover _everything_ with a layer of paint.
Spongebob (panicked): Eeeek! Patrick what can be worse than one big paint bubble in Mr. Krabs' living room?
Patrick: laughs oooh I know...
He proceeds to blow another big paint bubble
Patrick: two big paint bubbles!
Black holes don't really "suck in" light. Whatever falls onto the black hole itself gets deleted, of course – but otherwise, it bends light rays towards its center. That's why the app shows distortion + black circle in the in middle in the camera mode.
I grew up with micro black holes being a possibility, with conjectures such as primordial black hole evaporating down to Planck dimension stability, etc.