Install Steam
login
|
language
简体中文 (Simplified Chinese)
繁體中文 (Traditional Chinese)
日本語 (Japanese)
한국어 (Korean)
ไทย (Thai)
Български (Bulgarian)
Čeština (Czech)
Dansk (Danish)
Deutsch (German)
Español - España (Spanish - Spain)
Español - Latinoamérica (Spanish - Latin America)
Ελληνικά (Greek)
Français (French)
Italiano (Italian)
Bahasa Indonesia (Indonesian)
Magyar (Hungarian)
Nederlands (Dutch)
Norsk (Norwegian)
Polski (Polish)
Português (Portuguese - Portugal)
Português - Brasil (Portuguese - Brazil)
Română (Romanian)
Русский (Russian)
Suomi (Finnish)
Svenska (Swedish)
Türkçe (Turkish)
Tiếng Việt (Vietnamese)
Українська (Ukrainian)
Report a translation problem
It is worth noting that there are no orientation-reversing paths in elliptic space, unlike the elliptic plane.
You can also go in the other direction. The elliptic line (I don't know if that is a real term.) can be defined as a line segment with ends identified. Of course, this is not that interesting, as it is just a circle.
One other interesting fact:
Suppose you take the space of all possible orientations of some object, like a die. So the orientation with the 1 on top and the 2 in front is a point in this space.
This space is three dimensional, because you can tilt the die forward, tilt it sideways, or rotate it.
But what is this space? It turns out to be elliptic space!
I'm not sure I can easily explain why this is.
There is a simple VR game, Hypernom, that is based on this concept. It is played in the three-sphere, and you move by rotating your head. The goal is to go everywhere in the three-sphere, which requires rotating your head in every possible direction.
I don't know if it is correct, but I guess possible synonyms would be elliptic geodesic, or half of a great circle arc.
I didn't notice (or remember?) that the elliptic plane has orientation-reversing paths. But it can be viewed as two mirror-symmetric hemispheres that are rotated 180° against each other, and where antipodal points are identical. And because of the mirror operation, moving half of a great circle arc is the same as reversing your orientation.
Thanks, that's interesting! :)
(though I'd prefer something where you move normally)
From what I understand, a 3-sphere is the surface of a 4-dimensional orb. So I assume you're rotating the 4-dimensional orb, and what you see is the projection of its surface onto Euclidean 3-space (or rather, the 2-dimensional projection on your monitor of this), or something like this.
If you just want an example of spherical 3-D space, see this program that I created[github.com].
Yes. In fact, I find it easiest to work with points in this space as 4-vectors (x,y,z,w) where x^2 + y^2 + z^2 + w^2 = 1. Then movement and rotation are just 4-D matrix multiplications.
By the way, there are lots of cool things at hypernom.com other than the game. For example, h3.hypernom.com is a simulation of hyperbolic space that can be used on a computer or in VR.
(I used this to adapt movement and rotation speed, and invert the y-axis)
I noticed this formula can be directly related to what I described in B): Use any point within a Euclidean ball with unit radius, i.e. with x^2 + y^2 + z^2 ≤ 1. Then find all solutions for w, with x^2 + y^2 + z^2 + w^2 = 1 (usually there are exactly 2 solutions, unless w = 0).
In which of the two balls the point is depends on whether w is positive or negative. If w is 0, the point is on the surface of both balls. For spherical distances, I assume one could calculate the Euclidean 4D distance first (easy!), and then use a formula to derive the spherical distance from this value (just take 2 points on a Euclidean unit circle with the same distance between them, and calculate the length of the shortest circle arc between them).
Yeah, I remember that app! I didn't know it's on the same site, because site navigation seems non-existent (or at least I didn't find a home page with links to the apps).
A web search helped, though: https://www.google.de/search?q=site:hypernom.com&filter=0
It may or may not have been clear, but the program was written in a language called Elm, and the html file is the output of the Elm compiler. (I added a note to that effect.) So I'm curious, how hard was it to edit the compiled javascript directly?
Yeah, it may have been silly to make the time to turn in a circle the same as the time to go around the universe!
Exactly. I think the "some formula" you mention is
euclidean_distance = 2*sin(spherical_distance)
I couldn't find a navigation page either. I suspect it doesn't exist. :(
The modifications I did to the html file were easy. I just had to search for "-0.5" to get to the part with the movement / rotation speed, and then change those values. E.g. change the value 0.5 to -2.0 in the line "return _user$project$Matrices$turnUp(0.5 * dt);", to increase the rotation speed and invert the direction when pressing 'i', and so on.
I wouldn't want to make more complex changes in this html file, though.
Yep, I came to the same result. :)
I'll explore the 120-cell a bit more with your app, thanks again for the link. :)
Yeah, models of this kind are the best to work with -- HyperRogue and HyperbolicVR use them too, except that hyperbolic spaces use w^2-x^2-y^2-z^2=1, and that HyperRogue is 2D (in 3D host space). HyperRogue represents non-Euclidean 3D spaces (crocheted plane in S3: https://www.youtube.com/watch?v=I11VBXA_UE0 ; staircase in changing curvature: https://www.youtube.com/watch?v=HZNRo6mr5pk ) in azimuthal equidistant coordinates, though, because it seemed easier to do than to generalize old code to more dimensions.
Is this just the flat torus x^2 + y^2 = z^2 + w^2 = 1/2 ?
10 cells in the same direction results in a great circle, i.e. you arrive at the same point where you left.
In a 3-sphere, moving half of a great circle always takes you to the same point, no matter in which direction you move. And the 120-cell is no different when moving 5 cells.
We can take 2 such cells that are 5 cells apart, and call them "the poles" (not sure if there's a term for it). All cells can be classified as following:
- cell type P: The poles
- cell type F: Faces both poles with a face
- cell type V: Faces both poles with a vertex
- cell type E: Faces both poles with an edge
Furthermore, they can be classified by distance from the nearest pole:
- At distance 1 from a specific pole, there are 12 cells of type F, arranged like the pentagons on a dodecahedron.
- At distance 2 from a specific pole, there are 20 cells of type V, and 12 cells of type F. They are arranged like the hexagons (V) and pentagons (F) on a truncated icosahedron.
- There are 30 cells of type E at distance 3 from both poles, i.e. they lie in the same spherical "plane". They are arranged like the hexagons on a chamfered dodecahedron, with 12 pentagonal gaps where 2 cells of type F meet, each.
So we have:- 2 poles
- 2x 12 cells at distance 1 from the nearest pole
- 2x 32 cells at distance 2 from the nearest pole
- 30 cells at distance 3 from both poles
...which makes 120 cells in total.
In case of interest, here's a list of cell type adjacency:
- neighbors of P: 12x F1
- neighbors of F1: 1x P, 5x F1, 5x V, 1x F2
- neighbors of V: 3x F1, 3x V, 3x F2, 3x E
- neighbors of F2: 1x F1, 5x V, 5x E, 1x F2'
- neighbors of E: 2x V, 2x F2, 4x E, 2x F2', 2x V'
...where F1 and F2 refers to cells of type F at distance 1 and 2 from the nearest pole, respectively, and an ' indicates that the cell is closer to a different pole than cells without an ' (except for type E).
The listed cell neighbors are sorted by distance from P (increasing from left to right).