All Projects → oseiskar → Black Hole

oseiskar / Black Hole

Licence: other
WebGL simulation of a Schwarzschild black hole

Programming Languages

javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to Black Hole

Sky Shader
☀️ WebGL sky and sun shader editor
Stars: ✭ 90 (-4.26%)
Mutual labels:  webgl, shader
Webgl Wind
Wind power visualization with WebGL particles
Stars: ✭ 601 (+539.36%)
Mutual labels:  webgl, simulation
Three.phenomenon
⭐️ A tiny wrapper around three.js built for high-performance WebGL experiences.
Stars: ✭ 338 (+259.57%)
Mutual labels:  webgl, shader
webrays
WebRays - Ray Tracing on the Web
Stars: ✭ 38 (-59.57%)
Mutual labels:  webgl, raytracing
Glsl Grid
Draws an antialiased grid along the X/Y/Z direction of a mesh.
Stars: ✭ 57 (-39.36%)
Mutual labels:  webgl, shader
Gl Water2d
2D liquid simulation in WebGL
Stars: ✭ 260 (+176.6%)
Mutual labels:  webgl, simulation
Voxel Cone Tracing
A real-time global illumination implementation using voxel cone tracing. Implemented in C++ and GLSL.
Stars: ✭ 555 (+490.43%)
Mutual labels:  shader, raytracing
Ashes
WebGL2.0 3D Engine & ECS & RayTracing
Stars: ✭ 191 (+103.19%)
Mutual labels:  webgl, raytracing
Curtainsjs
curtains.js is a lightweight vanilla WebGL javascript library that turns HTML DOM elements into interactive textured planes.
Stars: ✭ 1,039 (+1005.32%)
Mutual labels:  webgl, shader
Three.js Pathtracing Renderer
Real-time PathTracing with global illumination and progressive rendering, all on top of the Three.js WebGL framework. Click here for Live Demo: https://erichlof.github.io/THREE.js-PathTracing-Renderer/Geometry_Showcase.html
Stars: ✭ 872 (+827.66%)
Mutual labels:  webgl, raytracing
nvjob-boids
#NVJOB Simple Boids (Flocks of Birds, Fish and Insects). Flocking Simulation. Free Unity Asset.
Stars: ✭ 55 (-41.49%)
Mutual labels:  simulation, shader
3d Game Shaders For Beginners
🎮 A step-by-step guide to implementing SSAO, depth of field, lighting, normal mapping, and more for your 3D game.
Stars: ✭ 11,698 (+12344.68%)
Mutual labels:  webgl, shader
DuEngine
An efficient interactive C++ renderer for ShaderToy-alike demos with 2D/3D/CubeMap/Video/Camera/LightField/Volume textures. (Partially used in my I3D 2018 papers)
Stars: ✭ 62 (-34.04%)
Mutual labels:  shader, raytracing
Modv
modular audio visualisation powered by JavaScript
Stars: ✭ 292 (+210.64%)
Mutual labels:  webgl, shader
Magicshader
🔮 Tiny helper for three.js to debug and write shaders
Stars: ✭ 205 (+118.09%)
Mutual labels:  webgl, shader
Aladino
🧞‍♂️ Your magic WebGL carpet
Stars: ✭ 225 (+139.36%)
Mutual labels:  webgl, shader
Webgl Fluid Simulation
Play with fluids in your browser (works even on mobile)
Stars: ✭ 11,621 (+12262.77%)
Mutual labels:  webgl, simulation
Glsl Godrays
This module implements a volumetric light scattering effect(godrays)
Stars: ✭ 155 (+64.89%)
Mutual labels:  webgl, shader
Ocean community next gen
Next gen iteration of the unity community ocean shader
Stars: ✭ 855 (+809.57%)
Mutual labels:  shader, simulation
Glsl Worley
Worley noise implementation for WebGL shaders
Stars: ✭ 66 (-29.79%)
Mutual labels:  webgl, shader


Ray-traced simulation of a black hole

In this simulation, the light ray paths are computed by integrating an ODE describing the Schwarzschild geodesics using GLSL on the GPU, leveraging WebGL and three.js. This should result to a fairly physically accurate gravitational lensing effect. Various other relativistic effects have also been added and their contributions can be toggled from the GUI. The simulation has normalized units such that the Schwarzschild radius of the black hole is one and the speed of light is one length unit per second (unless changed using the "time scale" parameter).

See this page (PDF version) for a more detailed description of the physics of the simulation.

System requirements

The simulation needs a decent GPU and a recent variant of Chrome or Firefox to run smoothly. In addition to changing simulation quality from the GUI, frame rate can be increased by shrinking the browser window and/or reducing screen resolution. Disabling the planet from the GUI also increases frame rate.

Example: runs 30+ fps at resolution 1920 x 1080 in Chrome 48 on a Linux desktop with GeForce GTX 750 Ti and "high" simulation quality

Known artefacts

  • The striped accretion disk and planet textures are (obviously?) fake and are included to help visualizing motion.
  • The spectrum used in modeling the Doppler shift of the Milky Way background image is quite arbitrary (not based on real spectral data) and consequently the Doppler-shifted background colors may be wrong.
  • The lighting model of the planet is based on a point-like light source and a quite unphysical ambient component.
  • In the "medium" quality mode, the planet deforms unphysically when it travels between the camera and the black hole.
  • The light paths bend a bit more than they should due to low ODE solver step counts (see numeric tests), but this seems to happen in a systematic way so that the image looks very similar in comparison to a more accurate simulation.
  • Lorentz contraction causes jagged looks in the planet when simultaneously enabled with "light travel time" and the planet is close to the black hole.
  • Texture sampling issues cause unintended star blinking.

see COPYRIGHT.md for license and copyright info

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].