Planar and Toroidal Morphs Made Easier

We present simpler algorithms for two closely related morphing problems, both based on the barycentric interpolation paradigm introduced by Floater and Gotsman, which is in turn based on Floater's asymmetric extension of Tutte's classical spring-embedding theorem. First, we give a much simpler algorithm to construct piecewise-linear morphs between planar straight-line graphs. Specifically, given isomorphic straight-line drawings $\Gamma_0$ and $\Gamma_1$ of the same 3-connected planar graph $G$, with the same convex outer face, we construct a morph from $\Gamma_0$ to $\Gamma_1$ that consists of $O(n)$ unidirectional morphing steps, in $O(n^{1+\omega/2})$ time. Our algorithm entirely avoids the classical edge-collapsing strategy dating back to Cairns; instead, in each morphing step, we interpolate the pair of weights associated with a single edge. Second, we describe a natural extension of barycentric interpolation to geodesic graphs on the flat torus. Barycentric interpolation cannot be applied directly in this setting, because the linear systems defining intermediate vertex positions are not necessarily solvable. We describe a simple scaling strategy that circumvents this issue. Computing the appropriate scaling requires $O(n^{\omega/2})$ time, after which we can can compute the drawing at any point in the morph in $O(n^{\omega/2})$ time. Our algorithm is considerably simpler than the recent algorithm of Chambers et al. (arXiv:2007.07927) and produces more natural morphs. Our techniques also yield a simple proof of a conjecture of Connelly et al. for geodesic torus triangulations.


Introduction
Computing morphs between geometric objects is a fundamental problem that has been well studied, with many applications in graphics, animation, modeling, and more. A particularly well-studied setting is that of morphing between planar straight-line graphs. Formally, a morph between two isomorphic planar straight-line graphs Γ 0 and Γ 1 consists of a continuous family of planar straight-line graphs Γ t starting at Γ 0 and ending at Γ 1 .
Our first result is a "best-of-both-worlds" result that simultaneously obtains nice properties enjoyed by two different approaches for planar morphing: Floater and Gotsman's barycentric interpolation method [26,28,[46][47][48] results in morphs that are natural and visually appealing but are represented implicitly; variations on Cairns' edge-collapse method [1,9,10,32,49] result in efficient explicit representations of morphs that are, unfortunately, not useful for visualization. In particular, we describe a very simple algorithm that achieves an efficient explicit representation of a morph that should still be useful for visualization.
Our second result extends Floater and Gotsman's barycentric interpolation method [26,28,[46][47][48] to the setting of morphing geodesic graph drawings on the flat torus. Recent results of Luo, Wu, and Zhu [37] imply that the method can be directly generalized to obtain morphs between geodesic triangulations on surfaces of negative curvature; however, direct generalization does not always work on the flat torus [44]. We describe a simple modification that always n-vertex planar graph, these papers describe how to construct a morph consisting of O(n) unidirectional morphing steps, in which all vertices move along parallel lines at fixed speeds. Thus, each vertex moves along a piecewise-linear path with complexity O(n), and the entire morph has complexity O(n 2 ). Moreover, such a morph can be computed in O(n 1+ω/2 ) = O(n 2.18643 ) time in an appropriate real RAM model of computation, where ω < 2.37286 is the matrix multiplication exponent [3,33]. These results require several delicate arguments; in particular, to morph the initial and final drawings so that all faces are convex, and to perturb the pseudomorphs defined by edge collapses and their reversals into true morphs. The resulting morphs contract all vertices into an exponentially small neighbohood and then expand them again, so they are not useful for visualization.

