Potato is fastest. Pretty is sharpest.
Hover over the observer image
A naked singularity is a theoretical spacetime singularity without an event horizon. The uncharged black-hole mode uses Schwarzschild at zero spin (horizon r = 2M), or Kerr when χ > 0. The naked-singularity mode uses the charged, nonrotating Reissner–Nordström solution with Q/M > 1, in geometric units G = c = 1.
Each pixel follows a numerically integrated null geodesic. An inward gravitational term and an outward charge term bend its path. For 1 < Q/M ≤ √(9/8), photon spheres can still exist; above that threshold there are no circular photon orbits.
The glowing disk is an artistic, optically thin emitter. It is not a self-consistent accretion model. Cubes are static coordinate-space markers. Finite integration steps and a small central cutoff limit accuracy close to the singularity; this is an exploratory visualization, not a research solver.
Choose “Light paths” in the View selector to orbit an external view of rays traced backward from the observer. Bright moving markers illustrate the paths; they are not a coordinate-time animation. Geometry toggles show the center, grid, camera frustum, Schwarzschild reference sphere, and photon spheres. The Schwarzschild radius is a true horizon only in the black-hole mode.
Enable Disk UV debug to match labeled disk regions A1–H4 to the source map. U wraps around the disk; V runs from inner to outer radius. TOP (+Y) uses warm colors; BOTTOM (−Y) uses cool colors. The UV view is an opaque first-intersection diagnostic. Its grid can stay fixed or follow the disk rotation. Compare lensing shows the same observer, time, and scene with curved rays on the left and straight rays on the right. Both views move and pause together.
Render diagnostics show integration steps, closest approach, net direction change (not accumulated orbit angle), disk crossings, or termination. These traces continue through disk emission; an opaque cube still ends the GPU ray. Red budget pixels mean the ray did not finish within the selected step count. The cursor inspector runs a separate, finer CPU reference geodesic. Its first-hit disk coordinates and outcome can differ near sharp boundaries or strongly bent paths. The reference reports energy drift for Schwarzschild/RN, or the normalized null-constraint residual |2ℋ| for Kerr. These are numerical consistency checks, not a bound on image accuracy.
The descent is a cinematic camera animation with an accelerating radial profile. The final image fades at the event horizon, where the static-observer rendering ends. It is not a physically calibrated free-fall clock or an interior black-hole simulation. Pause, stop, reset, or replay at any time.
Nonzero black-hole spin selects Kerr null geodesics, traced backward in outgoing Cartesian Kerr–Schild coordinates. The static camera stays outside the ergosphere. The horizon radius is r₊ = M(1 + √(1 − χ²)); the disk inner edge follows the prograde ISCO. UV debug colors captured rays by artificial horizon longitude/latitude and can rotate at ΩH. These labels are coordinate markers, not horizon radiation. The Kerr shadow’s displacement and distortion come from the light trajectories.
The orbit lab integrates equatorial timelike Kerr geodesics in proper time using conserved energy and angular momentum. Circular-orbit stability is classified by the chosen prograde/retrograde photon radius and ISCO. Perturbations recompute energy to satisfy the radial constraint. Trajectories stop just outside the horizon. The enlarged coordinate diagram and finite ray integration are educational; radiation reaction, an accretion flow solution, and interior motion are not included. Existing spatial-curvature and tidal views select Schwarzschild (zero spin).
Curvature shows Flamm’s embedding of the Schwarzschild exterior equatorial spatial metric: dz/dr = √(2M/(r − 2M)). The outer edge is translated to height zero. Scale 1 preserves the spatial metric; other vertical scales are display changes. The diagram contains no interior and does not represent all of four-dimensional spacetime.
Spaghettification follows a radial E = 1 geodesic from 20M to 2.2M. For x = r/20M, the linear radial and transverse separation factors are (x² + 4/√x)/5 and 2√x − x, initialized with zero relative velocity. These solve the freely falling frame’s geodesic-deviation equations. A non-interacting particle cloud stretches radially and contracts in both transverse directions. Cloud size only enlarges the diagram; strain ratios are unchanged. The centre stops outside the horizon. Enlarged points may overlap its wireframe and do not indicate particles crossing the horizon.
Orbit: drag to rotate, scroll or pinch to zoom. Fly: drag to look; W/S forward/back, A/D sideways, Q/E down/up. Hold Shift to move faster. C places a cube ahead of you. F resets the camera. Space pauses animation. Touch: one finger rotates, two fingers zoom.
Upload browser-readable images or Radiance .hdr panoramas. Cube atlases use the order +X, −X, +Y, −Y, +Z, −Z. For six images, use filenames such as px, nx, py, ny, pz, nz (or right, left, top, bottom, front, back). Unrecognized filenames use alphabetical order. Files stay in your browser. The built-in night sky uses NASA/Goddard Deep Star Maps, available at 8K and 16K (subject to your GPU texture limit).