DecoSurf: Recursive Geodesic Patterns on Triangle Meshes
DDecoSurf : Recursive Geodesic Patterns on Triangle Meshes
GIACOMO NAZZARO,
Sapienza University of Rome, Italy
ENRICO PUPPO,
University of Genoa, Italy
FABIO PELLACINI,
Sapienza University of Rome, Italy
Fig. 1. Models decorated with
DecoSurf (large images) to match the style of real-world photographs (upper insets), together with the input meshes (lowerinsets: teapot 1.5M triangles, elephant 2M triangles). We model decorations by recursively splitting a surface into progressively finer regions, to which weapply material and displacement variations. All patterns were constructed with only four operators that split regions along the isolines or integral curves ofscalar fields derived from geodesic computations. Photos of real objects: teapot by Natalya Sots; elephant by Dayal J. Daryanani.
In this paper, we show that many complex patterns, which characterize thedecorative style of many artisanal objects, can be generated by the recursiveapplication of only four operators. Each operator is derived from tracing theisolines or the integral curves of geodesics fields generated from selectedseeds on the surface. Based on this formulation, we present an interactive ap-plication that lets designers model complex recursive patterns directly on theobject surface, without relying on parametrization. We support interactionon commodity hardware on meshes of a few million triangles, by combininglight data structures together with an efficient approximate graph-basedgeodesic solver. We validate our approach by matching decoration stylesfrom real-world photos, by analyzing the speed and accuracy of our geodesicsolver, and by validating the interface with a user study.CCS Concepts: •
Computing methodologies → Graphics systems andinterfaces ; Shape modeling . Authors’ addresses: Giacomo Nazzaro, Sapienza University of Rome, Rome, Italy,[email protected]; Enrico Puppo, University of Genoa, Genoa, Italy; Fabio Pel-lacini, Sapienza University of Rome, Rome, Italy.2020. XXXX-XXXX/2020/7-ART $15.00https://doi.org/10.1145/nnnnnnn.nnnnnnn
Additional Key Words and Phrases: user interfaces, geometry processing
ACM Reference Format:
Giacomo Nazzaro, Enrico Puppo, and Fabio Pellacini. 2020.
DecoSurf : Re-cursive Geodesic Patterns on Triangle Meshes. 1, 1 (July 2020), 13 pages.https://doi.org/10.1145/nnnnnnn.nnnnnnn
Many artisanal objects are decorated with complex patterns, con-sisting of simple basic shapes, like dots, lines and circles organizedinto nested hierarchies. The complexity of these decorations comesfrom repetitive structures that appear handmade instead of beingarranged geometrically. Artisans create such decorative patternsby recursively splitting regions to add progressively finer details.Fig. 1 shows examples of these recursive decorative patterns that areoften found in handcrafted Italian ceramics and wood pieces fromIndian art. Note how surfaces are decorated both by changing colorand material, but also by altering the surface locally, e.g., adding orremoving clay in ceramics. , Vol. 1, No. 1, Article . Publication date: July 2020. a r X i v : . [ c s . G R ] J u l • Nazzaro, et al. With the advent of 3D printing and the need for personalization,digital modeling of recursive decorative patterns becomes important.Reproducing these patterns with digital sculpting tools may requirehours of work by a skilled artist to decorate a single object. Thealternative would be to use procedural programs, grammars or nodegraphs, but such techniques are notoriously hard for non-technicalartists and novices. In the research literature, we are not aware ofany work specifically addressing this class of patterns.In this paper, we present
DecoSurf , a general yet simple frame-work for modeling recursive decorative patterns. Fig. 1 and Fig. 12show examples of decorations created with our model that matchreal-world styles. We obtain our patterns as recursive applicationsof only four generic operations, each of which splits a region of thesurface into smaller regions to generate progressively finer deco-rations. At each split, we optionally apply material variations anddisplacement to define the final look. The key insight of our workis that a large class of decorative patterns can be modeled by recur-sively cutting regions along the isolines and the integral curves ofgeodesic fields computed from appropriately selected seeds, namelythe regions’ borders or points sampled within each region. To betterintegrate our work with designers workflow, we focus on control-ling pattern generation using an interactive application, rather thanasking artists to write procedural programs or grammars. To reducerepetitive work though, we also support easy-to-use predefined pro-cedural patterns that are integrated into the interactive workflow.We model patterns directly on surfaces, relying on geodesic dis-tances for three main reasons. First, we want to work directly on themanifold using its intrinsic metric, thus avoiding distortions, discon-tinuities and topological artifacts, which arise from parametrizationand require complex handling during pattern synthesis. Second, thegeodesic metric encodes many intrinsic properties of the surface andremains well defined after mesh split, even when applying displace-ment. This in turn allows us to define a closed algebra of operatorsthat can be applied at will recursively to generate a remarkable va-riety of decoration styles. Finally, having one metric for all patternsis practical to implement and easier to optimize compared to usinga variety of unrelated operators.We address surfaces represented with fine triangle meshes, sim-ilarly to digital sculpting, using roughly a million triangles persurface to ensure that patterns are finely represented and to modeldisplacement precisely. The main challenge is thus to support inter-activity for all operations involved in pattern generation. A key pointof this work is the careful design of our data structures, which allowus to implement simple algorithms that scale efficiently to highlytessellated meshes. Our patterns depend on two main operations:computation of geodesic distance fields and cutting triangle meshesalong isolines and integral curves of these fields. Mesh cutting isrelatively straightforward to implement efficiently, while geodesiccomputations are notoriously expensive to perform. To address thisproblem we combine data structures with a small footprint togetherwith a fast, graph-based, approximate, geodesic solver that allowsfor dynamic update and scales very well with mesh complexity.We have implemented a prototype user interface, which exposesthe pattern operators directly. Fig. 8 shows the interface, while thesupplemental video demonstrates the use of each operator and the creation of a complex decoration. While we focus on interactiveediting, we also show that our operators can be used procedurally.We validate how well
DecoSurf models real-world recursive dec-orations in three manners. First, we model decorations to match thestyles of real-world artisanal objects. We found that we can replicatecomplex patterns from different styles with ease. Second, we mea-sure the accuracy and speed of our geodesic solver and of the overalleditor to show that we can maintain both accuracy and interactivitywhile modeling. Third, we run a user study where we ask subjectsto model complex patterns with our interface and whether thosepatterns match real-world surfaces. The main results of the studyare that users can reproduce complex patterns with ease and theyfind that our patterns match real-world styles.In summary, all these results were made possible by a few keytechnical contributions: • the definition of a small set of operators, based on computinggeodesic fields from appropriate seeds, which can be com-bined recursively to obtain many intricate decorations; • the implementation of a fast geodesic solver that is interactiveon meshes with millions of triangles, requires no expensivepre-computation, can be updated efficiently upon mesh edit-ing, and is accurate enough at high triangle count; • the implementation of a user interface to generate recursivedecorative patterns that is simple-to-use while allowing thecreation of complex decorations; • the extension of our model to a procedural use; • the validation of our model by matching real-world photos,testing accuracy and speed, and running a user study. Procedural Patterns.
Complex patterns may be generated withprocedural methods, for which there exists significant literature.The main differences between procedural algorithms depend on thedomain in which they perform the synthesis, the control given todesigners, and the underlying algorithmic formulation.Procedural texturing is at the base of most pattern synthesis usedboth in the literature and in practice. [12] present the basic methodsfor procedural texturing, which are applied commonly in practicalapplications. These methods are very general in the patterns thatthey define, but they all require the user to describe the patternusing either code or visual languages, and pattern generation re-quires evaluating a function at each point in either 2D textures, or3D volumes. We differ substantially from this approach in that wegenerate structured patterns directly on objects’ surfaces instead ofrelying on generating textures that would require a parametrization.Also, recursive patterns cannot be constructed by evaluating a func-tion on each surface location but they require recursive evaluationof the entire pattern.A second class of methods generates new patterns directly fromexample images via non-parametric texture synthesis implementedas variations of constrained random sampling, see [34] for a survey,or via neural network and generative adversarial networks, e.g., [31,36]. While these methods are remarkably reliable for unstructuredpatterns, they often fail to capture patterns with complex structuralproperties. Structured recursive patterns, in particular, cannot be , Vol. 1, No. 1, Article . Publication date: July 2020. ecoSurf : Recursive Geodesic Patterns on Triangle Meshes • 3 captured by non-parametric synthesis as shown in [28] for thesimpler 2D case.The last class of methods, and the one more closely related to ourwork, is based on stochastic grammars that recursively split shapesinto smaller components. [28] show that group grammars can beused to describe tangle patterns in the 2D domain. Group gram-mars are extensions of shape grammars popularized for modelingbuildings, see [30] for a recent review. Groups grammars have beenextended to procedural animation as motion grammars shown in [6].[21] uses grammar guided by vector fields to place external detailson surfaces, but cannot handle recursive patterns. An alternativeapproach to grammars is to use a custom programming languageto express stationary discrete textures, as shown in [22]. Of theseworks, [28] is closest to ours since it also models recursive patterns.The main differences between the two approaches are that theyuse ad-hoc operators only suitable to tangle art in 2D, while wepropose general operators working on 3D surfaces. Also, we focuson interactive editing, versus building a grammar system. In fact,our method may be considered a super-set of theirs, while noneof the images in this paper could have been generated using theformulation in [28].
Geodesics.
Broadly speaking, the literature offers three classesof methods for computing geodesic distance fields and paths oversurface meshes. A survey can be found in [2], although several morerecent methods exist.Exact methods for polyhedral surfaces stem from the seminalalgorithms presented in [23] and [7], which were improved severaltimes in the literature. But even the most recent methods in thisline [27] are too slow to support interaction on moderately largemeshes.Graph-based methods provide approximated solutions of polyhe-dral geodesics, by restricting possible paths to chains of arcs in agraph. A straightforward shortest path computation on the networkof edges results in poor distance estimation and wiggly paths. In[4], such paths are improved by computing shortcuts on-the-fly.[19, 20] precompute an extended graph adding Steiner nodes onedges to improve the approximation. Most recent methods in thisclass [33, 35] precompute a sub-graph of the complete graph con-necting all vertices, such that each possible geodesic path can beapproximated well with a sequence of paths in such graph. We relyon a simple variation of graph-based methods, discussed in Sec. 4.2,which scales well to large meshes, and can be maintained very easilyand efficiently upon mesh refinement.PDE methods define the geodesic distance problem in terms ofpartial differential equations [8, 17] and provide results that approx-imate geodesic distances on a smoothed surface. The Fast MarchingMethod [17] requires no pre-processing and could be adapted wellto local computations and dynamic mesh refinement, but it is overlyslow for our needs. A parallel version of FMM has been proposedvery recently [3], which greatly improves time performances, yetremaining slower than our approach, with a comparable accuracy.The heat method [8] requires resolving sparse linear systems ofthe size of the mesh. It can run very efficiently on relatively largemeshes by exploiting pre-factorization, but it cannot be extendedeasily to manage local computations, or dynamic mesh refinement.
Fig. 2. Complex recursive patterns are obtained in just eleven steps (leftto right, top to bottom) starting at a base shape (upper left). At each stepwe apply a basic operation, which recursively splits the surface into finerdecorations. The generated patterns naturally follow the shape of the surface,as they are based on geodesic distance fields.
The former issue can be partially addressed by incorporating themethods proposed in [14, 15].
We aim at producing patterns defined as recursive subdivisionsof a surface into nested shapes. We show that a small arsenal ofsimple operators, defined upon geodesic fields and combined in thecontext of a coherent framework, together with the recursive natureof decorative patterns, is sufficient to generate a great variety ofpatterns that match the style of handmade decorations. Fig. 2 showsan example of a pattern generation sequence.
Pattern Representation.
Let M be a 2-manifold, possibly withboundary. A region R is a connected subset of M bounded by afinite number of oriented boundary loops. A recursive pattern T isa tree of regions, having its root at M and such that the childrenof each region R in T form a partition of R . The leaves of T form apartition of M and those regions ultimately define the pattern. Operators.
We construct decorative patterns by recursively apply-ing a small set of four operators that split an input region into twoor more output regions, by cutting the region with lines or loops.After each split, each region can be assigned a different material, andsurface displacement can be optionally applied. In our framework,operators trace lines that are either contour lines of a smooth scalarfield f defined over M , or integral curves of its gradient ∇ f . , Vol. 1, No. 1, Article . Publication date: July 2020. • Nazzaro, et al. Fig. 3. Example decorations created by applying only one operator with different field and seed sets. (Top, left to right)
Contour operator with (1) dist fieldfrom the inner boundary (in blue) cutting along a single isovalue; (2) dist field from the inner boundary with multiple isovalues; (3) blend field between inner(blue) and outer (orange) boundary, cutting along multiple isovalues; (4) dist field from uniform sampling of points along the inner boundary; (5) dist fieldfrom Poisson sampling of points on the surface; (6) blend field between sampled points (blue) and boundaries (orange). (Bottom left, left to right)
Stream operator with (7) dist field from inner boundary; (8) blend field between inner and outer boundary. (Bottom middle, left to right)
Voronoi operator with (9) dist field from points selected with Poisson sampling; (10) dist field from manually selected points. (Bottom right, left to right)
Polyline operator with (11) closedpolyline on a multiply connected region; (12) open polyline connecting two points on the same boundary loop.
Geodesic metric.
We define the scalar field f upon geodesic dis-tances, which depend on both the manifold M , and a seed set S made of points and lines on M from which distances are computed.Much flexibility of our operators stems from the possibility to setseeds in a proper way, e.g., combining lines from the boundary of aregion and points sampled inside a region or on its boundaries.We consider two types of scalar fields, shown in Fig. 4: the geo-desic distance dist S ( x ) of surface points x from the seed set S , andthe blend between geodesic distance fields from two independentseed sets, defined as blend S , S ′ ( x ) = dist S ( x ) dist S ( x ) + dist S ′ ( x ) . The blend field, already used in [5] to derive parametrizations,has some nice properties: its values are always in the range [ , ] ,in particular blend S , S ′ ( S ) = blend S , S ′ ( S ′ ) =
1; and it is anti-symmetric in the sense that blend S , S ′ ( x ) = − blend S ′ , S ( x ) . More-over, if S and S ′ are lines, its contour lines are parallel to both ofthem in their vicinity, and the integral curves of its gradient meetthem orthogonally. d i s t b l e n d Fig. 4. Field visualization: dist field from the center and blend field fromcenter to border.
In our framework, we use only four operators, which are summa-rized in Fig. 3 and described in the following.
Contour operator.
The contour operator traces the contour linesof the geodesic field, either dist or blend . The generated pattern de-pends on the selected seeds as well as on an isovalue d . When appliedto a region, the contour operator generates two or more regions,splitting the surface with the contour lines at value d . Depending onthe selected seeds and the desired isovalue, this operator can be usedto construct a variety of patterns. For example, when considering thedistance from the region boundary, this operator produces outlines,while if used with points inside a region it produces polka dots. Byrepeating the cuts at different equally spaced isovalues, the operatorgenerates concentric or parallel stripes, where the density of stripesis controlled with a parameter. The contour operator has been usedto obtain most of the decorations on the teapot in Fig. 1 and overallit is the most frequently used operator in all our examples. Stream operator.
The stream operator cuts regions by tracing theintegral curves of the gradient of the geodesic field, either dist or blend . In this case, the seed sets are comprised of region bound-aries, S and S ′ , from which the integral lines emanate or end. Thegenerated pattern depends on the selected seeds and the desirednumber of lines, whose starting points are sampled uniformly alongseed S . The stream operator generates n stripes, each bounded bytwo consecutive integral curves. Such stripes stream outwards S ,and towards S ′ if the latter is specified. The stream operator hasbeen used to obtain the main pattern of the rug on the back of theelephant in Fig. 1, as well as in several parts of the rolling teapot inFig. 12. Contour and stream operators can be combined to generategrid patterns on cylindrical regions. See the example in Fig. 5 andthe paragraph on Grouping and Hierarchy below. , Vol. 1, No. 1, Article . Publication date: July 2020. ecoSurf : Recursive Geodesic Patterns on Triangle Meshes • 5
Voronoi operator.
The voronoi operator partitions a region intothe cells of a Voronoi diagram in the geodesic metric, each onecorresponding to a point in the seed set. The user controls the seedsin the region, which can be either manually selected, or generatedwith Poisson sampling, as described in Sec. 4.2, to simulate thelook of centroidal Voronoi tessellation. Voronoi diagrams are usedextensively in procedural pattern generation, but their common useis as a 2D or 3D texture. Our patterns are generated over the surface,so they have a more natural look. We use the Voronoi operator toobtain cellular-like patterns and as a drawing scaffold to place finerdetails. See examples on the central mask and on the vase to theright in Fig. 10, as well as on the fertility in Fig. 12.
Polyline operator.
Finally, the polyline operator draws a geodesicpolyline on the surface by connecting a sequence of seed points.The polyline splits a region into two if it is closed or it connects twopoints from the same boundary loop. If instead the polyline connectstwo different boundary loops, it does not split the region but it isembedded into the region’s boundary and changes its topologicaltype. For instance, two such lines can be used to cut a longitudinalstrip from a cylindrical region, e.g., the spout of the teapot in Fig. 1.The polyline operator is most often used to cut large, meaningfulpatches that are then refined and decorated with the other operators.
Seed selection.
In our prototype, the user can select region bound-aries, either completely or partially, as well as points on the surface.A seed set is made of an arbitrary collection of such selections.Points can be either selected individually, or sampled according toa Poisson distribution in the geodesic metric. Significantly differentpatterns stem from different selection as already shown in Fig. 3.
Grouping and Hierarchy.
To further extend the capabilities of ourframework, we support the application of operators not only to theleaves of T , but also to regions that are higher in the hierarchy. Inthis case, the operator defines fields and lines in the whole selectedregion, while all sub-regions that are descendant from it are slicedwith such lines, and new leaf regions are generated accordingly.See examples in Fig. 5 and Fig. 9 (grid). This operation is naturalin our framework, since field computation and split operators areindependent. This same scenario required specialized cutting opera-tions in the group grammars presented in [28]. This extension alsoimplies that we are less sensitive to the order in which operationsare applied, a common concern in split grammars [30], thus leavingmore freedom to the user. Perturbation and displacement.
We can perturb geodesic fields anddisplace surface points to obtain a more “handcrafted”, organic, look.Scalar field perturbations simulate the imprecision of artists’ hands;while surface displacement simulates accumulation or removal ofmaterial. See examples in Fig. 6 and Fig. 7.To simulate perturbation and handmade imprecisions, we apply3D Perlin noise to the vertices of the mesh by offsetting their posi-tion along the normal direction before computing geodesic distances.This perturbation is just symbolic and used only by the geodesicsolver, while the actual mesh is not changed. Geodesic distances
Fig. 5. (Left) The body of the vase has been partitioned into stripes with acontour operator. (Middle) A Polka dots pattern is obtained with a contouroperator applied to Poisson point sampling in each stripe region separately.(Right) The same pattern is applied on the parent region of the stripes, whichis the body of the vase; in this case, the whole surface between the red stripsis considered as a single piece for point sampling and distance computation.Fig. 6. The same pattern is generated without perturbation, with perturba-tion of the scalar field and with perturbation applied to the surface beforegeodesic field computation. Note how perturbing the surface instead of theresulting geodesic field preserves the topology of the generated regions, e.g.,connected components.Fig. 7. Example pattern generated applying strong surface displacementusing different profiles to create bulges and horn-like structures. Note howwe can coherently edit the horns with additional decorations since distancefields are computed on the updated geometry. computed on such warped geometry are therefore transformed ac-cordingly to a coherent metric and produce irregular shapes, provid-ing organic results. This works significantly better than perturbingthe scalar field directly, since this can cause unwanted topologicalchanges to the perturbed regions due to the fact that the perturbedfield is no longer a distance field. Perturbation can be controlled bysetting the gain and frequency of the Perlin noise. For instance, allthe irregular blobs on the body of the teapot in Fig. 1 are actuallycircles from a perturbed metric; likewise, the irregular stripe pat-terns on the spherical bodies forming the lid of the same teapot areobtained with perturbation. See also supplemental video. , Vol. 1, No. 1, Article . Publication date: July 2020. • Nazzaro, et al.
Fig. 8. We implemented an application for real-time editing that let the userdecorate an input model applying the operators described in Sec. 3.2 directly.The user interface also features utilities for all the operations described inSec. 3, such as surface displacement, perturbation, macros and proceduralpattern generation.
Finally, we allow the user to apply arbitrarily-large surface dis-placement, after each operator is applied. The displacement is pro-portional to the geodesic distance from the region boundaries, beingnull at the boundaries to avoid discontinuities. Its profile is con-trolled by applying gain and bias operators from [29], to createbumps, pits, ridges or spikes. This feature has been used extensivelyin most of our results, see Figures 1, 10 and 12.
To create and edit decorative patterns, we have implemented auser interface that presents to the user the selection methods andsplit operators exactly as described previously. We choose to use astraightforward mapping of the operators’ types and parametersto the interface since we found it easy to manipulate them directly,without further remapping or interface tuning. To further simplifyediting, we support hierarchy tree navigation and undo, respectivelyby maintaining the pattern hierarchy and by storing snapshots ofthe internal data structures. Fig. 8 shows the user interface that isalso demonstrated in the supplemental video. We have used thisinterface to generate all results in this paper.
Macros.
Overall we found that by combining selection, operatorsand hierarchy we can create very complex patterns with ease. Wealso found that some specific combinations of operators and seedsets were often chosen together to create distinctive and recogniz-able patterns. To reduce manual work, we bundle these configu-rations into “macros”, in a manner similar to 3D editors. In ourapplication, each macro is represented with just a button in the in-terface. Fig. 9 shows two simple sequences of editing using the eightmacros we found most useful. See figure caption for a description.
Feedback Cycle.
Applying an operator always implies first com-puting a geodesic field and then cutting the surface along its contourlines or integral curves. We show live previews of the final resultbefore cutting the mesh, by just coloring the surface with real-timeshaders. This gives immediate, meaningful and precise feedback
Fig. 9. Example decoration created by applying four macros successively.(First row, left to right): Example decoration applying four macros suc-cessively. (1) The sunburst macro creates longitudinal stripes or wedgesconnecting the two borders of a cylindrical region, by applying the stream operator and the two boundaries as seed sets. (2) The polka dots macro, inthe blue region, creates dots by applying the contour operator to a set ofPoisson-sampled seed points from the selected region. (3) The frames macrogenerates concentric outlines by applying the contour operator recursivelyto the boundary of the selected region, that in this case is the white one.(4) The flower macro creates flowing decorations by applying the contour operator to the blend between the distance from the region boundariesand the distance from Poisson-sampled points. (Second row from the left)Example decoration created by applying four macros successively. (5) The grid macro generates checkerboards by recursively applying the contour and stream operators between the opposite boundaries of a cylindrical region.(6) The outline macro creates outlines by applying the contour operatorto all the boundaries off the selected boundaries. (7) The lace macro cre-ate embroidery-like decorations by applying the contour operator to seedpoints uniformly sampled from the boundaries of the selected region. (8)The cells macro creates cellular patterns by applying the
Voronoi operatorto Poisson-sampled seed points. before actually modifying the model. In turn, this allows the user towork non-destructively while seeking good parameter values, andonly commit the edit once it is good.
The operators described before can also be applied automatically togenerate fully procedural patterns. [28] demonstrate how to gen-erate 2D recursive patterns using group grammars, a variation ofcontext-free grammars that can be used to describe stochastic recur-sive patterns. While our operators and selections are very differentfrom theirs, the manner in which they can be recursively applied issimilar. Inspired by their work, we have implemented proceduralpatterns as described below using a formalism which is equivalentto a group grammar. In contrast to prior work, we integrate pro-cedural generation in our interface, where procedural expansion , Vol. 1, No. 1, Article . Publication date: July 2020. ecoSurf : Recursive Geodesic Patterns on Triangle Meshes • 7
Fig. 10. Examples of fully procedural decorations created automatically (except colors). Procedural patterns are created by recursively applying macros thatare sampled stochastically. After each expansion, regions are regrouped as in [28], to achieve more structured results. The composabilty of our operatorsguarantees that procedural generation is always robust and can be applied at any point of the editing session. can be applied to any region by just clicking a button. The resultingpattern can then be non-destructively edited interactively. The usercontrols procedural generation just by selecting the region to edit,unlike [28] that require users to edit grammars directly. We followa simpler approach since we focus on interactive editing and notgrammar definitions, which are notoriously hard to edit, especiallyfor designers. The resulting generator is equivalent to one exampleinstance of group grammars, demonstrating that our operators andselections can also be controlled procedurally if desired.
Procedural Generation.
We generate procedural patterns by recur-sively applying macros with default parameters to the leaf regions ofthe pattern tree. For each region, the macro to be applied is sampledstochastically, with a probability that depends on specific attributesof the region. Region attributes describe its overall shape as wellas the way it was generated, and determine which macro wouldprobably generate a pleasing result. The selection tags and probabil-ities used for our patterns are included in the supplemental material.Here we describe the features we use to derive them.For each region, we keep track of its boundary loops and corners,namely the intersection points where three or more regions meet.For example, a region with one boundary and four corners willlikely produce pleasing grid patterns. This is akin to [28] wherethey instead track directionality of shapes, which is hard to do onsurfaces since absolute tangent directions cannot be defined in acoherent manner.As in group grammars, each region is assigned a type tag de-pending on the kind of operation that generated it and the numberof region corners. For example, after an outline , we differentiateregions between the inside and the border band, and after dots , wedifferentiate the circle-shaped regions from the background. Aftereach expansion, regions are grouped with the same rules used in[28], so that the same macro is then applied to each region of agroup, to obtain more structured results. Some examples of suchrules are to group regions by type, by attributes or with a cyclicrule to obtain alternating or checked patterns. Procedural displace-ment is applied uniformly after the expansion is complete, whilethe choice of colors and materials is left to the user.
Discussion.
Fig. 10 shows example patterns generated procedu-rally. These examples show that operators and selections can be controlled procedurally. The main reason is that the operators canbe applied to most regions independently of the region shape, i.e.they are closed under composition. This means that we can applythem recursively at will, which in turn implies that we can use manyprocedural formulations introduced by prior work to control thegeneration of procedurals recursive details directly on surfaces.
In the discrete setting we encode the manifold M as a finely tes-sellated triangle mesh M . We refine the mesh after applying eachoperator to precisely embed region boundaries as chains of edges,allowing us to represent regions exactly as groups of triangles. Sincewe target design applications, we support real-time interaction oncommodity hardware on meshes up to a few million triangles.Our implementation relies on geodesic distance fields, which arenotoriously expensive to compute, especially for large meshes. Weuse a simple graph-based geodesic solver that is efficient, scalable,accurate enough at our tessellation level, and easy to update as themesh is refined and displaced. We achieve efficiency and scalabilityby encoding the mesh and the graph with compact and tightlycoupled data structures. This data-oriented design has other benefitssince it easily supports undos, serialization and rendering; we willnot discuss these aspects in this paper, though.In the remainder of this section, we discuss implementation de-tails to aid in reproducibility. We will also release an open-sourceimplementation upon paper acceptance. Mesh data structure.
We encode triangle meshes with an indexeddata structure augmented with face adjacencies, a.k.a. winged datastructure [26], compactly stored in three arrays: positions ( float[3] ),triangles ( int[3] ), and face adjacencies ( int[3] ). The indexed for-mat provides a minimal representation of geometry and connectivity,while adjacencies provide support for efficient line tracing, regionflooding and boundary computation.
Pattern representation.
Our patterns partition the surface intoregions. We represent regions implicitly by labeling each trianglewith the identifier of the region containing it. Hence, the collectionof patterns covering the mesh is represented as an array of integers, , Vol. 1, No. 1, Article . Publication date: July 2020. • Nazzaro, et al.
A B C D
Fig. 11. (A) Our graph has one node for each vertex in the mesh (black dots),a bidirectional arc for each edge in the mesh (black lines) and for each pairof vertices that are opposite to an edge (red lines). The weight of each arc isequal to the geodesic distance between the connected vertices. (B) Whenan operator is applied, the surface is partitioned into new regions (blue andgrey). The boundary that separates the new regions is a polyline crossingthe edges of the triangles in the mesh. (C) The mesh is refined to embedthe polyline, so that each triangle belongs to one region. (D) Only arcs inthe graph traversing the split triangles are updated. one for each triangle. We maintain the hierarchy of region tags in atree data structure, with a negligible space overhead, as it containsat most few thousands nodes even on our most complex results, asshown in Fig. 13. Compared to storing a hierarchy of meshes, thisseparate representation is both significantly more compact and doesnot need to be updated as the mesh is refined.
Field representation.
Scalar fields are encoded at mesh verticesand extended by linear interpolation, while their gradient field ispiecewise-constant on triangles. Operators compute either contourlines or integral curves, including geodesic paths, which cut themesh along polylines. We split all triangles intersected by suchpolylines every time an operator is applied, so that regions alwaysconsist of discrete collections of triangles.
Geodesic Graph.
Our solver is implemented using the graph ex-emplified in Fig. 11. Nodes correspond to mesh vertices, while arcscorrespond to mesh edges as well as dual edges, i.e., arcs connectingpairs of vertices opposite to an edge. The length of each arc is com-puted as the exact geodesic distance between the vertices it connects.Arc lengths are stored in single precision to reduce memory usage,as our method is not prone to high error propagation – distances arejust summed during graph visit – while most approximation errorstems from discretizing geodesic paths along arcs of the graph.We store the graph as adjacency lists with a simple array of arraysdata structure, where we employ small vector optimizations for theadjacency lists. This solution ensures that most of the graph islaid-out on a single contiguous chunk of data, which reduces heappressure and improves cache locality during the graph visit.We build the graph once at the beginning of the editing session,by using face adjacencies to construct dual edges, as shown inthe supplemental pseudocode. Then we locally update the graphafter each mesh refinement operation: updates only involve nodesincident at split triangles, which are retrieved easily and efficiently,thanks to the implicit connection between vertices and nodes, andedges/adjacencies and arcs. Updates upon displacement are alsoefficient since they only require recomputing edge lengths, withoutmodifying the graph topology.
Geodesic Solve.
We compute geodesic distance fields by wavefrontexpansion over the graph, shown as pseudocode in supplemental.We adopt the small-label-first (SLF) and large-label-last (LLL) heuris-tics [1], which do not require a priority queue. These techniquesperform significantly faster than classical Dijkstra search on thiskind of graphs [33]. Our implementation aggressively exploits com-putation locality, by applying early exits when bounding the graphsearch to a region. The general solver computes distance fields fromany given set of vertices. Seed sets corresponding to lines are justsampled at their vertices. Note that we use our solver just to com-pute the geodesic distance, while we do not trace geodesic pathswith sequences of arcs in the graph, as the latter would result inwiggly polylines.
Poisson sampling.
We use Poisson sampling to generate seed setsfor various operators. We adopt a farthest point sampling technique[13] under the geodesic metric. This scheme requires the computa-tion of a distance field for each sampling point, which may becomeexpensive as many points are sampled over large regions. We takeadvantage of the wavefront nature of graph search to significantlyoptimize the computation time.We begin by computing the distance field from the region bound-ary. Then we iteratively select the vertex with maximum distanceand add it to the seed set, and we update the distance field by ex-panding from the new seed, without resetting the already computeddistances. This allows us to update the distance field only in theproximity of the new seed, by exploiting early exit when hittingnodes that already have a shorter distance from the previous set.The search radius becomes increasingly smaller as points are addedto the seed set, resulting in a significant speedup. See statistics in thesupplemental material. This is another advantage of a graph-basedsolver over alternatives that are non-local.
Line tracing.
Operators require extracting contour lines and inte-gral curves, as well as cutting the mesh with such lines. Contour linesare extracted per triangle by linear interpolation. Integral curvesand geodesic paths are computed by tracing the piecewise-constantgradient per triangle. Each triangle intersected by one such line issplit along the corresponding segment, forming three new triangles.When a triangle is split, arcs and nodes are added to the graph torepresent new vertices and edges, and the adjacency of nodes in thesplit triangle is updated accordingly, as shown in Fig. 11.
Operators.
The operators described in Sec. 3 are implementedon top of the functionality described before. The contour operatorrequires one or two geodesic solves, for dist and blend respectively,followed by the extraction of isolines and cuts along them. The stream operator requires the same solves, this time followed by cutsalong integral curves. In both cases, computation is bound to theregion in which the operator is applied.The polyline operator is implemented by tracing geodesic pathsbetween each pair of successive points. Each segment is computedstarting at a vertex and ascending the gradient of the distance fieldgenerated from the previous vertex. This operation requires onesolve per segment: early exit occurs as soon as the target vertex isreached, so computation is bound to the intersection between theselected region and a geodesic circle having the segment as radius. , Vol. 1, No. 1, Article . Publication date: July 2020. ecoSurf : Recursive Geodesic Patterns on Triangle Meshes • 9
The
Voronoi operator requires a solve for each element in theseed set, which may become expensive for large seed sets. We againoptimize this operator by exploiting early exits in graph search. Wefirst compute the distance field from all seeds together to find itsmaximum value. We then set this distance as bound for early exitwhen computing the field for each seed. Intuitively, this ensuresthat each mesh vertex is visited roughly twice, so computation timeis bounded regardless of the number of seeds. For each vertex of theregion of interest, we collect the distance from its three closest seeds.Then we generate the Voronoi diagram by splitting all triangles thathave vertices lying in different Voronoi regions, as in [16]. Seestatistics in the supplemental material for time performance.Finally, shape perturbation and displacement are trivially imple-mented by updating the edge lengths in the graph, and the positionsof vertices, respectively.
Discussion.
Our system is very compact and coherent, becauseall operations rely on geodesic distance computation, as well as onfew other straightforward operations: line tracing and mesh cutting.Performance depends on our capability to make geodesic computa-tions fast, and update our data structures efficiently. In this sense,the choice of our specific graph solver provides an optimal tradeoffunder a variety of aspects, such as accuracy, speed, scalability, sim-plicity, dynamic update, and early exits. Scalability, simplicity andease of update descend from using just the vertices of the mesh asnodes, and relations from local mesh topology as arcs. Nodes in ourgraph have average degree of 12, hence for a mesh with N verticesour graph has N nodes and about 6 N bidirectional arcs.In contrast, graph-based methods using Steiner nodes [19, 20]are much more complex to maintain upon dynamic updates, andhave a larger memory footprint. Their number of arcs increasesquadratically with the number k of Steiner nodes per edge: for k = ∼ N nodes and ∼ N arcs; while, for k =
3, thecount raises to ∼ N nodes and ∼ N arcs, making these graphsimpractical for large meshes even with moderately low values of k .The DGG [33] and SVG [35] methods use graphs that do havejust the vertices as nodes, but each node has a high degree (order10 − ). Their memory footprint is high and they are slow toupdate upon mesh refinement. Finally, the method proposed in [4]relies just on the graph of edges, but computations to straightenpaths are done on-the-fly, making the method suitable for point-to-point path computation only.With the PDE method of [8], each solve implies the solution of asparse N × N linear system, which can be pre-factorized for a givenmesh, making the solution fast at the price of pre-computation. Themain concern in using this method is that every time we change themesh topology or geometry the expensive factorization step needsto be repeated. See Sec. 5.2 for a comparative analysis in terms ofaccuracy and performance. We validated our pattern model in three manners. First, we modeleddecorations that match real-world styles. Second, we tested theaccuracy and speed of the overall system and of the geodesic solverto show that it remains interactive. Third, we validated our user interface with a user study to show that novices to the system canreplicate given patterns.
Fig. 1 and Fig. 12 show complex patterns created with our systemduring interactive sessions. We chose to model patterns from real-world examples with different artistic styles to show that our modelcan capture intricate decorations made by artisans. Fig. 13 showsstatistics of the editing sequences corresponding to such images.Overall we found that creating complex patterns is easy withour interface. We used from up to hundreds of single operations tocreate patterns made of up to 1800 individual decorations, whichcorrespond to regions in our model. Note that some such opera-tions were applied as macros or procedurals, simplifying editingfurther. The number of operations we employ is significantly smallerthan using standard modeling tools with either polygonal modelingor sculpting workflows, e.g. see [10, 11] for statistics of commonmodeling sequences.To gain a better sense of the recursive nature of the decorations,we report the depth of the pattern tree, which reached 21 in our mostintricate result. This shows that by applying patterns recursively,even just a few times, we can greatly increase the complexity of thedecoration while maintaining the editing manageable for users.
In our examples, we handle models between 500k and 2M triangles,which are further subdivided during editing. Throughout the mod-eling sequences, our system remains interactive with computationtimes of about 0.2s per operation, including geodesic computation,mesh cutting and graph update. Memory usage is also compact,never exceeding 300Mb, which includes the mesh and the geodesicsolver, as well as interface support data. Performances were eval-uated on a 2.9 GHz laptop with 16 GB of RAM running with asingle-core for our application.Fast geodesic computation is the main technical feature that en-ables us to model decorations well. We test the performance andaccuracy of our solver by computing the geodesic field from a singlesource to all vertices on a variety of meshes, summarized in Fig. 14.While we use a very simple graph, our solver remains accurateenough with an error between 1.1% and 1.6% over a state of the artsolver for exact polyhedral geodesics [27]. Computation times arebetween 0.015s and 0.446s for a single core implementation run-ning on meshes between 300k and 7.2M triangles. This speed is fastenough for all our modeling needs.We compared our solver to a popular, approximate, geodesicsolver based on PDEs [8] using the author’s implementation. Theaccuracy of our solver is just slightly lower on relatively smallmeshes, while getting better on large meshes. On the other hand,our solver consistently runs at roughly twice the speed, alwaysremaining compatible with interaction, even when considering theadditional times for update after mesh cutting.In terms of pre-computation times, where [8] factorize a sparsematrix, while we build a graph, our method runs roughly between10 and 35 times faster. Although pre-computation is just performed , Vol. 1, No. 1, Article . Publication date: July 2020.
Fig. 12. Results created with our application starting from undecorated models, shown in the insets. Decorations were inspired by real world examples: thetank-teapot on the left reproduces the playful look of handmade toys, the result in the middle matches the appearance of carnival masks of Venice, the statueon the right is decorated with intricate patterns that imitate tangles on ceramics. Statistics about the models and the editing sessions are reported in Fig. 13 model triangles triangles number of number of tree average time memoryname at start at end regions operations depth per operation usage at endfertility 0.50M 0.90M 1810 655 21 0.134s 96Mbteapot 1.50M 1.65M 511 129 13 0.146s 173Mbtank 1.45M 1.68M 636 145 10 0.189s 174Mbmask 2.00M 2.15M 62 30 5 0.232s 228Mbelephant 2.00M 2.61M 364 212 13 0.241s 278Mb
Fig. 13. Statistics on the editing sequences used for interactive decoration. The average time per operation takes into account the time needed to compute thegeodesic field, cut the mesh, update the graph and the pattern representation data. model [27] [8] oursname triangles solve build solve error build solve error updatekitten 300k 3.0s 1.49s 0.068s 0.5% 0.061s (24x) 0.015s (4.5x) 1.1% 0.013selephant 500k 10.9s 3.47s 0.095s 0.5% 0.098s (35x) 0.027s (3.5x) 1.1% 0.023sfertility 500k 3.5s 2.86s 0.123s 0.5% 0.109s (26x) 0.026s (4.8x) 1.1% 0.023slucy 525k 9.1s 1.98s 0.082s 1.5% 0.175s (11x) 0.034s (2.4x) 1.6% 0.025smask 2.0M 121.0s 14.4s 0.391s 1.1% 0.585s (24x) 0.114s (3.4x) 1.2% 0.115snefertiti 2.0M 20.3s 14.8s 0.345s 0.9% 0.730s (20x) 0.149s (2.3x) 1.5% 0.139sdragon 7.2M 79.9s 59.6s 1.500s 3.0% 2.613s (24x) 0.446s (3.9x) 1.5% 0.571s
Fig. 14. Comparison between our geodesic solver, and the solver from [8]. For the latter we use the implementation provided by the author, using Cholmod asbackend. Columns build report pre-processing times to pre-factor the system and to build the graph, respectively. Build times for our solver also include thetime to compute the triangle adjacency needed to build the graph. Columns solve report average time for computing the distance field from a single pointsource, where average is taken over 100 random samples. Column update reports the average time to update our graph after mesh split, where average is takenover 100 different long slices that roughly cut the mesh in half. Root-mean-square errors are computed with respect to the exact polyhedral solution from [27]. once, the high times of [8] suggest that it would be hard to try adynamic update after mesh edit.We also compared our solver to a straightforward implementationof Lanthier’s graph [20] with just one Steiner point per edge, usingthe same graph traversal algorithm. In terms of accuracy, resultsare comparable to our solver. We cannot objectively compare solvetimes as the two implementations were not equally optimized, but on average our solver was about 10 times faster. Regardless of low-level optimizations, we assume our method to be more efficient,as the Lanthier’s graph with one Steiner node per edge is morethan three times larger, as explained in Sec. 4.2. Beyond accuracyand performance, our graph is much easier to maintain upon meshcutting, and that was the determining factor, which made it a betterchoice for our application. , Vol. 1, No. 1, Article . Publication date: July 2020. ecoSurf : Recursive Geodesic Patterns on Triangle Meshes • 11
We wish to remark that the choice of a geodesic solver is relativelyorthogonal to our pattern model, though.
We ran a user study to validate whether our prototype system iseasy to use, whether it allows users to model complex patterns, andwhether the style of the models we produce matches the style foundin handmade artisanal objects.
Experimental procedure.
We asked 17 subjects with different de-grees of expertise, ranging from novices to professional 3D artists,to use our prototype after a short training and an unguided editingsession on a model of their choice. We asked subjects to performthree matching tasks of increasing difficulty, in which they had touse the application to reproduce a target image shown in a picture.Images are provided in the additional material and in Fig. 15.After each task, subjects were asked to rate the similarity of theirresult with the reference and to evaluate how easy they found it tocomplete the task, using a scale from 1 to 10. We also asked subjectsto rate whether they would have been able to obtain the samekind of results with a different 3D application, whether they foundthe interface responsive, and whether they were satisfied with theoverall experience. Finally, we have shown to the subjects the teapotand the elephant decorated models from Fig. 1, and asked them torecognize whether the style of the image matches real photographsof similar styles, compared to other alternatives. We include a copyof the final questionnaire in the supplemental material.
Quantitative Evaluation.
Fig. 15 shows the results of our userstudy, where for all ratings we rejected the null hypothesis ( p ≤ . Qualitative Feedback.
Some non-expert users informally reportedthat they were surprised by the complexity of the results they man-aged to obtain with the application and the ease with which theywere able to control the editing operations. We think that this can-not be explained only by the usability of the interface, but ratherit is a direct consequence of the intuitive design of our editing op-erators, which requires no expertise to be understood. These facts
Fig. 15. Result data from the user study. Histograms on the left report thetime spent by the subjects to complete each task. The bar chart just belowshows that all subjects but one correctly recognized the real world stylesfrom which our results in Fig. 1 were inspired. The remaining bar chartsshow subjects’ feedback about their tasks: users with different amountof expertise found the tasks easy to perform, their results similar to thereference ones and the application responsive. All subjects were satisfiedwith their editing experience with the application and do not think thatusing another digital tool would allow them to obtain the same results inthe same time. suggest that the editing workflow of our application is well-suitedfor non-technical artists and designers, too.Experts users reported that they found the application responsiveand pleasant to use. We quote here some informal feedback wecollected: “The editing was surprisingly fast and enjoyable. I did nothave to think about triangles, edge loops or topology issues as inMaya or Blender; I could just focus on the result.” , Vol. 1, No. 1, Article . Publication date: July 2020.
Patterns.
While we introduce a general pattern model, recursivepatterns based on tight packing of arbitrarily-shaped elements can-not be easily reproduced in terms of geodesics. While there is a largeliterature on this, we remind the reader that packing is NP-hardin general, so all methods proposed so far are necessarily strongapproximations.Another type of pattern that we did not specifically include is flo-ral decorations. One possibility would be to adapt a region-growingmodel similar to the one used in procedural trees and express it interms of geodesic paths. The main concern though is that control-ling floral arrangement over an arbitrary manifold remains hardsince there is no global orientation to use while growing. We leavethe investigation of such further patterns to future work.
Discretization.
We rely on fine tesselations to represent decora-tions and discretize geodesic computation. Using too few trianglesmay introduce artifacts, such as wiggly polylines, due to mesh dis-cretization, graph-based evaluation of distance fields and piecewise-constant approximation of gradient fields. While we did not witnessthese problems in our tests, they are nonetheless possible. An al-ternative would be to separate the modeling and rendering phases.Since all our decorations can be encoded as operations on the man-ifold and its sub-regions, final patterns can be regenerated beforerendering. This would allow us to use an accurate representation ofthe manifold, such as a more refined mesh or a subdivision surface,more accurate geodesy, such as exact methods for meshes or PDEmethods for subdivision surfaces [9], and more accurate methodsfor isoline extraction and vector field tracing [18, 24].
We have presented an interactive method for generating recursivepatterns on surfaces and its use to model real-world decorations.Our model consists of a closed algebra of regions, which can besplit by applying four operators at will. Operators are defined upongeodesic fields on the surface and our implementation relies onfast geodesic computations. A user study shows that the resultingapplication is effective, it is responsive on meshes in the order ofone or a few million triangles, and it is easy to use for novices too.Our system is easily extensible in a variety of ways. Directionalfields [32] can be used to generate patterns based on further stream-lines, which can be easily combed and constrained to lines andboundaries in the decor. Fields can be also used to locally param-etrize patches of the surface, thus allowing for a mixed use of ourvector graphics together with raster graphics, i.e. textures, to createa composite decor. Diffusion curves [25] can be naturally incorpo-rated too, to support smooth-shaded coloring of regions.
REFERENCES [1] Dimitri P. Bertsekas. 1998.
Network optimization: continuous and discrete models .Athena Scientific.[2] Prosenjit Bose, Anil Maheshwari, Chang Shu, and Stefanie Wuhrer. 2011. ASurvey of Geodesic Paths on 3D Surfaces.
Comput. Geom. Theory Appl.
44, 9(2011), 486–498.[3] Luciano A. Romero Calla, Lizeth J. Fuentes Perez, and Anselmo A. Montenegro.2019. A minimalistic approach for fast computation of geodesic distances ontriangular meshes.
Computers & Graphics
84 (2019), 77 – 92. [4] Marcel Campen, Martin Heistermann, and Leif Kobbelt. 2013. Practical AnisotropicGeodesy. In
Proc. Symposium on Geometry Processing . 63–71.[5] Marcel Campen and Leif Kobbelt. 2011. Walking On Broken Mesh: Defect-TolerantGeodesic Distances and Parameterizations.
Eurographics
30 (2011). Issue 2.[6] Edoardo Carra, Christian Santoni, and Fabio Pellacini. 2019. Grammar-basedprocedural animations for motion graphics.
Computers & Graphics
78 (2019),97–107.[7] Jindong Chen and Yijie Han. 1990. Shortest Paths on a Polyhedron. In
Proc.Symposium on Computational Geometry (SCG ’90) . 360–369.[8] Keenan Crane, Clarisse Weischedel, and Max Wardetzky. 2013. Geodesics in heat:A new approach to computing distance based on heat flow.
ACM Trans. Graph.
32, 5 (2013).[9] Fernando De Goes, Mathieu Desbrun, Mark Meyer, and Tony DeRose. 2016. Sub-division exterior calculus for geometry processing.
ACM Trans. Graph.
35, 4(2016).[10] Jonathan D. Denning, William B. Kerr, and Fabio Pellacini. 2011. MeshFlow:Interactive Visualization of Mesh Construction Sequences.
ACM Trans. Graph.
ACM Trans. Graph.
34, 4(2015).[12] David Ebert, Kenton Musgrave, Darwyn Peachey, Ken Perlin, and Steve Worley.2002.
Texturing and Modeling: A Procedural Approach (3 ed.). Morgan Kaufmann.[13] Y. Eldar, M. Lindenbaum, M. Porat, and Y. Y. Zeevi. 1997. The Farthest PointStrategy for Progressive Image Sampling.
Trans. Img. Proc.
6, 9 (1997).[14] Philipp Herholz and Marc Alexa. 2018. Factor once: Reusing cholesky factoriza-tions on sub-meshes.
ACM Trans. Graph.
37 (2018).[15] Philipp Herholz, Timothy A. Davis, and Marc Alexa. 2017. Localized Solutions ofSparse Linear Systems for Geometry Processing.
ACM Trans. Graph.
36, 6 (2017).[16] Philipp Herholz, Felix Haase, and Marc Alexa. 2017. Diffusion diagrams: Voronoicells and centroids from diffusion. In
Computer Graphics Forum , Vol. 36. WileyOnline Library, 163–175.[17] R. Kimmel and J. A. Sethian. 1998. Computing Geodesic Paths on Manifolds. In
Proc. Natl. Acad. Sci. USA . 8431–8435.[18] Peter Kipfer, Frank Reck, and Günther Greiner. 2003. Local exact particle tracingon unstructured grids.
Computer Graphics Forum
22 (2003), 133–142.[19] Mark Lanthier, Anil Maheshwari, and Jörg-Rüdiger Sack. 1997. Approximatingweighted shortest paths on polyhedral surfaces. In
Proc. of ACM Symposium onComputational Geometry .[20] Mark Lanthier, Anil Maheshwari, and Jörg-Rüdiger Sack. 2001. Approximatingshortest paths on weighted polyhedral surfaces.
Algorithmica
30, 4 (2001), 527–562.[21] Yuanyuan Li, Fan Bao, Eugene Zhang, Yoshihiro Kobayashi, and Peter Wonka.2011. Geometry Synthesis on Surfaces Using Field-Guided Shape Grammars.
IEEETrans. Visualization and Computer Graphics
17, 2 (2011).[22] Hugo Loi, Thomas Hurtut, Romain Vergne, and Joelle Thollot. 2017. Programmable2D Arrangements for Element Texture Design.
ACM Trans. Graph.
36, 3 (2017).[23] Joseph S. B. Mitchell, David M. Mount, and Christos H. Papadimitriou. 1987. TheDiscrete Geodesic Problem.
SIAM J. Comput.
16, 4 (Aug. 1987), 647–668.[24] G. M. Nielson and Il-Hong Jung. 1999. Tools for computing tangent curves forlinearly varying vector fields over tetrahedral domains.
IEEE Trans. Visualizationand Computer Graphics
5, 4 (1999), 360–372.[25] Alexandrina Orzan, Adrien Bousseau, Holger Winnemöller, Pascal Barla, JoëlleThollot, and David Salesin. 2008. Diffusion Curves: A Vector Representation forSmooth-shaded Images.
ACM Trans. Graph.
27, 3 (Aug. 2008), 92:1–92:8.[26] A. Paoluzzi, F. Bernardini, C. Cattani, and V. Ferrucci. 1993. Dimension-Independent Modeling with Simplicial Complexes.
ACM Trans. Graph.
12, 1(1993), 56–102.[27] Yipeng Qin, Xiaoguang Han, Hongchuan Yu, Yizhou Yu, and Jianjun Zhang.2016. Fast and Exact Discrete Geodesic Computation Based on Triangle-orientedWavefront Propagation.
ACM Trans. Graph.
35, 4 (2016), 125:1–125:13.[28] Christian Santoni and Fabio Pellacini. 2016. gTangle: A Grammar for the Proce-dural Generation of Tangle Patterns.
ACM Trans. Graph.
35, 6 (2016).[29] Christophe Schlick. 1994. Fast Alternatives to Perlin’s Bias and Gain Functions.
Graphics Gems IV (1994).[30] Michael Schwarz and Peter Wonka. 2015. Practical Grammar-based ProceduralModeling of Architecture. In
SIGGRAPH Asia 2015 Courses .[31] Omry Sendik and Daniel Cohen-Or. 2017. Deep Correlations for Texture Synthesis.
ACM Trans. Graph.
36, 4, Article 105b (July 2017).[32] Amir Vaxman, Marcel Campen, Olga Diamanti, David Bommes, Klaus Hilde-brandt, Mirela Ben-Chen Technion, and Daniele Panozzo. 2017. Directional FieldSynthesis, Design, and Processing. In
ACM SIGGRAPH 2017 Courses .[33] Xiaoning Wang, Zheng Fang, Jiajun Wu, Shi-Qing Xin, and Ying He. 2017. DiscreteGeodesic Graph (DGG) for Computing Geodesic Distances on Polyhedral Surfaces.
Comput. Aided Geom. Des.
52, C (2017), 262–284., Vol. 1, No. 1, Article . Publication date: July 2020. ecoSurf : Recursive Geodesic Patterns on Triangle Meshes • 13 [34] Li-Yi Wei, Sylvain Lefebvre, Vivek Kwatra, and Greg Turk. 2009. State of the Artin Example-based Texture Synthesis. In
Eurographics State of the Art Report .[35] Xiang Ying, Xiaoning Wang, and Ying He. 2013. Saddle Vertex Graph (SVG): ANovel Solution to the Discrete Geodesic Problem.
ACM Trans. Graph.
32, 6 (2013). [36] Yang Zhou, Zhen Zhu, Xiang Bai, Dani Lischinski, Daniel Cohen-Or, and HuiHuang. 2018. Non-stationary Texture Synthesis by Adversarial Expansion.