Riccardo Fellegara, University of Maryland, College Park (MD),...

22
The Stellar tree: a Compact Representation for Simplicial Complexes and Beyond Riccardo Fellegara, University of Maryland, College Park (MD), USA Kenneth Weiss, Lawrence Livermore National Laboratory, Livermore (CA), USA Leila De Floriani, University of Maryland, College Park (MD), USA Abstract The efficient representation and management of simplicial and cell complexes is an active research topic in several fields, including geometric modeling, computer graphics, scientific visualization, and geographic data processing. In this paper, we propose the Stellar tree, a topological data structure for performing efficient topological queries on simplicial and non-simplicial complexes. We prove that a Stellar tree provides a scalable, compact and flexible data structure to represent these complexes, using a fraction of the memory required by a corresponding topological data structure on the global complex. 1 Introduction Efficient mesh data structures play a fundamental role in a broad range of mesh processing applications in computer graphics, geometric modeling, scientific visualization, ge- ographic information systems, finite element analysis, and in data analysis and machine learning. Although simple problems can be easily modeled on small low dimensional meshes, phenomena of interest might only occur on much larger meshes and in higher dimensions. Thus, we often re- quire flexibility to deal with increasingly complex meshes including those defined by irregularly connected hetero- geneous and/or multidimensional cell types discretizing spaces with complicated topology. Moreover, as advances in computing capabilities continue to outpace those in memory, it becomes increasingly important to optimize and exploit the mesh locality as we process and locally query it. Such queries are the primary means of inter- acting with the mesh and have historically been posed in terms of a few spatial and topological primitives. How- ever, while there are simple, intuitive models for repre- senting polygonal surfaces, there are numerous challenges in generalizing these structures to higher dimensions and in scaling to large meshes. In this paper, we first introduce the Stellar decompo- sition, a model for topological data structures that can efficiently navigate the topological connectivity of simpli- cial complexes and certain classes of cell complexes, e.g. those composed of quadrilaterals, polygons, hexahedra, prisms and pyramids. The defining property of a Stellar decomposition is that the complex is broken up into re- gions, where each region is a collection of vertices of the complex, and each vertex within a region has sufficient information to locally reconstruct its star, i.e., the set of cells from the complex that are incident in that vertex. A Stellar decomposition is general, in that it can eas- ily represent arbitrary complexes with a manifold or non- manifold domain, scalable to complexes both in high di- mensions and with a large number of cells, and flexible in that it enables users to defer decisions about which topological connectivity relations to encode. It, therefore, supports the generation of optimal application-dependent local data structures at runtime. Due to the locality of suc- cessive queries in typical mesh processing applications, the construction costs of these local topological data struc- tures are amortized over multiple mesh operations while processing a local region. We introduce the Stellar tree as a concrete instance of the Stellar decomposition model. Stellar trees utilize a hierarchical nD-quadtree or kD-tree as decomposition and are easily tunable using a single parameter that defines the maximum number of vertices in each local region of the decomposition. In this paper we present: 1 arXiv:1707.02211v1 [cs.DS] 7 Jul 2017

Transcript of Riccardo Fellegara, University of Maryland, College Park (MD),...

Page 1: Riccardo Fellegara, University of Maryland, College Park (MD), …kennyweiss.com/papers/Fellegara17.arxiv.pdf · 2021. 1. 20. · Riccardo Fellegara, University of Maryland, College

The Stellar tree: a Compact Representationfor Simplicial Complexes and Beyond

Riccardo Fellegara, University of Maryland, College Park (MD), USAKenneth Weiss, Lawrence Livermore National Laboratory, Livermore (CA), USA

Leila De Floriani, University of Maryland, College Park (MD), USA

AbstractThe efficient representation and management of simplicialand cell complexes is an active research topic in severalfields, including geometric modeling, computer graphics,scientific visualization, and geographic data processing. Inthis paper, we propose the Stellar tree, a topological datastructure for performing efficient topological queries onsimplicial and non-simplicial complexes. We prove that aStellar tree provides a scalable, compact and flexible datastructure to represent these complexes, using a fraction ofthe memory required by a corresponding topological datastructure on the global complex.

1 IntroductionEfficient mesh data structures play a fundamental role in abroad range of mesh processing applications in computergraphics, geometric modeling, scientific visualization, ge-ographic information systems, finite element analysis, andin data analysis and machine learning. Although simpleproblems can be easily modeled on small low dimensionalmeshes, phenomena of interest might only occur on muchlarger meshes and in higher dimensions. Thus, we often re-quire flexibility to deal with increasingly complex meshesincluding those defined by irregularly connected hetero-geneous and/or multidimensional cell types discretizingspaces with complicated topology. Moreover, as advancesin computing capabilities continue to outpace those inmemory, it becomes increasingly important to optimizeand exploit the mesh locality as we process and locallyquery it. Such queries are the primary means of inter-acting with the mesh and have historically been posed interms of a few spatial and topological primitives. How-

ever, while there are simple, intuitive models for repre-senting polygonal surfaces, there are numerous challengesin generalizing these structures to higher dimensions andin scaling to large meshes.

In this paper, we first introduce the Stellar decompo-sition, a model for topological data structures that canefficiently navigate the topological connectivity of simpli-cial complexes and certain classes of cell complexes, e.g.those composed of quadrilaterals, polygons, hexahedra,prisms and pyramids. The defining property of a Stellardecomposition is that the complex is broken up into re-gions, where each region is a collection of vertices of thecomplex, and each vertex within a region has sufficientinformation to locally reconstruct its star, i.e., the set ofcells from the complex that are incident in that vertex.

A Stellar decomposition is general, in that it can eas-ily represent arbitrary complexes with a manifold or non-manifold domain, scalable to complexes both in high di-mensions and with a large number of cells, and flexiblein that it enables users to defer decisions about whichtopological connectivity relations to encode. It, therefore,supports the generation of optimal application-dependentlocal data structures at runtime. Due to the locality of suc-cessive queries in typical mesh processing applications,the construction costs of these local topological data struc-tures are amortized over multiple mesh operations whileprocessing a local region.

We introduce the Stellar tree as a concrete instance ofthe Stellar decomposition model. Stellar trees utilize ahierarchical nD-quadtree or kD-tree as decomposition andare easily tunable using a single parameter that defines themaximum number of vertices in each local region of thedecomposition.

In this paper we present:

1

arX

iv:1

707.

0221

1v1

[cs

.DS]

7 J

ul 2

017

Page 2: Riccardo Fellegara, University of Maryland, College Park (MD), …kennyweiss.com/papers/Fellegara17.arxiv.pdf · 2021. 1. 20. · Riccardo Fellegara, University of Maryland, College

1. the formal theoretical definition of a Stellar decom-position that provides a solid base for several possi-ble representations exploiting this type of decompo-sition;

2. the definition of a compact encoding for the entitiesindexed by each region of the decomposition;

3. the definition of a concrete spatio-topological rep-resentation of the Stellar decomposition, the Stellartree. The decomposition in a Stellar tree is basedon a hierarchical spatial index, and thus, the indexedcomplex is spatially embedded;

4. the description of the procedures for exploiting thespatial coherence of the indexed entities and for com-pressing the Stellar tree representation through a com-pact encoding;

5. the description of a generic paradigm that can beadopted by any application defined on top of the Stel-lar tree.

The remainder of this paper is organized as follow. InSections 2 and 3, we review background notions and re-lated work respectively. In Section 4, we provide the def-inition of Stellar decomposition, in which we define allthe components of a Stellar decomposition, plus the map-ping functions that define the relation between the indexedentities and the regions of the decomposition. Then, wedescribe the encoding of the complex and of the entitiesindexed by the regions of the decomposition. In Section 5,we give the definition of a spatio-topological representa-tion defined on top of the Stellar decomposition, the Stellartree, and then, the encoding of the hierarchical decompo-sition. In Section 6, we describe in details the algorithmsdefined to generate a Stellar tree and those that exploitthe spatial locality of the indexed entities. In Section 7,we give a complete comparison between the Stellar treeand several state-of-the-art topological data structures formanifold and non-manifold complexes.

2 Background notions

In this section, we review notions related to cell and sim-plicial complexes, the basic combinatorial structures forrepresenting discretized shapes. Throughout the paper, weuse n to denote the dimension of the ambient space, dto represent the maximum dimension of the underlyingcomplex and k to denote the dimension of a cell from the

complex, where 0≤ k ≤ d and typically d ≤ n.A k-dimensional cell in the n-dimensional Euclidean

space En is a subset of En homeomorphic to a closedk-dimensional ball Bk = {x ∈ Ek : ‖x‖ ≤ 1}. A d-dimensional cell complex Γ in En is a finite set of cellswith disjoint interiors and of dimension at most d suchthat the boundary of each k-cell γ consists of the unionof the other cells of Γ with dimension less than k. A cellwhich does not belong to the boundary of any other cellin Γ is called a top cell. Γ is a pure cell complex when alltop cells have dimension d. The subset of En spanned bythe cells of Γ is called the domain of Γ.

In this paper, we are concerned with a restrictedclass of cell complexes whose cells can be fully recon-structed by their set of vertices, e.g. via a canonicalordering [Schoof and Yarberry, 1994, Poirier et al., 1998,Remacle and Shephard, 2003, Tautges, 2010]. We refer tothis class of complexes as Canonical Polytope complexes(CP complexes) and note that it includes simplicial com-plexes, cubical complexes, polygonal cell complexes andheterogeneous meshes with cells from the finite element‘zoo’ (e.g. simplices, hexahedra, pyramids, and prisms).

A pair of cells in a CP complex Σ are incident if one isa face of the other and h-adjacent if they have the samedimension and are incident in a common h-face. We in-formally refer to vertices (0-cells) as adjacent if they areboth incident in a common edge (1-cell) and, similarly,for k-cells that are incident in a common (k−1)-cell. The(combinatorial) boundary of a CP cell σ is defined by theset of its faces. The star of a CP cell σ , denoted St(σ),is the set of its co-faces, i.e., CP cells in Σ that have σ asa face. The link of a CP cell σ , denoted Lk(σ), is the setof all the faces of cells in St(σ) that are not incident inσ . Two h-cells σ and σ ′ in Σ are h-connected if there is asequence of (h−1)-adjacent h-cells in Σ from σ to σ ′.

We can now define a d-dimensional CP complex Σ as aset of CP-cells in En of dimension at most d such that:

1. Σ contains all CP-cells in the boundary of the CP-cells in Σ;

2. the intersection of any two CP-cells in Σ is conform-ing, i.e., it is either empty or a shared face of bothCP-cells.

Simplicial complexes are an important subset of CPcomplexes whose cells are all simplices. Let k be a non-

2

Page 3: Riccardo Fellegara, University of Maryland, College Park (MD), …kennyweiss.com/papers/Fellegara17.arxiv.pdf · 2021. 1. 20. · Riccardo Fellegara, University of Maryland, College

negative integer. A k-simplex σ is the convex hull of k+1independent points in En (with k ≤ n), called vertices ofσ . A face of a k-simplex σ is an h-simplex (0 ≤ h ≤ k)generated by h+1 vertices of σ .

Another important notion is that of a (combinatorial)manifold. A subset M of the Euclidean space En is called ad-manifold, with d ≤ n, if and only if every point of M hasa neighborhood homeomorphic to the open d-dimensionalball. For CP complexes, this corresponds to the conditionthat the link of every vertex is a combinatorial (d−1)-sphere, which becomes an undecidable problem for d >4 [Nabutovsky, 1996]. A more practical concept for thepurpose of representing CP complexes is that of pseudo-manifold. A pure CP complex is pseudo-manifold whenits top cells are all d-connected and its (d−1)-cells areincident in at most two d-cells. Informally, we refer to theconnected and compact subspace of En not satisfying themanifold conditions as non-manifold.