Toroidal Morphs.
Until recently, very little was known about morphing graphs on the torus or other more complex surfaces.
Tutte's spring-embedding theorem was generalized to simple triangulations of arbitrary surfaces with non-positive curvature by Colin de Verdière [17] and independently by Hass and Scott [29]. Delgado-Friedrichs [21], Lovász [35], and Gortler, Gotsman, and Thurston [27] also independently proved an extension of Tutte's theorem to graphs on the flat torus whose universal covers are simple and 3-connected. For any assignment of positive symmetric weights to the darts, solving a linear system similar to (1) yields vertex positions of a geodesic drawing with strictly convex faces [23,27]. Indeed, this linear system always has a two-dimensional space of solutions that differ by translation. See Section 2 for more details. It follows that if two isotopic geodesic torus graphs Γ 0 and Γ 1 can both be described by symmetric dart weights, linearly interpolating those weights yields a proper morph from Γ 0 to Γ 1 [16]; in light of the authors' toroidal Maxwell-Cremona correspondence [23], this can be seen as a natural toroidal analogue of Steinitz's theorem on morphing convex polyhedra [45].
The restriction to symmetric weights is both nontrivial and significant. In a torus graph with convex faces, every vertex can be described as a convex combination of its neighbors, but not necessarily with symmetric weights. Moreover, the linear system expressing vertex positions as convex combinations of its neighbors is rank-deficient, and therefore is not solvable in general; see Appendix A for an example. Thus, Floater's asymmetric extension of Tutte's theorem does not generalize to the flat torus.
For similar reasons, Floater and Gotsman's planar morphing algorithm also does not generalize. Suppose we are given two isotopic geodesic torus graphs Γ 0 and Γ 1 , each with convex faces. As in the plane, we can compute weights for the darts that express each vertex as a convex combination of its neighbors. Unfortunately, in general, interpolating those weights yields linear systems that have no solution; we provide a simple example of this in Appendix A.
Steiner and Fischer [44] modify the system by fixing a single vertex, restoring full rank. However, solving this modified linear system does not necessarily yield a crossing-free drawing, because the fixed vertex may not lie in the convex hull of its neighbors. 2 Again, even if the initial and final weights are consistent with crossing-free drawings, averages of those weights may not be, and thus interpolating weights does not give us a morph; see Appendix A for an example.
Chambers, Erickson, Lin, and Parsa [12] recently described the first algorithm to morph between arbitrary essentially 3-connected geodesic torus graphs. Their algorithm uses a delicate combination of Cairns' edge-collapsing strategy and spring embeddings to construct a morph consisting of O(n) unidirectional morphing steps, in O(n 1+ω/2 ) time, matching the state of the art for planar morphs. But like planar morphs built from edge collapses, these toroidal morphs contract vertices into small neighborhoods and thus are not suitable for visualization.
Very recently, Luo, Wu, and Zhu [37] proved a generalization of Floater's theorem to geodesic triangulations of arbitrary closed Riemannian 2-manifolds with strictly negative curvature, extending the spring-embedding theorems of Colin de Verdière [17] and Hass and Scott [29] to asymmetric weights. Their result immediately implies that if two geodesic triangulations of such a surface are homotopic, then linearly interpolating the dart weights yields a continuous family of crossing-free geodesic drawings, or in other words, a morph. Their result applies only to surfaces with negative Euler characteristic; alas, the torus has Euler characteristic 0.

