ZenoRoguePeople on HyperRogue discord also wanted a spherical version, so here is one.
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!
Non-Euclidean FPS: Elliptic SpaceZenoRogue2020-08-02 | People on HyperRogue discord also wanted a spherical version, so here is one.
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/aPg4PCMpw1IGeometry with a Strange NameZenoRogue2024-08-09 | This is a video about the last Thurston geometry we have not previously explained in our videos, "the universal cover of the 2x2 special linear group over reals". Why such a name? An exciting travel through spaces of motion, product, and twisted product geometries!
Spaceship and Asteroids from Relative Hell zenorogue.itch.io/relative-hellNon-Euclidean brainsZenoRogue2024-07-24 | Finding suitable embeddings for connectomes (spatially embedded complex networks that map neural connections in the brain) is crucial for analyzing and understanding cognitive processes. Recent studies have found two-dimensional hyperbolic embeddings superior to Euclidean embeddings in modeling connectomes across species, especially human connectomes. However, those studies had limitations: geometries other than Euclidean, hyperbolic, or spherical were not considered. Following William Thurston's suggestion that the networks of neurons in the brain could be successfully represented in Solv geometry, we study the goodness-of-fit of the embeddings for 21 connectome networks (8 species). To this end, we suggest an embedding algorithm based on Simulating Annealing that allows us to embed connectomes to Euclidean, Spherical, Hyperbolic, Solv, Nil, and product geometries. Our algorithm tends to find better embeddings than the state-of-the-art, even in the hyperbolic case. Our findings suggest that while three-dimensional hyperbolic embeddings yield the best results in many cases, Solv embeddings perform reasonably well.
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)
To learn more about non-Euclidean geometry, play HyperRogue or visit our discord: discord.gg/8G44XkRNon-Euclidean Third Dimension in GamesZenoRogue2023-05-14 | Hello! In this video we take you on a journey through a small game world and showcase the non-Euclidean transformations of its third dimension.
We stretch the space to get: Euclidean cylinder, hyperbolic geometry, anisotropic version of hyperbolic geometry, Solv geometry, spherical geometry, (teaser) Nil geometry.
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:
#badapple #mathart #noneuclidean #mindbending #visualization #mathisbeautiful #mathgenius #mathisfun #mathisawesome #newconformist #conformal #hyperrogue #rogueviz #trypophobia #sciencediagramBad Apple, but rendered with hyperbolic planesZenoRogue2022-12-27 | Our take on the famous Internet meme! "If something can display something, it will display Bad Apple. If it can't, people will make it display Bad Apple." -- LiterallySomeOne, [2]
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.
#badapple #mathart #noneuclidean #mindbending #visualization #mathisbeautiful #mathgenius #mathisfun #mathisawesome #newconformist #conformal #hyperrogue #roguevizThe Biggest Boss Monster Ever! (unedited)ZenoRogue2022-05-23 | There is an achievement in HyperRogue for destroying 1,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000 leaves of a Mutant Ivy. So today we will show that this is indeed possible.
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 OverThe Biggest Boss Monster Ever!ZenoRogue2022-05-23 | There is an achievement in HyperRogue for destroying 1,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000 leaves of a Mutant Ivy. So today we will show that this is indeed possible.
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 OverNil Rider TrailerZenoRogue2022-05-09 | Featuring: non-Euclidean geometry (Nil), Penrose triangles, impossible staircases, and a gravity-powered unicycle controlled manually or following a planned route.
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-riderNil geometry explained!ZenoRogue2022-04-14 | Just as you wanted, here we try to explain the mysterious Nil geometry!
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!
* HyperRogue soundtrack under the Creative Commons BY-SA 3.0 license (R'Lyeh by Shawn Parrotte and Lost Mountain by Lincoln Domina)Portals to Non-Euclidean GeometriesZenoRogue2022-02-24 | 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!
* 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/8G44XkRNon-Euclidean Retro PlatformerZenoRogue2022-02-16 | 0:00 Getting Close
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?
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
Have fun!Higher-Dimensional Spaces using Hyperbolic GeometryZenoRogue2021-12-20 | A novel method of interactive visualization of higher-dimensional grids, based on hyperbolic geometry. In our approach, visualized objects are adjacent on the screen if and only if they are in adjacent cells of the grid. 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.00327Semi-Euclidean PortalsZenoRogue2021-09-14 | Looks like an infinite line of doors, but the things behind the doors look like strange, non-Euclidean shapes... because they are non-Euclidean. After the recent videos ("Non-Euclidean Geometry AND Portals") some of you have been asking about portals between different geometries... so there they are!
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
#NonEuclidean #RogueViz #HyperRogueNon-Euclidean geometry AND portals!ZenoRogue2021-09-01 | This video combines earlier videos related to both non-Euclidean geometry and portals.
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
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?)
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.14400-sided dieZenoRogue2021-07-15 | We can subdivide every face of a dodecahedron into 10 triangles, making a 120-sided fair die (The Dice Lab sells dice like this).
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"HyperRogue non-Euclidean VR demoZenoRogue2021-05-28 | When HyperRogue was first released, it had only the traditional-style roguelike "graphics": # for walls, letters for monsters, dots for empty spaces. But it took a rather surprising path, introducing vector-based graphics, then 3D effects, experiments with full 3D geometries, becoming a rather universal non-Euclidean engine, and recently full Virtual Reality.
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!
Music: Graveyard from the HyperRogue soundtrack by Shawn ParrotteBalloons, topology and non-Euclidean geometryZenoRogue2021-05-14 | Topology is sometimes described as what does not change when you stretch a rubber surface without gluing or cutting it. Geometry is the opposite. So when we glue the edges of two rubber hexagons, we change the topology (to spherical), but not the geometry. When we blow up the balloon obtained, we change its geometry (also to roughly spherical), but not its topology.
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.Non-Euclidean recursive houseZenoRogue2021-04-18 | Several recent games use this trick where a scene contains a smaller copy of itself. Sometimes called non-Euclidean, although it is more of an affine (similarity) manifold rather than non-Euclidean. So let's make it actually non-Euclidean!
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.
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)Imprecise BirdsZenoRogue2021-04-18 | A rainbow of birds is flying in a hyperbolic manifold. Each one flies in a straight line, and initially, they form a tight single file.
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)Cool Smooth Cat (Non-Euclidean Portal #shorts)ZenoRogue2021-04-05 | In youtu.be/CGiSxC9B6i0 the camera was very shaky and people complained about it -- here we try a new animation method for smoother and cooler camera movement!
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
#shortsCat Portal: Non-Euclidean Portal in SolvZenoRogue2021-03-25 | Yet another non-Euclidean portal, this time in Solv geometry (the honecomb based on the mapping torus of Arnold's cat mapping).
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?
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.)
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).
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.
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).
#nonEuclideanIllusion of depth in the Gans modelZenoRogue2021-03-03 | For some reason, if we project the hyperbolic plane in the Gans model and translate it, an illusion of depth is obtained.
We have observed this long time ago -- mostly experimenting with vertical formats and YouTube #shorts here. Will have to explore this further.Self-Hiding Knot PortalZenoRogue2021-02-21 | Guess what happens in the end!
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.
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
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!)hyperbolic spirographZenoRogue2021-02-13 | 0:00 Tusi couple 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/1358464962088337410Right-angled pentagonZenoRogue2020-11-03 | A pentagon with five right angles. A cool animation that I have not previously uploaded to YouTube.Bringris TrailerZenoRogue2020-10-16 | zenorogue.itch.io/bringrisHyperbolic analogs of spherical projectionsZenoRogue2020-09-22 | Cartographers need to project the surface of Earth to a flat paper. However, since the surface of Earth is curved, there is no perfect way to do this. Some projections will be conformal (map angles and small shapes faithfully), equidistant (map distances along SOME lines faithfully), equal-area (map areas proportionally), etc., but no map will be all at once. Cartographers use many projections.
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 α.
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.
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).
A similar older video by David Madore: youtube.com/watch?v=xHvAqDuWG2MAscending and Descending in NilZenoRogue2020-08-30 | Penrose stairs have been popularized by M. C. Escher in "Ascending and Descending". This is based on the 3D model of Penrose stairs by Lucian B. Such a staircase is impossible in Euclidean geometry; the 3D model uses an optical illusion to hide this fact. Here, we put this model in Nil geometry, which is a non-Euclidean geometry which makes architecture of this kind possible.
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.
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/hyperWeirdly Twisted SL(2,R)ZenoRogue2020-08-22 | PSL(2,R) is a Lie group, which can be seen as the space of isometries of the hyperbolic plane. It has its usual metric, but we can also define the metric tensor g at one point, and use the Lie group to define a different homogeneous geometry.
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!
Made with the HyperRogue engine!Branching random walk in the hyperbolic planeZenoRogue2020-08-08 | An explorer staggers randomly throught the world. Will they always eventually return close to the starting place?
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).Weirdly Twisted SphereZenoRogue2020-08-06 | The three-dimensional sphere 𝕊³ is a Lie group. After defining the metric tensor g at one point, we can use the Lie group to define a homogeneous geometry in the whole sphere. Of course we could obtain the usual metric in 𝕊³ that way, but we could also obtain e.g. the Berger sphere by stretching one coordinate (this was done in youtu.be/KBYPQaoBgz0 ), or something more weird.
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.First-Person shooter on a 3D ball in 3D sphereZenoRogue2020-08-02 | And here is three-dimensional spherical space. Opposite points are not identified, but because of the weirdness of spherical perspective, point X is not only seen as point X, but is also seen as a mirage in -X (the opposite point in S^3).
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/wm6fn9MfRKENon-Euclidean First Person ShooterZenoRogue2020-08-02 | Did you know that HyperRogue can be played as a First Person Shooter?
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!
Buggy quotient space of stretched PSL(2,R).Comparison: growthZenoRogue2020-06-24 | Inspired by the "comparison" videos that are recently popular on YouTube, we examine how fast are various geometries/graphs/groups growing.Double cube spaceZenoRogue2020-06-15 | The double cube space (aka the Hantzsche-Wendt manifold), tiled with cubes.Hyperbolic NebulaZenoRogue2020-06-10 | We are flying through the manifold constructed out of 120 {3,5,5} dodecahedra (with ultra-mirrors). There is a loop of six icosahedra filled with colored glowing gas, and another six icosahedra are filled with white glowing gas.Mirrors over and under the hyperbolic planeZenoRogue2020-06-09 | Flying across a hyperbolic plane. The equidistant surfaces above and below us are covered with mirrors.
Reflected ceiling and floor look like circles. This is because the space is curved -- the mirrors are not concave nor convex.Hyperbolic triangles with slidersZenoRogue2020-06-02 | Marek Čtrnáct has observed that any triangle whose angles sum to 120 degrees tiles the hyperbolic plane.
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/8G44XkRChanging CurvatureZenoRogue2020-05-28 | More experiments with curvature changing.
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).