Queries on a cell complex are often posed in terms oftopological relations defined by the adjacencies and inci-dences of its cells. Let us consider a CP complex Σ and ak-cell σ ∈ Σ, with 0≤ k≤ d:

- a boundary relation Rk,p(σ), with 0≤ p< k, consistsof the p-cells of Σ in the boundary of σ ;

- a co-boundary relation Rk,q(σ), with k < q≤ n, con-sists of the q-cells of Σ in the star of σ ;

- an adjacency relation Rk,k(σ) consists of the set ofk-cells of Σ that are adjacent to σ .

3 Related workIn this section, we review the state of the art on topologicalmesh data structures and hierarchical spatial indexes.

3.1 Topological mesh data structuresThere has been much research on efficient representationsfor manifold cell and simplicial complexes, especially forthe 2D case (see [De Floriani and Hui, 2005] for a com-prehensive survey of topological data structures for mani-fold and non-manifold shapes).

A topological mesh data structure over a cell complexencodes a subset of its topological relations and supportsthe efficient reconstruction of the local topological connec-tivity over its elements. Topological data structures can be

classified according to: (i) the dimension of the cell com-plex, (ii) the domain to be approximated, i.e., manifolds,pure and non-pure shapes, non-manifold shapes, (iii) thesubset of topological information directly encoded, and(iv) the organization of topological information directlyencoded, i.e., explicit or implicit data structures. The ex-plicit cells and connectivity relations can either be allo-cated on demand using small local structures, or contigu-ously, e.g. using arrays. In the former case, pointers areused to reference the elements, which can be useful whenthe data structure needs to support frequent updates to theunderlying cells or their connectivity. In the latter case, in-dexes of the cells within the array can be used to efficientlyreference the elements.

Broadly speaking, topological data structures can be cat-egorized as incidence-based or adjacency-based represen-tations. Whereas incidence-based data structures primarilyencode their topological connectivity through incidence re-lations over all cells in the complex, adjacency-based datastructures primarily encode their connectivity through ad-jacency relations over the top cells of complex.

The Incidence Graph (IG) [Edelsbrunner, 1987] is theprototypical incidence-based data structure for arbitraryshapes discretized by cell complexes in arbitrary dimen-sion. The IG explicitly encodes all cells of a given cellcomplex Γ, and for each p-cell γ , its immediate bound-ary and co-boundary relations (i.e., Rp,p−1 and Rp,p+1).Several compact representations with the same expressivepower as the IG have been developed for simplicial com-plexes [De Floriani et al., 2004, De Floriani et al., 2010],which typically require less than half the storage space asthe IG [Canino and De Floriani, 2014]. Perhaps the mostcommon incidence-based data structure for polygonal 2-complexes is the half-edge data structure [Mantyla, 1988],which encodes the incidences among edges, their bound-ing vertices, and co-bounding faces. Combinatorialmaps [Lienhardt, 1994, Damiand and Lienhardt, 2014]generalize this notion to higher dimensions.

A more compact alternative provided by an Indexeddata structure [Lawson, 1977] which explicitly encodesonly vertices, top cells and the boundary relations fromtop cells to their vertices. Since the cells of a CP com-plex are entirely determined by their ordered list of ver-tices, this provides sufficient information to efficiently ex-tract all boundary relations among the cells, but not theco-boundary or adjacency relations. The Indexed data

3

Page 4: Riccardo Fellegara, University of Maryland, College Park (MD), …kennyweiss.com/papers/Fellegara17.arxiv.pdf · 2021. 1. 20. · Riccardo Fellegara, University of Maryland, College

structure with Adjacencies (IA) [Paoluzzi et al., 1993,Nielson, 1997] extends the indexed representation to man-ifold simplicial complexes of arbitrary dimension by ex-plicitly encoding adjacency relation Rd,d , leading to anadjacency-based representation. All remaining topologi-cal relations can be efficiently recovered if we also encodea single top simplex in the star of each vertex (i.e., a subsetof relation R0,d).

The Corner-Table (CoT) data struc-ture [Rossignac et al., 2001] is also an adjacency-baseddata structure. It is defined only for conforming trianglemeshes, where it has the same representational poweras the IA data structure. It uses corners as a conceptualabstraction to represent individual vertices of a triangleand encodes topological relations among corners andtheir incident vertices and triangles. The Sorted OppositeTable (SOT) data structure [Gurung and Rossignac, 2009]extends the Corner-Table data structure to tetrahedralmeshes and introduces several storage optimizations.Most notably, the SOT is able to reconstruct boundaryrelation Rd,0 from co-boundary relations R0,d (implicitlyencoded) and Rd,d relations (explicitly encoded), reducingthe SOT’s topological overhead by nearly a factor oftwo. Since modifications to the mesh require non-localreconstructions of the associated data structures, thisrepresentation is suitable for applications in which themesh is static.

The Generalized Indexed data structure with Adja-cencies (IA∗ data structure) [Canino et al., 2011] extendsthe representational domain of the IA data structure tonon-manifold and mixed dimensional simplicial com-plexes. The IA∗ data structure is compact, in thesense that it gracefully degrades to the IA data struc-ture in locally manifold neighborhoods of the mesh, andhas been shown to be more compact than incidence-based data structures, especially as the dimension in-creases [Canino and De Floriani, 2014].

The Simplex tree [Boissonnat and Maria, 2014] alsoencodes general simplicial complexes of arbitrary di-mension. It explicitly stores all simplices of thecomplex within a trie [Fredkin, 1960] whose nodesare in bijection with the simplices of the complex.An analysis in [Fugacci et al., 2015] indicates that theIA∗ data structure (provided by the Mangrove TDS li-brary [MTDSL, 2014]) is 10-30% more compact than alightweight Simplex tree implementation (provided by the

GUDHI library [GUDHI, 2016] without co-boundary re-lations).

The Skeleton-Blocker data structure [Attali et al., 2012]encodes simplicial complexes that are close to flag com-plexes (simplicial complexes whose cells are entirely deter-mined from the structure of the 1-skeleton) and has beensuccessfully employed for executing edge contractions onsuch complexes. It encodes the 1-skeleton and the block-ers, simplices that are not in Σ, but whose faces are. Itsgeneration procedure is computationally intensive for gen-eral simplicial complexes since it has to insert simplicesof all dimensions in order to identify the blockers.

We compare the Stellar tree representation with the IA,CoT, and SOT data structures as well as the Simplex tree,and IA∗ data structures in Section 7.3.

3.2 Hierarchical spatial indexes

A spatial index is a data structure used for indexing spa-tial information, such as points, lines or surfaces in theEuclidean space. Spatial indexes form a decomposition ofthe embedding space into regions. This can be driven by:1. an object-based or a space-based criterion for generat-ing the decomposition. 2. an organization of the regions,i.e., using a hierarchical or a non-hierarchical (flat) or-ganization. The two characteristics are independent, andthus, for example, we can have hierarchical object-baseddecompositions, as well as flat space-based ones.

We now consider how the regions of a decompositioncan intersect. In an overlapping decomposition the inter-section between the regions can be non-empty on both theinteriors and on the boundary of their domain, while, in anon-overlapping decomposition intersections can only oc-cur on domain boundaries. We say that a region is nestedwithin another region if it is entirely contained within thatregion. In the remainder of this section, we focus on hi-erarchical spatial indexes, which can be classified by thedimensionality of the underlying ambient space and by thetypes of entities indexed.

Hierarchical spatial indexes for point data are pro-vided by Point Region (PR) quadtrees/octrees and kD-trees [Samet, 2006]. In these indexes, the shape of thetree is independent of the order in which the points are in-serted, and the points are only indexed by leaf blocks. Thestorage requirements of these structures can be reducedby allowing leaf blocks to index multiple points, as in the

4

Page 5: Riccardo Fellegara, University of Maryland, College Park (MD), …kennyweiss.com/papers/Fellegara17.arxiv.pdf · 2021. 1. 20. · Riccardo Fellegara, University of Maryland, College

bucket PR quadtree/octree [Samet, 2006], whose bucket-ing threshold determines the number of points that can beindexed by a leaf block before it is refined.

Several data structures have been proposed forspatial indexing of polygonal maps (PM), in-cluding graphs and planar triangle meshes. PMquadtrees [Samet and Webber, 1985] extend the PRquadtrees to represent polygonal maps consideredas a structured collection of edges. While there areseveral variants (PM1, PM2, PM3 and the randomizedPMR), which differ in the criterion used to refine leafblocks, all maintain within the leaf blocks a list ofintersecting edges from the mesh. The PM2-Trianglequadtree [De Floriani et al., 2008] specializes PMquadtrees over triangle meshes and has been appliedto terrain models. The PM index family has also beenextended to PM octrees encoding polyhedral objects in3D [Carlbom et al., 1985, Navazo, 1989, Samet, 2006],where the subdivision rules have been adjusted tohandle edges and polygonal faces of the mesh elements.In [De Floriani et al., 2010], we have developed a collec-tion of spatial indexes for tetrahedral meshes, that we callTetrahedral trees.

We note that data structures in the PM family are spa-tial data structures optimized for efficient spatial querieson a complex (e.g., point location, containment and prox-imity queries) and are not equipped to reconstruct theconnectivity of the complex. In contrast, the PR-star oc-tree [Weiss et al., 2011] is a topological data structure fortetrahedral meshes embedded in 3D space. It augmentsthe bucket PR octree with a list of tetrahedra incident inthe vertices of its leaf blocks, i.e., those in the star ofits vertices. This data structure has been shown to be ef-fective with geometrical and topological applications in-cluding local curvature estimation, mesh validation andsimplification [Weiss et al., 2011], morphological featureextraction [Weiss et al., 2013] and morphological simpli-fication [Fellegara et al., 2014].

In this paper, we have generalized the PR-star datastructure to handle a broader class of complexes (CP com-plexes) in arbitrary dimensions and with an arbitrary do-main (i.e., non-manifold and non-pure complexes). At thesame time, our new leaf block encoding further exploitsthe spatial coherence of the mesh, yielding a significantstorage saving compared to PR-star trees (see Section 7.2).

Other approaches utilize a spatial index to reduce

(a) (b)

Figure 1: Example of a mapping function ΦV ERT in 2D.An initial set of points (a) is mapped to the regions of anoverlapping decomposition ∆ (b).

the memory requirements for out-of-core or memory in-tensive mesh processing. [Cignoni et al., 2003b] intro-duce an external memory spatial data structure for tri-angle meshes embedded in E3. Whereas, our aim is toenable efficient topological operations on the elementsof general simplicial and CP complexes, the objectiveof [Cignoni et al., 2003b] is to support compact out-of-core processing of massive triangle meshes. Since theirdata structure is dimension-specific, exploiting geomet-ric and topological properties of triangle meshes in E3, itwould be difficult to generalize to more general CP com-plexes and to higher dimensions. [Dey et al., 2010] use anoctree to index a large triangle mesh for localized Delau-nay remeshing. Due to the significant overhead associatedwith their computations, their octrees are typically shallow,containing very few octree blocks. [Cignoni et al., 2003a,Cignoni et al., 2004] associate patches of triangles withthe simplicial regions of a multiresolution diamond hierar-chy [Weiss and De Floriani, 2011] for interactive render-ing and visualization of triangulated terrains and polygo-nal models.

4 The Stellar decomposition