New Results
In this paper, we describe two applications of Floater and Gotsman's barycentric interpolation strategy, which give much simpler algorithms for morphing planar and toroidal graphs.
First, we describe a much simpler algorithm to construct piecewise-linear morphs between planar straight-line graphs. Specifically, given two isomorphic planar straight-line graphs Γ 0 and Γ 1 with strictly convex faces and the same outer face, we construct a morph from Γ 0 to Γ 1 that consists of O(n) unidirectional morphing steps, in O(n 1+ω/2 ) time, matching the existing state of the art [32]; this also improves a prior result of Angelini, Da Lozzo, Frati, Lubiw, Patrignani, and Roselli [5] for computing convexity-preserving morphs. Our morphing algorithm replaces Cairns' edge collapses with an application of Floater and Gotsman's barycentric interpolation. Specifically, we compute barycentric weights for the darts in Γ 0 and Γ 1 in a preprocessing phase, and then for each morphing step, we interpolate the pair of weights associated with a single edge. Our key observation is that continuously changing the weights for a single edge e causes all vertices in the Floater drawing to move along lines parallel to e. The same observation was made for symmetric edge weights by Chambers et al. [12]. We then extend our algorithm to drawings with non-convex faces, using a simpler approach than Kleist et al. [32]. Fig. 1 shows a morph computed by our algorithm; in each frame, the weights of the red edge are about to change. Second, we describe a natural extension of Floater and Gotsman's method to geodesic graphs on the flat torus. Our key observation is that any assignment of dart weights that expresses the vertices as convex combinations of its neighbors can be scaled so that barycentric interpolation works. Specifically, we define a weight assignment to be morphable if every column of the resulting Laplacian linear system sums to zero; averages of morphable weights are morphable. Given any weight assignment consistent with any convex drawing, we can guarantee morphability by scaling the weights of all darts leaving each vertex v-or equivalently, scaling each row of the linear system-by a common positive scalar α v . This scaling obviously has no effect on the solution space of the system. Positivity of the scaling vector α follows from a weighted directed version of the matrix-tree theorem [8,20,50]. Computing the appropriate scaling requires O(n ω/2 ) time, after which we can can compute the drawing at any point in the morph in O(n ω/2 ) time, matching the performance of Floater and Gotsman exactly. The resulting morphs are natural and visually appealing, and our proofs of correctness are considerably simpler than those of Chambers et al. [12]. However, unlike our earlier morphing algorithm, our new algorithm does not compute explicit piecewise-linear trajectories for the vertices. Fig. 2 shows a morph computed by our algorithm between two randomly shifted 6 × 6 toroidal grids. (The authors' Python implementation is available on request.) It remains an open question whether our results can be combined to compute explicit lowcomplexity piecewise-linear toroidal morphs without edge collapses. We offer some preliminary observations in Appendix B.

Planar Graphs
Any planar straight-line drawing Γ can be represented by a position matrix P ∈ n×2 , each row p v of which gives the location of some vertex v. Thus, each edge uv is drawn as the straight line segment p u p v . We call a planar drawing convex if it is crossing-free, every bounded face is a convex polygon, and the outer face is the complement of a convex polygon.
Formally, we regard each edge of any graph as a pair of opposing half-edges or darts, each directed from its tail to its head. We write rev(d) to denote the reversal of any dart d. For simple graphs, we write u v to denote the dart with tail u and head v. A barycentric weight vector for Γ assigns a positive real number λ u v to every dart u v of a graph, so that the vertex positions p v satisfy Floater's linear system (1). Conversely, for a fixed graph G with a fixed convex outer face, the Floater drawing Γ λ of G with respect to a positive weight vector λ is the unique drawing whose vertex positions p v satisfy system (1).
A morph between two planar drawings Γ 0 and Γ 1 is a continuous family of crossing-free drawings Γ t parametrized by time, starting at Γ 0 and ending at Γ 1 . A morph is linear if each vertex moves along a straight line, and piecewise-linear if it the concatenation of linear morphs. Any piecewise-linear morph can be described by a finite sequence of straight-line drawings, or their position matrices. A linear morph is unidirectional if vertices move along parallel lines.

