vm6502q / OpenRelativity

An open source framework to add the effects of traveling at relativistic speeds to visualizations or games
17 stars 2 forks source link

"ConformalMap" for Schwarzschild metric #5

Closed WrathfulSpatula closed 5 years ago

WrathfulSpatula commented 5 years ago

This PR addresses the concerns of issue #4. Currently, this is handled by taking the proper time displacement of a RelativisticObject, applying the Jacobian from "local" (Lemaître) to "world" (Schwarzschild), and then applying the Jacobian from "world" to "player local," (inverse of the previous, except at player position, with same coordinate origin at the "black hole singularity").

We're ultimately establishing a coordinate convention, with this, so we need to get it right the first time. If I recall, while the original OpenRelativity project maintains rapport between "player frame" (tracked by player camera local Unity coordinates) and "world frame" (tracked using global Unity coordinates) if we have to pick one as more important, we're concerned first with how things appear to the player camera. Really, we want both to be sensible. I need to experiment (in simulo) a bit.

WrathfulSpatula commented 5 years ago

Currently, I'm transforming,

(object local) -> (world) -> (player local)

in one method. The player does not yet comove. If we break out,

(object local) -> (world)

and

(world) -> (player local)

and use the latter to comove the player, we have sensible world coordinates, sensible player coordinates, and correct player-perspective behavior for other objects.

WrathfulSpatula commented 5 years ago

Per the last commit, first, we just cut all the junk.

(On a personal aside, "bra-kets" under unitary evolution in Qrack taught me more than I ever learned in school about the transformation of tensors, which is exactly tensors' defining characteristic.)

WrathfulSpatula commented 5 years ago

(Per last commit,) next, we usually need to transform the metric to the first-person perspective of the player.

It is conceptually essential to note that proper time / proper distance are intrinsic quantities, meaning entirely independent of coordinate choice. (However, in trying to keep conceptual purity, let's not forget that the numerical form of the metric always acts on a numerical vector, and therefore a particular happenstance coordinate system.)

WrathfulSpatula commented 5 years ago

Further, if transformation to/from player perspective Rindler coordinates do not commute, then they are "most local" to (locally flat) player perspective. Rather than "Minkowski" in preferred world coordinates, we want a Rindler "ConformalMap" in the first place, and it (almost) always should be the first transformation layer from the player's locally flat neighborhood toward world or object coordinates, I think.

WrathfulSpatula commented 5 years ago

The player seems to no longer move. There is a simple explanation, based on what we just did, in this PR. I need analyze the diff.

WrathfulSpatula commented 5 years ago

This seems to work, now. I've tested and reviewed the change, and I'm merging with the fork master.