The Stellar decomposition is a model for data structuresrepresenting Canonical Polytope (CP) complexes. We de-note a CP complex as Σ, and its ordered lists of verticesand top CP cells as ΣV and ΣT , respectively. We provide adefinition of the Stellar decomposition in Section 4.1 anddescribe its encoding in Section 4.2.

5

Page 6: Riccardo Fellegara, University of Maryland, College Park (MD), …kennyweiss.com/papers/Fellegara17.arxiv.pdf · 2021. 1. 20. · Riccardo Fellegara, University of Maryland, College

4.1 Definition

Given a CP complex Σ, a decomposition ∆ of its verticesΣV is a collection of subsets of ΣV such that every vertexv ∈ ΣV belongs to at least one of these subsets. We willrefer to the elements of decomposition ∆ as regions andwe will denote a region as r.

A Stellar decomposition SD defines a map from the re-gions of a decomposition ∆ of its vertex set ΣV to the ver-tices and top CP cells of a complex Σ. Formally, a Stellardecomposition is defined by three components:

1. a CP complex Σ;

2. a decomposition ∆ whose regions cover the verticesof Σ;

3. a map Φ from regions of ∆ to entities of Σ.

Thus, a Stellar decomposition is a triple SD = (Σ,∆,Φ).Since Σ is entirely characterized by its vertices and top CPcells, we define map Φ in terms of the two components:ΦV ERT defines the mapping to vertices and ΦTOP definesthe mapping to top CP cells.

For the vertices, we have a map from ∆ to ΣV based onan application-dependent belonging property. Formally,ΦV ERT : ∆→P(ΣV ) is a map from ∆ to the powerset ofΣV where

∀r ∈ ∆,ΦV ERT (r) = {v ∈ ΣV : v belongs to r}

While a region r in ∆ is associated with a subset of verticesfrom ΣV , the above definition does not limit a vertex v ∈ΣV to be in a single region. However, we do require thateach vertex belongs to at least one region, i.e. we imposethe following additional property:

∀v ∈ ΣV ,∃r ∈ ∆|v ∈ΦV ERT (r).

Figure 1 illustrates an example over a point set in 2Dwhere mapping function ΦV ERT associates points with re-gions of ∆.

The Stellar decomposition gets its name from the prop-erties of its top cell map ΦTOP. For each region r of ∆,ΦTOP(r) is the set of all top CP cells of ΣT incident in oneor more vertices of ΦV ERT (r). In other words, ΦTOP(r)is defined by the union of cells in the star of the vertices

in ΦV ERT (r). Formally, ΦTOP : ∆→P(ΣT ) is a functionfrom the regions of ∆ to the powerset of ΣT , where

∀r∈ ∆,ΦTOP(r) = {σ ∈ ΣT |∃v∈ Rk,0(σ) : v∈ΦV ERT (r)}(1)

Figure 2 illustrates mapping ΦTOP for two regions ofthe decomposition of Figure 1(b) on a triangle mesh de-fined over its vertices. We note that ΦTOP is based on atopological rather than a spatial property. A top CP cellσ is only mapped to a region r when one (or more) ofits vertices is mapped to r under ΦV ERT . Specifically, itdoes not depend on spatial overlap. To characterize thisrepresentation, we define the spanning number χσ of topcells in a Stellar decomposition as the number of regionsto which a top CP cell is mapped.

Definition 4.1 Given Stellar decompositionSD = (Σ,∆,Φ), the spanning number χσ of a CPcell σ ∈ ΣT is the number of regions in ∆ that map to σ .Formally,

∀σ ∈ ΣT , χσ = |{r ∈ ∆|σ ∈ΦTOP(r)}| (2)

It is also interesting to consider the average spanning num-ber χ as a global characteristic of the efficiency of a Stel-lar decomposition over a complex measuring the averagenumber of times each top CP cell is represented.

Definition 4.2 The average spanning number χ of a Stel-lar decomposition SD is the average number of regionsindexing a top CP cell σ . Formally,

χ = ( ∑σ∈ΣT

χσ )/|ΣT |= (∑r∈∆

|ΦTOP(r)|)/|ΣT | (3)

4.2 EncodingIn this section, we describe how we represent the two com-ponents of a Stellar decomposition, providing a detaileddescription of the data structures for representing a CPcomplex (subsection 4.2.1) and a compressed encoding forthe regions of the decomposition (subsection 4.2.2). Wedo not describe how the decomposition ∆ is represented,as this is specific to each concrete realization of the Stellardecomposition model.

4.2.1 Indexed representation of the CP complex

We assume that the underlying CP complex is representedas an indexed complex, which encodes the spatial position

6

Page 7: Riccardo Fellegara, University of Maryland, College Park (MD), …kennyweiss.com/papers/Fellegara17.arxiv.pdf · 2021. 1. 20. · Riccardo Fellegara, University of Maryland, College

(a) (b) (c)

Figure 2: Example mapping function ΦTOP for the decomposition from Figure 1. Given a triangle mesh (a) and avertex map ΦV ERT on decomposition ∆, ΦTOP maps the triangles in the star of the vertices in ΦV ERT (r) to ΦTOP(r).(b) and (c) highlight the triangles (green) mapped to two different regions (blue) of ∆.

of the vertices and the boundary relation Rk,0 of each topk-simplex in Σ. In the following, we discuss the case of ad-dimensional CP complex Σ embedded in En.

We use an array-based representation for the verticesand top cells of Σ. Since the arrays are stored contiguously,each vertex v has a unique position index iv in the ΣV arrayand similarly each top CP cell σ in the ΣT array associatedwith its dimension has a unique position index iσ . The ΣVarray encodes the position of each vertex v in Σ, requiringa total of n · |ΣV | coordinates. The top CP cells are encodedusing separate arrays ΣTk for each dimension k≤ d that hastop CP cells in Σ. ΣTk encodes the boundary connectivityfrom its top CP cells to their vertices, i.e., relation Rk,0 interms of the indices iv of the vertices of its cells within ΣV .This requires |Rk,0(σ)| references for a top k-cell σ , e.g.(k+1) vertex indices for a k-simplex and 2k references fora k-cube. Thus, the total storage cost of the indexed meshrepresentation is:

n · |ΣV |+d

∑k=1

∑σ∈ΣTk

|Rk,0(σ)|. (4)

We note that, in typical cases, where Σ is pure (i.e., its topCP cells all have the same dimension d), Σ requires onlytwo arrays: one for the vertices and one for the top cells.

4.2.2 A compressed region representation

In this subsection, we discuss two encoding strategies forthe data mapped to each region of the decomposition. Webegin with a simple strategy that explicitly encodes thearrays of vertices and top CP cells mapped to each regionand work our way to a compressed representation of theselists. Coupling this compressed representation with a re-organization of the vertices and cells of the CP complexthat exploits the spatial locality of its cells (as we willdescribe in Section 6) yields a significant reduction in stor-age requirements for a Stellar decomposition, as we willdemonstrate in Section 7.2.

Recall that under Φ, each region r in ∆ maps to a list ofvertices rV and a list of top CP cells rT from the complexΣ. A straightforward strategy would be to encode lists ofvertices and top CP cells that explicitly list the mapped el-ements for each region r. We refer to this as the EXPLICITStellar decomposition encoding. An example of the EX-PLICIT encoding for a single region with six vertices in rVand twenty triangles in rT is shown in Figure 3.

It is apparent that the above encoding can be very ex-pensive due to the redundant encoding of top CP cells withvertices in multiple regions. A less obvious redundancyis that it does not account for the locality of the elementsinduced by the spatial clustering.

We now consider a COMPRESSED Stellar decompo-sition encoding that compacts the vertex and top CPcells lists in each region r by exploiting the locality of

7

Page 8: Riccardo Fellegara, University of Maryland, College Park (MD), …kennyweiss.com/papers/Fellegara17.arxiv.pdf · 2021. 1. 20. · Riccardo Fellegara, University of Maryland, College

1

23

7

32

19

1234 58

6

89 99

10

37

144572

87

9

98

7786

55

1540

37

9

(a)

12 14 19 23 321 6 7 9 10

9 15 37 40 55 86

triangles list (size 20)

77 87 89 98 9934 37 45 58 72

vertices list (size 6)

(b)

Figure 3: EXPLICIT encoding for triangles within a region(dotted square). The lists explicitly encode the 6 verticesand 20 triangles in the region.

the elements within r. The COMPRESSED encoding re-duces the storage requirements within region lists by re-placing runs of incrementing consecutive sequences ofindices using a generalization of run-length encoding(RLE) [Held and Marshall, 1991]. RLE is a form of datacompression in which runs of consecutive identical valuesare encoded as pairs of integers representing the value andrepetition count, rather than as multiple copies of the orig-inal value. For example, in Figure 4a, the four entries withvalue ‘2’ are compacted into a pair of entries [-2,4], wherea negative first number indicates the start of a run and itsvalue, while the second number indicates the run’s length.

While we do not have such duplicated runs in ourindexed representation, we often have incrementing se-quences of indexes, such as {40,41,42,43,44}, within alocal vertex list rV or top CP cells list rT . We therefore usea generalized RLE scheme to compress such sequences,which we refer to as Sequential Range Encoding (SRE).SRE encodes a run of consecutive non-negative indexesusing a pair of integers, representing the starting index,and the number of remaining elements in the range. Aswith RLE, we can intersperse runs (sequences) with non-runs in the same list by negating the starting index of a run(e.g. [-40,4] for the above example). Thus, it is easy todetermine whether or not we are in a run while we iteratethrough a sequential range encoded list. A nice featureof this scheme is that it allows us to dynamically appendindividual elements or runs to an SRE list with no storageoverhead. Furthermore, we can easily expand a compactedrange by replacing its entries with the first two values ofthe range and appending the remaining values to the endof the list. Figure 4b shows an example SRE list over

3 3 3 3 5

0 2 2 2 2

0 -2 4 -3 4 5

(a) Run-length

10 11 12 14 18

1 2 3 4 7

-1 3 7 -10 3 18

(b) Sequential range

Figure 4: Run-length and sequential range encodingsfor sequences of non-negative integers. Runs (a) and se-quences (b) are highlighted in yellow.

a given sequence, where, e.g., the sequence {1,2,3,4} isrepresented with the pair [-1,3].

In order to compare the EXPLICIT and COMPRESSEDrepresentations of the Stellar decomposition, we introducea global characteristic that measures the average storagerequirements for a top CP cell in a Stellar decompositionrepresentation.

Definition 4.3 The average reference number µ of a Stel-lar decomposition is the average number of references re-quired to encode a top CP cell in the rT lists of the regionsin ∆. Formally:

µ = (∑r∈∆

|rT |)/|ΣT | (5)

where |rT | is the size of the top CP cells list in a region r.

In contrast to the average spanning number χ , which isa property of the decomposition, the average referencenumber µ is a property of how the decomposition inencoded. An EXPLICIT representation is equivalent toa COMPRESSED representation without any compressedruns, and, thus, it is always the case that µ ≤ χ . In theEXPLICIT representation (i.e. without any sequence-basedcompression), µ = χ , while in the COMPRESSED represen-tation, µ decreases as the compression of the rT lists be-comes more effective. Figure 5 illustrates a COMPRESSEDrepresentation of the mesh from Figure 3 after its vertexand triangle arrays have been reordered (in an externalprocess) and highlights its sequential ranges, where rV re-quires a single run to encode the indexed vertices and rTrequires four sequential runs to encode the indices of itstriangles.

8

