This paper was converted on www.awesomepapers.org from LaTeX by an anonymous user.
Want to know more? Visit the Converter page.

\onlineid

1319 \vgtccategoryResearch \vgtcpapertypealgorithm/technique \authorfooter Jinta Zheng is with Oregon State University. E-mail: zhenjint@eecs.oregonstate.edu. Eugene Zhang is with Oregon State University. E-mail: zhange@eecs.oregonstate.edu. Yue Zhang is with Oregon State University. E-mail: zhangyue@oregonstate.edu. \shortauthortitleZheng et al.: Interactive Design and Optics-Based Visualization of Arbitrary Non-Euclidean Kaleidoscopic Orbifolds

Interactive Design and Optics-Based Visualization of Arbitrary Non-Euclidean Kaleidoscopic Orbifolds

Jinta Zheng    Eugene Zhang    Senior Member, IEEE    and Yue Zhang    Member, IEEE
Abstract

Orbifolds are a modern mathematical concept that arises in the research of hyperbolic geometry with applications in computer graphics and visualization. In this paper, we make use of rooms with mirrors as the visual metaphor for orbifolds. Given any arbitrary two-dimensional kaleidoscopic orbifold, we provide an algorithm to construct a Euclidean, spherical, or hyperbolic polygon to match the orbifold. This polygon is then used to create a room for which the polygon serves as the floor and the ceiling. With our system that implements Möbius transformations, the user can interactively edit the scene and see the reflections of the edited objects. To correctly visualize non-Euclidean orbifolds, we adapt the rendering algorithms to account for the geodesics in these spaces, which light rays follow. Our interactive orbifold design system allows the user to create arbitrary two-dimensional kaleidoscopic orbifolds. In addition, our mirror-based orbifold visualization approach has the potential of helping our users gain insight on the orbifold, including its orbifold notation as well as its universal cover, which can also be the spherical space and the hyperbolic space.

keywords:
Kaleidoscopic Orbifolds, Orbifold Visualization, Math Visualization, Orbifold Construction, Spherical Geometry, Hyperbolic Geometry
\CCScatlist\CCScat

K.6.1Management of Computing and Information SystemsProject and People ManagementLife Cycle; \CCScatK.7.mThe Computing ProfessionMiscellaneousEthics \teaser [Uncaptioned image][Uncaptioned image][Uncaptioned image](a)(b)(c)\begin{array}[]{@{\hspace{0.0in}}c@{\hspace{0.05in}}c@{\hspace{0.05in}}c}\hskip 0.0pt\lx@intercol\hfil\includegraphics[width=158.99377pt]{figures/2_2_S2P.png}\hfil\hskip 3.61371pt&\includegraphics[width=158.27147pt]{figures/3_3_3_E2.png}\hfil\hskip 3.61371pt&\includegraphics[width=158.99377pt]{figures/2_2_2_2_2_H2.png}\\ \hskip 0.0pt\lx@intercol\hfil(a)\hfil\hskip 3.61371pt&(b)\hfil\hskip 3.61371pt&(c)\end{array} Our mirror-metaphor visualization of orbifolds: (a) a spherical orbifold, (b) a Euclidean orbifold, and (c) a hyperbolic orbifold. Notice the unusual deformation in the reflections of Buddha and the beams in (a) and (c). All of the orbifolds in this figure were created using our orbifold construction algorithm (Section 4.1). \vgtcinsertpkg

Introduction

Refer to captionRefer to captionRefer to caption(a)(b)(c)\begin{array}[]{@{\hspace{0.0in}}c@{\hspace{0.1in}}c@{\hspace{0.1in}}c}\hskip 0.0pt\lx@intercol\hfil\includegraphics[width=151.76744pt]{figures/dragon_3_3_3_3_E2.png}\hfil\hskip 7.22743pt&\includegraphics[width=151.76744pt]{figures/dragon_3_3_3_3.png}\hfil\hskip 7.22743pt&\includegraphics[width=156.10345pt]{figures/u0.png}\\ \hskip 0.0pt\lx@intercol\hfil(a)\hfil\hskip 7.22743pt&(b)\hfil\hskip 7.22743pt&(c)\\ \end{array}

Figure 1: In (a-b), we show the comparison of the rendering of a hyperbolic orbifold with straight rays as in the Euclidean space (a) and the geodesics in the hyperbolic space (b). In (c), we render a triangular non-orbifold with corner angles 2π3\frac{2\pi}{3}-π12\frac{\pi}{12}-π12\frac{\pi}{12}. Notice the dragon now has two heads.

Refer to caption\begin{array}[]{@{\hspace{0.0in}}c}\hskip 0.0pt\lx@intercol\hfil\includegraphics[width=252.94499pt]{figures/interSystem.png}\\ \end{array}

Figure 2: The interface of our design system.

Orbifolds are a modern mathematical concept originated from the study of low-dimensional topology [32]. This concept has been used to study the geometric structures of hyperbolic spaces and to prove in 20032003 the famous Poincaré conjecture for the three-dimensional case, which is the last case and thus the hardest case to be addressed [25]. In addition, orbifolds have been used to describe spatial symmetries in String Theory [13]. Orbifold theory has found applications in tensor field topology [27, 31, 29], remeshing [20, 8, 22], non-photorealistic rendering [16, 36, 28], and texture synthesis [3, 4, 2, 26].

The concept of orbifolds can be difficult to digest, as its definition involves various mathematical notions from topology and abstract algebra, such as Hausdorff spaces, groups and group actions, charts, and gluing maps. The problem is further compounded by the fact that most of the orbifolds are non-Euclidean, thus making the understanding and visualization of orbifolds more difficult. In this paper, we focus on two-dimensional kaleidoscopic orbifolds that are generated by reflections in the Euclidean plane, the sphere, and the hyperbolic space. We have built an interactive system with which our users can create any arbitrary two-dimensional kaleidoscopic orbifolds and interact with them to gain insight into the orbifolds.

Most existing work on visualizing two-dimensional orbifolds make use of texture patterns that tile the plane seamlessly. Such an approach is commonly used to create illustrations. We observe the recent trend of engaging learning through 3D graphics and animations and employ an approach inspired by the kaleidoscopes. By placing some simple objects inside the kaleidoscope, fascinating images appear when we look through the viewing hole. To be more engaging, our system promotes a visual experience of being inside the kaleidoscope entirely. We utilize a room with mirrors as a visual metaphor for a two-dimensional orbifold.

Interestingly, the reflectional symmetries in a kaleidoscope correspond to the behaviors of a particular Euclidean orbifold. As shown in Figure Interactive Design and Optics-Based Visualization of Arbitrary Non-Euclidean Kaleidoscopic Orbifolds, our system produces orbifolds (configuration of the ceiling and the floor) and the symmetry that each orbifold induces. In addition, through the bending of the mirror frames and the unfamiliar deformations of Buddha in (a) and (c), the notions of spherical geometry and hyperbolic geometry are visually delivered, respectively.

While there are only a handful of Euclidean orbifolds, there are infinitely many spherical and hyperbolic orbifolds. In fact, any polygon whose corner angles can each be expressed as πk\frac{\pi}{k} (k+k\in\mathbb{N}^{+}) is an orbifold. To the best of our knowledge, there is no algorithm published that allows the realization of arbitrary such polygons when their natural spaces are hyperbolic. Most available tools focus on regular polygons. For arbitrary polygons that represent an orbifold, the lengths of the edges are challenging to determine.

In this paper, we address this difficulty by providing an algorithm that can interactively realize any orbifold, whether spherical, hyperbolic, or Euclidean (Section 4.1). As part of our algorithm, we provide a complete enumeration of two-dimensional kaleidoscopic orbifolds based on the cardinality of the underlying polygon and the type of the universal cover (Section 3). With this ability, any two-dimensional orbifold can be converted to a room, whose ceiling and floor have the configuration of the polygon. Our system further allows interactive scene editing, with the room and its virtual copies being visible at the same time (Figure 2). Furthermore, the creation of the reflected copies in the underlying space (universal cover) that is either the sphere or the hyperbolic space can reinforce the perception of geometric deformations of these non-Euclidean spaces. To achieve this, we present a system to generate the universal cover of any polygonal orbifold and provide interactive updates to the virtual rooms in the universal cover through Möbius transformations.

Light rays travel along the geodesics in the spherical and hyperbolic spaces. When rendering a non-Euclidean scene using Euclidean straight lines, incorrect appearances result as shown in Figure 1 (a). We modify the rendering algorithms to account for the correct paths for rays (Figure 1 (b)). In addition, by adjusting the attenuation of some or all the mirrors in the scene (Figure 3), we can further emphasize the orbifold itself (a), intensify the emphasis of the universal cover (c), or highlight the translational cover of the orbifold (the room and an adjacent virtual room). With our design system and visualization, users can customize their orbifolds for their purposes.

Refer to captionRefer to captionRefer to caption(a)(b)(c)\begin{array}[]{@{\hspace{0.0in}}c@{\hspace{0.1in}}c@{\hspace{0.1in}}c}\hskip 0.0pt\lx@intercol\hfil\includegraphics[width=158.99377pt]{figures/emphasis_orbifold.png}\hfil\hskip 7.22743pt&\includegraphics[width=158.99377pt]{figures/emphasis_translational_cover.png}\hfil\hskip 7.22743pt&\includegraphics[width=158.99377pt]{figures/emphasis_universal_cover.png}\\ \hskip 0.0pt\lx@intercol\hfil(a)\hfil\hskip 7.22743pt&(b)\hfil\hskip 7.22743pt&(c)\end{array}