Torus Graphs
The flat torus is the quotient space = 2 / 2 , also obtained by identifying opposite sides of the unit square [0, 1] 2 . A geodesic on the flat torus is the image of a line segment in 2 under the projection map π: 2 → where π(x, y) = (x mod 1, y mod 1).
A (crossing-free) geodesic torus drawing Γ of a graph G maps the vertices of G to distinct points in and edges of G to interior-disjoint geodesics in . We explicitly consider drawings of graphs containing loops and parallel edges. We write d : u v to declare that d is a dart with tail u and head v.
Every geodesic torus drawing Γ of a graph G is the projection of an infinite, doubly-periodic planar straight-line graph Γ , called the universal cover of Γ . We call Γ essentially simple if its universal cover Γ is simple, and essentially 3-connected if Γ is 3-connected [39,40]. Finally, we call Γ a convex drawing if every face of Γ is convex. Every convex torus drawing is both essentially simple and essentially 3-connected.
Coordinate representations. Following Chambers et al. [12], we represent geodesic torus drawings using a coordinate representation (P, τ) that that records • a position vector p v ∈ 2 for each vertex v, and The semantics of this data is that each dart d : u v is drawn as the projection of a line segment from p u to p v + τ d in the universal cover Γ . In particular, if we normalize all vertex positions to the half-open unit square [0, 1) 2 , then each translation vector τ d indicates the number of times d crosses the vertical boundary of the unit square to the right, and the number of times d crosses the horizontal boundary of the unit square upward.
Two crossing-free drawings of the same graph on the torus are isotopic if one can be deformed into the other through a continuous family of (not necessarily geodesic) crossing-free drawings. Two crossing-free drawings are isotopic if and only if their coordinate representations can be normalized so that their translation vectors agree; this condition can be tested in O(n) time [12, Theorem A.1], [15]. A geodesic isotopy or morph is an isotopy in which all intermediate drawings are geodesic and crossing-free.
Barycentric weights. In any convex torus drawing Γ , the position p v of each vertex v can be expressed as a convex combination of its neighbors, as follows. We can assign a weight λ d > 0 to each dart d such that any coordinate representation (P, τ) of Γ satisfies the linear system We can express this linear system in matrix notation as L λ P = H λ , where The (unnormalized, asymmetric) Laplacian matrix L λ has rank n − 1 [44]. We call any positive weight vector λ satisfying system (2) barycentric for Γ . Barycentric weights for any convex torus drawing can be computed in O(n) time using, for example, Floater's mean-value coordinates [25,31].
On the other hand, suppose we fix the graph G and translation vectors τ d consistent with an essentially 3-connected (but not necessarily geodesic) drawing of G. Then for any positive weight vector λ, any solution to linear system (2) gives the vertex positions p v of a convex drawing Γ λ of G [27]. In this case, we say that the Floater drawing Γ λ realizes the weight vector λ, and we call the weight vector λ realizable for the graph G. Every realizable weight vector is realized by a two-dimensional family of drawings that differ by translation; we can remove this ambiguity by arbitrarily fixing the position of one vertex [27,44].
Every symmetric positive weight vector (i.e., λ d = λ rev(d) ) is realizable: for any assignment of positive weights to the edges of G, there is a corresponding convex torus drawing [17,21,27,29,35]. However, realizable weights are not necessarily symmetric: there are convex torus drawings that have only asymmetric barycentric weights. Conversely, positive asymmetric weights are not necessarily realizable.