Page 9: Riccardo Fellegara, University of Maryland, College Park (MD), …kennyweiss.com/papers/Fellegara17.arxiv.pdf · 2021. 1. 20. · Riccardo Fellegara, University of Maryland, College

1

51

17

44

30

3841 42

3

14 15

2

50

4540

43

16

52

536

8

5 4 7

3

(a)

-3 5

triangles list (size 10)-14 3 30-1 4 38 -50 3-40 4

vertices list (size 2)

(b)

Figure 5: COMPRESSED encoding for triangles within aregion (dotted square) after reindexing the vertices andtriangles of the mesh from Figure 3.

5 The Stellar treeThe Stellar decomposition is a general model that is ag-nostic about how the decomposition is attained and aboutits relationship to the underlying CP complex. Thus, forexample, we can define a Stellar decomposition usingVoronoi decompositions or regular or irregular tilings cov-ering the vertices of a given CP complex. In this section,we introduce the Stellar tree as a class of Stellar decompo-sitions defined over nested spatial decompositions of theambient space and discuss some of our design decisions.Before defining a Stellar tree (Section 5.1) and its encod-ing (Section 5.2), we review some underlying notions.

Background The ambient space A is the subset of En

in which the data is embedded. We consider the regionbounding the ambient space to be a hyper-rectangular axis-aligned bounding block, which we refer to simply as ablock. A k-dimensional closed block b in En, with k≤ n, isthe Cartesian product of k closed intervals [li,ui], with i =1, . . .n, where exactly k of them are non-degenerate, i.e.,b = {(x1, . . . ,xn) ∈ En | xi ∈ [li,ui]} and #{i | li < ui}= k.

Given two blocks b := [li,ui] and b′ := [l′i ,u′i], b′ is a

(a) (b)

Figure 6: A mapping function ΦV ERT over a nested spatialdecomposition ∆. An initial set of points (a) is partitionedby the leaf blocks of ∆ (b).

face of b if, for each dimension i, either their intervalsoverlap (i.e. l′i = li and u′i = ui) or the ith interval of b′ isdegenerate (i.e. l′i = u′i = li, or l′i = u′i = ui). Moreover, b′

is a proper face of b if b′ 6= b. Given a block b, we refer toits 0-dimensional face of degenerate intervals xi = li as itslower corner and to its 0-dimensional face where xi = uias its upper corner.

The above block definition describes closed blocks. Itcan be useful to allow some faces of b to be open, espe-cially on faces of neighboring blocks that overlap only ontheir boundaries. A k-dimensional half-open block b inEn is defined as b = {(x1, . . . ,xn) ∈ En | xi ∈ [li,ui)} and#{i | li < ui}= k. Note that all faces of a half-open blockb incident in its lower corner are closed, while all otherfaces of b are open.

We now focus on nested decompositions, hierarchicalspace-based decompositions whose overlapping blocksare nested and whose leaf blocks ∆L (i.e. those without anynested blocks) form a non-overlapping cover of the ambi-ent space A. The nesting relationship of the blocks definesa containment hierarchy H, which can be described usinga rooted tree. The root HROOT of the tree covers the ambi-ent space A; the leaves HL of the tree correspond to the setof leaf blocks ∆L of the decomposition; and the internalnodes HI of the tree correspond to the internal blocks ∆Iof the decomposition.

Nested decompositions can adopt different hierarchi-cal refinement strategies. Among the most popular arethose based on regular refinement and bisection refine-ment of simple primitives (e.g. simplices and cubes). A n-dimensional block b is regularly refined by adding vertices

9

Page 10: Riccardo Fellegara, University of Maryland, College Park (MD), …kennyweiss.com/papers/Fellegara17.arxiv.pdf · 2021. 1. 20. · Riccardo Fellegara, University of Maryland, College

at all edge and face midpoints of b and replacing b with 2n

disjoint blocks covering b. This generates quadtrees in 2D,and octrees in 3D [Samet, 2006]. In bisection refinement,a block is bisected along an axis-aligned hyperplane intotwo blocks, generating kD-trees [Bentley, 1975].

5.1 DefinitionSince a Stellar tree ST is a type of Stellar decomposition,it consists of three components: 1. a CP complex Σ embed-ded in an ambient space A; 2. a nested decomposition ∆

covering the domain of Σ; and 3. a map Φ from blocks of∆ to entities of Σ. The nested decomposition is describedby a containment hierarchy H, represented by a tree whoseblocks use the half-open boundary convention to ensurethat every point in the domain is covered by exactly oneleaf block.

Since Stellar trees are defined over nested spatial decom-positions that cover the ambient space, we customize thevertex mapping function ΦV ERT to partition the verticesaccording to spatial containment: each vertex is mappedto its single containing leaf block. Formally,

∀b ∈ ∆L,ΦV ERT (b) = {v ∈ ΣV : v∩b 6= /0} (6)

A 2D example is shown in Figure 6, where a set ofpoints are mapped to the leaf blocks of ∆ through ΦV ERT .

The top CP cells mapping function ΦTOP for a Stellartree has the same definition as for the Stellar decompo-sition (see Equation 1). However, a consequence of theunique mapping of each vertex in ΦV ERT is that it pro-vides an upper bound on the spanning number of a cell ina Stellar tree. Specifically, the spanning number χσ of aCP cell σ is bounded by the cardinality of its vertex inci-dence relation Rk,0: 1 ≤ χσ ≤ |Rk,0(σ)|. Figure 7 showsthe mapping ΦTOP for two blocks of the nested kD-treedecomposition of Figure 6(b) over the triangle mesh fromFigure 2.

Once we have defined all the components that form aStellar tree, we must decide how to generate efficient de-compositions of the ambient space in which Σ is embed-ded. Since the nested decomposition ∆, and consequentlythe tree H describing it, are determined by the number ofvertices indexed by a block, we utilize a bucket PR treeto drive our decomposition. This provides a single tun-ing parameter, the bucketing threshold, which we denoteas kV , that uniquely determines the decomposition for a

(a) (b)

Figure 7: Top cell mapping function ΦTOP for two blocks(highlighted in blue) of the nested decomposition fromFigure 6 on the triangle mesh from Figure 2. ΦTOP(b)maps the triangles in the star of the vertices in ΦV ERT (b).

given complex Σ. Recall that a block b in a bucket PR-treeis considered full when it indexes more than kV vertices(in our case, when |ΦV ERT (b)|> kV ). Insertion of a vertexinto a full block causes the block to refine and to redis-tribute its indexed vertices among its children.

As such, the domain decomposition of a Stellar tree de-pends only on the bucketing threshold kV . Smaller valuesof kV yield deeper hierarchies whose leaf blocks index rel-atively few vertices and top CP cells, while larger valuesof kV yield shallower hierarchies with leaf blocks that in-dex more vertices and top CP cells. In other words, kVand the average spanning number χ of a Stellar tree areinversely correlated: χ decreases as kV increases, and topCP cells are, on average, indexed by fewer leaf blocks.

5.2 EncodingWe represent the containment hierarchy H using an ex-plicit pointer-based data structure, in which the blocks ofH use a type of Node structure that changes state fromleaf to internal block during the generation process of aStellar tree (described in detail in Section 6).

We use a brood-based encod-ing [Hunter and Willis, 1991] where each block inH encodes a pointer to its parent block and a singlepointer to its brood of children. This reduces the overallstorage since leaves do not need to encode pointers to eachchild, and also allows us to use the same representationfor n-dimensional quadtrees and kD-trees. We explicitlyencode all internal blocks, but only represent leaf blocksb in H with non-empty maps Φ(b).

10

Page 11: Riccardo Fellegara, University of Maryland, College Park (MD), …kennyweiss.com/papers/Fellegara17.arxiv.pdf · 2021. 1. 20. · Riccardo Fellegara, University of Maryland, College

Figure 8: A Stellar tree hierarchy H over a pure complex.The red and blue rectangles identify the internal blocks HIwhile the green ones represent the leaf blocks HL alongwith their collections of vertices and top CP cells.

The mapped entities of the CP complex Σ are encodedin the leaf blocks HL using the mapping function lists:

1. a list bV of vertex indices in ΣV defined by ΦV ERT (b);

2. a list of lists bT of top CP cell indices in ΣT definedby ΦTOP(b).

Note that each leaf block b encodes the lists of vertices bVand of top CP cells bT in terms of the indices iv and iσ ,respectively, that identify v and σ in the ΣV and ΣT arrays.

Thus, the hierarchy H of a Stellar tree requires 7|H|storage. For each block b we have:

1. three pointers for the hierarchy: one pointer to itsparent, another to its list of children and it is pointedto by one parent;

2. a pointer to a list of vertices bV and the size of thislist;

3. a pointer to a list of top CP cells bT and the size ofthis list.

Figure 8 illustrates a simple containment hierarchy repre-sentation.

Considering the encodings defined in Section 4.2.2, wecan estimate the storage requirements for the EXPLICITand COMPRESSED Stellar trees. The EXPLICIT Stellartree requires a total of |ΣV | references for all such vertexlists, since each vertex is indexed by a single leaf block,and a total of χ · |ΣT | references for all top CP cells lists.Thus, the total cost of the EXPLICIT Stellar tree, includingthe hierarchy (excluding the cost of the indexed mesh) is:

7|H|+ |ΣV |+χ|ΣT |. (7)

Conversely, in a COMPRESSED Stellar tree, we can rein-dex the vertex array ΣV such that all vertices mapped tothe same leaf block are indexed consecutively (see Sec-tion 6.1). Thus, we can encode the bV lists using only twointegers per leaf block for a total cost of 2 · |HL| rather than|ΣV |. Moreover, since leaf blocks no longer need to refer-ence an arbitrary list, these two references can be foldedinto the block’s hierarchical representation for bV (i.e. in-stead of a pointer to a list and a size of the list, we simplyencode the range of vertices in the same space). As thecost of representing the bT lists is µ · |ΣT |, the total costfor encoding a COMPRESSED Stellar tree (excluding thecost of the indexed mesh representation) is:

7|H|+µ|ΣT |. (8)

6 Generating a Stellar treeIn this section, we describe how to generate a COM-PRESSED Stellar tree from an indexed CP complex Σ inarbitrary dimensions. This process is organized into fourmain phases:

1. generate the nested decomposition H by inserting thevertices ΣV into a bucket PR tree with a given bucketthreshold kV ;

2. reindex the vertices of Σ according to a traversal ofthe leaf blocks of H and compress the bV arrays usingSRE;

3. insert the top CP cells of Σ into H;4. reindex the top CP cells of Σ based on locality within

common blocks of H and compress the bT arraysusing SRE.

Our first step is to generate the tree hierarchy H overthe vertices of the complex Σ. Given a user-defined bucketthreshold kV , we utilize a bucket PR tree index over thevertices ΣV to generate a Stellar nD quadtree or kD-treedecomposition. This is the only phase of our generationprocess that depends on the geometry of Σ. Althoughwe do not maintain the spatial extents of each tree block,we can reconstruct them from that of the hierarchy’s rootHROOT (based on a bounding box enclosing Σ) by trackingthe split planes as we descend the tree.

