All Projects → nilsleiffischer → Gravitational Waves Playground

nilsleiffischer / Gravitational Waves Playground

Make gravitational waves visible in an interactive iPad simulation.

Programming Languages

swift
15916 projects

Projects that are alternatives of or similar to Gravitational Waves Playground

Herebedragons
A basic 3D scene implemented with various engines, frameworks or APIs.
Stars: ✭ 1,616 (+4796.97%)
Mutual labels:  metal, scenekit
Arkit Sampler
Code examples for ARKit.
Stars: ✭ 1,334 (+3942.42%)
Mutual labels:  metal, scenekit
Ios Learning Materials
📚Curated list of articles, web-resources, tutorials and code repositories that may help you dig a little bit deeper into iOS [and Apple Platforms].
Stars: ✭ 1,380 (+4081.82%)
Mutual labels:  metal, scenekit
Gltfkit
An Objective-C glTF 2.0 loader and Metal-based renderer
Stars: ✭ 138 (+318.18%)
Mutual labels:  metal, scenekit
HelloMetal
A Suite of Metal Examples written in Swift 4.2. Highlights: Model I/O - SceneKit - OpenEXR.
Stars: ✭ 36 (+9.09%)
Mutual labels:  metal, scenekit
ThickRedLine
Thick Red Line - drawing thick lines for SceneKit with metal shaders
Stars: ✭ 40 (+21.21%)
Mutual labels:  metal, scenekit
mule
Minimal USD Layout Editor
Stars: ✭ 27 (-18.18%)
Mutual labels:  metal, scenekit
Metalscope
Metal-backed 360° panorama view for iOS
Stars: ✭ 293 (+787.88%)
Mutual labels:  metal, scenekit
Layaair
LayaAir is an open-source 2D/3D engine. LayaAir Engine is designed for high performance games.LayaAir support TypeScript and JavaScript、ActionScript 3.0 programming language.Can develop once, publish for multi platform.
Stars: ✭ 791 (+2296.97%)
Mutual labels:  physics
Adaptinggravityunity3d
Discontinued - A small library for gravity that adapts to the ground normal the player is standing on
Stars: ✭ 24 (-27.27%)
Mutual labels:  physics
Toypathtracer
Toy path tracer for my own learning purposes (CPU/GPU, C++/C#, Win/Mac/Wasm, DX11/Metal, also Unity)
Stars: ✭ 753 (+2181.82%)
Mutual labels:  metal
Flexibleimage
A simple way to play with the image!
Stars: ✭ 798 (+2318.18%)
Mutual labels:  metal
Imagine Old
Modeling and simulations using computational graphs
Stars: ✭ 25 (-24.24%)
Mutual labels:  physics
Osim Rl
Reinforcement learning environments with musculoskeletal models
Stars: ✭ 763 (+2212.12%)
Mutual labels:  physics
Inversekinematics
Inverse Kinematics in SceneKit.
Stars: ✭ 15 (-54.55%)
Mutual labels:  scenekit
Su2
SU2: An Open-Source Suite for Multiphysics Simulation and Design
Stars: ✭ 731 (+2115.15%)
Mutual labels:  physics
Bbmetalimage
A high performance Swift library for GPU-accelerated image/video processing based on Metal.
Stars: ✭ 677 (+1951.52%)
Mutual labels:  metal
Arpointcloud
A Basic Example Of Visualising Point Clouds In ARKit
Stars: ✭ 31 (-6.06%)
Mutual labels:  scenekit
Mrchem
MultiResolution Chemistry
Stars: ✭ 13 (-60.61%)
Mutual labels:  physics
Hldoc
Half-Life game physics described in excruciating detail!
Stars: ✭ 19 (-42.42%)
Mutual labels:  physics

Gravitational waves playground

In this Swift playground book you can make gravitational waves visible and control the visualization of this elusive radiation emitted by two inspiraling and merging black holes. It continues my series of interactive iPad simulations that started with my playground book on black holes.

  • Adjust the black hole masses:

    Images/masses.gif

  • Control visualization parameters, such as wave polarization and colors:

    Images/polarization.gif

  • Explore the visualization in three dimensions:

    Images/perspective.gif

Gallery

Images/gallery_rgb.gif

Images/gallery_red.gif

Images/gallery_merger.gif

Installation

  1. Download the Swift Playgrounds App on your iPad.
  2. Add the Play with Gravity feed to the Swift Playgrounds App and load the Gravitational waves playground.

Alternatively, this is the URL you can manually add to the Swift Playgrounds App to subscribe to the Play with Gravity feed:

You can also manually download the Gravitational waves playground on your iPad or Mac:

  • On your iPad: Select Open with "Playgrounds".

    iPad download

  • Or on your Mac: AirDrop the file to your iPad and select Open with "Playgrounds".

    AirDrop

Simulated physics

  • The rendered field is the lowest-order metric perturbation in TT-gauge (or gravitational wave strain) $$h_+$$ or $$h_\times$$, with their $$\frac{1}{r}$$ distance scaling removed.
  • Selecting the option showFrequencyScaling is equivalent to visualizing the real or imaginary part of the Weyl scalar $$\Psi_4$$, depending on the chosen polarization.
  • The six colors are chosen from the normalized field values discretized into bins with edges $$\left{\pm 1, \pm 0.7, \pm 0.5, \pm 0.3\right}$$.
  • The rotating spheres depict the relative Schwarzschild radius of the black holes, with an arbitary rescaling for visualization.
  • Orbital separation, time and wave propagation speed are also arbitrarily rescaled. Relative quantities are correct, however.
  • The ringdown is modeled as a simple quadrupolar oscillation with an exponential decay in amplitude for visualization purposes only.

About this project

I created this Swift playground book as part of my application for the Apple WWDC 2018 scholarship. It allows the reader to discover physics that is invisible to our eyes by simulating it on screen and by controlling its visual representation. The volume rendering of the gravitational field is accomplished by a library of Metal shaders that apply to a SceneKit scene. The shaders perform ray-tracing through three-dimensional space and integrate the gravitational field along each ray. By translating the field values to colors and blending them together along the ray, I create a visual representation of the gravitational field in space.

Copyright (c) 2018 Nils Leif Fischer

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].