Morphing Planar Graphs Edge by Edge
We describe a simple morph between planar straight-line graphs that combines the benefits of both the Floater and Gotsman style [26,28,[46][47][48] and the Cairns style [1,9,10,32,49] of morphs. In particular, we construct a morph with explicit piecewise-linear vertex trajectories, while still potentially being good for visualization by avoiding edge collapses. Our morph consists of O(n) morphing steps, computed in O(n 1+ω/2 ) time, matching the previous state of the art [32].
Fix a planar graph G and a convex outer face. Let p λ v denote the position of vertex v in the Floater drawing Γ λ with respect to weight vector λ. The following lemma is a planar asymmetric version of Lemma 5.1 of Chambers et al. [12]. Intuitively, it states that changing the weights of the darts of a single edge e moves each vertex in the Floater drawing along lines parallel to e.
Swapping entries of λ with corresponding entries of µ in the system (3) changes at most two constraints, corresponding to the two endpoints u and v of d. Moreover, in each changed constraint, the single changed coefficient is multiplied by y λ u − y λ v = y λ v − y λ u = 0, so the y λ i 's also solve the corresponding system for µ. Since the system (3) and its counterpart for µ each have a unique solution, we conclude that y λ w = y µ w for every vertex w.
Linear interpolation of vertex positions between Γ λ and Γ µ where λ and µ satisfy the assumptions of Lemma 3.1, results in a unidirectional linear morph [1, Corollary 7.2], [12,Lemma 5.2]. It follows immediately that we can morph between isomorphic convex drawings through a sequence of at most 3n − 9 unidirectional linear morphing steps, one for each internal edge of G. The resulting algorithm is shown in Fig. 3. Initial and final barycentric weight vectors can be found in O(n) time using, for example, Floater's mean-value method [25,31]. Each intermediate drawing can be computed in O(n ω/2 ) time using generalized nested dissection and planar separators [4,34], for a total running time of O(n 1+ω/2 ). Because all Floater drawings are convex, Lemma 5.2 of Chambers et al. [12] implies that MORPHCONVEX actually produces a convexity-preserving piecewise-linear morph; all faces remain convex throughout the morph. The existence of convexity-preserving morphs was first proved by Thomassen [49]. Angelini, Da Lozzo, Frati, Lubiw, Patrignani, and Roselli [5] described an algorithm that produces a convexity-preserving piecewise-linear morph consisting of O(n) steps; however, they do not analyze the running time of their algorithm. Our algorithm is significantly simpler than that of Angelini et al. [5].
Theorem 3.2. Given any two isomorphic convex planar drawings Γ 0 and Γ 1 with n vertices and the same convex outer face, we can compute a morph from Γ 0 to Γ 1 consisting of at most 3n − 9 unidirectional linear morphing steps, in O(n 1+ω/2 ) time.
Our algorithm can easily be extended to drawings with non-convex faces by first morphing to drawings with convex faces: Add edges to the initial and final drawings to decompose every face into convex polygons, compute barycentric weights for the resulting drawing, and then reduce the weights of each added edge (one-by-one) to zero. Dropping the added edges yields a piecewise-linear morph from each input drawing to a convex drawing, thus reducing to the previously solved case. As before, each intermediate drawing can be computed in O(n ω/2 ) time. The full procedure is shown in Fig. 4.
In total, we perform one morphing step for each internal edge of G, plus at most 2(k − 3) morphing steps for each bounded face with degree k. More specifically, to convexify the initial return S before , S convex , reverse(S after ) and final faces, it suffices to add at most one additional edge for each reflex angle; on the other hand, each internal vertex can only support at most one reflex angle around it, so we need at most n − 3 additional edges. Since a planar graph can have at most 3n − 9 internal edges, our morph thus consists of at most 4n − 12 linear morphing steps. In summary: Theorem 3.3. Given any two isomorphic 3-connected planar straight-line drawings Γ 0 and Γ 1 with n vertices and the same convex outer face, we can compute a morph from Γ 0 to Γ 1 consisting of at most 4n − 12 unidirectional linear morphing steps, in O(n 1+ω/2 ) time.

Models of computation.
The algorithms of Alamdari et al. [1] and Kleist et al. [32] require a slightly nonstandard real RAM model of computation that supports exact square and exact cube roots. In contrast, Floater's mean-value weights can be expressed in terms of areas and Euclidean lengths [31], which require only square roots to evaluate exactly. If initial and final barycentric weights are given, both Floater and Gotsman's morphing algorithm [26] and our incremental algorithm use only basic arithmetic operations: addition, subtraction, multiplication, and division. Even without exact roots, any integer-RAM or floating-point implementation of our morphing algorithm must contend with precision issues. A careful implementation of Alon and Yuster's nested dissection algorithm [4] solves Floater's linear system (1) exactly in O(n 1+ω/2 polylog n) bit operations, assuming all dart weights λ u v are O(log n)-bit integers [4,6]. Thus, at least then all weights are given as part of the input, an exact implementation of our morphing algorithm runs in O(n 2+ω/2 polylog n) on a standard integer RAM. Coordinates of Tutte/Floater drawings can require Ω(n) bits of precision to avoid collapsing or crossing edges; see Eades and Garvan [22] or Figure 5. Thus, the near-linear cost of exact arithmetic is unavoidable in the worst case.
Shen, Jiang, Zorin, and Panozzo [43] observe that floating-point implementations of Tutte's algorithm suffer from robustness issues in practice. Shen et al. describe an iterative procedure to repair floating-point-Tutte drawings; however, it is unclear whether a similar procedure can be used to avoid precision issues in our algorithm while maintaining continuity of the resulting morph. It is also unclear whether precision issues in our algorithm can be avoided, or at least minimized, by carefully choosing the order in which edge weights are changed and/or by morphing through a carefully chosen intermediate drawing.

Morphable Weight Vectors on the Flat Torus
As observed by Steiner and Fischer [44], Floater and Gotsman's morphing algorithm does not directly generalize to the toroidal setting, because not all positive weight vectors λ are realizable. In particular, given arbitrary barycentric weights λ(0) and λ(1) of two isotopic convex torus drawings, intermediate weights λ(t) := (1 − t)λ(0) + tλ(1) are not necessarily realizable; see Appendix A for an example.
To get around this issue, we identify a subspace of morphable weight vectors, such that every convex torus drawing has a morphable barycentric weight vector, every morphable weight vector is realizable, and convex combinations of morphable weights are morphable. Specifically, a positive weight vector λ is morphable if each column of the matrices L λ and H λ sums to 0. 3 The following lemma follows immediately from this definition:

Lemma 4.2. Every morphable weight vector is realizable.
Proof: If λ is a morphable weight vector, then the nth row of the linear system L λ P = H λ is implied by the other n − 1 rows, so we can remove it. The resulting abbreviated linear system still has rank n − 1, so it has a solution. Proof: The matrix L λ has rank n − 1, so there is a one-dimensional space of (row) vectors α = (α 1 , . . . , α n ) such that αL λ = (0, . . . , 0). We can compute a non-zero vector α in O(n ω/2 ) time using general nested dissection [4,34] and toroidal separators [2].
Moreover, a directed version of the matrix tree theorem [8,20,50] implies that we can choose all α i to be positive. Specifically, let G ± be the weighted directed graph whose weighted arcs correspond to the weighted darts of G. An inward directed spanning tree is an acyclic spanning subgraph of G ± where every vertex except one (called the root) has out-degree 1. The weight of an inward directed spanning tree is the product of the weights of its arcs.
Putting the preceding lemmas together gives us the following: Theorem 4.4. Given coordinate representations of two isotopic essentially 3-connected geodesic torus drawings Γ 0 and Γ 1 , we can efficiently compute a morph from Γ 0 to Γ 1 . Specifically, after O(n ω/2 ) preprocessing time, we can compute any intermediate drawing during the morph in O(n ω/2 ) time.
If Γ 0 or Γ 1 is not convex, we can follow a strategy similar to the one suggested by Chambers et al. [12,Theorem 8.1]. Let Γ * be the Floater drawing of G obtained by setting every dart weight to 1. Compute an arbitrary triangulation T 0 of Γ 0 . Because every face of Γ * is convex, we can triangulate Γ * using the same diagonals, yielding a triangulation T * isotopic to T 0 . Assign weight 0 to the darts of each edge in T * \Γ * to obtain a barycentric weight vector µ * for T * , which is symmetric and therefore morphable. Derive morphable weights µ 0 for T 0 using mean-value coordinates [25,31] and Lemma 4.3. Then we can morph from T 0 to T * by weight interpolation, using the weight vector µ(t) := (1 − 2t)µ 0 + 2tµ * for any 0 ≤ t ≤ 1/2. Ignoring the additional triangulation edges gives us a morph from Γ 0 to Γ * . Finally, a symmetric procedure gives us a morph from Γ * to Γ 1 .
Our formulation of morphable weights provides a straightforward solution to a conjecture of Connelly et al. [18] on the deformation space of geodesic triangulations. Bloch, Connelly, and Henderson [7] proved that for any planar straight-line triangulation Γ of a convex polygon P, the space of all planar straight-line triangulations of P that are homeomorphic to Γ is contractible. (Cairns' morphing theorem [9,10] asserts only that this space is connected.) Simpler proofs of this theorem were recently given by Cerf [11] and Luo [36]; in particular, Luo observed that the Bloch-Connelly-Henderson theorem follows immediately from Floater's barycentric embedding theorem.
Connelly et al. [18] conjectured that every isotopy class of geodesic triangulations on any surface S with constant curvature is homotopy-equivalent to the group Isom 0 (S) of isometries of S that are homotopic to the identity. In particular, Isom 0 (S 2 ) is the rotation group SO(3) and Isom 0 ( ) is the translation group S 1 ×S 1 ; for every other orientable surface S without boundary, Isom 0 (S) is trivial [41]. Very recently, Luo, Wu, and Zhu proved this conjecture for all surfaces of genus at least 2 [37] and for the flat torus [38]; both proofs use nontrivial extensions of Floater's theorem.
Here we offer a simpler proof for torus graphs; in fact, we prove a more general result about convex drawings instead of just triangulations.

Theorem 4.5.
For any convex drawing Γ on the flat torus , the space of all convex drawings isotopic to Γ is homotopy equivalent to .
Proof: Fix a convex drawing Γ of a graph G with n vertices and m edges; without loss of generality, assume some vertex v is positioned at (0, 0). Let X = X (Γ ) denote the space of all convex drawings of G isotopic to Γ , and let X 0 = X 0 (Γ ) be the subspace of drawings in X where vertex v is positioned at (0, 0). Every drawing in X is a translation of a unique drawing in X 0 , so X = X 0 × S 1 × S 1 . Thus, to prove the theorem, it suffices to prove that X 0 is contractible.
Call a weight vector λ ∈ 2m Call two realizable weight vectors λ, λ ∈ R equivalent if there is a scaling vector α ∈ n + such that λ d = α tail(d) λ d for every dart d. Because the Laplacian matrix L λ has rank n − 1, Lemma 4.3 implies that every realizable weight λ ∈ R is equivalent to a unique normalized morphable weight µ ∈ M . It follows that R is homeomorphic to M × n + and therefore contractible. Now we follow the proof of Theorem 1.4 in Luo et al. [37]. Because every morphable weight is realizable, solving linear system (2) gives us a continuous map Φ: R → X 0 . Floater's meanvalue weights [25,31] give us a continuous map Ψ : X 0 → R such that Φ • Ψ is the identity map on X 0 . Because R is contractible, the function Ψ • Φ is homotopic to the identity map on R. We conclude that X 0 is homotopy equivalent to R and therefore contractible.

Open Questions
It is natural to ask whether our "best-of-both-worlds" planar morph can be extended to graphs on the flat torus. In Appendix B, we prove a toroidal analog of Lemma 3.1 for realizable weight vectors; unfortunately, the main roadblock is that not all weight vectors are realizable. In particular, given a realizable weight vector (morphable or not), it is not clear when changing the weights for a single edge results in another realizable weight vector. We describe some partial results in Appendix B.
Hong and Nagamochi [30] described an algorithm to convert a planar drawing with ymonotone faces into a convex planar drawing, without changing the y-coordinates of the vertices; their algorithm is a key component of several planar morphing algorithms [1,5,19,32]. Kleist et al. [32] reproved Hong and Nagamochi's result by finding dart weights for the input drawing, such that the y-coordinates of its vertices already satisfy Floater's linear system (1). Essentially the same technique (but with symmetric weights!) was previously used by Chrobak, Goodrich, and Tamassia [13] to compute low-volume convex polyhedral drawings. It is an open question whether these results can be extended to geodesic torus graphs; once again, the fact that not all weight vectors are realizable is a significant obstacle.
One can also ask if the result can be extended to surfaces of higher genus. The recent results of Luo et al. [37] imply that Floater and Gotsman's planar morphing algorithm [26] extends to geodesic triangulations on higher-genus surfaces of negative curvature; however, the existence of (any reasonable analog of) piecewise-linear morphs on such surfaces remains unknown.

A Some Bad Examples
Here we provide several concrete examples showing that barycentric methods for drawing and morphing planar graphs do not immediately generalize to graphs on the torus.
First, we give an infinite family of non-realizable positive weight vectors. Let G be any graph on the torus, and consider the weight vector λ that assigns weight 2 to a single dart d and weight 1 to every dart other than d. (There is obviously nothing special about the values 1 and 2 here.) Lemma A.1. λ is not a realizable weight vector for G.
For the sake of argument, suppose the linear system L λ P = H λ has a solution; let Γ λ be the resulting drawing. This system remains solvable if we remove row u and arbitrarily fix p u [44]. All dart weights in this truncated linear system are equal to 1, which implies that the drawing Γ λ is identical to the Tutte drawing Γ 1 for the all-1s weight vector. Comparing the two linear systems, we conclude that p v − p u +τ d = (0, 0); that is, the edge of d has length zero in Γ λ = Γ 1 . But this is impossible; every edge in a Tutte drawing has non-zero length [27,Lemma B.5].
Next, we give an example of two realizable weight vectors for the same torus graph whose averages are not realizable. Consider the toroidal drawings of K 7 shown in Fig. 6, which differ only in the position of vertex 2. We computed mean-value weights λ and µ for these drawings, normalized so that the weights of all edges leaving each vertex sum to 1 [25,31]. Routine calculations (which we implemented in Python) now imply that the average weight (λ + µ)/2 is not realizable.
Finally, we consider Steiner and Fischer's approach [44] of fixing a single vertex, which restores the Laplacian linear system to full rank. The top row of Fig. 7 shows two isotopic drawings of a 12 × 12 toroidal grid, one with a single row of vertices shifted 1/2 to the left, the other with a single column of vertices shifted 1/2 downward. Let λ ← and λ ↓ respectively denote the normalized mean-value weights for these drawings [25,31]. The bottom left image in Fig. 7 shows the Steiner-Fischer drawing for the weight λ = (2λ ← + λ ↓ )/3, with the red edges indicating the fixed vertex. This drawing is clearly not crossing-free; it also follows that the weight vector λ is not realizable.
Steiner and Fischer claim [44, Section 2.2.1] that their drawings have no "foldovers" except possibly at the fixed vertex and its neighbors. Here a "foldover" is a vertex in the drawing whose incident faces overlap (where formally, faces are determined by the reference drawing used to define the translation vectors). Close examination of Fig. 7 shows that this claim is incorrect.

B Trying to Morph Torus Graphs Edge by Edge
The following lemma generalizes Lemma 3.1 to the toroidal setting; it simultaneously generalizes Lemma 5.1 of Chambers et al. [12] to work for asymmetric weights. Proof: Suppose d has tail u and head v. By the definition of crossing vectors, dart d appears in Γ λ as the projection of a dart in the universal cover from p λ u to p λ v + τ d . Fix a non-zero vector σ ∈ 2 orthogonal to the vector p λ v − p λ u + τ d and thus orthogonal to darts {d, rev(d)} in Γ λ . For each vertex i, let z λ i = p λ i · σ and z µ i = p µ i · σ, and for each dart d , let χ d = τ d · σ. Our choice of σ implies that χ d = z λ u − z λ v . We need to prove that z λ i = z µ i for every vertex i. Let X λ = H λ ·σ and X µ = H µ ·σ. The real vector Z λ = (z λ i ) i is a solution to the linear system L λ Z = X λ ; in fact, Z λ is the unique solution such that z λ n = 0. Similarly, Z µ = (z µ i ) i is the unique solution to an analogous equation L µ Z = X µ with z µ n = 0. We will prove that L µ Z λ = X µ , so that in fact Z λ = Z µ .
Colin de Verdière [17] showed that all symmetric positive weights are realizable on the flat torus (see also [21,27,29,35]); Chambers et al. [12] exploit this observation in their morphing algorithm. In the asymmetric case, however, it is unclear when changing the weights for a single edge in a realizable weight vector results in another realizable weight vector. We obtain the following partial result, via the analyses of