The procedure for inserting a vertex v with index iv inΣV into H is recursive. We use the geometric position ofv to traverse through the internal blocks to the unique leafblock b containing v. After adding v to b (i.e., appending

11

Page 12: Riccardo Fellegara, University of Maryland, College Park (MD), …kennyweiss.com/papers/Fellegara17.arxiv.pdf · 2021. 1. 20. · Riccardo Fellegara, University of Maryland, College

(a) Base mesh Σ:= (ΣV , ΣT )c d

ba

1

8 13

2

511

7

6

4

10

12

3 9

(b) Vertices inserted (kV = 4)c d

ba

12

1 2

3

45

6

8

13

7

9

11 10

(c) Reindexed vertices

Figure 9: Generating a nested hierarchy H over the vertices ΣV of a triangle mesh (a). After inserting the vertices (b),we reindex ΣV according to HL (c).

Algorithm 1 COMPRESS AND REINDEX VERTICES

Require: HROOT is the root block of HRequire: Σ is the CP complex

1: v permutation.INIT(|ΣV |,0)// Step 1: Generate and apply new block vertex indexranges //

2: COMPRESS TREE VERTS(HROOT ,0,v permutation)// Step 2: Update the vertex boundary relation //

3: for all top simplices σ in ΣT do4: for j = 0 to |Rk,0(σ)| do5: Rk,0(σ)[ j]← v permutation[Rk,0(σ)[ j]]

// Step 3: Update the vertex array indices //6: UPDATE ARRAY(ΣV ,v permutation)

iv into the bV array of b), we check if the current blockoverflows the bucketing threshold kV . If it does, we refineb, reinsert its indexed vertices into its children, and, clearbV . Once the vertices are inserted, the decomposition isfixed. We then reindex the vertices following a traversalof the leaf blocks of H such that all vertices mapped to aleaf block have a contiguous range of indices in the rein-dexed ΣV (as detailed in Section 6.1). Figure 9 illustratesa reindexing of the vertices of a planar triangle mesh inthe plane while generating a decomposition with kV = 4.

After generating the nested decomposition and reindex-ing the mesh vertices, we insert each top CP k-cell σ ofΣTk , with index iσ in ΣTk into the leaf blocks of H thatindex its vertices. That is, we iterate through Rk,0(σ) and

Algorithm 2 COMPRESS TREE VERTS

Require: b is a block in HRequire: counter refers to the current vertex idEnsure: v permutation array contains new vertex indices

1: b.v start = counter2: if b ∈HI then3: for all blocks c in CHILD(b) do4: COMPRESS TREE VERTS(c,counter,v permutation)5: else // b ∈HL //6: for all vertices v in ΦV ERT (b) (with index iv in ΣV )

do7: v permutation[iv]← counter++8: b.v end = counter

insert iσ into the bT list of each block b whose vertex mapΦV ERT (b) contains at least one of these vertices. As such,each top CP k-cell σ appears in at least one leaf block ofH, and in at most Rk,0(σ) leaf blocks of H. Due to thevertex reindexing of step (2), this operation is extremelyefficient. Determining if a cell’s vertex lies in a block re-quires only a range comparison on its index iv, rather thana geometric point-in-box test against its position.

Finally, we reindex the top CP cell arrays ΣT to betterexploit the locality induced by the vertex-based decompo-sition and compress the local bT arrays using a sequentialrange encoding over this new index. The reindexing andthe compression of the top CP cells is obtained followingsome traversal of the leaf blocks of H, such that, all topCP cells mapped by the same set of leaf blocks have a con-tiguous range of indices in the reindexed ΣT . This last step

12

Page 13: Riccardo Fellegara, University of Maryland, College Park (MD), …kennyweiss.com/papers/Fellegara17.arxiv.pdf · 2021. 1. 20. · Riccardo Fellegara, University of Maryland, College

Algorithm 3 COMPRESS AND REINDEX CELLS

Require: HROOT is the root block in HRequire: Σ is the CP complexRequire: I is an array associated with the unique leaf

tuples in MRequire: t position is an array associated with the top

CP cells1: t position.INIT(|ΣT |,0)

// Step 1: find unique leaf block tuples and counts //2: EXTRACT LEAF TUPLES(HROOT ,I,t position)

// Step 2: find new position indices of top CP cells //3: EXTRACT CELL INDICES(I,t position)

// Step 3: reorder and SRE compact the top CP cellsarrays //

4: COMPRESS TREE CELLS(HROOT ,t position)// Step 4: update the top CP cells array in Σ //

5: UPDATE ARRAY(ΣT , t position)

is detailed in Section 6.2. As we demonstrate in Section 7,this yields a significant storage savings.

6.1 Reindexing and compressing thevertices

After generating the nested decomposition ∆ and vertexmap ΦV ERT for the Stellar tree, we reindex the vertex arrayΣV to better exploit the spatial coherence induced by ∆. Atthe end of this process, each block of H has a consecutiverange of indices within the global vertex array ΣV . Sinceeach block has a single contiguous range of vertex indices,it trivially compresses under SRE to two values per block,which we denote as vstart and vend .

This reindexing procedure is organized into three mainsteps as outlined in Algorithm 1 and is aided by an auxil-iary array v permutation which stores the new indexfor each vertex in ΣV .

We first perform a depth first traversal of the tree (seeAlgorithm 2) which generates new indices for the meshvertices. For each leaf block b, this provides a contiguousrange of indices for the list of mapped vertices bV , whilefor internal blocks, this provides a single contiguous indexrange for the vertices in all descendant blocks. The newindex is then incorporated into the mesh Σ by replacingthe vertex indices in the vertex-boundary relation arrays(Algorithm 1, Step 2) and in the vertex array (Algorithm 1,Step 3).

6.2 Reindexing and compressing thetop CP cells

After inserting the top CP cells of ΣT into H, we exploitthe spatial coherence of the top CP cells array ΣT and com-press the tree representation using the COMPRESSED en-coding. This procedure is organized into four main phases(see Algorithm 3):

1. navigate the tree to find, for each top CP cell σ , thetuple of leaf blocks that index it. We invert this rela-tion to find, for each such tuple of leaves, the list oftop cells mapped to its leaves;

2. generate a new spatially coherent ordering for the topCP cells of ΣT based on the inverted relation fromthe previous step;

3. apply this ordering to the bT lists of each block andcompact the bT leaf block arrays using SRE compres-sion;

4. update ΣT using the new spatially coherent ordering.Algorithm 3 requires three auxiliary data structures:

1. an associative array, M, which maps an (integer) iden-tifier to each unique tuple of leaf blocks;

2. an array of integers, I, having the same number ofentries as M. Initially, it is used to track the number oftop CP cells associated with each tuple of leaf blocks.In a successive phase, it tracks the next index for atop CP cell in a leaf tuple;

3. an array of integers, t position, of size |ΣT |. Ini-tially, it is used to associate top CP cells with theirleaf tuple identifier. In a successive phase, it is usedto store the new spatially coherent indices for the topCP cells.

Thus, the storage overhead for the auxiliary structures is|ΣT | for the t position and O(|M|) for the map M andthe array I.

The reindexing exploits the spatial coherence of top CPcells that are contained into the same set of leaves by trans-lating spatial proximity in A into index-space proximity inΣT . Figure 10 illustrates this reorganization process over asimple 2D triangle mesh. In the remainder of this section,we summarize the major steps of Algorithm 3.

In the first step (Algorithm EXTRACT LEAF TUPLES),we generate map M, count the number of top CP cells asso-ciated with each tuple of leaf blocks in array I and initial-ize the t position array entries with its tuple identifier.For each leaf block b in H, we visit the top CP cells σ in

13

Page 14: Riccardo Fellegara, University of Maryland, College Park (MD), …kennyweiss.com/papers/Fellegara17.arxiv.pdf · 2021. 1. 20. · Riccardo Fellegara, University of Maryland, College

1

4

7

8

17

123 2

6

13 16

11

914510

15

c d

ba

(a) Original tree

1 --> a b c 2 --> a b3 --> a4 --> b d5 --> a b6 --> b d7 --> c8 --> a c9 --> b d10 --> a c11 --> b c d12 --> a b13 --> c d14 --> b15 --> a d 16 --> c d17 --> b

a --> 3a b --> 2 5 12a b c --> 1a c --> 8 10 15b --> 14 17b d --> 4 6 9b c d --> 11c --> 7c d --> 13 16

(b) Triangles and leaves associa-tions

5

11

15

6

10

41 2

12

16 17

14

13937

8

c d

ba

(c) Reindexed triangles

Figure 10: Top cell reindexing. (a) initial tree with four leaf blocks a,b,c,d (b) maps between triangles and tuples ofleaf blocks (c) reindexed tree.

ΦTOP(b) whose minimum vertex index iv is indexed in b.This ensures that each top CP cell is only visited a singletime. Blocks of H are uniquely indexed by the index oftheir starting vertex vstart .

For each such top CP cell σ with index iσ , we traversethe tree to find the tuple of leaf blocks from the tree thatindex σ . We then look up its unique identifier key in M (orcreate a new one and insert it into M). We then incrementthe count for this tuple (I[key]++), and associate σ withthis tuple (t position[iσ]=key).

Once we have visited H, each entry of t positioncontains the identifier of the tuple of leaf blocks indexingits corresponding top cell and I contains the number oftop CP cells indexed by each leaf tuple. M is no longerneeded and we can discard it.

In the next step (Algorithm EXTRACT CELL INDICES),we use the I and t position arrays to find the up-dated position for each top CP cell in ΣT , which iscomputed in place in t position. First, we convertthe cell counts in array I into starting indexes for thetop CP cells grouped by the same set of leaf blocks bytaking the prefix sum of array I (I=prefixSum(I)).We then use array I to update the t position ar-ray by looping through the top CP cells, and replac-ing the tuple identifier in t position with the nextavailable index from I and increment the counter inI (t position[iσ] = I[t position[iσ]]++).At this point, t position is a permutation array that

encodes a more spatially coherent ordering for the top CPcells and I is no longer needed.

Finally (Algorithm COMPRESS TREE CELLS), we ap-ply the new ordering from array t position to the lo-cal bT arrays and sort and SRE compress them. We thenuse t position to permute the global top CP cells arrayΣT .

7 Evaluation of storage costs

In this section, we evaluate the storage costs of the indexedrepresentation for the underlying CP complex and com-pare the Stellar tree to several state-of-the-art topologicalmesh data structures. After introducing the datasets usedin our experimental evaluation (Section 7.1), we comparethe cost of different Stellar tree encodings (Section 7.2).We then compare the Stellar tree against state-of-the-arttopological data structures (Section 7.3).

7.1 Experimental datasets