Figure 3: By varying the attenuations of the mirrors, our visualization can emphasize the orbifold (a), its translational cover (b), or its universal cover (c).

1 Related Work

Our work follows recent research in mathematics visualization, such as quaternions [15], knots and links [33], and branched covering spaces [30].

Orbifolds are a modern mathematical concept [32]. The notion of orbifolds has found applications in texture synthesis [3, 4, 2]. Nieser and Polthier provide visualization of analytic functions over the complex plane [23], while Roy et al. [30] visualize the notion and properties of branched covering spaces with respect to NN-way rotational symmetry (NN-RoSy) fields [28]. All of this work focuses on the visualization and processing of orbifolds on two-dimensional surfaces. Moreover, the orbifolds that they address only possess rotational symmetries, which are a subclass of reflectional symmetries. In this paper, we address orbifolds that are generated by reflections, which include not only reflectional symmetries but also rotational and translational symmetries.

Conway et al. [9] explain the concepts and results related to planar orbifolds by using popular artwork containing textures with symmetries. Their approach focuses on Euclidean orbifolds. In our work, we provide a system to generate a room that matches any given two-dimensional kaleidoscopic orbifold, even when its universal cover is a non-Euclidean space. Furthermore, we make use of the mirror metaphor to leverage real-life experience with mirrors, which provides a complementary approach to the texture-based visualization of orbifolds.

Our mirror metaphor turns a two-dimensional orbifold into a three-dimensional room, which can also be considered as a three-dimensional orbifold that is the product of the two-dimensional orbifold (floor and ceiling) with a line segment (the height of the room). There has been some past research on visualizing three-dimensional orbifolds [7, 24], with a focus on the three-dimensional sphere 𝕊3\mathbb{S}^{3} and three-dimensional hyperbolic space 3\mathbb{H}^{3}. In these spaces, the geodesics are either a circular arc or a hyperbola. In contrast, the geodesics in our product spaces are spirals, which makes ray-triangle intersection different from those in 𝕊3\mathbb{S}^{3} and 3\mathbb{H}^{3}. Moreover, past research often focuses on using some famous orbifolds in 𝕊3\mathbb{S}^{3} and 3\mathbb{H}^{3} such as the Poincaré sphere and the mirror dodecahedron. In our paper, we allow the visualization of any arbitrary two-dimensional orbifolds.

2 Background on Orbifolds

In this section, we review necessary mathematical background on orbifolds used in this paper which include the concepts of groups and group actions [18], orbifolds [21, 11], and non-Euclidean spaces [12]. For a rigorous definition of these concepts, we refer our readers to the aforementioned references.

Refer to caption\begin{array}[]{@{\hspace{0.0in}}c}\hskip 0.0pt\lx@intercol\hfil\includegraphics[width=180.67499pt]{figures/bcs}\end{array}

Figure 4: An orbifold (right: the first quadrant in the real plane) and its universal cover (left: all four quadrants) are related by a covering map τ(x,y)=(|x|,|y|)\tau(x,y)=(|x|,|y|). The neighborhood of the origin in the orbifold (right) is a quarter disk. The map τ\tau introduces a symmetry group consisting a horizontal reflection (the letter pp to qq), a vertical reflection (the letter pp to bb), and a rotation by π\pi (the letter pp to dd). The symmetry group is the Dihedral group 𝔻2\mathbb{D}_{2}.

An orbifold OO is a topological space XX paired with a discrete symmetry group GG such that XX locally resembles a Euclidean disk under the action of GG. To better illustrate this, consider the space L={(x,y)|x,y0}L=\{(x,y)|x,y\geq 0\} (Figure 4 (right)). For each point in the first quadrant, we can find a small enough disk-shaped neighborhood. However, for a point on the positive YY-axis, there is a neighborhood of the shape of a half-disk which corresponds to a full disk in the Euclidean plane (Figure 4 (left)) under the reflection across the YY-axis. In other words, the union of the half disk in the first quadrant and its mirror reflection form a full disk. Finally, the origin has a quarter-disk-shaped neighborhood (Figure 4 (right)) which corresponds to a full disk in the Euclidean plane (Figure 4 (left)) when being combined with its reflection across the XX-axis (in the fourth quadrant), the reflection across the YY-axis (in the second quadrant), and the rotation by π\pi around the origin (in the third quadrant). Thus, LL is an orbifold.

Globally, we can see that LL is the range of the following function τ(x,y)=(|x|,|y|)\tau(x,y)=(|x|,|y|), which introduces a map from 2\mathbb{R}^{2} to LL with the symmetry illustrated as follows. The letter pp (Figure 4 (right)) corresponds to the letter qq in the second quadrant (Figure 4 (left)) through the reflection across the YY-axis and the letter bb in the fourth quadrant through the reflection across the XX-axis. In addition, it corresponds to the letter dd in the third quadrant through a rotation of π\pi around the origin, which is a composition of the two aforementioned reflections. Thus, the symmetry induced by the map τ\tau leads to a symmetry group of four elements: the identity, two reflections, and one rotation. The group is the Dihedral group of order 22, i.e. 𝔻2\mathbb{D}_{2}, which, when acted on 2\mathbb{R}^{2}, leads to the orbifold LL. It has a corner point at the origin and two mirror lines (the positive XX-axis and the positive YY-axis).

Refer to caption(a) 2222(b) 333(c) 244(d) 236\begin{array}[]{@{\hspace{0.0in}}c}\hskip 0.0pt\lx@intercol\hfil\includegraphics[width=231.26378pt]{figures/2d_Euclidean}\\ \hskip 0.0pt\lx@intercol\hfil\put(-110.0,0.0){(a) {$*2222$}}\put(-45.0,0.0){(b) {$*333$}}\put(13.0,0.0){(c) {$*244$}}\put(75.0,0.0){(d) {$*236$}}\end{array}

Figure 5: The four Euclidean orbifolds.

In general, a two-dimensional kaleidoscopic orbifold OO is a polygon with a symmetry group induced by reflections across all of its edges. Without causing ambiguity, we also refer to the polygon as OO. Each edge of the polygon is thus a mirror line, and every vertex of the polygon is a corner point corresponding to the symmetry of 𝔻k\mathbb{D}_{k}, the dihedral group of order kk. Note that 𝔻k\mathbb{D}_{k} consists of kk rotations (including the identity) and kk reflections. In Figure 5 we show four such orbifolds, whose polygons have a configurations of a square (a), a 60606060^{\circ}-60^{\circ}-60^{\circ} triangle (b), a 90454590^{\circ}-45^{\circ}-45^{\circ} triangle (c), and a 90603090^{\circ}-60^{\circ}-30^{\circ} triangle (d). These orbifolds are given the orbifold notations (a) 2222*2222, (b) 333*333, (c) 244*244, and (d) 236*236, respectively. A generic kaleidoscopic orbifold corresponding to an NN-gon OO is given the notation k1kN*k_{1}...k_{N} where the * indicates the existence of the mirror and kik_{i} implies that the angle of the polygon at the ii-th corner is πki\frac{\pi}{k_{i}}.

An orbifold (the polygon) and all of its virtual copies through its symmetry group can seamlessly tile a space, which is its universal cover. The aforementioned orbifolds are kaleidoscopic orbifolds whose universal cover is the Euclidean plane, thus Euclidean orbifolds. Each Euclidean orbifold has a translational cover, which, along with its translational copies, form the universal cover. The translational cover of 2222*2222 consists of the orbifold, two of its reflections, and one rotation by π\pi (Figure 5 (a): any 2×22\times 2 subgrid with the letters qq, pp, dd, and bb). The translations needed to generate the universal cover is the Gaussian integer grid [i]\mathbb{Z}[\textit{i}] [14]. The translational covers of the other Euclidean orbifolds respectively consist of six copies arranged in a hexagon (Figure 5 (b): 333*333), eight copies arranged in an octagon (Figure 5(c): 244*244), and twelve copies arranged in a dodecagon (Figure 5(d): 236*236). The set of translations for 244*244 is also [i]\mathbb{Z}[\textit{i}]. On the other hand, the set of translations for 333*333 and 236*236 is the Eisenstein integer grid [ω]\mathbb{Z}[\textit{$\omega$}] [14] where ω=1+3i2\omega=\frac{-1+\sqrt{3}i}{2}.

While it may seem that these are the only kaleidoscopic orbifolds and that all kaleidoscopic orbifolds must be triangular or rectangular, there are many more. In fact, given an arbitrary polygon with at least three sides and whose corner angles divide π\pi individually, there is an orbifold that corresponds to the polygon. Figure 13 shows a room with three, four, and five mirrors, respectively. However, these orbifolds cannot tile the Euclidean plane as their universal covers are either the unit sphere (spherical orbifolds) or the hyperbolic plane (hyperbolic orbifolds). The hyperbolic plane can be modeled as the upper sheet of the double-sheet hyperboloid z2x2y2=1z^{2}-x^{2}-y^{2}=1 (Figure 6). Like the Euclidean orbifolds, both spherical orbifolds and hyperbolic orbifolds are polygons whose edges follow the geodesics in their universal cover. The geodesics in the unit sphere are the great circles, and the geodesic passing through two mutually distinct points pp and qq in the hyperbolic space is the intersection of the plane containing pp, qq and the vertex of the lower-sheet of the hyperboloid (Figure 6: the curve passing through pp and qq). In fact, given an orbifold O=O=k1kN*k_{1}...k_{N} where NN is the number of walls and ki>1k_{i}>1 (1iN1\leq i\leq N), its universal cover is decided by the Euler characteristic of the orbifold as follows:

