• Stars
    star
    245
  • Rank 165,304 (Top 4 %)
  • Language GLSL
  • License
    GNU General Publi...
  • Created about 3 years ago
  • Updated 4 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Visualize 3d/4d hyperbolic honeycombs and sphere packings.

Requirement: This repository is already included in the official release of FragM. You can run the examples by installing FragM and navigating to examples >> neozhaoliang.

In this project, We aim to visualize hyperbolic Coxeter groups of varying ranks 3/4/5 and levels 1/2/3 (with some examples of levels higher than 3). The scenes can be categorized into two types:

  1. Tiling display: Shows the tiling of the hyperbolic honeycomb inside the space, in either the Poincaré ball model or the upper half space model.
  2. Sphere packing display: Shows the sphere packing on the ideal boundary. The ideal boundary is either a sphere in the ball model or a Euclidean plane in the upper half space model. The complement of this sphere packing is referred to as the limit set.

The level of a Coxeter group $G$ is defined as the smallest non-negative integer $l$, such that after removing any $l$ vertices from the Coxeter diagram of $G$, the resulting diagram is either finite or affine. As a result, Coxeter groups that are finite (spherical) and affine (Euclidean) have a level of 0.

For level 1, the limit set encompasses the entire boundary and there is no sphere packing. For level 2, there is a dense sphere packing on the boundary, meaning the spheres do not intersect and fill the boundary completely. In levels higher than 2, the spheres still fill the boundary, but they will have intersections. For further mathematical details, please refer to the paper by Chen and Labbé (Chen and Labbé's paper) on the connection between hyperbolic geometry and ball packings.

3D Euclidean tilings (rank = 4, level = 0)

Shadertoy live

2D hyperbolic tilings (rank = 3, level = 1, 2)

Shadertoy live

From left to right: compact tiling, paracompact tiling (with ideal vertices on the boundary), non-compact tiling (with hyperideal vertices outside the space)

The level 2 case, shown in the rightmost image, appears less attractive. However, it can be observed that each cell, represented by a triangle, intersects the ideal boundary at an arc. These arcs collectively fill the entire boundary. This concept can also be extended to three-dimensional and four-dimensional spaces. If the group has level 2, each cell in the honeycomb will intersect the boundary at a disk or sphere, and these disks or spheres pack the entire boundary.

3D hyperbolic honeycombs (rank = 4, level = 1, 2)

(Images with Poincaré disks packing the boundary are of level 2)

2D circle packings (rank = 4, level = 2)

Shadertoy live

2D circles packings (rank = 4, level > 2)

In this case, there will be overlapping circles:

Circle packings from platonic solids

In order (left to right, top to bottom): tetrahedron, cube, octahedron, dodecahedron, icosahedron.

Shadertoy Live

Non-reflective circle packings

These packings follow from a preprint of Kapovich and Kontorovich. Level not defined.

Extended Bianchi groups. Left: Bi23. Right: Bi31.

Groups from Mcleod's thesis. Left: Modified f(3,6). Right: f(3,14).

2D slices of 3D ball packings (rank = 5, level = 2)

Shadertoy live

3D ball packings (rank = 5, level >= 2)

Top row: level 2 groups give dense ball packings of the unit ball.

Second row: level > 2 groups have overlapping balls, they give fractal patterns if some of the balls are removed. Basically these are the fratals in the next section but moved to the Poincaré unit ball model.

Fractals from 3D ball clusters (rank = 5, level = 3)

Authors