ZenoRogue
Emerald Mine in {5,3,4} (version 2)
updated
Uses fragments of our earlier videos:
Non-Euclidean Third Dimension in Games: youtu.be/Rhjv_PazzZE
Nil Geometry Explained!: youtu.be/FNX1rZotjjI
Portals to Non-Euclidean Geometries: youtu.be/yqUv2JO2BCs
Made with RogueViz, our non-Euclidean geometry engine. To learn more, watch these videos, play HyperRogue, or visit our discord: discord.gg/8G44XkR
Narrated by youtube.com/channel/UCHRkB4HgLLReBxWJwblHsjQ
Music from the HyperRogue soundtrack: (CC-BY-SA)
E2xS1 : Graveyard (Shawn Parrotte)
twisted S2xS1: Ivory Tower (Will Savino)
twisted H2xS1: Ocean (Will Savino)
twisted H2xR: Lost Mountain (Lincoln Domina)
Starring (in the order of appearance):
Characters from HyperRogue:
Princess, Vizier, Handsome Gardener, Blue Raider, Desert Man, Ratling Avenger, Rogue, Viking, (unidentified) Knight, Rusałka, Green Raider, Yeti, Ranger, Narcissist, Golem, Necromancer, Cultist, Fire Fairy,
Flail Guard, Pirate, Fat Guard, Yendorian Researcher, (unidentified) Bird
Maxwell Cat: sketchfab.com/3d-models/dingus-the-cat-2ca7f3c1957847d6a145fc35de9046b0 (CC-BY 4.0)
Spaceship and Asteroids from Relative Hell
zenorogue.itch.io/relative-hell
This is a visualization accompanying our ECAI 2024 paper "Modelling brain connectomes networks: Solv is a worthy competitor to hyperbolic geometry!" (arXiv: http://arxiv.org/abs/2407.16077 )
Geometries are visualized as follows:
Euclidean 3D -- obvious
hyperbolic 3D -- Poincaré ball (except first-person perspective for H3 manifold)
Nil, Solv -- the screen XYZ coordinates correspond to the Lie logarithm of the point (in case of Nil, this is the same model as in "Nil geometry explained" -- the geodesic ball is longer along the 'Z' axis, in the visualization we rotate around the Y axis)
H2xR -- azimuthal equidistant (the distance and direction from the center are mapped faithfully)
Twist (twisted product of H2xR) -- each layer uses azimuthal equidistant projection
Spherical 3D -- azimuthal equidistant projection
hyperbolic 2D -- Poincaré disk
Edges are drawn as geodesics (except Solv). All nodes are drawn as balls of the same size (so their size and distortion can be to understand the scaling of the projection).
Our embedder is based on the maximum likelihood method, assuming that the probability that two edges in distance d is connected is (independently) 1/(1+\exp((d-R)/T)). (I.e., the parameters R, T, and positions of nodes are placed in such a way that the probability of obtaining connections and non-connections like in the actual dataset is maximized.) :NLL (Normalized Log-likelihood), MAP, IMR (inverse MeanRank), SC (greedy success rate), and IST (inverse greedy stretch) are various quality measures from the literature, normalized to [0,1]. For every connectome, we show the geometries which are in top 3 according to some measure (according to the Copeland voting rule).
Music:
Somatic Cosmos by Timo Petmanson (petmanson)
the Sphere by Jakub Steiner (jimmac)
Lost Mountain by Lincoln Domina (HyperRogue soundtrack)
YouTube compression is not great with such a visualization. Try selecting a higher quality in YouTube, or go here: drive.google.com/file/d/1kbWD_gWsYwim4bGMc1wUL-q9DznfCpIv/view?usp=sharing and download.
On this tour, portals will take us to various non-Euclidean geometries. This is not Minecraft!
A cool holonomy effect happened during this tour, but it was not explained by our guide Tehora! Have you found it? Please tell us in the comments!
Tehora Rogue's channel: youtube.com/channel/UCHRkB4HgLLReBxWJwblHsjQ
Visited geometries:
* Three-dimensional Euclidean space 𝔼³ (cyan floors, music: Icy Land by Shawn Parrotee)
* Product space ℍ²×ℝ (green floors, music: Living Caves by Shawn Parrotee)
* Three-dimensional hyperbolic space ℍ³ (yellow floors, music: R'Lyeh by Shawn Parrotte)
* Product space 𝕊²×ℝ (blue floors, music: Ocean by Will Savino)
* Three-dimensional spherical space 𝕊³ (purple floors, music: Land of Eternal Motion by Shawn Parrotte)
* Solv (brownish floors, music: Lost Mountain by Lincoln Domina)
HyperRogue soundtrack under the Creative Commons BY-SA 3.0 license
Link to RogueViz: zenorogue.itch.io/rogueviz
To learn more about non-Euclidean geometry, play HyperRogue or visit our discord: discord.gg/8G44XkR
We stretch the space to get: Euclidean cylinder, hyperbolic geometry, anisotropic version of hyperbolic geometry, Solv geometry, spherical geometry, (teaser) Nil geometry.
Narrated by youtube.com/channel/UCHRkB4HgLLReBxWJwblHsjQ
Play HyperRogue to have more fun with non-Euclidean geometry! Embeddings can be obtained using settings → 3d configuration → 3d style. (For most embeddings shown in this video, you also need to change the 2D geometry to Euclidean.) To learn more about non-Euclidean geometry, play HyperRogue or visit our discord: discord.gg/8G44XkR
This world (with less 3D models) can be played in RogueViz (zenorogue.itch.io/rogueviz version 12.1p), RogueViz demos ⟶ non-Euclidean third dimension. Note: some of the scenes in this video are very complex and the engine is not optimized, so the framerate might be very low. Yes, it works with VR, but the framerate might be a problem.
Should we do a video on more embeddings (only visuals, no voice) in the same world, or somewhere different? Please tell us in a comment!
Made with RogueViz, our non-Euclidean geometry engine. Assets used:
Online games:
Pac-Man live: https://pacman.live
BeatRocks: js13kgames.com/entries/beat-rocks
Sounds:
Excavator 1: freesound.org/people/eZZin/sounds/606934 (CC-0)
Excavator 2: freesound.org/people/eZZin/sounds/606949 (CC-0)
Cat purr: Dodek (recorded)
3D models:
Polyfjord 2D/3D chess: patreon.com/posts/59047159 (GPL 3.0) by @polyfjord (from this video: youtube.com/watch?v=fxe9KbWtCQ0)
Maxwell Cat: sketchfab.com/3d-models/dingus-the-cat-2ca7f3c1957847d6a145fc35de9046b0 (CC-BY 4.0)
Spinning Rat: sketchfab.com/3d-models/horizontally-spinning-rat-91f25eb2535c4618beea47dd6dd68f6f (CC-BY 4.0)
Stanford Bunny: http://graphics.stanford.edu/data/3Dscanrep/ by Stanford Computer Graphics Laboratory
Royalty-free from CG Trader:
Tulip: cgtrader.com/free-3d-models/plant/flower/low-poly-tulip-free-sample
Coffee: cgtrader.com/free-3d-models/food/miscellaneous/cup-saucer
Duck: cgtrader.com/free-3d-models/animals/bird/game-ready-bird-collection
Lily: cgtrader.com/free-3d-models/exterior/landscape/stylized-water-lily
Table: cgtrader.com/free-3d-models/furniture/chair/dinning-table-1bb0c13a-bf1c-4e76-a019-424406e25e07
Cheese: cgtrader.com/free-3d-models/food/miscellaneous/jerry-cheesecake
Excavator: cgtrader.com/free-3d-models/industrial/industrial-machine/wheel-loader-8ffb9beb-d48c-4c35-be08-c0c4c9585d0c
Bad Apple, but rendered with hyperbolic planes:
youtu.be/P9EZy8ZzlVU
Bad Apple, but rendered with hyperbolic planes (without YouTube compression):
drive.google.com/file/d/1TqZo1AyeU7a4N9zcr32bIzVxT0vUNwxo/view?usp=sharing
original Bad Apple animation by Anira (uploaded to YouTube by kasidid2):
youtube.com/watch?v=FtutLA63Cp8
Bad Apple explained:
youtube.com/watch?v=6QY4ekac1_Q
HyperRogue:
http://roguetemple.com/z/hyper
Swirled Series November 2020: (animated cat)
youtube.com/watch?v=LXr-DFr5vgI
interactive visualization of newconformist:
http://www.roguetemple.com/z/sims/nconf
newconformist:
github.com/zenorogue/newconformist
HyperRogue world on the Hilbert curve:
youtube.com/watch?v=vxF8lwa0z3I
#badapple #mathart #noneuclidean #mindbending #visualization #mathisbeautiful #mathgenius #mathisfun #mathisawesome #newconformist #conformal #hyperrogue #rogueviz #trypophobia #sciencediagram
By the Riemann Mapping Theorem, every simple-connected shape can be conformally mapped to a hyperbolic plane, and thus be used as a model* of hyperbolic geometry.
Made with newconformist: github.com/zenorogue/newconformist (modified to allow animation)
Want to know more? Follow us and comment for a "making of" video! [3]
[1] original Bad Apple animation by Anira (uploaded to YouTube by kasidid2): youtube.com/watch?v=FtutLA63Cp8
[2] Bad Apple explained by Megapig9001: youtube.com/watch?v=6QY4ekac1_Q
[3] The "making of" video is ready! youtu.be/NGixk6jVVNM
* rather a projection than a model... but people call them models, so let's call these "anime-girl models"
Download video without YouTube compression: (also fixes the missing frames at 0:41 and at the end, causing music desync)
drive.google.com/file/d/1TqZo1AyeU7a4N9zcr32bIzVxT0vUNwxo/view?usp=sharing
#badapple #mathart #noneuclidean #mindbending #visualization #mathisbeautiful #mathgenius #mathisfun #mathisawesome #newconformist #conformal #hyperrogue #rogueviz
See youtu.be/jcnXI8IArRI for the shortened version with commentary!
0:08 Ivy
1:31 Alchemist Lab
2:34 Wetland
3:40 Crossroads
3:45 Palace
4:04 Overgrown Woods
4:22 Mutant Ivy
5:20 Clearing
18:11 Goal reached
20:04 Game Over
See youtu.be/qJ86uix868k for the unedited version.
No Giant Foxes were harmed in the making of this film.
0:08 Ivy
1:31 Alchemist Lab
2:34 Wetland
3:40 Crossroads
3:45 Palace
4:04 Overgrown Woods
4:22 Mutant Ivy
5:20 Clearing
9:21 Goal reached
11:11 Game Over
No brakes, no conservation of energy!
Play on your computer screen or in Virtual Reality!
Coming soon to itch.io! EDIT: zenorogue.itch.io/nil-rider
Nil is one of the eight Thurston geometries. Thurston geometries are used to classify three-dimensional manifolds. Nil is anisotropic, which means that the directions are not equivalent: the "up/down" direction acts differently than north/east/south/west directions.
Presented by Tehora Rogue.
Links:
Hyperbolic geometry:
* Temple of Cthulhu in "rectangles on horospheres" (run HyperRogue with arguments "-geo rect -W Temple -rch -noplayer -sight3 3 -smartlimit 100000 -genlimit 100000")
* Right-angled pentagon: youtube.com/shorts/c3BTm3t4Gw0?feature=share
* Portals to hyperbolic and other geometries: youtu.be/yqUv2JO2BCs
* Play HyperRogue for more hyperbolic geometry!
Impossible structures in Nil:
* Ascending and Descending in Nil: youtu.be/DurXAhFrmkE
* Impossible ring: youtu.be/ztodGQDK810 / youtu.be/3WejR74o6II
* Impossible triangle in Nil geometry: youtu.be/YmFDd49WsrY / youtu.be/RPL4-Ydviug / youtu.be/lWbrHAYsQk4
* See also the RogueViz demo "Playing with Impossibility" zenorogue.itch.io/rogueviz (or the recording youtube.com/watch?v=PD_ubxntGeU )
The Nil Rider game shown is a work in progress. Should be available soon! EDIT: zenorogue.itch.io/nil-rider
More related stuff:
* Perpetuum Mobile in Nil: youtu.be/mxvUAcgN3go
We use:
* the RogueViz engine:
roguetemple.com/z/hyper/rogueviz.php
* 3D model of Ascending and Descending by Lucian B.:
3dwarehouse.sketchup.com/model/3e6df6c24a95f583cefabc2ae69d584c/MC-Escher-Ascending-and-Descending
* HyperRogue soundtrack under the Creative Commons BY-SA 3.0 license (R'Lyeh by Shawn Parrotte and Lost Mountain by Lincoln Domina)
A cool holonomy effect happened during this tour, but it was not explained by our guide Tehora! Have you found it? Please tell us in the comments!
Tehora Rogue's channel: youtube.com/channel/UCHRkB4HgLLReBxWJwblHsjQ
Visited geometries:
* Three-dimensional Euclidean space 𝔼³ (cyan floors, music: Icy Land by Shawn Parrotee)
* Product space ℍ²×ℝ (green floors, music: Living Caves by Shawn Parrotee)
* Three-dimensional hyperbolic space ℍ³ (yellow floors, music: R'Lyeh by Shawn Parrotte)
* Product space 𝕊²×ℝ (blue floors, music: Ocean by Will Savino)
* Three-dimensional spherical space 𝕊³ (purple floors, music: Land of Eternal Motion by Shawn Parrotte)
* Solv (brownish floors, music: Lost Mountain by Lincoln Domina)
HyperRogue soundtrack under the Creative Commons BY-SA 3.0 license
An interactive version of this scene should be added to RogueViz soon. We need to make it work in VR first!
EDIT: available in RogueViz 12.0L zenorogue.itch.io/rogueviz (RogueViz demos ⟶ portal collection ⟶ [press Enter multiple times or 9] ⟶ inter-geometric portals ⟶ run)
Play HyperRogue to have more fun with non-Euclidean geometry! To learn more about non-Euclidean geometry, play HyperRogue or visit our discord: discord.gg/8G44XkR
This looks like a platformer from the 80's... but there is something strange about it. A rather subtle thing. Can you see this in this video?
You may have noticed that the guy gets smaller the higher we go. Also the height of his jump appears smaller.
0:12 Climbing the Tower
Let's climb this narrow tower to see this better...
It is not really the guy getting smaller, but rather the world getting bigger! The guy is always the same size and has the same jump height. But that tower gets wider and wider.
0:40 Big Jump
OK, it seems we cannot climb this tower any higher. So let's see what happens when we jump.
What's going on?...
Well, it takes place in a world with hyperbolic geometry. The cool thing about non-Euclidean geometry is that looks quite normal on the first glance but is actually very weird (contrary to so-called non-Euclidean games which appear weird but are not really that weird).
1:06 Big Jump explained
The videos were taken in the lower half-plane model (the boundary line is one screen above the top line of the video).
But here is our big jump, shown in the Poincaré disk model. We actually fall almost strictly downwards... but then, the straight almost vertical line "misses" the ground, and we continue our fall upwards!
1:11 Base in the disk model
Here is the base of the tower in Poincaré disk model. (Some interesting moire patterns by the way.)
1:16 Our Inspiration
This visualization takes inspiration from Jet Set Willy.
Miner Willy's house in Jet Set Willy is a bit weird: 4 rooms on the top floor are as wide as 6 floors on the roof, and 9 rooms on the first floor are as wide as 3 rooms on the basement. What if we did this thing but more consistently?
No plans to continue working on this prototype at the moment, but the source code can be found in:
github.com/zenorogue/hyperrogue/blob/master/rogueviz/platformer.cpp
(and tried in RogueViz)
This design could be good in a platformer based on exploration, for example, a metroidvania-style platformer, where we could easily reach exponential area without using any kinds of quick transport, or
in a procedurally generated platformer in the style of Terraria. People try to create a non-Euclidean minecraft-like (Ralith's Hypermine/kayturs's HyperBlock), but by the state of these
projects, it sounds it is a much more difficult project than it seems. This one should be easier. Still exponential world, larger than anything Euclidean...
Music used:
* "Lost Mountain" from the HyperRogue Soundtrack by Lincoln Domina, CC 4.0, and
* Jet Set Willy soundtrack from the PC remake of Jet Set Willy (original JSW by Matthew Smith, PC remake by Andy Noble, music by Matt Simmonds)
Map of the ZX Spectrum version of Jet Set Willy taken from: https://maps.speccy.cz/map.php?id=JetSetWilly1
Previously shown on Twitter: twitter.com/ZenoRogue/status/1467233261801951232
Have fun!
Previous attempts do not show the whole higher-dimensional space at once, put close objects in distant parts of the screen, or map multiple locations to the same point on the screen; our solution lacks these disadvantages, making it applicable in data visualization, user interfaces, and game design.
Four dimensions:
0:00 a 4x4x4x4 cage with a golden point in the center
0:15 one-dimensional tunnel (bright red)
0:35 the 1-skeleton of the tessellation of ℤ⁴ with cubes of edge 2
1:12 two-dimensional tunnel
1:30 two hyperplanes in distance 2 (blue and green), i.e., three-dimensional tunnel
2:00 two hyperplanes in distance 3 (cyan and green)
2:20 two orthogonal hyperplanes (red and yellow)
2:45 four quarterspaces (red, yellow, cyan, blue)
3:00 diagonal tunnel in all coordinates except one (golden and silver)
3:45 diagonal tunnel (purple and gray)
Six dimensions:
4:10 a 4x4x4x4x4x4 cage with a golden point in the center
4:30 one-dimensional tunnel (bright red)
5:00 the 1-skeleton of the tessellation of ℤ⁶ with cubes of edge 2
5:20 two-dimensional tunnel
5:40 four-dimensional tunnel
6:00 two hyperplanes in distance 3 (cyan and green)
6:20 two orthogonal hyperplanes (red and yellow)
6:45 four quarterspaces (red, yellow, cyan, blue)
7:05 diagonal tunnel in all coordinates except one (golden and silver)
7:30 diagonal tunnel (purple and gray)
other:
7:50 time-sliced visualization of the visualization of ℤ⁴ using {3,4,4}
Paper: arxiv.org/abs/2110.00327
It is not clear how to make a portal between the Euclidean space 𝔼³ and the hyperbolic space ℍ³, because we would like the portal surface to be the same intrinsic shape on both sides, and also of same extrinsic curvature.
Thus, we could have a square portal in 𝔼³ and a square portal in ℍ³, but that does not work -- an Euclidean square has four angles 90° each, and a hyperbolic square has smaller angles, so they are not actually the same shape!
We could also try connecting this square portal with a "square" cut out of a horosphere (as in the video "Temple of Cthulhu in 3D") but then the horosphere is curved in ℍ³, so the effects would be more like a curved mirror in Euclidean space (i.e., caused by the portal itself, rather than by the space).
But this problem does not appear in 2D (between 𝔼² and ℍ²) since lines have no intrinsic curvature. We can move this solution to 3D by adding the third dimension in the Euclidean way -- thus, we get a portal between 𝔼²×ℝ=𝔼³ and ℍ²×ℝ. We can take any product tessellation in ℍ²×ℝ, and choose the tile height so that the portal will have a square shape on both sides.
We can also create a portal between ℍ²×ℝ and ℍ³. To do this, we will use the right-angled dodecahedral honeycomb (aka {5,3,4}). It is a tessellation of the hyperbolic space constructed out of dodecahedra, where all the faces are pentagons and all the dihedral angles are right. (See "Right-angled pentagon" for a cool visualization.) Just like in the Euclidean cubic honeycomb (tessellation by cubes as seen in Minecraft), faces of these dodecahedra are arranged in planes. So you get planes tessellated with right-angled penteagon (aka {5,4}). We can also create a ℍ²×ℝ based on this tessellation ℍ², and then their pentagons can be naturally connected with a portal.
We could do the same construction to make a portal from 𝔼³ to 𝕊²×ℝ to 𝕊³. Exactly the same approach would connect the 16-cell (aka {3,3,4}, 16 right-angled tetrahedra tessellating the sphere) to the product tessellation based on an octahedron. However, in this video we take a more interesting approach: the triangular face of the 24-cell ({3,4,3}, octahedra with dihedral angles 120°) has the same shape as the triangular face of the cubooctahedral tessellation of 𝕊².
Of course we can then also create a portal directly from the square vertical face of ℍ²×ℝ and the square vertical face of 𝕊²×ℝ. Since these are squares, we can do this in a more interesting way (rotate by 90° on the way).
This video does not use the cool smooth animation engine (used in most recent videos) because it is somewhat difficult to generalize to intra-geometric portals. It is manually controlled in real time. (This demo should be added to RogueViz later -- with features based on interest (playing HyperRogue in this does not seem feasible, but: fully featured map editor? portals between Sol and H2xR or H3? any ideas for new kinds of portals?)
The perspective is different in every geometry. We move with constant speed* -- sometimes when going through a portal the apparent speed changes, but that is due to perspective acting like fast zooming in H3 and acting very weird in S3. (You can learn how to recognize the geometry by perspective in the "Non-Euclidean Snowballs" video.)
That's all for now. Have fun watching and please comment! Play HyperRogue or join the HyperRogue discord to learn the cool math used here.
* unless we crash into something... in S3 sometimes it appears you would crash into something but it is actually a faraway thing appearing close due to geometric lensing, and then you crash into something that was actually real
See also: youtu.be/yqUv2JO2BCs (and many other portal videos on this channel)
#NonEuclidean #RogueViz #HyperRogue
While gamers often call portals "non-Euclidean geometry", non-Euclidean geometry is more about parallel lines diverging, rectangles not existing, triangles summing up not to 180, things like that. All this causes the perspective to work weirdly, and other cool effects that could not be achieved with portals.
We start with an Euclidean portal (but still quite cool since it is knotted), then explore some non-Euclidean portals, then we make scaling portals actually non-Euclidean, and finally, we attempt to recreate non-Euclidean geometry using portals.
See the earlier videos for more detailed descriptions. Or play HyperRogue or visit the HyperRogue discord to learn more! (Some scenes were posted on Twitter but not on YouTube.)
This is mostly done because apparently YouTube prefers to recommend videos that are about 10 minutes long -- let's see if it works! Don't forget to subscribe and like this video, as they often say...
Still useful for those who want to watch everything at once. (Well, at least if there are no... interruptions.)
All made using RogueViz (aka the HyperRogue engine). Music from the HyperRogue soundtrack by Shawn Parrotte, Will Savino and Lincoln Domina.
Short descriptions and links to original videos with more details in the description:
0:00 "Blocky Knot Portal v2"
youtu.be/eb2DhCcGH7U -- a knotted portal in Euclidean space
1:41 "Self-Hiding Knot Portal"
youtu.be/vFLZ2NGtuGw -- like the above but self-hiding
2:32 "Cat Portal: non-Euclidean portal in Solv"
youtu.be/CGiSxC9B6i0 -- a portal in Solv geometry
3:22 "Spherical Portal"
youtu.be/PerPeQFu5gw -- a portal in spherical geometry
4:59 "non-Euclidean portal (in Nil geometry)"
youtu.be/2K-v8tK68AE -- a portal in Nil geometry
6:09 "non-Euclidean recursive house"
youtu.be/Tf1wgYdjf_Q -- a recursive house (first scene) realized in S2xE geometry (second scene)
7:14 "Right-angled pentagon", looping animation
an example of a scene that cannot be achieved with portals -- twitter.com/ZenoRogue/status/1304130700870901761
(note that the period is 20 seconds -- can you see why the scenes after 4 and 5 seconds are different?)
7:34 "Right-angled pentagon"
youtu.be/c3BTm3t4Gw0
7:54 "Can we simulate spherical geometry in Euclidean space"
youtu.be/XUIYga-AfLI -- an attempt to simulate spherical geometry using portals
8:22 "too many shapes to see all of them"
youtu.be/3-jRAVUXWgw -- an attempt to simulate hyperbolic geometry using portals
9:32 some extra scenes to "too many shapes"
from Twitter: twitter.com/ZenoRogue/status/1423663341944377345
It appears that we have a triangle of solid walls in front of us. Let's try to walk around it.
Surprisingly, this "triangle" has seven sides!
What's going on?
0:15 hyperbolic geometry
This maze is actually based on hyperbolic geometry. The hyperbolic plane can be tessellated with triangles, so that 7 triangles meet in every vertex. We place solid walls on some of these triangles, forming heptagonal structures. We try to do it so that each vertex of the tessellation has two triangles filled with walls. Then, we look at the scene obtained from the first person perspective.
0:25 change the curvature
However, rather than using the hyperbolic perspective, we construct this scene out of Euclidean triangular prisms rather than hyperbolic ones. We cannot do this in Euclidean space, but mathematically it makes sense, we just glue fragments of Euclidean space together. Some gamers call such gluing construction "non-Euclidean geometry" -- that's not really correct, such surgery generally changes the topology, not the geometry (except the cone lines). At 0:25-0:30 you can see the curvature changing gradually, from hyperbolic triangular "prisms" where the space itself is curved, to Euclidean triangular prism.
0:30 just one triangle
In the previous scenes, we have filled two triangles to make the scene look normal (until we move around). What if we filled just one triangle with wall at every vertex? In the Euclidean approximation, these triangles look like very narrow walls (but they still have three sides).
0:40 one square out of five
We can actually tile the hyperbolic plane in other ways. Generally, do an Euclidean tessellation, but add more shapes (7 triangles, 5 squares...). Here is what we get if the hyperbolic scene has 5 squares at every vertex.
0:50 one pentagon out of four
We can also use pentagons in hyperbolic geometry. Four pentagons meet in a vertex, but if we create an Euclidean approximation, only 3? of them fit normally. So if one of four has a wall, that wall will appear to be ⅓ wide (have just 36 degrees).
Can you imagine what these maps look like viewed from above in hyperbolic geometry? Or, in the triangular version, what would happen if if no triangles, or three triangles, were filled at every vertex? If there were no walls, would we see all the triangles in the world? See some answers here: twitter.com/ZenoRogue/status/1423663341944377345
Play HyperRogue and join the HyperRogue Discord for more non-Euclidean fun! Thanks to jpburelle and Rocco for some ideas.
Here, every 3-dimensional face of the 120-cell is subdivided into 120 tetrahedra, as explained above. Thus, we obtain a four-dimensional 14400-sided die.
The boundary (3-dimensional surface) is three-dimensional, so we can have the "inner view" of the die. Here the inner view is approximated using spherical geometry. The opposite faces sum to 14401; because of the weirdness of spherical geometry, they are seen in the same spot. (1/2)
Here is a similar scene without the approximation: twitter.com/ZenoRogue/status/1415331248785006593 (people think there are compression artifacts -- not sure whether they see actual compression artifacts or think that the weird effects caused by the Euclidean approximation of spherical geometry are compression artifacts!) or in HyperRogue 11.2d with commandline parameters: "-noplayer -geo 120c -coxeter 7 -canvas-random 5 -ray-do -ray-cells 99999 ray_fixed_map=1 -gfake-euc"
This video shows various things possible in HyperRogue with VR. It is rather hard to show VR in a standard video, but let's try!
0:00 classic HyperRogue view
This is the classic HyperRogue display, but in VR. VR still makes it fun -- you get 3D effects, you can have a large virtual Poincaré disk wherever you want!
0:10 Alchemist Lab FPP
Of course you can also use VR with the first-person perspective.
0:24 Hell FPP
0:36 Hypersian Rug
And with the "Hypersian Rug" model. Hyperbolic crochets are much more fun in real life than any static image or video can show. Hopefully the VR version brings at least a part of this joy!
1:09 Sphere from the Inside
The game is played on a sphere around the player.
1:19 Sphere from the Outside
And here the game is played on a sphere in front of the player.
1:28 H3 view
This is a periodic structure in the three-dimensional hyperbolic space, rendered using raycasting. While HyperRogue is less fun to play in three-dimensional spaces, you can explore non-Euclidean structures, race through various geometries in the racing mode, or draw 3D things in VR in the Drawing Tool.
1:51 Poincaré ball
You can also view other three-dimensional models of non-Euclidean geometries using VR. Here is the tree structure of the {3,3,6} hyperbolic honeycomb in the Poincaré ball model.
1:56 Nil
Nil is a "twisted" aisotropic geometry. It works differently in different directions.
2:01 Solv
Solv is an anisotropic geometry that is not even rotationally symmetric.
There are many interesting choices when designing non-Euclidean VR visualizations. The geometry works differently in a non-Euclidean space, so some obvious things in Euclidean visualizations (including tons of so-called "non-Euclidean" videos which have nothing to do with non-Euclidean geometry) are, well, no longer obvious.
Should the relative headset movements be translated exactly to the virtual space? If so, if you move to another place in VR and return to where you started, you are probably NOT in the place where you started in the real world. And vice versa. This is because the geometry works differently!
How should the binocular vision work? Should we just render the inner view from two points? If so, distances are not perceived correctly, and in anisotropic geometries this does not even work.
The engine lets you configure various details, such as the above, the length of the absolute unit (i.e. the scale of the non-Euclidean space), and so on. Have fun!
HyperRogue, the non-Euclidean roguelike: www.roguetemple.com/z/hyper
Of course VR also works in other things using the RogueViz engine:
Bringris, the non-Euclidean falling block game: zenorogue.itch.io/bringris
RogueViz demos: zenorogue.itch.io/rogueviz
Music: Graveyard from the HyperRogue soundtrack by Shawn Parrotte
0:00 blowing up a balloon
This is a simulation of blowing up a balloon. We start with these two hexagons, and the balloon becomes closer and closer to a sphere as we blow it up.
This simulation acts as follows. Two forces act on every point of the balloon: the tension of the rubber (if two adjacent points are in distance d, it attracts them with force (d-1)) and the air pressure (on every three points defining a triangle, there is a force orthogonal to that triangle, proportional to (amount of air in the balloon / current volume of the manifold).
However, it is the balloon surface which has non-Euclidean geometry. The world is still Euclidean, and light follows Euclidean straight lines.
0:30 net of the round balloon
So let's see the non-Euclidean view! Let's see what happens when the light rays curve together with the surface (balloon × ℝ geometry). Note that the raytracer still actually uses Euclidean geometry here -- because the balloon obtained from the simulation is still a polyhedron. Here is the net of the inflated one.
0:40 inflated balloon x R
When flying over one of the stars, the other star will look like an annulus -- because, on a sphere, if we go half the circumference in any direction, we reach the other pole.
0:50 flat balloon x R
When the balloon is still flat (not yet inflated), the stars still look like stars. The perspective looks Euclidean in general. In the flat case the "cone lines" (corresponding to the 6 vertices of the polyhedron) are clearly visible, because there is only 240 degrees around them. In the inflated case we see only minor glitches and a good approximation of S2xR geometry.
1:00 intermediate balloon x R
And here is what happens when the balloon is only partially inflated.
1:10 intermediate balloon in E3
The intermediate balloon looks like this. It would be interesting to simulate the inner view in a three-dimensional balloon being blown up in four-dimensional space (our Universe could be something like this). Maybe later if there is interest.
Now, some side results... what do we get when the topology of the balloon is not spherical?
1:15 toroidal balloon
Here we have a toroidal balloon. A surprising thing happens at 1:27. The balloon blowing algorithm attempts to find an "optimal" immersion of the given manifold into the three-dimensional Euclidean space.
(This is an "immersion" because the algorithm does not make sure that the balloon does not self-intersect. Even when it does self-intersect, the manifold has a well-defined "volume", so the algorithm is still happy.)
The shape depends on the amount of air pumped in and out; as we give more and more air, it sometimes happens that the manifold changes to a less symmetrical shape. We show one example for each manifold (except for the torus).
1:45 Zebra quotient
Here is the Zebra Quotient (a somewhat symmetric hyperbolic manifold of genus 2, used in HyperRogue as the basis of the land Zebra).
2:00 Klein Quartic
And here is the Klein quartic, a highly symmetric hyperbolic manifold of genus 3. (The balloon has sevenfold symmetry, with more air, we would get threefold symmetry.)
2:15 Macbeath surface
And here is the Macbeath surface, a highly symmetric hyperbolic manifold of genus 7.
2:30 Bolza surface
It generally tries to make it spherical (as the sphere has the smallest surface for the given volume). It kind of succeeds with the Bolza surface -- the result looks like a sphere, but it is actually a double branched cover (there are two sheets, and going 360° around a vertex brings you to the other sheet).
2:45 Bolza surface for reference
Here is the Bolza surface for reference. Viewed as the universal cover (all the locations where the Princess is seen are the same location). The red vertices have 8 triangles next to them, in the last animation we see 4 because it is a double cover.
0:00 To make the animation smooth, our speed is proportional to the distance from the center. We can assume that that's how the distances in our space work: distances are larger and larger as we
come close to the center. However, in this scene, the light rays travel still according to the rules of Euclidean / affine geometry.
0:15 Here we make the geometry work according to the metric outlined above! For example, when the blue person wants to reach the purple person, they won't go through the center, because the distances
are larger closer to the center. Because of this, if you want to reach the point in the same distance from the center, it is useless to come closer (or further), and the closest path would be a spherical
arc around the center.
The light rays also always take the shortest path, so for example, when we are above the head of the purple person, we see the blue torso in every direction orthogonal to the
central direction! This is because the light rays travel in spherical arcs and hit the blue person.
0:45 The Euclidean scene again.
Recent games based on this trick include:
Patrick's Parabox: store.steampowered.com/app/1260520/Patricks_Parabox
Maquette: store.steampowered.com/app/762840/Maquette
Spaceflux: store.steampowered.com/app/1344440/Spaceflux
Also e.g. glkitty.itch.io/spheres and this Minecraft video reddit.com/r/Minecraft/comments/mlkieu/since_the_trend_seems_to_be_noneuclidean
This geometry is called S2xR or S2xE. Discuss this stuff and non-Euclidean geometry in general in the #geometry channel in the HyperRogue discord: discord.gg/8G44XkR
Music: "Palace" by Will Savino, from the HyperRogue soundtrack (CC BY-SA 3.0)
However, because of numerical precision errors, they quickly end up flying all over the place.
This is because of negative curvature: when two birds fly "parallel" with a short distance between them, new space grows exponentially between them.
0:00 The video start 20s after the start of the simulation -- you need only this much time for the birds to scatter (in the current implementation of RogueViz engine).
0:20 the same animation on a "hypersian rug" (which shows the negative curvature)
0:40 a three-dimesional version -- unfortunately it is more difficult to see what's going on here
Discuss this stuff and non-Euclidean geometry in general in the #geometry channel in the HyperRogue discord: discord.gg/8G44XkR
Music: "Caribbean" by Will Savino, from the HyperRogue soundtrack (CC BY-SA 3.0)
Solv geometry is quite difficult though, so there are still some scenes where the camera rotates too quickly.
Discuss this stuff and non-Euclidean geometry in general in the #geometry channel in the HyperRogue discord: discord.gg/8G44XkR
Made with the HyperRogue engine aka RogueViz
Source code: github.com/zenorogue/hyperrogue/blob/master/rogueviz/notknot.cpp
A playable Windows exe at http://roguetemple.com/z/sims/notknot.zip (works in VR too!)
#shorts
As usual, the algorithm works as follows:
* we start with a basic scene (here, a 8x8x3 manifold with a loop put in it)
* create all possible paths not hitting the walls in this space
* two paths are the same if they are homotopic (one can be continuously deformed into another)
* two paths are the same under some extra rules (here, we identify paths which go 6 times around the loop)
* create a new space where every group of paths which are "the same" becomes a cell
Wihout extra rules we get the universal cover; with extra rules we get just a cover. Can you guess the extra rules here?
Made with the HyperRogue engine aka RogueViz
Source code: github.com/zenorogue/hyperrogue/blob/master/rogueviz/notknot.cpp
A playable Windows exe at http://roguetemple.com/z/sims/notknot.zip (works in VR too!)
As far as I know, this aspect has been AFAIK always left to the reader's imagination so far. Let's change it, by rendering a simulation using realistic 3D models!
This is not 100% accurate (ALL the light rays hit your eye, so you would actually see yourself in ALL directions) but should be close enough.
As seen from the animation, the view from a single eye is rendered. With two eyes, you would correctly see the back of your head behind you -- at least if your brain did the maths correctly (it is not actually used to seeing things behind you, so it would probably just assume that is an error -- this can be seen in VR simulations.)
Models from: renderpeople.com/free-3d-people
0:00 Through a great circle
This one is a great circle in the three-dimensional spherical space. It connects six worlds, each with different fog colors and a different color of the "lone brick".
These videos use 270° field of view (obtained with the stereographic projection) -- with a small field-of-view, there would be no way to see the whole ring at once. We are going straight roughly the center, so the ring would be actually seen around you.
0:10 Different perspective
0:30 Berger sphere
In the previous videos, we could only see two lone bricks at once (the other four others being hidden by their counterparts in closer worlds).Here, we make the geometry less symmetric by stretching it along the Hopf fibers (i.e., obtaining the Berger sphere).
1:00 Knot portal
Let's try a knot portal, based on a trefoil knot. The idea is similar to youtu.be/vFLZ2NGtuGw but the spherical geometry makes it quite hard to grasp. It is "self-hiding" -- in some worlds the portal is not there -- but it may still appear to be there, because the light will travel around the sphere and hit the copy of the portal in another world. The knot has been obtained by embedding it in a torus in the standard way ((3,2) torus knot) and then embedding that torus in the sphere in the standard way (Clifford torus).
A slightly different version on Twitter: twitter.com/ZenoRogue/status/1373298292520550404
Music: the "Laboratory" theme from the HyperRogue soundtrack, composed by Shawn Parrotte
Made with the HyperRogue engine aka RogueViz
Source code: github.com/zenorogue/hyperrogue/blob/master/rogueviz/notknot.cpp
A playable Windows exe at http://roguetemple.com/z/sims/notknot.zip (don't go into the walls; works in VR too!)
This is a portal in the shape of a Penrose staircase, living in a space with Nil geometry.
Nil geometry is a kind of non-Euclidean geometry which makes "impossible figures" like Penrose staircases possible (in some sense). See youtube.com/watch?v=PD_ubxntGeU for an explanation.
If we do not take the portal into account, this is a closed manifold with Nil geometry (i.e, the space is wrapped like in Asteroids or in Manifold Garden).
Six worlds like described above are connected with portals. When we go through the inside of the Penrose staircase, we end up in another world. Each world has a 3x1 box of a different color. Each world also has fog of a different color.
Made with the HyperRogue engine aka RogueViz
Source code: github.com/zenorogue/hyperrogue/blob/master/rogueviz/notknot.cpp
A playable Windows exe at http://roguetemple.com/z/sims/notknot.zip (works in VR too!)
For a given point X, we compute the distances from three points (A,B,C), and then find X' the point in Euclidean space which has the same distance from points A', B', C'.
In this animation, we rotate the triangle ABC and also rotate the triangle A'B'C' (which is shown). The dodecahedra are from the {5,3,4} honeycomb.
The plane ABC splits the hyperbolic space to two half-spaces, and so does A'B'C'; we map each hyperbolic half-space to its respective Euclidean half-space. In some cases, for points in the ABC plane, there will be two (symmetric) Euclidean points, making the projection appear "broken" as we rotate the triangles. In other cases, there will be no correct Euclidean points (in this case, we just map to a point on the A'B'C' plane).
#nonEuclidean
This seems to be related to the following illusions:
en.wikipedia.org/wiki/Kinetic_depth_effect
https://michaelbach.de/ot/mot-ske/index.html
We have observed this long time ago -- mostly experimenting with vertical formats and YouTube #shorts here. Will have to explore this further.
In youtu.be/eb2DhCcGH7U we had a knot portal.
In that video, looping around the knot 3 times brought us back to the same room ("order-3 branching cover"). We had 24 rooms with 4 separate knots (each of them twice as long as it appears).
With order-4, we have 96 rooms, and 6 knots, each of them four times as long.
What if we remove one of these knots, collapsing the spaces?
Well, 24 rooms remain, with 1 knot of 1x length and 1 knot of 4x length.
In the video, we start from a viewpoint from where we can see both of these knots, and we end at a viewpoint from where only the longer knot is visible. Thus, the knot portal hides a part of itself!
(With order-5, 120 out of 600 rooms remain, 1 knot of 2x length and 2 knots of 10x length. With order-6, there are infinitely many rooms.)
The self-hiding knot portal is based on an idea by Magma.
Made with the HyperRogue engine, aka RogueViz
Source code: github.com/zenorogue/hyperrogue/blob/master/rogueviz/notknot.cpp
A playable Windows exe at http://roguetemple.com/z/sims/notknot.zip (don't go into the walls; works in VR too!)
You get back to the same place when you make three (small) loops around the portal frame. As a consequence, there are actually 24 rooms, and 4 knots.
The idea of a knot portal is not new -- you can play the beatiful KnotPortal by Moritz Sümmermann, based on the idea of Bill Thurston:
imaginary.org/program/knotportal
although the algorithms we have used here seem to be significantly different from KnotPortal.
The previous version: youtu.be/1TMY2U4_9Qg
Twitter thread: twitter.com/ZenoRogue/status/1362426573517955074
This improves the earlier version in the following ways:
- reflective walls
- more space around the knot (to make it easier to see that it is a indeed a portal)
- optimized to make the above render in real-time
- fixed a bug with the coloring of the knot
- FullHD resolution
Made with the HyperRogue engine, aka RogueViz
Source code: github.com/zenorogue/hyperrogue/blob/master/rogueviz/notknot.cpp
A playable Windows exe at http://roguetemple.com/z/sims/notknot.zip (don't go into the walls; works in VR too!)
A knot portal made of blocks.
You get back to the same place when you make three (small) loops around the portal frame. As a consequence, there are actually 24 rooms, and 4 knots.
The idea of a knot portal is not new -- you can play the beatiful KnotPortal by Moritz Sümmermann, based on the idea of Bill Thurston:
imaginary.org/program/knotportal
although the algorithms we have used here seem to be significantly different from KnotPortal.
Twitter thread: twitter.com/ZenoRogue/status/1362426573517955074
Source code: github.com/zenorogue/hyperrogue/blob/master/rogueviz/notknot.cpp
A playable Windows exe at roguetemple.com/z/sims/notknot.zip (a bit buggy, don't go into the walls; works in VR too!)
The circumference of the small circle is 𝑐 and the circumference of the large circle is 2𝑐. In Euclidean geometry, a point on the small circle moves in a straight line. Can you guess what changes in hyperbolic geometry?
0:12 half the circumference in hyperbolic geometry
In the hyperbolic plane, the circumference of the circle grows exponentially with the radius. Therefore, the small circle is not much smaller than the big circle (the difference between the radii up to ln(2)). The shape will be different, closer to a circle if 𝑐 is large.
1:12 Quarter the circumference in hyperbolic geometry
Here the ratio is 4. In the Euclidean case we get an astroid, but for large 𝑐 we get a shape closer to a triple circle.
2:12 Half the radius in hyperbolic geometry
If the circumferences are not commensurate, we get no period, so only a part is shown -- obtained after 1 full rotation inside the big circle.
3:12 Half the circumference in spherical geometry
Spherical geometry is the opposite of hyperbolic geometry, so the effect is also opposite -- we also get a lens shape in the end, though, just drawn in a different way. The largest red circle is a great circle. (We could go further than that -- the circumference of the would start getting smaller -- but that does not produce any interesting new effects.)
3:32 Circle rolling on a horocycle
3:52 Circle rolling on an equidistant curve
4:12 CIrcle rolling on a line
Source code: github.com/zenorogue/hyperrogue/blob/master/rogueviz/hypocycloid.cpp
Twitter thread: twitter.com/ZenoRogue/status/1358464962088337410
Interestingly, most of them have natural analogs in hyperbolic plane H²! This video shows 22 projections and their H² analogs.
0:00 sphere and hyperboloid
If you think S²={(x,y,z): x²+y²+z²=1}, then you should think H²={(x,y,t):x²+y²-t²=-1, t≥0}. The picture may be a bit confusing: this is Minkowski space, so squared distance is x²+y²-t²!
0:15 stereographic projection
Project the S²/H² from (0,0,-1) onto an OXY plane. Conformal, maps circles to circles, great when working with Delaunay triangulations. If you think of H² in the Poincaré model, you should think of S² in the stereographic projection.
0:30 gnomonic projection (Beltrami-Klein model)
Project the S²/H² from (0,0,0) onto a plane parallel to OXY. Maps straight lines to straight lines. Only half of S² is visible.
0:45 orthographic projection (Gans model)
Project the S²/H² orthogonally onto OXY.
1:00 Lambert's azimuthal equidistant projection
Azimuthal means that a point in direction α and distance d (from some chosen central point) will be mapped to an Euclidean point in direction α and distance f(d); f usually does not depend on α.
1:15 Lambert's azimuthal equal-area projection
1:30 Equirectangular projection (Lobachevsky coordinates)
Every point has a latitude φ (distance from equator) and longitude λ (closest point on equator). In this projection, we map (λ,φ) to Euclidean (x,y) = (λ,φ). The H² analog is called Lobachevsky coordinates. Pick a line as the equator, geodesics orthogonal to the equator are meridians, and curves equidistant to the equator are parallels.
1:45 Mercator projection (band model)
Cylindrical: (λ,φ) mapped to (λ,f(φ)). Choose f is to make this conformal. See e.g. http://bulatov.org/math/1001 and github.com/zenorogue/newconformist .
2:00 Cylindrical equal-area
2:15 Central cylindrical projection
Meridians mapped like in the gnomonic projection.
2:30 Gall stereographic projection
Meridians mapped like in the stereographic projection.
2:45 Miller cylindrical projection
Scale φ by 4/5, use Mercator, scale 'y' by 5/4.
3:00 Loximuthal projection
Like the azimuthal equidistant projection, but we use loxodromes rather than geodesics, and distances along them. Loxodromes are lines which go in a constant geographic direction (in H², directions are defined by Lobachevsky coordinates).
3:15 Sinusoidal projection
We stretch the equirectangular projection along the parallels so they are mapped in an equidistant way. Should be named cosinusoidal -- the hyperbolic sinusoid and the hyperbolic cosinusoid are very different!
3:30 Mollweide projection
We map (λ,φ) to (λf(φ),g(φ)), where f and g are chosen to get an equal-area projection where the parallels become ellipses, or hyperbolas in H².
3:45 Collignon projection
Like Mollweide, but f and g are chosen so the the parallels are mapped to straight lines.
4:00 Two-point equidistant
We pick 2 points, and map every point in such a way that the distances from these two points are correct. The resulting map is correct close to these 2 points.
4:15 Two-point azimuthal
Pick 2 points, and map every point in such a way that the angles from these 2 points are correct. Actually a horizontally stretched gnomonic projection. Useful as a simulation of binocular vision.
4:30 Aitoff projection
Halve λ, use the azimuthal equidistant projection, double 'x'.
4:45 Hammer projection
Halve λ, use the azimuthal equi-area projection, double 'x'.
5:00 Winkel tripel projection
Average of Aitoff and equirectangular.
5:15 Werner projection
Correct distances from the center; circles are mapped to circular arcs of the same length, making it equidistant along these circular arcs and along a chosen parallel. In S², the circle is shorter than the Euclidean circle, so the model is "interrupted" into a heart shape; in H², the circle is longer, so some Euclidean points represent multiple points.
***
Not all projections/models of S²/H² models have analogs in the other geometry. There are also projections of S² based on "interruptions", where the projection is broken along some lines, since there is less space in S² than in the Euclidean plane (we have not enough sphere to draw anything there). In the hyperbolic case, there is more space, so we get a map that covers itself. This tends to work badly (see the Werner projection).
See also:
HyperRogue: http://www.roguetemple.com/z/hyper/models.php
Wikipedia: en.wikipedia.org/wiki/Map_projection
TilingBot: twitter.com/TilingBot
A similar older video by David Madore: youtube.com/watch?v=xHvAqDuWG2M
There is a natural system of directions in Nil, i.e., we can assign North, East, West, South, Up and Down directions at every point in a natural way. We always move upwards here (however, Up/Down is not along the fibers of Nil here -- the system is rotated by a fixed angle).
In the first half of the video, we make two loops around the staircase, which is viewed in the native geodesic projection (i.e., we assume that light rays travel along geodesics, i.e., locally shortest paths, in Nil). In the second half of the video, we also make two loops, but the staircase is viewed in a projection which assumes that light rays travel in a fixed direction. Since the geodesics in Nil are weird, and also our method of moving architecture to Nil is based on fixed-direction paths rather than geodesics, the second projection looks cleaner.
We will probably also make a video explaining the math behind this. See this for now: youtube.com/watch?v=PD_ubxntGeU
Follow this channel for more!
00:00 native geodesic projection
00:34 native geodesic projection again
01:08 fixed-direction projection
01:42 fixed-direction projection again
3D model: 3dwarehouse.sketchup.com/model/3e6df6c24a95f583cefabc2ae69d584c/MC-Escher-Ascending-and-Descending?hl=en
Music: "R'Lyeh" by Shawn Parrotte from the HyperRogue soundtrack. This music is based on Shepard tones, which are often seen as the musical counterpart of Penrose stairs.
Made using the HyperRogue engine: http://roguetemple.com/z/hyper
Here, we are using g(v,w) = ⟨Av,Aw⟩ where A(x,y,z) = (0.4*x,0.5*y,z), and ⟨⟩ is the usual inner product. The image in the corner shows the isometry of the hyperbolic plane that the current camera position corresponds to. The "tentacles" corresponds to the heptagons in the H^2 scene.
In the last seconds we show the transition from the standard metric to the weirdly stretched one.
Just like in the spherical case, mostly to see what it would look like -- it seems difficult to understand what is going on here (other than what was said in the last paragraph), or to find any practical uses. But it looks quite fun!
Spherical analog: youtu.be/VJyv5kfQbIA
~SL(2,R) but stretched along the fiber -- much more tame: youtu.be/Hg-IW6XfgZY or youtu.be/YUwbFLFBSCk
Standard PSL(2,R): youtu.be/y0dvajkAHlA
Made with the HyperRogue engine!
It is well-known that in the Euclidean plane they will return with probability 1, but in higher Euclidean dimensions, they are likely to never return: en.wikipedia.org/wiki/Random_walk
In hyperbolic geometry (even two-dimensional) it is even worse. Because of the exponential growth, more directions take our explorer away from the starting point, than bring them back. So while in Euclidean space, we are roughly as likely to go closer or further from the starting point, and the average distance after time t is √t, in hyperbolic space we tend to go away (at a roughly constant speed). Even if the explorers reproduce from time to time, it is likely that none of the descendants will ever return! (This depends on how fast they reproduce, relative to the curvature of the world: intuitively, even though the population grows exponentially with time, the space to explore grows even faster.)
In this visualization we show such a branching random walk. We animate the straight line from the starting point to the final point of a chosen explorer, with constant speed. (If we always centered on the explorer, the video would be very shaky.)
More fun facts:
* we are using the Poincaré disk model, which is conformal. A random walk in a conformal projection will look like an Euclidean random walk. However, the timing is different (reaching the edge of the disk takes infinite time, while in Euclidean plane we would just continue).
* Brown Island in HyperRogue is roughly based on these ideas.
* the moving explorer tends to stay close to the camera (moving at constant speed), although in most realizations of this visualization, the distance is larger (at some point of time, the explorer is lagging behind the camera and hardly visible).
Here, we are using g(v,w) = ⟨Av,Aw⟩ where A(x,y,z) = (x,y+x/2,z), and ⟨⟩ is the usual inner product. The dodecahedra are stacked in the 'z' coordinate (they are regular in the original 𝕊³, but of course no longer regular in this weird geometry; they are a line of 10 of 120 dodecahedra in the 120-cell). The first scene shows a rather nice view, the second and third scene are more random directions. The last scene is using a different, much more random matrix for A.
Every dodecahedron in the loop has its antipodal dodecahedron also in the loop. In the usual spherical geometry, a light ray hitting an object X then hits it antipodal object X', then X again, and so on. However, these images will not be visible, as they would be visible in exactly the same spot. Since the geometry is slightly changed here, the antipodal object and afterimages are visible in a slightly different location. We also get weird geometric lensing effects, where objects seem to appear out of nowhere, kind of like fata morganas.
Mostly to see what it would look like -- it seems difficult to understand what is going on here (other than what was said in the last paragraph), or to find any practical uses.
So the sphere below our feet is real, and the sphere above is a mirage. The dogs walking there can scare us, but cannot attack us!
Earlier parts: https://t.co/IvqzMAbCA2 youtu.be/wm6fn9MfRKE
This is elliptic space, so the antipodal points of the sphere are identified.The sphere seen above is the same sphere as the one below our feet, and the dogs walking there can attack our character!
Other episodes: https://t.co/IvqzMAbCA2 youtu.be/aPg4PCMpw1I
While the standard roguelike mode plays the best (because roguelikes are the best games!), you can change enable the real-time non-grid-based "shmup" mode, and the First-Person Perspective mode together.
See how the perspective changes -- movement feels more like zooming than in Euclidean space. Climbing a few meters (as in the Brown Island scene) completely changes the perspective!
Other parts: youtu.be/aPg4PCMpw1I youtu.be/wm6fn9MfRKE
Buggy quotient space of stretched PSL(2,R).
Reflected ceiling and floor look like circles. This is because the space is curved -- the mirrors are not concave nor convex.
From 0:00 to 0:20 we see the triangles themselves.
From 0:20 we apply this transformation to the HyperRogue map, and from 0:30 to a simple tessellation (drawn in the HyperRogue texture editor).
Join the HyperRogue discord server! :) discord.gg/8G44XkR
The first scene is a ring of {3,5,3} dodecahedra in spherical geometry (10 out of 120). Then we glue {3,5,4}, {3,5,5}, ..., {3,5,∞} dodecahedra in the same way (we also do fractional r's, and we end at {3,5,196608} but there is no visible difference).
We deal with the ultra-ideal vertices like in youtu.be/oKopsPT-NXA