Refer to caption\begin{array}[]{@{\hspace{0.0in}}c}\hskip 0.0pt\lx@intercol\hfil\includegraphics[width=151.76744pt]{figures/h2_hyper_4.pdf}\\ \end{array}

Figure 6: The hyperbolic space can be modeled as the upper-sheet of a double-sheet hyperboloid. The geodesic passing through pp and qq in the space is the intersection of the hyperboloid with the plane that passes through pp and qq as well as the vertex of the lower sheet.
χ(O)=i=1N12kiN2+1.\chi(O)=\sum_{i=1}^{N}\frac{1}{2k_{i}}-\frac{N}{2}+1. (1)

An orbifold OO is spherical, Euclidean, or hyperbolic when χ(O)>0\chi(O)>0, χ(O)=0\chi(O)=0, χ(O)<0\chi(O)<0, respectively.

In the next section, we describe our orbifold design system starting with an enumeration of all two-dimensional kaleidoscopic orbifolds.

3 Kaleidoscopic Orbifold Enumeration

While there has been a complete enumeration of spherical and Euclidean orbifolds, to our best knowledge such an enumeration is not explicitly given for hyperbolic orbifolds. In addition, the enumeration for spherical and Euclidean orbifolds is in the form of an exhaustive list. Our orbifold design system is based on the number of walls (the cardinality of the underlying polygon) in the orbifold. Thus, we strive for an explicit enumeration for all two-dimensional kaleidoscopic orbifolds based on the combination of the polygon cardinality and the universal cover.

There are three types of spherical orbifolds: (1) one mirror, (2) two mirrors, and (3) three mirrors. The only one mirror spherical orbifold is *, which corresponds to a room that is half of the sphere with its boundary being the mirror. There are no corners. In this case, one can consider the room as a monogon. In the second case, the room has two mirrors that intersect at πk\frac{\pi}{k} at both ends where k>1k>1. These are diangular orbifolds kk*kk, which are the section of the unit sphere that are between two longitudes that are πk\frac{\pi}{k} apart. Note that 11*11 is the same as * since the corner angles are π\pi. In fact, every corner with an angle π\pi can be removed from the list of corners. Thus, in the orbifold notation, we require every number to be at least 22 when there are at least two walls.

For the triangular spherical orbifolds, i.e., three mirrors, there are two sub-types. The first sub-type has the form 22k*22k where k>1k>1. Figure 13 (a) shows one such orbifold (222*222). This type of orbifolds can be obtained by taking half of the orbifold kk*kk in the northern hemisphere and adding a mirror on the equator. The second sub-type has the form 23k*23k where k=3,4,5k=3,4,5. Notice that when k=6k=6 we have 236*236, a Euclidean orbifold. From the discussion, we can see there are more spherical orbifolds than Euclidean orbifolds.

There are bad orbifolds, namely, k*k where k>1k>1 and k1k2*k_{1}k_{2} where k2>k1>1k_{2}>k_{1}>1. Note that neither type of the bad orbifolds can be realized because it is not physically possible to have one great circle intersecting itself at an angle not equal to π\pi, nor is it possible to have two different great circles that intersect at different angles where they meet. In our system, we do not construct bad orbifolds.