We have performed experiments on a range of CP complexdatasets consisting of triangle, quadrilateral, tetrahedraland hexahedral meshes in E3 as well as several pure non-manifold higher dimensional simplicial complexes gener-ated through a recursive Sierpinski-like refinement pro-cess and several higher dimensional simplicial complexesgenerated through a Vietoris-Rips generation tool (using

14

Page 15: Riccardo Fellegara, University of Maryland, College Park (MD), …kennyweiss.com/papers/Fellegara17.arxiv.pdf · 2021. 1. 20. · Riccardo Fellegara, University of Maryland, College

Data |ΣV | |ΣT | kV |H| |HL| χ

NEPTUNE

TR

IAN

GU

LA

R 2.00M 4.01M kS 100 73.7K 58.8K 1.37kL 500 15.0K 12.2K 1.17

STATUETTE 5.00M 10.0M kS 100 182K 147K 1.36kL 500 39.8K 32.7K 1.17

LUCY 14.0M 28.1M kS 100 464K 374K 1.35kL 500 88.8K 70.3K 1.16

NEPTUNE

QU

AD

12.0M 12.0M kS 100 407K 322K 1.47kL 800 55.0K 44.3K 1.17

STATUETTE 30.0M 30.0M kS 100 1.10M 883K 1.47kL 800 146K 120K 1.17

LUCY 84.1M 84.2M kS 100 3.53M 2.85M 1.54kL 800 329K 265K 1.17

BONSAI

TE

TR

AH

ED

RA

L 4.25M 24.4M kS 400 45.2K 39.5K 1.58kL 800 17.9K 15.7K 1.44

VISMALE 4.65M 26.5M kS 400 32.8K 28.7K 1.52kL 800 17.7K 15.5K 1.45

FOOT 5.02M 29.5M kS 400 88.8K 77.7K 1.75kL 800 17.1K 15.0K 1.43

F16

HE

XA

HE

DR

AL 27.9M 25.4M kS 100 1.11M 972K 3.08

kL 1000 113K 99.0K 1.90

SAN FERN 61.3M 55.9M kS 100 2.02M 1.77M 3.15kL 1000 247K 216K 1.88

VISMALE 136M 125M kS 100 7.39M 6.46M 2.8kL 1000 800K 700K 1.72

5D

PR

OB

AB

ILIS

TIC 383K 26.5M kS 100 37.4K 36.1K 4.39

kL 500 2.79K 2.68K 2.55

7D 239K 258M kS 100 10.8K 4.87K 4.98kL 500 2.02K 1.00K 3.78

40D 204K 16.5M kS 100 15.2K 4.32K 36.2kL 1000 1.56K 550 34.0

VISMALE 7D

V-R

IPS 4.65M 6.39M kS 400 32.8K 28.7K 1.44

kL 800 17.7K 15.5K 1.37

FOOT 10D 5.02M 63.9M kS 400 88.8K 77.7K 2.02kL 800 17.1K 15.0K 1.56

LUCY 34D 14.0M 41.1M kS 100 464K 374K 2.47kL 500 88.8K 70.3K 1.73

Table 1: Overview of experimental datasets and the gen-erated Stellar trees. For each dataset, we list the type ofCP complex and the number of vertices |ΣV | and top CPcells |ΣT |. For each Stellar tree, we list the thresholds kV ,the number of blocks in the index (total |H| and leaf |HL|)and the average spanning number χ .

the algorithm from [Zomorodian, 2010]) and embedded inE3.

The triangle and tetrahedral meshes are native modelsranging from 4 to 28 million triangles and from 24 to 29million tetrahedra, where we use the term native to referto models from public domain repositories discretizing ob-jects in space. Since we only had access to relatively smallnative quad and hex meshes (with tens to hundreds of thou-sand elements), we have generated some larger modelsranging from 12 to 125 million elements from our triangleand tetrahedral models. The generation procedure refineseach triangle into three quadrilaterals and each tetrahe-dron into four hexahedra by adding vertices at the facecentroids.

To experiment with pure non-manifold models in higherdimensions, we have generated some models based ona process that we call probabilistic Sierpinski filtering,where we iteratively apply regular refinement to all sim-plices in the complex and randomly remove a fixed propor-tion of the generated simplices in each iteration. For ourexperiments, we have created 5-, 7- and 40-dimensionalmodels using a filtering threshold of 65%, with differinglevels of refinement, yielding pure simplicial complexeswith 16.5 million to 258 million top simplices.

Finally, to experiment with general simplicial com-plexes in higher dimensions, we have generated several(non-pure) non-manifold higher dimensional Vietoris-Rips(V-Rips) complexes, which we embed in a lower dimen-sional space. A V-Rips complex is a flag complex de-fined by a neighborhood graph over a point cloud whosearcs connect pairs of points with distance less than a user-provided parameter ε . Given the neighborhood graph,the simplices of the V-Rips complexes are defined by itscliques, subsets of the graph vertices that form a completesubgraph. We refer to [Zomorodian, 2010] for further de-tails. For our experiments, we have generated three V-Rips models over the vertices of a triangle model (LUCY)and of two tetrahedral models (VISMALE and FOOT) fromour manifold datasets and set our distance threshold ε to{0.1%,0.5%,0.4%} of the bounding box diagonal, respec-tively. The generated complexes range from 6.39 millionto 63.9 million top simplices and from dimensions 7 to34. Although the generated datasets are synthetic, theyprovide a good starting point to demonstrate the efficiencyof the Stellar tree in higher dimensions.

For every model, we have built two Stellar trees to com-

15

Page 16: Riccardo Fellegara, University of Maryland, College Park (MD), …kennyweiss.com/papers/Fellegara17.arxiv.pdf · 2021. 1. 20. · Riccardo Fellegara, University of Maryland, College

pare the dependence of the performance on our single pa-rameter kV , which determines the maximum number ofvertices that each leaf block of the tree can index. Thesetwo kV values are chosen to obtain trees with differentcharacteristics: one extremely deep and the other relativelycoarse. We have also attempted to maintain similar χ val-ues across the datasets. In the following, we use kS to referto the smaller kV value and kL for the larger one.

We have also used different spatial indexes to repre-sent the containment hierarchy H based on the dimensionn of the ambient space A: in low dimensions, we use aquadtree-like subdivision, and thus, we have a quadtreein 2D, an octree in 3D, and so on, up to 6D; in dimen-sions higher than 6, we switch to a kD-tree subdivision.While quadtree-like subdivisions are quite efficient inlower dimension, the data becomes sparser in higher di-mensions and is better modeled by kD-trees with fewerspatial splits [Samet, 2006].

Table 7.1 summarizes the number of elements and thesizes of the spatial decompositions for the two Stellar treerepresentations (kS and kL) of each experimental dataset.All tests have been performed on a PC equipped with a 3.2gigahertz Intel i7-3930K CPU with 64 gigabytes of RAM.

7.2 Analysis of Stellar tree encodingsWe begin by comparing the EXPLICIT and COMPRESSEDStellar tree encodings as well as a VERTEX-COMPRESSEDencoding, similar to the PR-star encoding for tetrahedralmeshes [Weiss et al., 2011] that compresses only the ver-tices array but not the top cells arrays. Table 7.2 lists thestorage costs for the indexed ‘Base Mesh’ as well as theadditional costs required for the three Stellar tree encod-ings, in terms of megabytes (MBs). Note that Stellar treesbased on the COMPRESSED encoding are always the mostcompact.

We first consider the storage requirements of the hier-archical structures and observe that higher values of kVyield significant reductions in memory requirements forthe COMPRESSED representation. Whereas the EXPLICITand VERTEX-COMPRESSED kL representations only obtainabout a 20-50% reduction in storage requirements com-pared to their kS counterparts (e.g. 26.2 MB vs. 32.0 MBfor the EXPLICIT NEPTUNE dataset), the COMPRESSEDkL datasets are 3-10 times as compact as their kS counter-parts (e.g. 1.24 MB vs. 5.76 MB for the COMPRESSED

Data BaseStellar tree

mesh EXPLICIT VERTEX COMPRESScost χ cost χ cost µ

NEPTUNE

TR

IAN

GU

LA

R kS 45.9 32.0 1.37 24.3 1.37 5.76 0.16kL 26.2 1.17 18.6 1.17 1.24 0.04

STATUETTE kS 114 79.2 1.36 60.2 1.36 14.6 0.17kL 65.6 1.17 46.6 1.17 3.41 0.04

LUCY kS 321 220 1.35 166 1.35 34.5 0.12kL 181 1.16 128 1.16 6.18 0.02

NEPTUNE

QU

AD

kS 183 132 1.47 86.0 1.47 28.0 0.20kL 102 1.17 56.3 1.17 3.86 0.03

STATUETTE kS 458 333 1.47 219 1.47 76.0 0.22kL 255 1.17 141 1.17 10.4 0.03

LUCY kS 1.3K 976 1.54 656 1.54 245 0.26kL 710 1.17 389 1.17 23.1 0.03

BONSAI

TE

TR

AH

ED

RA

L kS 373 166 1.58 150 1.58 6.55 0.05kL 151 1.44 135 1.44 2.65 0.02

VISMALE kS 405 173 1.52 156 1.52 4.87 0.03kL 165 1.45 147 1.45 2.69 0.02

FOOT kS 450 220 1.75 201 1.75 13.0 0.08kL 181 1.43 161 1.43 2.60 0.02

F16

HE

XA

HE

DR

AL kS 775 456 3.08 349 3.08 151 1.03

kL 296 1.90 189 1.90 18.0 0.13

SAN FERN kS 1.7K 999 3.15 765 3.15 275 0.86kL 646 1.88 412 1.88 33.1 0.10

VISMALE kS 3.8K 2.2K 2.89 1.7K 2.89 887 1.15kL 1.4K 1.72 858 1.72 106 0.15

5D

PR

OB

AB

ILIS

TIC kS 607 448 4.39 446 4.39 63.7 0.61

kL 259 2.55 258 2.55 3.57 0.03

7D kS 7.9K 4.9K 4.98 4.9K 4.98 101 0.10kL 3.7K 3.78 3.7K 3.78 12.2 0.01

40D kS 2.6K 2.3K 36.2 2.3K 36.2 55.7 0.87kL 2.1K 34.0 2.1K 34.0 0.45 0.01

VISMALE 7D

V-R

IPS

kS 134 56.2 1.44 37.0 1.44 7.38 0.26kL 53.7 1.37 34.6 1.37 4.54 0.18

FOOT 10D kS 2.1K 604 2.02 586 2.02 65.1 0.33kL 431 1.56 413 1.56 11.5 0.12

LUCY 34D kS 2.0K 416 2.47 363 2.47 86.2 0.92kL 292 1.73 238 1.73 19.0 0.53

Table 2: Storage costs (in MBs) and average spanning(χ) and reference (µ) numbers for different Stellar treeencodings.

16

Page 17: Riccardo Fellegara, University of Maryland, College Park (MD), …kennyweiss.com/papers/Fellegara17.arxiv.pdf · 2021. 1. 20. · Riccardo Fellegara, University of Maryland, College

NEPTUNE dataset).Next, comparing the three encodings, we see that

SRE compressing the vertices alone, as in the VERTEX-COMPRESSED representation achieves only 10-20% reduc-tion in storage requirements compared to the EXPLICITrepresentation. In contrast, compressing the vertices andtop cells, as in our COMPRESSED representation, yields anorder of magnitude improvement, requiring around 10-20times less storage. This trend is nicely tracked by com-paring the average references number µ to the averagespanning number χ , where χ is typically around ten timeslarger than µ .

Considering the hierarchical storage requirementsagainst those of the original indexed base mesh, we ob-serve that EXPLICIT Stellar trees require about 50% to80% the storage of the base mesh, while COMPRESSEDStellar trees require only about around 10% (kS) and 1%(kL) the storage of the EXPLICIT representation. Thus,practically the entire storage costs for the COMPRESSEDrepresentation are due to the underlying indexed mesh.

In the remainder of this paper, we restrict our attentionto the COMPRESSED Stellar Tree, which we will refer tosimply as the Stellar tree.

7.3 Comparison with dimension-independent data structures

In this subsection, we compare the Stellar tree to the topo-logical data structures proposed in the literature for sim-plicial complexes.

Based on our analysis of the literature (see Sec-tion 3.1), the most relevant dimension-independent topo-logical data structures to the Stellar tree are: the Inci-dence Graph (IG), the Incidence Simplicial (IS), the Sim-plex tree and the IA∗ data structures. Since Canino etal. demonstrated that the IA∗ data structure is morecompact than the IG and the IS data structures forlow and higher-dimensional datasets [Canino et al., 2011,Canino and De Floriani, 2014], we restrict our compar-isons to the IA∗ data structure and the Simplex tree.

The IA∗ data structure has been defined for dimension-independent simplicial complexes, and in this work it hasbeen extended to dimension-independent CP complexes.It explicitly encodes all vertices and top CP k-cells in Σ,with 0 < k ≤ d, as well as the following relations:

