vm6502q/OpenRelativity

Bug: Schwarzschild implementation still wrong

Closed this issue · 14 comments

In the Schwarzschild metric, objects appear to gravitate toward the wrong point, and there might be other issues. I suspect I translated the origin incorrectly, before returning the Jacobian/metric.

Let me acknowledge again that my rigor is lacking, but we're walking a line between differential geometry and video game development.

When we use terms like "Cartesian" or "spherical" to refer to coordinates in a curved space-time, we're already wrong, and there is no immediate analogous conversion to what we want to get at on a space with intrinsic curvature. (I'm admitting guilt, on this front.)

We can assume, without offending general relativity, that every one of our objects (or each point on a point manifold on them) has a neighborhood that limits to locally flat, "Minkowksi metric," as we shrink the neighborhood. We want to map by a series of Jacobian transformations, (as Jacobian transformation defines a "tensor,") from locally flat neighborhoods around points on or in RelativisticObjects ultimately to what the player sees. We do this via transformation through an auxiliary world frame, for convenience, and so that Unity world coordinates are meaningful to us. The world coordinates are effectively a constant "t" coordinate hypersurface, at least for flat space. Finally, we map from the world coordinates to apparent delay by the speed of light between objects and the player, relying on the metric and the assumption of constant velocity. (The folks who originally made OpenRelativity know all this, and I hope I have it generally correct. Neat trick was, if we want to instantaneously change velocities, we can map world-to-optical with the original velocity and optical-to-world with the new velocity, but this doesn't solve all my problems, if you read me.)

For Schwarzschild, and for any applied curvature, we probably want to think of velocities as constant regardless of curvature, without acceleration. An object with initial "viw = 0," not collided with, should keep "viw = 0" while appearing to fall into the black hole. In this case, relative any other observer with "viw = 0," the first object locally ages, but is not locally displaced in space. Transforming the local displacement in time to the "world coordinates," though, we end up with an apparent displacement in both time and space, in "piw."

I'm currently thinking Schwarzschild coordinates might not even be the world coordinates we want, because they happen not to lead immediately to intuitive properties of the metric, like spherical spreading of light wave-fronts from points.

I have to think long and hard about it, and continue reading the literature. First priority, the Rindler coordinate handling that underlies curved backgrounds needs to be right, but Rindler is significantly simpler.

By the way, as for flat space world coordinates being a "constant 't' coordinate hypersurface," the hypersurface is actually "advanced" in time from what the player sees. According to relativity, the space-time distance between the player and what the player sees is 0, ("null-geodesics,"). It's a prediction of the future. The discontinuity in mapping back and forth with the updated velocity is not a physical discontinuity, but a discontinuity in prediction. The original choice of world coordinate system was "right," though, I see after having worked with it for a long time, and I want to respect its intent, in expanding the functionality to curved spaces.

Rindler coordinates handling seems to be in good shape. Thinking about it a little bit more, depending on exactly what we're trying to do, there might be no particular "right" choice of world coordinates, first of all, if all we're concerned with is numerics. If the world coordinates are Schwarzschild, and we use the Jacobian between Schwarzschild and Lemaître, as a convenient way to transform between local inertial aging and some applied background curvature, it's at least physically consistent. We can transform between any diffeomorphically related coordinate systems, at will, because this is part of the beauty of general relativity.

We don't want just numerics, though. We want a video game. We want the player to see what idealized eyeballs might physically see in the curvature close to a black hole, at least passably... "idealized eyeballs," which perceive light. What would the eye see?

Everything the (oversimplified, idealized, perfect) eye sees "at once," through the entire field of depth, is "light-like" connected, "null-geodesic" connected, between the point of origin of (reflected or emitted) light and the "eye." (This assumes a point-like receptor, no neural processing delay, and a million other deviations from practical physical eyeballs.) The speed of light is a constant to all observers. In empty space, a wave-front of light emanating from a point traces a (hyper-)sphere, a "light-cone," with the front traveling an equal proper distance along all rays on the front, even in curved space. Actually the proper distance, and proper time, between what we perceive as earlier points on a ray of the sphere and later points on the same ray is exactly 0, "null," "light-like," but we perceive the rays spreading through space over time, with our eyes on "test points." A point-like eye sees its past light-cone, so a reasonable projection for a point-like focus or viewpoint might preserve the appearance that the light-cone is spherical. (Really, not at all. It requires stereopsis, at least two eyes, to see depth, and the optical projection of a real camera can be changed by the shape of "exposure plate"/"film"/"retina." But, then, if we're talking about an arbitrary camera, any valid coordinate projection is arguably about as good as any other, depending on what's convenient.)

Maybe a good first approximation to "what looks real to the eye" is an "isotropic coordinate system" which has a radial coordinate designed exactly so light-cones appear "round." Isotropic coordinates are also somewhat convenient for the transformations we need to make, particularly if we represent our Schwarzschild metric with origin same as Unity world coordinates origin, so whatever. Let's just try to get something passable out of isotropic "world" coordinates centered on the Unity world origin.

I'm putting this in a dedicated branch, off of master, because I already know it's going to require us to sacrifice general performance.

Oh, also, there's no coordinate singularity at the event horizon, isotropic compared to Schwarzschild coordinates. This would have been a problem, if we wanted to simulate crossing the event horizon. Also, it might be possible to hack in a translated origin point. So, let's try it.

(Yes, I have some confusion about validity of different coordinate systems in interior and exterior regions to clear up for myself, still.)

(Can I trace a null path from exterior, aimed in, past the event horizon, without hitting a singularity there? Let's find such coordinates. Let's hope nobody flogs me, if I wonder aloud about dissolution of the black hole at the same time, as per Hawking radiation.)

Alright, apologies, to the original repository creators. I found the coordinates I want, at least for a dissolving black hole, because, as far as I know, I came up with them. But the personal research project they come from has to be considered "fringe" to the formal physics community, simply to be completely honest and forthright.

They're on page 5 of this, and I assert that they're a functional minimization of the Einstein-Hilbert action, with vanishing Ricci scalar, although with non-vanishing Ricci tensor, if an antisymmetric component of the metric tensor is allowable as per Einstein-Cartan theory, (shared from my personal blog):

http://ultraphrenia.com/wp-content/uploads/2018/10/Strano2018Augmentedv5.pdf

No journal would publish them. I'm sorry this is what I have to report. Although, it's worth pointing out again, here, I also made this quantum computing simulation framework, with a friend:

https://github.com/vm6502q

I have much to learn. My attempt to give something back to the physics community is in the best possible faith, but perhaps it is not useful or welcome. I'm going to continue to fiddle with my own speculation on a branch kept separate from the more conventional work on master, so as to clearly delineate it for anyone else's purposes. (Though, I guess that's also part of the point of an open source fork, as opposed to just a branch, here, in the first place.)

Thank you again, for the open source software.

With the above said, I'm trying a "divide and conquer" approach to simulating background curvature at all, with the above metric as an example, (whether the curvature used to test, at first, is questionable). We want to expand the simulation in such a way that the minimum viable feature set is expanded one piece at a time.

In Schwarzschild coordinates, if the player crosses the event horizon, the finite difference simulation is probably no longer a valid approximation of the path integral over the world line, since the coordinates are singular there. Resolving this singularity, one way or another, is my first priority.

An observation:

Given the current example parameters (with reduced Planck's constant over gravitational constant, "H Bar over G," equal to 1e-6) a ""slightly" larger value (1e-5) keeps a comoving player with "viw"=0 out of the event horizon. Of course, a "slightly" smaller value (1e-7) could easily force the player inside, if the accuracy of the time step is qualitatively acceptable. For reference, the physical value of this ratio is roughly 1.58e-24 kg^2 s / m, far in the qualitative direction of the player ending up inside. (The natural scales of Unity physics are arbitrary, but close-ish to kg, m, s).

I have zero evidence to require any fixed proportionality between the fundamental constants that define Planck units. I cannot yet even say whether any constraints will result in generally keeping the player outside of the event horizon. However, it's worth pointing out... the whole point of this physics module revolves around a variable speed of light.

It's hard to say whether this will break the entire (game) physics module, but the player seems to easily fall past the event horizon (first-person) for all Planck unit physical constants set equal to 1. That's probably my answer, given my interpretation of the point of Planck units.

(This is my version of playing a video game, so long as I'm not hurting anyone.)

I could just be simulating this incorrectly, still. In isotropic coordinates, a third party observer says my first-person passage of time limits to halted as I approach the event horizon. To intuition, (possibly bad intuition,) this implies a limit point of infinite "stretch" of the "world time" passed corresponding with finite (proper) time passed in my first person perspective.

I'm going to "play" with isotropic coordinates, since this "game" is fun, and it makes me happy. :-)

(The coordinate system carries no physical significance; I think only the intrinsic curvature is physical. Write it on my tombstone, and let me play.)

I think the isotropic radial coordinate is independent of proper time, which would make sense. This can work, but it's not what I want, immediately. The player should have the first person sense of being "pulled" into the hole as an inertial observer, which these coordinates do not give. Let me stop talking and think for a bit.

I experimented with a few things, last night through today. Converting between local Lemaître and "world" Schwarzschild coordinates actually seems to work as intended, and this holds up (with extreme shader artifacts) if all physical constants are taken to be 1.

There are at least two general approaches to simulation we can take: these are finite difference vs. integral, corresponding to partial derivatives vs. "full" derivatives, corresponding to covariant vs. contravariant formulations. The current branch mixes them. The player's comoving time and radial coordinate are converted to world coordinates by relying on integrals along world-lines, while the black hole's evaporating radius is calculated using a finite difference method via the value of the partial derivative. This might make for a general rule: player world-lines should be integrated, while change in the world geometry can be finite difference approximated with partial derivatives.

Using the integral form for change in the player perspective, the comotion of the player correctly forces the world time-like coordinate to "stretch" toward an infinite limit as the distance between the player and the event horizon approaches zero, causing any black hole evaporation process that concludes in finite time to occur in full before reaching the event horizon.

(Feel free to turn off the FixedUpdate() evaporation of the black hole if you feel uncomfortable in light of the caveats I've presented about my own work, or feel free to replace them with Hawking radiation. Is it mathematically consistent to time-vary the Schwarzschild solution this particular way? I did a lot of work, personally, to assure anyone, "Yes, this is a functional minimization of the Einstein-Hilbert action," despite regrettable details like fixing an origin for a crutch, or seeming to flip the advanced and retarded coordinates for a Reissner–Nordström black hole in my original paper, maybe, now that I look at it again. I do not take anyone's due skepticism personally.)

Section 1.1, pgs. 4-5 of this lecture notes preprint out of CERN shows us that the Schwarzschild metric is diffeomorphically related to Rindler coordinates:

https://arxiv.org/pdf/1208.4814.pdf

This makes total sense, since Einstein equivalence principle probably even requires it, "locally." The Schwarzschild event horizon basically is a Rindler horizon, with the catch that, in practice, the direction of effective acceleration of a comoving observer is radial, such that the Schwarzschild horizon is spherical while acceleration in flat Minkowski space produces a flat horizon. (General covariance might or might not "care" about the difference.)

This gives us a neat "trick" for the shader, which might work in full generality: the Rindler metric already calculated per-vertex, based on player acceleration, can be supplemented with the effective player acceleration due to the gravity background to run the shader for any gravitational field. (...Hopefully "any" gravitational field, but, again, Einstein equivalence suggests that all gravitational fields look locally like Rindler.)