NN Spherical Euclidean Hyperbolic
1 *
2 22*22, 33*33, 44*44, …
3 222*222, 223*223, 224*224
233*233, 234*234, 235*235 236*236 237*237, 238*238, 239*239, …
244*244 245*245, 246*246, 247*247, …
2k2k3*2k_{2}k_{3} (k3k2>4k_{3}\geq k_{2}>4)
333*333 334*334, 335*335, 336*336, …
3k2k3*3k_{2}k_{3} (k3k2>3(k_{3}\geq k_{2}>3)
k1k2k3*k_{1}k_{2}k_{3} (k3k2k1>3(k_{3}\geq k_{2}\geq k_{1}>3)
4 2222*2222 k1k2k3k4*k_{1}k_{2}k_{3}k_{4} (max1i4ki>2\max_{1\leq i\leq 4}k_{i}>2)
5 k1k2k3k4k5*k_{1}k_{2}k_{3}k_{4}k_{5}
6 k1k2k3k4k5k6*k_{1}k_{2}k_{3}k_{4}k_{5}k_{6}
7 k1k2k3k4k5k6k7*k_{1}k_{2}k_{3}k_{4}k_{5}k_{6}k_{7}
Table 1: Our enumeration of all two-dimensional kaleidoscopic orbifolds based on the cardinality and the universal cover of the orbifolds. The orbifolds on each row have the same NN, which is the cardinality of the underlying polygon.

The rest of polygonal kaleidoscopic orbifolds are hyperbolic, and there are no bad hyperbolic orbifolds. There are three cases: (1) three mirrors, (2) four mirrors, and (3) five or more mirrors. An orbifold is hyperbolic if its has five or more mirrors (e.g. Figure 13 (c)). In addition, all quadrangular orbifolds except 2222*2222 are hyperbolic (e.g. Figure 13 (b)). Finally, triangular hyperbolic orbifolds include six sub-types: (1) 23k*23k where k>6k>6, (2) 24k*24k where k>4k>4, (3) 2k2k3*2k_{2}k_{3} where k3k2>4k_{3}\geq k_{2}>4, (4) 33k*33k where k>3k>3, (5) 3k2k3*3k_{2}k_{3} where k3k2>3k_{3}\geq k_{2}>3, and (6) k1k2k3*k_{1}k_{2}k_{3} where k3k2k1>3k_{3}\geq k_{2}\geq k_{1}>3. Notice the three cases, each of which corresponds to a Euclidean orbifold that serves as the border between the set of spherical and the set of hyperbolic orbifolds, namely, 236*236 for type (1), 244*244 for type (2), and 333*333 for type (4).

Our enumeration of all two-dimensional kaleidoscopic orbifolds based on the combination of the cardinality of the underlying polygon and the type of its universal cover is shown in Table 1. We provide the computations behind our enumeration in Appendix A.

4 Interactive Orbifold Scene Design

Our orbifold visualization system consists of two components: a design panel and the display (Figure 2). We employ the Irrlicht game engine [1], which provides an effective balance between interactivity and functionality.

In the design panel, the user can specify the type of the scene by entering its orbifold notation in the form of a number NN for the number of walls in the scene and a list of NN numbers, k1,k2,,kNk_{1},k_{2},...,k_{N}. Here, kik_{i} indicates that the angle of the ii-th corner is πki\frac{\pi}{k_{i}}.

The default value of NN is five, and five evenly spaced nodes are displayed on the disk inside the design panel (Figure 2), each of which has a default value of two, i.e. 22222*22222. The user can change the value of each node, which can be a non-integer in order to create non-orbifold scenes (Figure 1 (c)). The user can also change NN, which results in a room with more or fewer walls. The default value for each node in the new setting is again two. Recall that there are two cases that are not physically realizable: (1) a circular room with a single mirror (N=1N=1) that self-intersects at an angle not equal to π\pi (k*k where k>1k>1), and (2) a room with two mirrors whose two intersection angles are mutually distinct (k1k2*k_{1}k_{2} where k2>k1k_{2}>k_{1}). Thus, we disallow these cases from occurring during the design phase. For example, when N=1N=1, the value of the only node is set to one and cannot be changed. Similarly, when N=2N=2, if the user changes the value of one node, the value of the other node is automatically updated to match it.

Given the orbifold notation, our system instantaneously generates an empty room (a right polygonal prism) whose floor and ceiling are congruent to the orbifold and whose walls are the sides of the prism. In our system, it is possible to have multiple mirrors on a wall as shown in Figure Interactive Design and Optics-Based Visualization of Arbitrary Non-Euclidean Kaleidoscopic Orbifolds. The user can also change the height of the room, the color and attenuation of a mirror, and the textures for the ceiling and the floor. Objects can be added to the scene, whose locations, orientations, sizes, base colors, and material properties (e.g. marble, glass) can be modified from their default values as needed. Light sources can also be added to the scene, with control over their locations, shapes, and optical properties. Unwanted objects and light sources can be removed from the scene.

All of the above scene design operations are interactively rendered in order to support the What-You-See-Is-What-You-Get (WYSIWYG) paradigm, and all of the examples included in the paper and accompanying video were created using our design system.

At the core of our system is the ability to create a room given any arbitrary two-dimensional kaleidoscopic orbifold and to correctly deform an object in the scene when it moves. In addition, in our design system, mirrors are not explicitly generated. Instead, we emulate the mirror effects by creating copies of the original room which together approximate the universal cover of the orbifold. We provide detail on each of these topics next.

4.1 Orbifold Scene Construction

We first compute the Euler characteristic of the orbifold OO. If χ(O)=0\chi(O)=0, i.e. a Euclidean orbifold, it is then 2222*2222, 333*333, 236*236, or 244*244. As we know the internal angles and the ratios between the side lengths, we can place the vertices of the underlying triangle or square on the floor. Then, with a user-specified room height, we create the ceiling polygon by duplicating the floor polygon and raising it to match the height. Both the floor and the ceiling are represented by a triangular mesh, so are the rectangular walls in the room.

For a non-Euclidean orbifold, its universal cover is either the sphere or the hyperbolic space. Constructing a 3D room over the sphere and the hyperboloid would require a second sphere or hyperboloid to hold the ceiling. While it is possible to construct the room this way, we instead choose to express the orbifold using a planar model, i.e. the stereographic projection for the sphere [17] and the Poincaré disk [12] for the hyperbolic space. By using these models, we have a unified framework in which any polygon, regardless of the type of its universal cover, can be constructed in the plane. Next, we describe our algorithm to identify the side lengths of any non-Euclidean kaleidoscopic orbifold.

Refer to caption\begin{array}[]{@{\hspace{0.0in}}c}\hskip 0.0pt\lx@intercol\hfil\includegraphics[width=180.67499pt]{figures/geodesics.pdf}\\ \end{array}

Figure 7: Under the stereographic projection, a geodesic in the sphere is mapped to a circle that intersects the boundary of the unit disk at a pair of antipodal points (left). Using the Poincaré disk model, a geodesic in the hyperbolic space is mapped to a circular arc that interests the boundary of the disk at the right angle (right).

Spherical Orbifolds: The stereographic projection [17] maps the unit sphere to the plane z=0z=0 such that the equator (a unit circle) is mapped to itself and the north pole is mapped to the origin in the plane. In this case, the northern hemisphere is mapped to the inside of the unit disk bounded by the equator while the southern hemisphere is mapped to the outside of the unit disk. This plane can be identified as the complex plane, i.e. the set of complex numbers. The south pole is mapped to \infty. The geodesics are mapped to circles in the plane that intersect the unit circle at a pair of antipodal points (Figure 7 (left)).

As shown in Table 1, the underlying polygon of a spherical orbifold is either a monogon, a diangle, or a triangle. In all of these cases, OO can be contained inside a hemisphere. That is, under the stereographic projection, it can be contained inside the unit disk in the complex plane. For the monogon, i.e. *, the equator is the mirror. For a diangular orbifold kk*kk (k>1)k>1), the corner points are on the real axis which are connected by a pair of circle segments that intersect at the corner points at πk\frac{\pi}{k}. Note that the stereographic projection is conformal [10], i.e. angle-preserving, thus our choice of the angles at the intersection points. The triangular orbifold 22k*22k (k>1k>1) is exactly half of the orbifold kk*kk for the same kk (Figure 8: top row).

Finally, the orbifolds 23k*23k (k=3,4,5k=3,4,5) can be constructed by placing the corner points (Figure 8, bottom row) in the stereographic plane as follows. Let p1p_{1}, p2p_{2}, p3p_{3} be the corners of the orbifold corresponding to 22, 33 and kk, respectively. The spherical lengths, di,i+1d_{i,i+1}, of the edges pipi+1p_{i}p_{i+1} in the polygon are uniquely determined by the angles πki,πki+1\frac{\pi}{k_{i}},\frac{\pi}{k_{i+1}} and πki+2\frac{\pi}{k_{i+2}} of the polygon as follows [32]:

di,i+1=cos1(cos(πki+2)+cos(πki)cos(πki+1)sin(πki)sin(πki+1))d_{i,i+1}=\cos^{-1}\left(\frac{\cos\left(\frac{\pi}{k_{i+2}}\right)+\cos\left(\frac{\pi}{k_{i}}\right)\cos\left(\frac{\pi}{k_{i+1}}\right)}{\sin\left(\frac{\pi}{k_{i}}\right)\sin\left(\frac{\pi}{k_{i+1}}\right)}\right) (2)

where i=1,2,3i=1,2,3, d3,4=d3,1d_{3,4}=d_{3,1}, k4=k1=2k_{4}=k_{1}=2, k5=k2=3k_{5}=k_{2}=3, k3=kk_{3}=k, and p4=p1p_{4}=p_{1}. With this information, we first place the vertex p1p_{1} at (1,0)(1,0) in the complex plane. Next, we compute a geodesic emanating from p1p_{1}, along which we travel for a spherical distance of d1,2d_{1,2} to find p2p_{2}. Since p1p_{1} and p2p_{2} are both represented as complex numbers in the stereographic plane, their spherical distance can be computed from their complex number representations as follows [17]:

d(p1,p2)=2tan1(|p2p11+p1¯p2|)d(p_{1},p_{2})=2\tan^{-1}\left(\left|\frac{p_{2}-p_{1}}{1+\overline{p_{1}}p_{2}}\right|\right) (3)

where p¯\overline{p} is the conjugate of a complex number pp. Solving for p2p_{2} in Equation 3 can be challenging given any arbitrary geodesic γ\gamma. However, on the unit circle in the stereographic plane, one can find p2p_{2} without the need to solve Equation 3. This is because the unit circle corresponds to the equator in the sphere under the stereographic projection, thus the spherical distance between the two points is the same as the arc distance between them on the unit circle. However, γ\gamma is not always the unit circle. To address this, we identify a translation in the sphere, which, under the stereographic projection, takes γ\gamma (Figure 9 (left): the arc) to the upper-half of the unit circle. Such a translation can be modelled by Möbius transformations [6] that have the following form:

f(z)=eiθzz0z0¯z+1.f(z)=e^{i\theta}\frac{z-z_{0}}{\overline{z_{0}}z+1}. (4)

Here, θ[0,2π)\theta\in[0,2\pi) and z0z_{0} and zz are complex numbers. A Möbius transformation is uniquely determined by three pairs of corresponding points [17]. We first extend γ\gamma until it intersects the unit disk and map the intersection points to (1,0)(-1,0) and (1,0)(1,0), respectively (Figure 9 (left)). We select the third point to be middle point of γ\gamma, which is mapped to (0,1)(0,1). Call this Möbius transformation MM. Since Möbius transformations in the stereographic plane correspond to rotating the sphere before the stereographic projection, spherical distance is preserved MM. Thus, we can find the point M(p2)M(p_{2}) on the unit circle which has an arc distance of d1,2d_{1,2} from M(p1)M(p_{1}). Finally, performing the inverse of MM, which is also a Möbius transformation to M(p2)M(p_{2}), we can find p2=M1(M(p2))p_{2}=M^{-1}(M(p_{2})).

Refer to caption\begin{array}[]{@{\hspace{0.0in}}c}\hskip 0.0pt\lx@intercol\hfil\includegraphics[width=238.49121pt]{figures/s2_poly.pdf}\\ \end{array}

Figure 8: In the stereographic plane, the * is realized as the unit disk (top row: left). A kk*kk orbifold can be created by placing its corner points at a pair of antipodal points on the unit disk (top row: middle). The 22k*22k type of orbifold is half of the kk*kk orbifold (top row: right). The 23k*23k (k=3,4,5k=3,4,5) can be constructed as shown in the bottom row.

From p2p_{2}, we compute a second geodesic which has an angle of πk2\frac{\pi}{k_{2}} with the first geodesic. Then, travelling along the new geodesic for a spherical distance of d2,3d_{2,3}, we can locate p3p_{3}. Thus, we have constructed the 23k*23k type of orbifolds (Figure 8: bottom row).

Refer to caption\begin{array}[]{@{\hspace{0.0in}}c}\hskip 0.0pt\lx@intercol\hfil\includegraphics[width=195.12877pt]{figures/translation_mobius.pdf}\\ \end{array}

Figure 9: Given a point pip_{i}, we simplify the computation of pi+1p_{i+1} by performing a Möbius transformation in the stereographic plane for spherical orbifolds (left) and the Poincaré disk for hyperbolic orbifolds (right). In both cases, the unique Möbius transformation MM maps the extended geodesic (including the intersections with the unit disk) to the upper semi-circle for spherical orbifolds and line segment between (1,0)(-1,0) and (1,0)(1,0) for hyperbolic orbifolds. In addition, the center of extended geodesic is mapped to (0,1)(0,1) in the spherical case (left) and (0,0)(0,0) in the hyperbolic case (right). Then we identify M(pi+1)M(p_{i+1}) from which we can recover pi+1p_{i+1} using the inverse of MM.

Hyperbolic Orbifolds: We now consider the hyperbolic case, where χ(O)<0\chi(O)<0. The hyperbolic space can be modelled by the Poincaré disk [12], which is the interior of the unit disk in the plane. Under this model, the geodesics of the hyperbolic space are circles that intersect the boundary of unit disk at the right angle (Figure 7 (right)). Recall that a hyperbolic orbifold is a polygon with three or more sides (Table 1). To create such a polygon, we follow the same approach for spherical orbifolds. That is, we start with the location of p1p_{1} in the Poincaré disk and a geodesic emanating from p1p_{1}. We then travel along this geodesic for a prescribed distance to locate p2p_{2}. From there, we identify a new geodesic whose angle with the original geodesic is πk2\frac{\pi}{k_{2}}, which we follow to identify p3p_{3}. This process terminates once when we have identified pNp_{N}. The main difference lies in the fact that the hyperbolic distance between two points in the Poincaré disk is different from the spherical distance of the same two points in the stereographic plane.

Given a triangular hyperbolic orbifold k1k2k3*k_{1}k_{2}k_{3}, the length of the edge between pip_{i} and pi+1p_{i+1} (i=1,2,3i=1,2,3, d3,4=d3,1d_{3,4}=d_{3,1}, k4=k1k_{4}=k_{1}, k5=k2k_{5}=k_{2}, and p4=p1p_{4}=p_{1}) is given by [32]

di,i+1=cosh1(cos(πki+2)+cos(πki)cos(πki+1)sin(πki)sin(πki+1))d_{i,i+1}=\cosh^{-1}\left(\frac{\cos\left(\frac{\pi}{k_{i+2}}\right)+\cos\left(\frac{\pi}{k_{i}}\right)\cos\left(\frac{\pi}{k_{i+1}}\right)}{\sin\left(\frac{\pi}{k_{i}}\right)\sin\left(\frac{\pi}{k_{i+1}}\right)}\right)\\ (5)

In addition, when represented as complex numbers in the plane containing the Poincaré disk, the hyperbolic distance between pip_{i} and pi+1p_{i+1} is given by [17]:

d(pi,pi+1)=ln(|1pi¯pi+1|+|pi+1pi||1pi¯pi+1||pi+1pi|)d(p_{i},p_{i+1})=\ln\left(\frac{|1-\overline{p_{i}}p_{i+1}|+|p_{i+1}-p_{i}|}{|1-\overline{p_{i}}p_{i+1}|-|p_{i+1}-p_{i}|}\right) (6)

Similar to the case of spherical orbifolds, finding pi+1p_{i+1} from pip_{i} on an arbitrary geodesic γ\gamma in the Poincaré disk requires solving Equation 6 for pi+1p_{i+1} which can be challenging. To simplify the matter, we identify the hyperbolic translation in the Poincaré disk that takes γ\gamma (Figure 9 (right): the arc) to the line segment from (1,0)(-1,0) to (1,0)(1,0) in the Poicnaré disk (Figure 9 (right)). This translation takes the intersection with the unit circle (two dark green points on the unit circle) to (1,0)(1,0) and (1,0)(-1,0) (the rightmost and the leftmost burgundy points). It also takes the middle points on γ\gamma (the middle dark green point) to (0,0)(0,0) (the middle burgundy point). Such a translation can be modelled by a Möbius transformation of the following form:

f(z)=eiθzz01z0¯zf(z)=e^{i\theta}\frac{z-z_{0}}{1-\overline{z_{0}}z} (7)

where θ[0,2π)\theta\in[0,2\pi) and |z0|<1|z_{0}|<1. Call the translation MM. Since translations maintain hyperbolic distances, the hyperbolic distance between pip_{i} and pi+1p_{i+1} is the same as the distance between M(pi)M(p_{i}) and M(pi+1)M(p_{i+1}). However, since M(pi)M(p_{i}) and M(pi+1)M(p_{i+1}) are on the real axis, it is easier to solve Equation 6. Once we have found M(pi+1)M(p_{i+1}), we can recover pi+1p_{i+1} by applying M1M^{-1}.

However, deciding the side lengths of a hyperbolic polygon with at least four edges is more challenging as there are no published formulas to the best of our knowledge. To address this, we compute the side lengths based on two facts [21]: (1) any quadrangular hyperbolic polygon can be decomposed into the disjoint union of at most two quads with two right angles (22k3k4*22k_{3}k_{4}), and (2) any hyperbolic polygon with at least five sides can be decomposed into the disjoint union of a finite number of quads of the type 22k3k4*22k_{3}k_{4} and pentagons of the type 2222k5*2222k_{5}, i.e. four right angles. Examples of the two facts are shown in Figure 10.

Refer to caption\begin{array}[]{@{\hspace{0.0in}}c}\hskip 0.0pt\lx@intercol\hfil\includegraphics[width=216.81pt]{figures/Hyper_decom.pdf}\\ \end{array}

Figure 10: Two example scenarios of our decomposition algorithm for hyperbolic orbifolds: (left) a quad is divided into two 22k3k4*22k_{3}k_{4} type quads, and (right) a hexagon is divided into two 22k3k4*22k_{3}k_{4} quads and two 2222k5*2222k_{5} pentagons.

The side lengths of the 22k3k4*22k_{3}k_{4} polygon (Figure 11 (left)) are given by [32, 21]:

d2,3=sinh1(cos(πk4)+cos(πk3)cosh(d1,2)sin(πk3)sinh(d1,2))\displaystyle d_{2,3}=\sinh^{-1}{\left(\frac{\cos\left({\frac{\pi}{k_{4}}}\right)+\cos\left({\frac{\pi}{k_{3}}}\right)\cosh\left({d_{1,2}}\right)}{\sin\left({\frac{\pi}{k_{3}}}\right)\sinh\left({d_{1,2}}\right)}\right)} (8)
d3,4=cosh1(cosh(d1,2)+cos(πk3)cos(πk4)sin(πk3)sin(πk4))\displaystyle d_{3,4}=\cosh^{-1}{\left(\frac{\cosh\left({d_{1,2}}\right)+\cos\left({\frac{\pi}{k_{3}}}\right)\cos\left({\frac{\pi}{k_{4}}}\right)}{\sin\left({\frac{\pi}{k_{3}}}\right)\sin\left({\frac{\pi}{k_{4}}}\right)}\right)}
d4,1=sinh1(cos(πk3)+cos(πk4)cosh(d1,2)sin(πk4)sinh(d1,2))\displaystyle d_{4,1}=\sinh^{-1}{\left(\frac{\cos\left({\frac{\pi}{k_{3}}}\right)+\cos\left({\frac{\pi}{k_{4}}}\right)\cosh\left({d_{1,2}}\right)}{\sin\left({\frac{\pi}{k_{4}}}\right)\sinh\left({d_{1,2}}\right)}\right)}

where d1,2d_{1,2}, the length of the cut edge in the decomposition, is a free variable. This is similar to the case where the width and length of the 2222*2222 orbifold (a rectangle) are free variables.

A generic quadrangular orbifold (k1k2k3k4*k_{1}k_{2}k_{3}k_{4}) can be decomposed into the disjoint union of two quads (22k1k2*22k_{1}k_{2}) and (22k3k4*22k_{3}k_{4}) (Figure 10, left). This allows us to compute side lengths of the two special quads, which, when combined, give rise to the side lengths of the generic quad.

The side lengths of the 2222k5*2222k_{5} polygon (Figure 11 (right)) can computed as follows: [32, 21]:

d1,2=cosh1(cos(πk5)+cosh(d2,3)cosh(d5,1)sinh(d2,3)sinh(d5,1))\displaystyle d_{1,2}=\cosh^{-1}{\left(\frac{\cos\left({\frac{\pi}{k_{5}}}\right)+\cosh\left({d_{2,3}}\right)\cosh\left({d_{5,1}}\right)}{\sinh\left({d_{2,3}}\right)\sinh\left({d_{5,1}}\right)}\right)} (9)
d4,5=sinh1(cosh(d2,3)+cos(πk5)cosh(d5,1)sinh(d5,1)sin(πk5))\displaystyle d_{4,5}=\sinh^{-1}{\left(\frac{\cosh\left({d_{2,3}}\right)+\cos\left({\frac{\pi}{k_{5}}}\right)\cosh\left({d_{5,1}}\right)}{\sinh\left({d_{5,1}}\right)\sin\left({\frac{\pi}{k_{5}}}\right)}\right)}
d3,4=sinh1(cosh(d5,1)+cos(πk5)cosh(d2,3)sinh(d2,3)sin(πk5))\displaystyle d_{3,4}=\sinh^{-1}{\left(\frac{\cosh\left({d_{5,1}}\right)+\cos\left({\frac{\pi}{k_{5}}}\right)\cosh\left({d_{2,3}}\right)}{\sinh\left({d_{2,3}}\right)\sin\left({\frac{\pi}{k_{5}}}\right)}\right)}

where d2,3d_{2,3} and d5,1d_{5,1}, the cut edges in the decomposition, are free variables.

Generic pentagons and higher-order NN-sided polygons can be decomposed as the union of N4N-4 pentagons of the type 2222k5*2222k_{5} with up to two additional quads of the type 22k1k2*22k_{1}k_{2}. To do so, we first consider the simplest case where there exist ki=ki+1=2k_{i}=k_{i+1}=2 and kj=kj+1=2k_{j}=k_{j+1}=2 where i,i+1,j,j+1i,i+1,j,j+1 are mutually distinct. We can find a geodesic that intersects pi1pip_{i-1}p_{i} and pi+1pi+2p_{i+1}p_{i+2} at the right angle. This geodesic removes from the original polygon a pentagon involving pip_{i}, pi+1p_{i+1}, and pi+2p_{i+2} which has four right internal angles, thus the type 2222k5*2222k_{5}. The remaining polygon has one fewer vertex and still has four internal right angles (Figure 10). Repeating this process can lead to N4N-4 pentagons of the type 2222k5*2222k_{5}. On the other hand, a generic polygon with at least five edges can be reduced into the simpler setting by removing up to two quads of the type 22k3k4*22k_{3}k_{4}. We can then compute the side lengths of each of the sub-polygons, which, when combined, give the side lengths of the original polygon.

Refer to caption\begin{array}[]{@{\hspace{0.0in}}c}\hskip 0.0pt\lx@intercol\hfil\includegraphics[width=216.81pt]{figures/right_quad_pentagon.pdf}\\ \end{array}

Figure 11: The special quad 22k3k4*22k_{3}k_{4} (left) and the special pentagon 2222k5*2222k_{5} (right) are the building blocks of our decomposition algorithm. The free variables are colored in red, which correspond to the edges (dashed) introduced during the decomposition.

Every cut edge in the decomposition gives rise a free variable, which can be modified by the user. The default value for the free variables is set to 1.41.4.

With our algorithm, any spherical and hyperbolic orbifold can be constructed given its orbifold notation. Figure 12 show two example orbifolds with their universal covers.

4.2 Object Embedding and Movement

Once the orbifold has been realized as a polygonal prism, the user can add objects to the scene.

However, when bringing an object, which is created in a presumably Euclidean space, to a non-Euclidean space, a natural question to ask is how to perform the embedding. Due to the difference in their respective distance metrics, it is not always possible to embed the model in such a way that the length of every edge in the mesh is maintained. To address this challenge, when embedding the object into the scene, we first place it so that its center of mass is at the origin of the plane for both the stereographic plane and the Poincaré disk. The coordinates of the object are now considered their corresponding coordinates in the stereographic plane and the Poincaré disk. Then, the embedded mesh is translated to the user-specified initial location with the translation native to the non-Euclidean space.

Translations in both the spherical and hyperbolic spaces are isometries. In the spherical space, translations can be modelled in the stereographic plane by Möbius transformations according to Equation 4. Interestingly, translations in the hyperbolic space using the Poincaré disk can also be modelled by Möbius transformations according to Equation 7.

We store the Möbius transformation of each object, and update it when the model is interactively moved inside the room. The Möbius transformation, which corresponds to a translation of the spherical space or the hyperbolic space, is applied to all the vertices in the mesh.

Refer to captionRefer to caption(a)235(b)23456789(10)(11)\begin{array}[]{c@{\hspace{0.1in}}c}\includegraphics[width=115.63243pt]{figures/non_Eucli_235.png}\hfil\hskip 7.22743pt&\includegraphics[width=115.63243pt]{figures/non_Eucli_23456789_10_11.png}\\ (a)\quad\textbf{$*235$}\hfil\hskip 7.22743pt&(b)\quad\textbf{$*23456789(10)(11)$}\\ \end{array}

Figure 12: Two orbifolds generated using our orbifold layout creation algorithm: (a) the 235*235 orbifold (spherical) and (b) the orbifold 23456789(10)(11)*23456789(10)(11) (hyperbolic).

4.3 Universal Cover Construction

Being able to see the universal cover, i.e. all mirror reflections, can be important for a user while exploring our tool. However, capturing mirror reflections can be computationally expensive with high-quality renderers such as Mitsuba [19]. Williams and Zhang [34] address this for Euclidean kaleidoscopic orbifolds by creating a finite number of copies of the reflections of the original room that approximate the universal cover. This is based on two observations. First, as copies are farther away from the room, their images perceived by the viewer approach the vanishing line and thus do not contribute much to the pixels. Second, the color intensity of faraway copies diminishes as the number of bounces off from the mirrors increases. We employ a similar approach, which focuses on non-Euclidean orbifolds. Two examples of universal covers created by our method are shown in Figure 12: (a) the spherical orbifold 235*235 and (b) the hyperbolic orbifold 23456789(10)(11)*23456789(10)(11).

In our system, the construction of the universal cover for Euclidean orbifolds closely follows that of Williams and Zhang [34], which computes the translational cover of the orbifold and generates additional copies of the translational cover using either the Gaussian integer lattice [i]\mathbb{Z}[\textit{i}] for the 2222*2222 and 442*442 cases and the Eisenstein integer lattice [ω]\mathbb{Z}[\omega] for the 333*333 and 632*632 cases.

For spherical and hyperbolic orbifolds, the notion of translational cover is not well-defined. Consequently, we employ the following process. Starting from the original room, we iteratively add a virtual copy by reflecting the room across one of its mirrors. It is also possible to reflect a virtual room across its mirror. To avoid duplicates, i.e. a virtual room that is discovered through two different paths from the original room, we compare the center of a potentially new room to the centers of already visited room and virtual rooms [35].

To locate the corners of each newly added room, we apply reflections in the spherical or hyperbolic spaces to the already visited room involved in the reflection. Inside the stereographic plane, a reflection in the spherical space can be represented as the compositions of some Möbius transformations (Equation 4) and the conjugation function with respect to the real axis f(z)=z¯f(z)=\overline{z}. Similarly, inside the Poincaré disk, a reflection in the hyperbolic space can also be expressed as the composition of some Möbius transformation (Equation 7) and the conjugation function with respect to the real axis. The Möbius transformation is stored in the form of a 2×22\times 2 matrix whose entries consist of aa, bb, cc, and dd [5].

For each copy of the room we save the transformation needed to take the original room to the copy, which is a combination of a Möbius transformation and up to one conjugation function. In addition, for each object in the original room, we also save its Möbius transformation. Then, the position and orientation of an object in a virtual copy of the original scene can be calculated by combining the matrix for the virtual room and the matrix of the same object in the original scene. Also, the computation for both object manipulation and universal cover construction is done using the shader.

5 Optics-Based Orbifold Visualization

Our mirror-based visual metaphor and interactive orbifold design algorithm are motivated by a number of tasks for understanding the concept of orbifolds. Additional results illustrating concepts and properties related to orbifolds can be found in Appendix B. Below we list four tasks and show the results of using our approach to address them.

Recognizing Non-Orbifolds: One of the most fundamental tasks for orbifold visualization is to decide whether a given mirror scene is an orbifold. Non-orbifolds can be difficult to conceptualize, especially when one or more angles at the corners violates πk\frac{\pi}{k} for k+k\in\mathbb{N}^{+}. The resulting rendered images and/or videos can deliver a sense of whether the room is a kaleidoscopic orbifold. When the room is a kaleidoscopic orbifold, the viewer should be able to move around the scene and see a consistent larger scene (the universal cover) that is seamlessly tiled by copies of the original room (the orbifold). On the other hand, if the viewer sees conflicting results, such as the double-headed dragon in Figure 1 (c), it is an indication of a non-orbifold. In this particular example, the room has a corner with an angle of πk\frac{\pi}{k} where k=23k=\frac{2}{3}, which is not an integer.

Refer to captionRefer to captionRefer to caption(a)*222(b)*2323(c)*22222\begin{array}[]{@{\hspace{0.0in}}c@{\hspace{0.1in}}c@{\hspace{0.1in}}c}\hskip 0.0pt\lx@intercol\hfil\includegraphics[width=166.2212pt]{figures/toy_222.png}\hfil\hskip 7.22743pt&\includegraphics[width=166.2212pt]{figures/toy_2323.png}\hfil\hskip 7.22743pt&\includegraphics[width=166.2212pt]{figures/toy_22222.png}\\ \hskip 0.0pt\lx@intercol\hfil(a)\quad\textbf{*222}\hfil\hskip 7.22743pt&(b)\quad\textbf{*2323}\hfil\hskip 7.22743pt&(c)\quad\textbf{*22222}\\ \end{array}

Figure 13: An avatar walks along the walls of the orbifolds. The universal cover is the sphere for (a) and the hyperbolic space for (b) and (c).

Sensing the Orbifold: An orbifold is a topological space that stands on its own. Using our mirrored scenes, we can produce visualizations that emphasize different aspects of an orbifold. For example, for the scene shown in Figure 3, we can adjust the attenuation factors for the mirrors to emphasize the orbifold itself (Figure 3 (a)) by setting high attenuation for both mirrors, or the translational cover (Figure 3 (b)) by setting high attenuation for one mirror and low attenuation for the other mirror, or the universal cover (Figure 3 (c)) by setting low attenuation for both mirrors. Notice that in all of these cases, our mirror-based visualization provides a clear sense of the orbifold, the room.

Determining the Orbifold Notation: Once an intuitive sense of the orbifold is established and the structure of the reflection is observed, it becomes a relatively straightforward task to determine the type of the orbifold in terms of its orbifold notation. Given the power of 3D graphics and animation, we produce either a panorama of the scene or an animation in which an avatar walks along the walls (see the accompanying video). As the avatar approaches the ii-th corner, so do its nearest reflections. There appear to be kik_{i} pairs of avatars approaching the corner. Then, kik_{i} pairs of the same avatars leave the corner for the next one. This helps the user identify kik_{i} for the ii-th corner. By walking around the room one time, each corner is visited. This can help the user write down the orbifold notation.

Identifying the Type of the Universal Cover: With the same panorama and walkaround animations, the user can gain insight into the type of the universal cover. Both the spherical space and the hyperbolic space can bring unfamiliar experience to someone new to the concept. For example, inside the spherical space, objects do not always appear smaller when they are further away. Specifically, when the viewer is at the south pole, objects near the north pole appear much wider than the same object at the equator (Figure 13 (a)). On the other hand, objects farther away always look smaller in the hyperbolic space. However, with the seemingly same distance to the viewers, an object can look much smaller in the hyperbolic space than in the Euclidean space (Figure 13 (b-c)). As the objects move around the scene such as the avatar in Figure 13 and the accompanying video, the way the reflections of the objects deform in non-Euclidean spaces is rather different from that in the Euclidean space. For example, a reflection of the avatar may suddenly grow much bigger and then shrink quickly in the spherical space. With a relatively simple scene (the orbifold), the user can gain insight into the entire universal cover through mirror reflections.

6 Rendering

Once the scene has been constructed, we can either display it interactively during the design stage (Figure 2) or send it to Mitsuba [19] for high-quality off-line rendering. For the latter, we make use of a ray-tracing type of approach with Mitsuba. Recall that our non-Euclidean room is modelled by a subset in 𝔻×[0,h]\mathbb{D}\times[0,h] where 𝔻\mathbb{D} is the unit disk and hh is the height of the room. Thus, any geodesic γ\gamma in the space satisfies that its horizontal projection is a geodesic in the spherical or hyperbolic space. Consequently, γ\gamma takes the form of a 3D spiral. To generate the correct rendering of such scenes, we modify the ray-triangle intersection algorithm in Mitsuba from line-plane intersection to spiral-plane intersection.

Given a point p0p_{0} in the room and a tangent direction vv, the spiral emanating from p0p_{0} in the direction of vv is the tensor product of horizontal projection and the vertical projection of the spiral. The horizontal projection is a circle (can also be a line) in the floor that starts with the projection of p0p_{0} onto the floor and travels in the direction of vHv_{H}, the projection of vv onto the floor. The vertical projection of the spiral is a line that starts at pp that travels in the direction of vZv_{Z}, the zz-component of vv. This leads to a parametric form of γ\gamma which we use to find the intersection of the spiral γ\gamma with a given triangle on an object in the scene. When there are multiple intersections with the triangle, we find the one that has the smallest positive tt value, which represents the closest intersection from the reference point pp.

During the design stage, we make use of scan conversion for interactive feedback. Recall that in this case, we also render the universal cover since we do not model mirror reflections during design. For each vertex on an object in the scene or a virtual copy, we project it to the image plane by using the same spiral-triangle intersection as in the case of Mitsuba rendering. We then perform barycentric interpolation to find the footprint of any triangle in the image plane by interpolating their vertices’ locations. Given enough mesh resolution, the error in this interpolation-based approach is relatively small since all of its vertices are projected correctly using the spiral-triangle intersection.

7 Performance

Our interactive design system is evaluated on a computer featuring an i7-8700K @3.70GHz CPU and an NVIDIA GeForce GTX 2080 GPU. For an orbifold 22222*22222 with 26,022 primitives at an 800×600800\times 600 resolution, our system can render its universal cover approximated by 166166 copies of the original room at 1111 frames per second. When the number of copies is reduced to 6161, the frame rate is increased to 3030 frames per second.

For off-line rendering, we make modifications to Mitsuba 0.60.6. The rendering was performed on a Linux Cluster, comprised of machines equipped with 1212-core 2.672.67 GHz processors and 4848 GB SDRAM, to generate high-resolution images and videos based on the scenes that we created. Due to the increased computational cost from the spiral-triangle intersections, the rendering is considerably slower for non-Euclidean orbifolds than Euclidean orbifolds. As an example, for the single frame of the spherical orbifold 222*222 that contains 12,57212,572 primitives (shown in Figure 13 (a)), it required 7.697.69 minutes when rendered at a resolution of 800×600800\times 600.

8 Conclusion and Future Work

In this paper, we propose the use of mirror reflections as a visual metaphor for orbifolds and provide a system in which the user can interactively design any two-dimensional kaleidoscopic orbifold. At the core of our interactive design system is the ability to determine the configuration of the room (locations of the corners, shapes of the walls) given the orbifold notation provided by the user. Our system can handle not only Euclidean orbifolds, but also spherical orbifolds and hyperbolic orbifolds. In addition, we provide an enumeration of two-dimensional kaleidoscopic orbifolds based on the combination of the cardinality of the underlying polygon and the type of the universal cover. As part of the design system, we also enable the interactive construction of the universal cover of the orbifold as well as movement of the objects in the scene. The user can also generate high-quality photorealistic renderings of the scene, panorama, and animations with Mitsuba, which we have modified to account for the geodesics in spherical and hyperbolic geometry along which light travels.

Making rendering more efficient with the off-line rendering with Mitsuba is important, and we plan to investigate efficient spatial hashing data structures for the non-Euclidean spaces. In addition, the quality of the meshes used to represent the floor and the ceiling can impact the rendering speed, and we plan to explore optimal meshing structures for our purpose.

For future directions, we wish to expand our rendering system to arbitrary three-dimensional orbifolds. In addition, not all orbifolds are kaleidoscopic, and we would like to incorporate the visualization for non-kaleidoscopic orbifolds, such as the ones involving gliding reflections. Finally, we wish to explore the visualization of non-orientable orbifolds, whose universal cover is a non-orientable surface such as the Projective plane and the Klein bottle.

Acknowledgements.
The authors wish to thank our anonymous reviewers for their constructive feedback. We appreciate the help from Peter Oliver during video production. Botong Qu has provided valuable suggestions during the initial discussion phase. This work was supported in part by the NSF award (# 1619383).

References

Appendix A Proofs for Kaleidoscopic Orbifold Enumeration

In Table 1 we provide an enumeration of 2D kaleidoscopic orbifolds based on the cardinality of their underlying polygons and the type of their universal covers. To justify this enumeration, we organize the computation behind this enumeration into a number of theorems in this section.

Theorem 1.

Given a kaleidoscopic orbifold O=O=k1k2kN*k_{1}k_{2}\dots k_{N}, OO is a spherical orbifold if N2N\leq 2 and a hyperbolic orbifold if N>4N>4. When N=4N=4, OO is a hyperbolic orbifold with the only exception of 2222*2222, which is a Euclidean orbifold.

Proof.

To show these statements, we only need to compute the Euler characteristics of these orbifolds using Equation 1 in the paper which states that Euler characteristic of a kaleidoscopic orbifold O=O=k1k2kN*k_{1}k_{2}\dots k_{N} is χ(O)=i=1N12kiN2+1\chi(O)=\sum_{i=1}^{N}\frac{1}{2k_{i}}-\frac{N}{2}+1.

When N=1N=1, the polygon is a monogon, with one mirror wall that self-intersects at an angle of πk\frac{\pi}{k}. The only good kaleidoscopic orbifold is when k=1k=1, i.e. the wall self-intersects at an angle of π\pi. Note that the orbifold O=O=1*1 is usually abbreviated as *. Thus, χ(O)=1212+1=1>0\chi(O)=\frac{1}{2}-\frac{1}{2}+1=1>0. Consequently, this orbifold is spherical. In fact, this orbifold is a hemisphere with the boundary having the reflectional symmetry.

When N=2N=2, O=O=k1k2*k_{1}k_{2} where 1<k1k21<k_{1}\leq k_{2}. Consequently, χ(O)=12k1+12k222+1=12k1+12k2>0\chi(O)=\frac{1}{2k_{1}}+\frac{1}{2k_{2}}-\frac{2}{2}+1=\frac{1}{2k_{1}}+\frac{1}{2k_{2}}>0, which means that this type of orbifolds are also spherical.

On the other hand, when N4N\geq 4, we have ki2k_{i}\geq 2 for any 1iN1\leq i\leq N. Thus, χ(O)=i=1N12kiN2+114NN2+1=1N40\chi(O)=\sum_{i=1}^{N}\frac{1}{2k_{i}}-\frac{N}{2}+1\leq\frac{1}{4}N-\frac{N}{2}+1=1-\frac{N}{4}\leq 0. Notice that the equality holds in the above only when N=4N=4 and k1=k2=k3=k4=2k_{1}=k_{2}=k_{3}=k_{4}=2. Consequently, this type of orbifolds is hyperbolic with the only exception of 2222*2222, which is a Euclidean orbifold.

Theorem 1 indicates that the more walls there are in the kaleidoscopic orbifold, the more negative its Euler characteristic and the more likely the orbifold being hyperbolic. In contrast, the fewer the walls the more positive its Euler characteristic and more likely the orbifold being spherical. The boundary between the set of spherical orbifolds and the set of hyperbolic orbifolds is drawn when N=3N=3, i.e. triangular orbifolds. The next several theorem inspect this scenario, which consists a number of cases.

Theorem 2.

Given a triangular kaleidoscopic orbifold O=O=k1k2k3*k_{1}k_{2}k_{3} and without the loss of generality assuming that 3k1k2k33\leq k_{1}\leq k_{2}\leq k_{3}, OO is a hyperbolic orbifold with the only exception of 333*333, which is a Euclidean orbifold.

Proof.

First of all, the assumption that 3k1k2k33\leq k_{1}\leq k_{2}\leq k_{3} makes sense since any permutation of k1k_{1}, k2k_{2}, and k3k_{3} gives rise the same triangular orbifold.

Again, we only need to compute the Euler characteristics of these orbifolds. Here, χ(O)=i=1312ki32+116332+1=0\chi(O)=\sum_{i=1}^{3}\frac{1}{2k_{i}}-\frac{3}{2}+1\leq\frac{1}{6}3-\frac{3}{2}+1=0. Notice that the equality holds in the above only when k1=k2=k3=3k_{1}=k_{2}=k_{3}=3. Consequently, this type of orbifolds is hyperbolic with the only exception of 333*333, which is a Euclidean orbifold.

Theorem 2 states that for triangular orbifolds, the higher the minimal order of symmetry at the corners, namely k1k_{1}, the more likely the orbifold is hyperbolic. We now consider the case when k1=2k_{1}=2.

Theorem 3.

Given a triangular kaleidoscopic orbifold O=O=2k2k3*2k_{2}k_{3} where 2k2k32\leq k_{2}\leq k_{3}, OO is a spherical orbifold if k2=2k_{2}=2. In contrast, when k24k_{2}\geq 4, OO is a hyperbolic orbifold with the only exception of 244*244, which is a Euclidean orbifold.

Proof.

Since N=3N=3, when k1=k2=2k_{1}=k_{2}=2 we find the Euler characteristic χ(O)=14+14+12k332+1=12k3>0\chi(O)=\frac{1}{4}+\frac{1}{4}+\frac{1}{2k_{3}}-\frac{3}{2}+1=\frac{1}{2k_{3}}>0. Thus, in this case the orbifold is always spherical.

On the other hand, when k3k24k_{3}\geq k_{2}\geq 4, the Euler characteristics is χ(O)=14+12k2+12k332+114+18+1832+1=0\chi(O)=\frac{1}{4}+\frac{1}{2k_{2}}+\frac{1}{2k_{3}}-\frac{3}{2}+1\leq\frac{1}{4}+\frac{1}{8}+\frac{1}{8}-\frac{3}{2}+1=0. Notice that the equality holds in the above only when k2=k3=4k_{2}=k_{3}=4. Consequently, this type of orbifolds is hyperbolic with the only exception of 244*244, which is a Euclidean orbifold.

The last remaining case is when O=O=23k3*23k_{3}, which is covered in the next theorem.

Theorem 4.

Given a triangular kaleidoscopic orbifold O=O=23k3*23k_{3} where 3k33\leq k_{3}, OO is a spherical orbifold if k3<6k_{3}<6, a Euclidean orbifold if k3=6k_{3}=6, and a hyperbolic orbifold if k3>6k_{3}>6.

Proof.

The Euler characteristic of this type of orbifolds is χ(O)=14+16+12k332+1=12k3112=6k312k3\chi(O)=\frac{1}{4}+\frac{1}{6}+\frac{1}{2k_{3}}-\frac{3}{2}+1=\frac{1}{2k_{3}}-\frac{1}{12}=\frac{6-k_{3}}{12k_{3}}. Thus, χ(O)\chi(O) is positive when k3<6k_{3}<6, zero when k3=6k_{3}=6, and negative when k3>6k_{3}>6. Consequently, OO is a spherical orbifold if k3<6k_{3}<6, a Euclidean orbifold if k3=6k_{3}=6, and a hyperbolic orbifold if k3>6k_{3}>6.

Interestingly, each of the above theorems contains a Euclidean orbifold: 2222*2222 for Theorem 1, 333*333 for Theorem 2, 244*244 for Theorem 3, and 236*236 for Theorem 4. Not only do these facts confirm that there are only four Euclidean kaleidoscopic orbifolds, but they also show the transition from spherical orbifolds to hyperbolic orbifolds with more walls and higher-order symmetries at the corners.

Refer to captionRefer to captionRefer to caption(a)two adjacent mirrors(b)two parallel mirrors(c)four mirrors\begin{array}[]{@{\hspace{0.0in}}c@{\hspace{0.1in}}c@{\hspace{0.1in}}c}\hskip 0.0pt\lx@intercol\hfil\includegraphics[width=166.2212pt]{figures/pic_2wall_adjacent.png}\hfil\hskip 7.22743pt&\includegraphics[width=166.2212pt]{figures/pic_2wall_parallel.png}\hfil\hskip 7.22743pt&\includegraphics[width=166.2212pt]{figures/pic_4wall.png}\\ \hskip 0.0pt\lx@intercol\hfil(a)\quad\textbf{two adjacent mirrors}\hfil\hskip 7.22743pt&(b)\quad\textbf{two parallel mirrors}\hfil\hskip 7.22743pt&(c)\quad\textbf{four mirrors}\\ \end{array}

Figure 14: A square room with two or four mirrors. The case in the four mirror room (c) corresponds to a Euclidean orbifold 2222*2222.

Refer to captionRefer to captionRefer to caption(a)*333(b)244(c)236\begin{array}[]{@{\hspace{0.0in}}c@{\hspace{0.1in}}c@{\hspace{0.1in}}c}\hskip 0.0pt\lx@intercol\hfil\includegraphics[width=166.2212pt]{figures/soccerBoy333.png}\hfil\hskip 7.22743pt&\includegraphics[width=166.2212pt]{figures/soccerBoy442.png}\hfil\hskip 7.22743pt&\includegraphics[width=166.2212pt]{figures/soccerBoy632.png}\\ \hskip 0.0pt\lx@intercol\hfil(a)\quad\textbf{*$333$}\hfil\hskip 7.22743pt&(b)\quad\textbf{$*244$}\hfil\hskip 7.22743pt&(c)\quad\textbf{$*236$}\\ \end{array}

Figure 15: The three triangular Euclidean kaleidoscopic orbifolds.

Appendix B Optics-Based Visualization for Orbifold Concept and Properties

Our system can be used to generate example scenarios to illustrate important concepts and properties of orbifolds such as the following. Given a room with the statue Lucy, we first mount a mirror each on two adjacent walls (Figure 14 (a)). This leads to an illusion of a space that is four times as large as the room without a mirror. The virtual space is the universal cover of the orbifold (the original room).

In addition, the symmetry for the room can be understood by checking the orientations of the statues in the space. While the statue has her left hand up holding the torch in the original room, each mirror generates a virtual statue who raises the torch by her right hand (a reflection). Interestingly, reflecting the statue in the first virtual room with respect to the second mirror leads to the third virtual statue, who switches back to her left hand to raise the torch. However, this virtual statue faces the opposite direction of the statue in the original room, i.e. a rotation by π\pi. One can consider the reflected and rotated virtual copies as the result of the action of the symmetry group of the underlying orbifold. This group consists of the identity action, two reflections (one per each mirror), and one rotation (the composite of the two mirrors).

By moving one of the mirrors to the wall opposite the other mirror, we obtain a different scene where there are infinitely many copies of the original room (Figure 14 (b)). In fact, the universal cover of this orbifold can be generated by first grouping the original room with one of the reflections and then translating infinitely many times the two rooms by a distance that is a multiple of twice the room depth. The union of the two rooms (the real room and the virtual room) is thus referred to as a translational cover.

When a mirror is mounted on each wall (Figure 14 (c)), we obtain the orbifold whose translational cover is the same as the universal cover of the room shown in Figure 14 (a). This translational cover is then translated in two mutually perpendicular directions. Note that this is the first orbifold (in this example) that we have encountered where all walls have a mirror. This room corresponds to the 2222*2222 orbifold. Each of the corner has an angle of π2\frac{\pi}{2}, thus its notation. At such a corner, there are 2k2k copies of the original room forming kk pairs. Inside each pair, one of the rooms is a rotational copy of the original room while the other is a reflectional copy. A kaleidoscopic orbifold has a transformation group that is generated by mirror reflections. The subgroup for each corner is thus 𝔻k\mathbb{D}_{k}, the Dihedral group of order kk. In the 2222*2222 case, the symmetry group at every corner is the same, i.e. 𝔻2\mathbb{D}_{2}.

2222*2222 is one of the four Euclidean kaleidoscopic orbifolds, i.e. whose universal cover is the Euclidean plane. Figure 15 shows the other three such orbifolds: (1) 333*333, (2) 244*244, and (3) 236*236. The 333*333 orbifold (Figure 15 (a)) is obtained by placing three mirror walls in a π3π3π3\frac{\pi}{3}-\frac{\pi}{3}-\frac{\pi}{3} triangular room. Its translational cover consists of six copies of the original room (𝔻3\mathbb{D}_{3}). Similarly, the 244*244 orbifold (Figure 15 (b)) is obtained by placing three mirror walls in a π2π4π4\frac{\pi}{2}-\frac{\pi}{4}-\frac{\pi}{4} triangular room. Its translational cover consists of eight copies of the original room (𝔻4\mathbb{D}_{4}). The 236*236 orbifold (Figure 15 (c)) is generated by placing three mirror walls in a π2π3π6\frac{\pi}{2}-\frac{\pi}{3}-\frac{\pi}{6} triangular room. Its translational cover consists of 1212 copies of the original room (𝔻6\mathbb{D}_{6}). Notice that the symmetry group can vary from corner to corner. In addition, note that an orbifold does not depend on which corner is referred to as the first corner. Thus, 236*236 and 362*362 represent the same orbifold. Similarly, the orbifold does not change when the corners are numbered in the opposite order. Thus, 236*236 and 632*632 also represent the same orbifold.

The optics-based visual metaphor is also capable of showing non-Euclidean orbifolds, such as those shown in Figures Interactive Design and Optics-Based Visualization of Arbitrary Non-Euclidean Kaleidoscopic Orbifolds1, and 13 in the main paper.