(i) boundary relation Rk,0(σ) for each top CP k-cell σ ;

Data kV

Storage

mesh IA∗ Simplex Stellar treeconn. tot tree index tot

NEPTUNE

TR

IAN

GU

LA

R kS 45.9 53.5 99.4 321 5.76 51.6kL 1.24 47.1

STATUETTE kS 114 134 248 801 14.6 129kL 3.41 118

LUCY kS 321 374 695 2.2K 34.5 355kL 6.18 327

NEPTUNE

QU

AD

kS 183 229 413 n.a. 28.0 211kL 3.86 187

STATUETTE kS 458 572 1.0K n.a. 76.0 534kL 10.4 468

LUCY kS 1.3K 1.6K 2.9K n.a. 245 1.5KkL 23.1 1.3K

BONSAIT

ET

RA

HE

DR

AL kS 373 389 762 2.8K 6.55 379

kL 2.65 375

VISMALE kS 405 470 875 3.1K 4.87 410kL 2.69 408

FOOT kS 450 470 920 3.4K 13.0 463kL 2.60 453

F16

HE

XA

HE

DR

AL kS 775 688 1.5K n.a. 151 926

kL 18.0 793

SAN FERN kS 1.7K 1.5K 3.2K n.a. 275 2.0KkL 33.1 1.7K

VISMALE kS 3.8K 3.4K 7.2K n.a. 887 4.7KkL 106 3.9K

5D

PR

OB

AB

ILIS

TIC kS 607 608 1.2K 7.1K 63.7 670

kL 3.57 610

7D kS 7.9K 7.9K 15.8K 155K 101 8.0KkL 12.2 7.9K

40D kS 2.6K 2.6K 5.2K OOM 55.7 2.6KkL 0.45 2.6K

VISMALE 7D

V-R

IPS

kS 134 152 286 9.9K 7.38 142kL 4.54 139

FOOT 10D kS 2.1K 2.1K 4.2K 376K 65.1 2.2KkL 11.5 2.1K

LUCY 34D kS 2.0K 2.1K 4.1K 2.1M× 86.2 2.1KkL 19.0 2.1K

Table 3: Storage costs, expressed in megabytes, of theseveral data structures on experimental datasets.

17

Page 18: Riccardo Fellegara, University of Maryland, College Park (MD), …kennyweiss.com/papers/Fellegara17.arxiv.pdf · 2021. 1. 20. · Riccardo Fellegara, University of Maryland, College

(ii) adjacency relation Rk,k(σ) for each top CP k-cell σ ;(iii) co-boundary relation Rk−1,k(τ) for each non-

manifold (k-1)-cell τ bounding a top CP k-cell;(iv) partial co-boundary relation R∗0,k(v) for each vertex v.

This consists of one arbitrarily selected top CP k-cellfrom each k-cluster in the star of v, where a k-clusteris a (k−2)-connected component of the link of v.

The Simplex tree encodes all j-simplices in Σ, with0 ≤ j ≤ d, and each block in the tree represents a ver-tex index. Each simplex σ is uniquely represented asan ordered path in the trie whose nodes correspond tothe boundary vertices of σ . Thus, the nodes of the treeare in bijection with the simplices of the complex, anda Simplex tree over a simplicial complex with |Σ| sim-plices (of any dimension) contains exactly |Σ| nodes. Wecompare the Stellar tree to the implementation providedin [GUDHI, 2016], where each node of a Simplex tree re-quires 3 references to the tree structure (one pointer to theparent node, one pointer to the first of the children andone pointer to the next sibling node) and a reference tothe label of the vertex, for a total of 4|Σ| references. Wenote that this implementation only supports the efficientextraction of boundary relations. An implementation thatsupports extraction of co-boundary and adjacency rela-tions (as defined in [Boissonnat and Maria, 2014]) wouldrequire additional storage.

The Stellar tree and the IA∗ data structure can bothrepresent CP complexes in arbitrary dimensions and thusthe two structures have the same expressive power. Con-versely, the Simplex tree can represent only simplicialcomplexes in arbitrary dimensions. A difference betweenthe Stellar tree and the other two data structures is that theStellar tree requires that the complex must be embeddedin a space En, while the other data structures are purelytopological and do not require a spatial embedding.

We now consider the storage requirements for the dif-ferent data structures (cf. Table 3). In 3D we considertriangle, tetrahedral, quad and hexahedral meshes, whilein arbitrary dimensions we evaluate the storage costs onprobabilistic-refinement models and Vietoris-Rips com-plexes. The analysis compares the topological overheadof the data structures, and thus, we omit the cost of thegeometry of the underlying complex, which is common toall the data structures. For the Stellar tree we consider thefull connectivity requirements, i.e., we consider both thehierarchy H and the boundary relation Rk,0 from the base

mesh (see column tot in Table 3).We can note that the Stellar tree is always more com-

pact than the IA∗ data structure, requiring, on aver-age, half of the storage on triangles, quads, tetrahedralmeshes, probabilistic-refinement datasets and on V-Ripscomplexes, and from 40% to 50% less storage on hexa-hedral meshes. Considering now the connectivity storagecosts, i.e., the storage required by the hierarchical struc-ture H for the Stellar tree (see column index in Table 3)and the cost to encode the co-boundary and adjacenciesrelations in the IA∗ data structure (see column conn. inTable 3), we can note that the Stellar tree requires, withthe used kV values, a small fraction of the storage requiredby the IA∗ data structure, saving, in general, from 90% to99% of the storage and from 80% to 99% on hexahedraldatasets.

Comparing now the Stellar tree with respect to the Sim-plex tree, we can observe that the Stellar tree is alwaysmore compact, requiring from 65% to 80% less storageon 3D models, and from 85% to 99% less storage on thehigher dimensional ones. We can observe how the stor-age requirements of the Simplex tree degenerate as thecomplex dimension increases.

These results confirm that the Stellar tree can efficientlyrepresent non-manifold complexes in higher dimensions,with only a slight overhead relative to that of the indexedbase mesh. This is largely due to the Stellar tree’s ex-ploitation and SRE compression of the complex’s spatiallocality.

8 General application paradigm

An advantage of the Stellar tree data structure is that itenables one to defer decisions about the details of the localtopological data structure. Thus, one can easily customizethe structure and layout of the representation to better suitthe application.

We note that processing individual mesh elements ina Stellar tree representation can be expensive due to thecompressed leaf block format. For example, to reconstructthe star of a given vertex v, we must first identify the leafblock b indexing v, and then visit the top cell lists in b toidentify those that are incident in v. To amortize the recon-struction costs, we adopt a batched processing strategy forStellar tree applications, in which we locally reconstruct

18

Page 19: Riccardo Fellegara, University of Maryland, College Park (MD), …kennyweiss.com/papers/Fellegara17.arxiv.pdf · 2021. 1. 20. · Riccardo Fellegara, University of Maryland, College

and process local subsets of the complex. This tends towork well in practice since mesh processing applicationsare often applied to the entire complex or to spatially co-herent regions of interest.

The general paradigm for executing applications on theStellar tree is to iterate through the leaf blocks of the hi-erarchy H, locally processing the encoded complex in astreaming manner. For each leaf block b in H, we con-struct a local topological data structure catered to the ap-plication and use to process the local complex. We referto this local data structure as an expanded leaf-block rep-resentation bE . Once we finish processing the leaf blockb, we can discard bE and begin processing the next block.

For efficiency and at relatively low storage overhead,we can cache the expanded leaf block representation bE ,using, e.g., a Least-Recent-Used (LRU) cache. This can beespecially advantageous in applications that require pro-cessing portions of the complex in neighboring leaf blockb. Adopting a fixed size cache allows us to amortize theextraction of the local data structures, with a controllablestorage overhead.

Algorithm 4 shows the general paradigm for executingan application on the Stellar tree. The algorithm recur-sively visits all the blocks of the hierarchy H. If block bis internal, we recursively call the procedure on b’s chil-dren blocks. Otherwise, b is a leaf block, so we eitherrecover bE from the LRU cache (rows 5–10) or constructthe desired application-dependent local topological datastructure bE . After using this local data structure to pro-cess the local geometry in b (row 9), we either cache ordiscard bE (rows 10–13).

We distinguish between applications executed on a Stel-lar tree based on a local or a global approach. In the for-mer, the scope of auxiliary variables and data structures islimited to that of a single leaf block b, or to a restrictedsubset of its neighbors. In the latter, auxiliary variablesare maintained globally (outside the scope of a leaf blockb) as we process the complex. In general, the local ap-proach is preferred for applications that extract or analyzelocal features, while the global approach is preferred forapplications that extract or analyze global features. Exam-ples of the former include those that depend on the link orstar of mesh elements or on the gradient of a scalar fielddefined on the vertices of the complex. Examples of thelatter include geometric simplification or morphologicalfeature analysis.

Algorithm 4 STELLAR TREE APPLICATION

Require: b is a block in HRequire: cache is a fixed-size LRU-cache

1: if b ∈HI then2: for all blocks c in CHILD(b) do3: STELLAR APPLICATION(c,cache)4: else // b ∈HL //5: if cache.HAS IN(b) then // expanded bE is in cache6: bE ← cache.GET(b)7: else8: bE ← expand b representation9: execute application using bE

10: if cache.MAX SIZE() > 0 then // we use a cache //11: save bE in cache12: else13: discard bE

The decision between using a local and global approachinvolves a tradeoff between minimizing memory and ex-ecution times. Due to the limited scope of auxiliary datastructures in the local approach, the storage overhead istypically proportional to the complexity of the local com-plex. However, this strategy leads to an increased num-ber of memory allocations relative to a global approachsince each leaf block expansion requires memory alloca-tions. Conversely, while the auxiliary data structures in theglobal approach are allocated only once, these structurescan require significantly more storage space compared tothe local approach.

9 Current DevelopmentsCurrently, we are extensively experiment the Stellar treeon several applications, such as:

1. the extraction of individual topological relations, fo-cusing on the more interesting co-boundary and adja-cency relations;

2. the generation of existing state of the art topologicaldata structures, such as the half-edge data structureover polynomial complexes and adjacency based datastructures of manifold (IA) and non-manifold (IA∗)CP complexes;

Topological queries are the key building blocks for lo-cally traversing and processing the underlying complex.Co-boundary queries are naturally supported by the Stel-lar decomposition model. By definition, all regions ofthe decomposition that contain at least one vertex of a CP

19

Page 20: Riccardo Fellegara, University of Maryland, College Park (MD), …kennyweiss.com/papers/Fellegara17.arxiv.pdf · 2021. 1. 20. · Riccardo Fellegara, University of Maryland, College

cell τ must index all CP cells in the star of τ (see Equa-tion 1). Since the top cells are explicitly represented inΣ, the key topological relations to extract is the the ver-tex co-boundary relation R0,k restricted to the top k-cellsof Σ. The restricted vertex co-boundary relation R0,k in aleaf block b can be generated by inverting boundary rela-tion Rk,0 on the top CP k-cells in ΦTOP(b). Since the in-dexed vertices in the leaf blocks of a COMPRESSED Stellartree are contiguous, with indices in the range [vstart ,vend),we encode our local data structure using an array of size|ΦV ERT (b)|= vend− vstart . Each position in the array cor-responds to a vertex indexed by b and points to an (ini-tially empty) list of indexes from ΣT . We populate thesearrays by iterating through relation Rk,0 of the top CP k-cells in ΦTOP(b). For each cell σ whose boundary relationRk,0(σ) has a vertex with index iv ∈ [vstart ,vend), we addthe index of σ to vertex v’s list. All the other co-boundaryrelations are just a specialization of the restricted vertexco-boundary.

The efficient extraction of topological relations is re-quired for the generation of topological data structureswithin the Stellar tree. In our current developments weare considering two popular topological mesh data struc-tures over CP complexes: the half-edge data structure overpolygonal 2-manifolds and the IA∗ data structure over non-manifold CP complexes in arbitrary dimension. These twoapplications demonstrate the versatility of the Stellar treerepresentation and exercise many of the operations nec-essary for other mesh processing tasks. In both cases,we define customized topological relations and auxiliarydata structures as we stream through the leaf blocks of thetree and take either a global approach, to reconstruct thefull topological data structure, or a local approach, whichreconstructs coherent subsets of the full data structure re-stricted to the portion of the complex indexed within eachleaf block. In the former case, Stellar trees enable generat-ing the global topological data structures using a fractionof the memory as would be required to directly generatefrom an indexed representation. In the latter case, the localapproach can be used to adapt local regions of the Stellartree’s underlying complex to algorithms defined for exist-ing topological data structures.

AcknowledgmentsThis work has been partially supported by the NationalScience Foundation under grant number IIS-1116747. Ithas also been performed under the auspices of the U.S.Department of Energy by Lawrence Livermore NationalLaboratory under contract DE-AC52-07NA27344.

Datasets are courtesy of Volvis repository (BONSAI,F16 and FOOT), the Volume Library (volib) (VISMALE),CMU Unstructured Mesh Suite (SAN FERNANDO) andAim@Shape repository (NEPTUNE, STATUETTE andLUCY).

References[Attali et al., 2012] Attali, D., Lieutier, A., and Salinas,

D. (2012). Efficient data structure for representing andsimplifying simplicial complexes in high dimensions.International Journal of Computational Geometry &Applications, 22(04):279–303.

[Bentley, 1975] Bentley, J. (1975). Multidimensional bi-nary search trees used for associative searching. Com-munications of the ACM, 18(9):509–517.

[Boissonnat and Maria, 2014] Boissonnat, J.-D. andMaria, C. (2014). The simplex tree: An efficientdata structure for general simplicial complexes.Algorithmica, 70(3):406–427.

[Canino and De Floriani, 2014] Canino, D. and De Flori-ani, L. (2014). Representing simplicial complexes withMangroves. In Proceedings of the 22nd InternationalMeshing Roundtable, pages 465–483. Springer.

[Canino et al., 2011] Canino, D., De Floriani, L., andWeiss, K. (2011). IA∗: An adjacency-based represen-tation for non-manifold simplicial shapes in arbitrarydimensions. Computers & Graphics, 35(3):747–753.

[Carlbom et al., 1985] Carlbom, I., Chakravarty, I., andVanderschel, D. (1985). A hierarchical data structurefor representing the spatial decomposition of 3d objects.IEEE Computer Graphics and Applications, 5(4):24–31.

[Cignoni et al., 2003a] Cignoni, P., Ganovelli, F., Gob-betti, E., Marton, F., Ponchio, F., and Scopigno, R.

20

Page 21: Riccardo Fellegara, University of Maryland, College Park (MD), …kennyweiss.com/papers/Fellegara17.arxiv.pdf · 2021. 1. 20. · Riccardo Fellegara, University of Maryland, College

(2003a). BDAM – Batched Dynamic Adaptive Meshesfor high performance terrain visualization. ComputerGraphics Forum, 22(3):505–514.

[Cignoni et al., 2004] Cignoni, P., Ganovelli, F., Gob-betti, E., Marton, F., Ponchio, F., and Scopigno, R.(2004). Adaptive tetrapuzzles: Efficient out-of-coreconstruction and visualization of gigantic multiresolu-tion polygonal models. ACM Transactions on Graphics,23(3):796–803.

[Cignoni et al., 2003b] Cignoni, P., Montani, C., Roc-chini, C., and Scopigno, R. (2003b). External memorymanagement and simplification of huge meshes. IEEETransactions on Visualization and Computer Graphics,9(4):525–537.

[Damiand and Lienhardt, 2014] Damiand, G. and Lien-hardt, P. (2014). Combinatorial Maps: Efficient DataStructures for Computer Graphics and Image Process-ing. CRC Press.

[De Floriani et al., 2008] De Floriani, L., Facinoli, M.,Magillo, P., and Dimitri, D. (2008). A hierarchicalspatial index for triangulated surfaces. In Proceedingsof the Third International Conference on ComputerGraphics Theory and Applications (GRAPP 2008),pages 86–91.

[De Floriani et al., 2010] De Floriani, L., Fellegara, R.,and Magillo, P. (2010). Spatial indexing on tetrahe-dral meshes. In Proceedings of the 18th SIGSPATIALInternational Conference on Advances in GeographicInformation Systems, pages 506–509. ACM.

[De Floriani et al., 2004] De Floriani, L., Greenfield-boyce, D., and Hui, A. (2004). A data structure for non-manifold simplicial d-complexes. In Proceedings ofthe 2004 Eurographics/ACM SIGGRAPH symposiumon Geometry processing, pages 83–92. ACM.

[De Floriani and Hui, 2005] De Floriani, L. and Hui, A.(2005). Data structures for simplicial complexes: Ananalysis and a comparison. In Proceedings of thethird Eurographics symposium on Geometry process-ing, pages 119–es. Eurographics Association.

[De Floriani et al., 2010] De Floriani, L., Hui, A.,Panozzo, D., and Canino, D. (2010). A dimension-independent data structure for simplicial complexes.Proceedings of the 19th International MeshingRoundtable, pages 403–420.

[Dey et al., 2010] Dey, T., Levine, J., and Slatton, A.(2010). Localized delaunay refinement for samplingand meshing. Computer Graphics Forum, 29(5):1723–1732.

[Edelsbrunner, 1987] Edelsbrunner, H. (1987). Algo-rithms in combinatorial geometry, volume 10. SpringerVerlag.

[Fellegara et al., 2014] Fellegara, R., Iuricich, F., De Flo-riani, L., and Weiss, K. (2014). Efficient computationand simplification of discrete Morse decompositions ontriangulated terrains. In Proceedings of the 22th ACMSIGSPATIAL International Conference on Advances inGeographic Information Systems. ACM.

[Fredkin, 1960] Fredkin, E. (1960). Trie memory. Com-munications of the ACM, 3(9):490–499.

[Fugacci et al., 2015] Fugacci, U., Iuricich., F., andDe Floriani, L. (2015). Homology computation inhigher dimensions based on discrete morse theory. Inin preparation.

[GUDHI, 2016] GUDHI (2016). Geometric understand-ing in higher dimensions (GUDHI). https://project.inria.fr/gudhi/ [Online; accessed06-March-2016].

[Gurung and Rossignac, 2009] Gurung, T. andRossignac, J. (2009). SOT: A compact repre-sentation for tetrahedral meshes. In ProceedingsSIAM/ACM Geometric and Physical Modeling, SPM’09, pages 79–88, San Francisco, USA.

[Held and Marshall, 1991] Held, G. and Marshall, T.(1991). Data compression; techniques and applica-tions: Hardware and software considerations. JohnWiley & Sons.

[Hunter and Willis, 1991] Hunter, A. and Willis, P.(1991). Classification of quad-encoding techniques. InComputer Graphics Forum, volume 10, pages 97–112.

21

Page 22: Riccardo Fellegara, University of Maryland, College Park (MD), …kennyweiss.com/papers/Fellegara17.arxiv.pdf · 2021. 1. 20. · Riccardo Fellegara, University of Maryland, College

[Lawson, 1977] Lawson, C. L. (1977). Software for C1

surface interpolation. In Rice, J., editor, MathematicalSoftware III, pages 161–194. Academic Press.

[Lienhardt, 1994] Lienhardt, P. (1994). N-dimensionalgeneralized combinatorial maps and cellular quasi-manifolds. International Journal of Computational Ge-ometry and Applications, 4(3):275–324.

[Mantyla, 1988] Mantyla, M. (1988). An Introduction toSolid Modeling. Computer Science Press.

[MTDSL, 2014] MTDSL (2014). Mangrove topologi-cal data structure library. http://mangrovetds.sourceforge.net/ [Online; accessed 02-March-2015].

[Nabutovsky, 1996] Nabutovsky, A. (1996). Geometryof the space of triangulations of a compact manifold.Communications in mathematical physics, 181(2):303–330.

[Navazo, 1989] Navazo, I. (1989). Extended octree rep-resentation of general solids with plane faces: Modelstructure and algorithms. Computer & Graphics,13(1):5–16.

[Nielson, 1997] Nielson, G. M. (1997). Tools for trian-gulations and tetrahedralizations and constructing func-tions defined over them. In Nielson, G. M., Hagen,H., and Muller, H., editors, Scientific Visualization:overviews, Methodologies and Techniques, chapter 20,pages 429–525. IEEE Computer Society, Silver Spring,MD.

[Paoluzzi et al., 1993] Paoluzzi, A., Bernardini, F., Cat-tani, C., and Ferrucci, V. (1993). Dimension-independent modeling with simplicial complexes. ACMTransactions on Graphics (TOG), 12(1):56–102.

[Poirier et al., 1998] Poirier, D., Allmaras, S., McCarthy,D., Smith, M., and Enomoto, F. (1998). The CGNSsystem. AIAA Fluid Dynamics Conference.

[Remacle and Shephard, 2003] Remacle, J. F. and Shep-hard, M. S. (2003). An algorithm oriented meshdatabase. International Journal for Numerical Meth-ods in Engineering, 58(2):349–374.

[Rossignac et al., 2001] Rossignac, J., Safonova, A., andSzymczak, A. (2001). 3D compression made sim-ple: Edge-Breaker on a Corner Table. In Proceed-ings Shape Modeling International 2001, Genova, Italy.IEEE Computer Society.

[Samet, 2006] Samet, H. (2006). Foundations of Multidi-mensional and Metric Data Structures. Morgan Kauf-mann.

[Samet and Webber, 1985] Samet, H. and Webber, R.(1985). Storing a collection of polygons usingquadtrees. ACM Transactions on Graphics (TOG),4(3):182–222.

[Schoof and Yarberry, 1994] Schoof, L. A. and Yarberry,V. R. (1994). EXODUS II: A finite element data model.Technical Report SAND92-2137, Sandia National Lab-oratories, Albuquerque, NM.

[Tautges, 2010] Tautges, T. J. (2010). Canonical num-bering systems for finite-element codes. InternationalJournal for Numerical Methods in Biomedical Engi-neering, 26(12):1559–1572.

[Weiss and De Floriani, 2011] Weiss, K. and De Flori-ani, L. (2011). Simplex and diamond hierarchies:Models and applications. Computer Graphics Forum,30(8):2127–2155.

[Weiss et al., 2011] Weiss, K., Fellegara, R., De Floriani,L., and Velloso, M. (2011). The PR-star octree: Aspatio-topological data structure for tetrahedral meshes.In Proceedings of the 19th ACM SIGSPATIAL Interna-tional Conference on Advances in Geographic Informa-tion Systems, pages 92–101. ACM.

[Weiss et al., 2013] Weiss, K., Iuricich, F., Fellegara, R.,and De Floriani, L. (2013). A primal/dual represen-tation for discrete Morse complexes on tetrahedralmeshes. In Computer Graphics Forum, volume 32,pages 361–370.

[Zomorodian, 2010] Zomorodian, A. (2010). Fast con-struction of the Vietoris-Rips complex. Computers &Graphics, 34(3):263–271.

22