PAVEL: Decorative Patterns with Packed Volumetric Elements
Abstract.
Many real-world hand-crafted objects are decorated with elements that are packed onto the object’s surface and deformed to cover it as much as possible. Examples are artisanal ceramics and metal jewelry. Inspired by these objects, we present a method to enrich surfaces with packed volumetric decorations. Our algorithm works by first determining the locations in which to add the decorative elements and then removing the non-physical overlap between them while preserving the decoration volume. For the placement, we support several strategies depending on the desired overall motif. To remove the overlap, we use an approach based on implicit deformable models creating the qualitative effect of plastic warping while avoiding expensive and hard-to-control physical simulations. Our decorative elements can be used to enhance virtual surfaces, as well as 3D-printed pieces, by assembling the decorations onto real-surfaces to obtain tangible reproductions.

1. Introduction
The quest for representing reality is one of the main goals of computer graphics since its origins. Due to the advances in modeling, rendering, and AI, it is often possible to virtually reproduce the look of real-world objects, characters, and scenes, in a manner that is indistinguishable from reality. Recent advances in digital manufacturing allow us to physically reproduce realistic objects that were initially modeled as digital shapes. This is becoming an important field of application for 3D geometry processing algorithms and techniques.
The difference between a model that appears realistic and one that does not is often the complex surface details typical of real-world objects. In graphics, surfaces are often enriched by varying their material properties, texture maps, or generating relief patterns. As pointed out in a recent survey (Zhang et al., 2019), most of the current methods used to generate reliefs patterns work in image-space, are applied mainly on planar objects and cannot reproduce details coming from 3D decorative elements placed onto the surface.
In this work, we present PAVEL, a method for decorating surfaces with packed volumetric elements. Our method is inspired by hand-crafted artworks, shown in Fig. 2, that are decorated by manually packing elements onto objects. Each decoration is deformed to better cover the surfaces. These decorations are often found in hand-made ceramic, metal jewelry, and Murano’s glass. Fig. 1 show examples of surfaces decorated with PAVEL to mimic these styles.
Current methods cannot reproduce these decorations. Techniques based on surface displacement, such as procedural methods and digital sculpting, cannot reproduce these decorations since they do not model local surface topology changes. Element-based textures cannot be used either since they are generally defined in Euclidean spaces, while we model decorations on manifolds, and since they do not support deformation that maintains the elements volumes, which is required to achieve realism.




PAVEL works in two stages. We first place decorations onto the surfaces with considerable overlap between them. In our implementation, we support both the manual placement of the elements that mimics exactly the real-world process and the automatic generation of different kinds of patterns of overlapped elements. Decorations overlap to cover the surface as much as desired by the user. We then deform the decoration to remove the overlap between them. In doing so, we preserve the volume while deforming to simulate real-world behavior. These two stages produce results that are visually similar to real-world decorations, as shown throughout the paper. In PAVEL, we make two critical choices to make computation feasible.
First, we use point sampling to place the decorations’ centroids instead of using packing algorithms. In general, packing algorithms are just heuristics since packing is NP-hard in the Euclidean domain and just as hard on the manifold. Point sampling is significantly more efficient, by a couple of orders of magnitudes, and just as reliable in our domain. This choice favors objects having a radial symmetry but does not entirely exclude other entities, as we show in the results.
Second, to remove the overlap, we do not use a physics engine but an implicit formulation. The use of physics engines to compute plastic deformations would seem appropriate, but it is, in fact, not the case. Physics engines evolve a valid physical configuration through time. In PAVEL, we start with a non-physical condition in that decorations are placed with significant overlap between them. We have verified that, in these conditions, physics engines do not converge to the desired solutions, nor should they. Instead, we employ an implicit formulation inspired by (Gascuel, 1993) to remove intersections and recover the lost volume using a propagation field and fast marching approach.
The main contributions of our work are:
-
•
an overall method for decorating surfaces with packed volumetric elements supporting automatic and manual element decorations, and automatic removal of decoration overlap; to the best of our knowledge, this is the first packing method that works on 2-manifold directly; to the best of our knowledge, the decorated surfaces could not be created with any other automatic method and would require hours of manual work if sculpted manually (Santoni et al., 2016);
-
•
an efficient procedure to remove intersections and recover elements’ volume that provides a visually effective, even if not physically exact, simulation of a plastic, volume-preserving deformation;
-
•
a practical demonstration of a decorative shell for an existing 3D object designed with PAVEL, decomposed into printable parts, manufactured and attached to the base shape.
2. Related works
To the best of our knowledge, there is no prior work on packing 3D elements on surfaces. Instead, there is a vast literature on packing geometric objects, both in two- and three-dimensions. In this section, we limit our mentions to the more relevant and influential methods to our work.
Packing
Packing 3D shapes in an arbitrary volume is a well-studied problem, and it is known to be NP-complete. It is relevant in graphics, engineering, operational research, and many other fields. Recent works such as (Egeblad et al., 2009; Liu et al., 2015; Romanova et al., 2018) achieve an excellent volume coverage. Still, they are heavily limited in the orientation of objects, are significantly time-consuming, and can only deal with a limited number of items with few facets. Overcoming these limitations, Ma and colleagues (2018) propose an algorithmic approach well suited to complex models typically used in graphics. Their algorithm initially scales down all the objects to avoid intersections, then iteratively increases their size, optimizes rotations, and tries some object swapping to arrange local solutions. The algorithm can obtain good results but can take up to an hour to finish the computation to place less than 100 objects. Our approach differs from both since we pack elements on surfaces and since we decide element sizes upfront, which makes the problem generally harder.
The packing of 2D shapes is a relevant field of research for visualization and illustration purposes. Reinert and colleagues (2013) proposes an algorithm based on Centroidal Voronoi Diagram relaxation to fill an arbitrary-shaped planar domain with multiple shapes. Saputra and colleagues (2019) also describe an algorithm to pack shapes in a planar domain, with a greater focus on leaving as little space as possible. To achieve their results, they allow deformations of the decorative shapes and adds small ones, in the end, to obtain better coverage and reduce space. For similar purposes, Kwan and colleagues (2016) propose a new shape descriptor and use it to measure the touching shapes’ quality. Another relevant method, by Chen and colleagues (2017), packs tiles on top of a curved surface for fabrication and decorative purposes. They describe an attract-and-repulse algorithm in which tiles are allowed to move and rotate, but not to deform, which can take up to fifteen minutes to place more or less 150 tiles. Two works focusing on decorations are (Lu et al., 2015), and (Chen et al., 2016), which investigate the possibility of transforming a surface carving holes following a pattern. In (Lu et al., 2015) a texture guides the building of a pattern of connected stripes taking into account the structural problems that can arise when fabricating the final object. In (Chen et al., 2016), the pattern generates filigrees using the skeletal representations of simple starting elements. The described pipeline can then place them on a surface, greedily refine their position, and slightly modify them to ensure contact between close elements without overlaps. However, all these methods are inherently different from ours since they treat 2D shapes rather than 3D elements. Furthermore, most of these works employ specific representations that cannot be generalized to 3D.
Point sampling
Placing decorations with circular symmetry over the surface of an object can be interpreted as a packing problem as well as a point sampling one. Blue noise point distributions and their variations can undoubtedly be used to roughly pack a surface with circular shapes. Bridson (2007) proposes a simple and efficient algorithm to generate a blue noise distribution. Due to its greedy nature, it tends to leave significant gaps, particularly undesirable for artistic purposes. A more uniform distribution is given by a Centroidal Voronoi Diagram, which can be computed over arbitrary surfaces as described in (Xin et al., 2016). Knöppel and colleagues (2015) introduce a special kind of entity distribution over a surface putting regular striped patterns that can adapt to the local characteristics of the shape, curvature included. This method is useful guidance for scattering points on the surface of the form only onto the stripes. We make use of the latter two methods to place seeds for decorative elements in our pipeline.
Implicit deformable models
Algorithms to control deformable surfaces based on level set formulation are popular in Visual Computing after the seminal works by Osher, Sethian, and Malladi (1988; 1995). Using implicit formulations, it is possible to model complex interface behaviors, including elastic and plastic deformations, but with huge computational complexity and stability issues (Barton et al., 2011). A simplified approach is represented by the fast marching algorithm (Sethian, 1996), which allows a fast estimation of the evolution of closed surfaces as a function of an underlying velocity field assuming unidirectional front propagation along the surface normals. By controlling the underlying speed, it is possible to drive the surface evolution towards the desired position. Simplified implicit deformable models have been used in Computer Graphics to simulate soft bodies’ contact, and the resulting deformation (Gascuel, 1993) and to animate deformable shapes (Desbrun and Cani, 1998). A similar approach has also been recently exploited in a generalized framework to interactively control the blending of two shapes represented by signed distance fields (SDF) on regular grids (Angles et al., 2017). We adapt the fast marching approach to creating the effect of plastic-like volume-preserving deformation of multiple objects efficiently in our work.
Surface extraction
The most common approach to extract a mesh representation from a discrete scalar field is the Marching Cubes algorithm (Lorensen and Cline, 1987). When the scalar field is Boolean, an additional smoothing step is often necessary. Coeurjolly and colleagues (2018) propose an optimization-based approach to extract a smooth manifold from a voxel representation to avoid this. This method works directly on the voxel field’s boundary quads, moving the vertices to optimize fidelity, fairness, and smoothness. We do not use this method in our reconstruction since it is unacceptably slow for resolving our voxel grids. It produces overly smoothed results, which removes details in small decorative elements. We instead use marching cubes and a smoothing remesher to convert the deformed decorations back to a surface.
![]() |
![]() |
![]() |
Sampled points | Initial placement | Packed decorations |
3. Overview
Our goal is to easily create element-based relief patterns over arbitrary surfaces. Our algorithm takes as input a base mesh, a mesh for each decorative element, and a small set of parameters, defined in the later Sections, that control the elements’ distribution and deformations. Our method, shown in Fig. 3, works in two stages. We first generate a point distribution over the base surface such that the decorative elements cover the surface well. In the second step, elements are placed in the location previously defined, and our algorithm computes the elements’ deformations to eliminate the overlaps among them.
To achieve realism and mimic real-world objects, we position the decorative elements so that they are partially overlapping and, then, transform the elements’ shapes. They are non-overlapping at the end while preserving their volume. This approach simulates the plastic deformations that artisans perform on their creations. While, at first sight, using a physical simulator seems the proper method to address the second step, we have found that they do not work in our case. The first concern is that simulators are very slow at our resolution and number of collisions. More importantly, though, the simulation does not necessarily converge to a meaningful state since we start with significant overlaps with a non-physical nature. Instead, we propose a new method based on an implicit representation of the elements and the Fast Marching Method (FMM) (Sethian, 1996), that can generate physically-plausible plastic deformations with bulges near the contact surfaces. We discuss this algorithm in Section 4.
We propose two strategies for the automatic placement phase that enable users to create both isotropic and anisotropic distributions with simple control parameters. These are respectively based on the constrained Voronoi algorithm proposed by (Xin et al., 2016) and the equidistant stripe patterns from (Knöppel et al., 2015). In case artists want direct control over the decoration placements, they may manually do it. Additionally, in the case of base surfaces with high-curvature regions and decorations with dimensions in the same order of magnitude of the base curvature radius, we allow the user to sample an isosurface at offset to produce a more even distribution. We then use these points to center the decorations on them and produce intersections among adjacent elements. This step, and all its parameters, is discussed in Section 5.
As the pipeline aims to generate object design both for rendering and manufacturing purposes, we discuss in Section 6 how to extract smooth meshes from the voxelized elements’ sets and how to generate printable shells for the decoration of real objects. A gallery of examples of decorations obtained with PAVEL is shown in Section 7 with an analysis of the system performance, while Section 8 evaluates limitations and possible improvements of the approach.
4. Deformation of packed decorations
In this section, we describe how to compute the final deformations. Our algorithm takes as input a set of overlapping element decorations placed onto an object’s surface. Our goal is to remove the overlap by computing each decorative element’s deformation while maintaining its volume to simulate the plastic deformations performed in real-life by artists.
![]() |
![]() |
![]() |
Initial overlapped | Artifacts in | More artifacts |
configuration | packed deformations | if not stopped |
Comparison with Physics Engines
To obtain the deformed elements, we cannot use existing physics engines for several reasons. First, most engines cannot accept an initial condition with large overlaps between objects, which in our case is as high as 30% in volume. Second, complex custom forces should be defined to ensure a reasonable equilibrium, e.g., the forces that sculptors apply to get the precise deformation they desire while making sure that decorations adhere to each other. We tested multiple physics solvers, including Houdini’s FEM and XPBD solvers (SideFX, 2020), Blender’s solver (Blender, 2020), and a projective dynamics solvers (Fratarcangeli et al., 2016). In all cases, we could not successfully remove the overlap for the reasons listed above. Figure 4 shows a failure case. While physics engines’ behavior is reasonable, as we start the simulation in a non-physically-plausible configuration, we cannot rely on these tools for our goals.
PAVEL deformations
Since we cannot use physical based simulators, we propose a novel method based on an implicit formulation, inspired by works on interactive visual simulation of volumetric object contact (Gascuel, 1993). We rely on fast marching (Sethian, 1996) using a specifically designed parametric function for the propagation field that determines the deformed shape appearance and enforce volume preservation.
We voxelize each decoration in its own dense grid that is larger than the decoration’s dimension to ensure that the computed deformation will fit in the grid. Compared to the whole surface, this is a sparse discretization that keeps memory consumption relatively low since we are effectively discretizing a slab around the surface. While each decoration has its own representation, we ensure that the voxel dimension and the grid rotation is consistent across all voxelizations. As a consequence, we can perform Boolean operations just by keeping into account their mutual offsets. Additionally, separate voxelizations, instead of one global labeled grid, allow for simple handling of the overlaps and compatibility with the fast marching algorithm.
Given as input a set of voxelized decorations , our first step is to resolve the overlaps. We do this by detecting the voxels shared by multiple decorations and removing them from all but the one with the shortest distance from the decorative element center. Furthermore, we remove all the voxels of the decorations shared with the base objects as well. These removals generate a new set of decorations , where each decoration has associated a measured volume loss , equal to the sum of the voxels removed in the previous steps. We then ensure that each element recovers its original volume by expanding it in a way that simulates a plastic deformation.
Fast marching approach
To compute the expansion, we use a fast marching approach (Sethian, 1996) to grow each element in the empty regions until they recover the original volume. To simulate a plastic deformation, which typically generates bulges near the soft bodies’ contact points, we use a non-constant velocity field to drive the fast marching algorithm. For each shape , we find the contact surfaces with the other shapes, and from them, we build the respective distance fields. The distance fields are then converted in velocity fields through a parametric formula, the volume recovery function, that can be adapted to obtain the desired behavior. The recovery function is a piece-wise polynomial, obtained by connecting three second-degree polynomials and enforcing continuity, and defined by:
In the inset, we show an example plot of the function. We keep the velocity null in contact points to simulate the constraints related to the attachment of surfaces. We then have two control points used to define the distance for maximal bulging and the maximal distance reached by the plastic wave. This allows effective control of “material behavior” driven by the amount and locality of the
![[Uncaptioned image]](https://cdn.awesomepapers.org/papers/9c912135-a000-491c-890f-15a5f072ce06/function.png)
deformation.
The velocity fields are then weighted proportionally to the volume losses to simulate a faster growth of the elements more “squeezed” by the neighboring ones and used to compute the new arrival times for each decoration. To recover the volume lost by each decoration, we evolve the front of each decoration with the fast marching method. For each elements’ sub-grid , a set of active front voxels is initialized, taking those adjacent to the initial voxelization border. In contrast, we set all voxels belonging to either the initial shape, the base shape, or other elements to inactive. Each decoration can recover its volume only by occupying empty voxels.
The algorithm then iterates over all the elements. At each step, it evaluates the arrival time for all the voxels of the active front. It selects the voxel with a minimal arrival time according to the Eikonal equation’s solution estimated on the base of the velocity field defined in the corresponding grid.
The selected voxel is then assigned to the current element, and it is set as inactive for the other elements’ front propagation. The active front is finally updated, removing the selected voxel from it and adding to it the voxel’s free neighbors. This procedure stops when all the decorations have recovered their original volume. It is theoretically possible that the algorithm could not find enough voxels to recover the volume when the evolution of neighboring elements occludes the front, but this is not likely to happen for a layer of small decorations over a base surface and never happened in our experiments.
The method ensures by construction that all volume is correctly maintained while deforming the decorations. The algorithm is fast since it greedily iterates over elements instead of estimating all the fronts’ arrival times at once. Fast marching is not easily parallelizable to speed up the computation. Still, as we simplify the decorations’ distance fields as independent of each other, we can concurrently compute them for a significant performance gain. We use the fast marching of (Scikit FMM, 2020) and handle IO and voxelization with (Trimesh, 2020).
![]() |
![]() |
![]() |
coverage | coverage | coverage |
![]() |
![]() |
![]() |
Surface coverage control
The method described above can simulate the elements’ plastic deformation if the decorative elements are initialized with a reasonable overlap. To understand what is a “reasonable” overlap, we performed several tests to define control parameters for the point distribution. To control the decorations’ overlap, we choose to use the surface coverage, that is, the ratio between the sum of the surface areas of the decorations’ footprints and the base object area to be decorated. Fig. 5 show results of packing small spheres on a base sphere with different surface coverage values. As we can see, a ratio of 1.2 is barely enough to cause some deformation, while a ratio of 1.6 produces excessive and unrealistic distortions of the elements’ shape.
![]() |
![]() |
![]() |
Volume recovery parameters
We also performed extensive tests to choose the parameters of the volume recovery function (Eqn. 4). Fig. 6 shows the results obtained with the same overlapping spheres but different choices for the values of the and parameters. By shifting the control parameters, it is possible to simulate different plastic behaviors. All the results shown in the paper, but Fig. 6, are obtained with the same settings .
As it is possible to see, for example, in Fig. 7, this choice provides results that are visually quite close to real plastic deformation.
![]() |
![]() |
Initial placement | Packed decorations |
![]() |
![]() |
![]() |
![]() |
Manually-placed decorations | Packed decorations (back view) |
5. Placement of decorations
The deformation step is enough to obtain the final result if the user places the decorations manually on the base object’s surface, as shown in Fig. 7. In this manner, the user directly controls the decorations’ location and the surface coverage, while PAVEL controls the material behavior using the deformation parameters described above. In the system, we supply the automatic placement methods described in the following.
Automatic placement by Point Sampling
While manual placement provides complete artistic control, the decoration of complex surfaces with small decorative elements would be very time consuming, just like in real-world crafts. To simplify creating complex decorations, we also support the automatic placement of decorative elements using two procedural methods.
Our placement methods are based on point sampling algorithms. We support the placement of objects with approximate 2D radial symmetry, with the symmetry axis aligned to the base surface’s local normal. We also assume that the decorations are small compared to the base surface’s curvature to ignore the variations in the local volume extruded from the base surface. Both of these are reasonable assumptions found in the handcrafted models that inspired our work.
Instead of a packing algorithm, our use of point sampling is motivated by a trade-off between speed and packing quality. It’s worth reminding that optimal packing is NP-hard in the Euclidean domain and just as hard in the intrinsic manifold metric. This means that all published packing algorithms are approximations that trade-off element shapes, packing quality, and computation time. In general, it is well known in both the literature and the practice that most packing algorithms fail or are not optimal for all but the simplest shapes. Note also that we do not allow to change the decoration size, which is the most used approximation for soft packing in graphics. For all these reasons, our point sampling approaches are just another heuristic within their stated constraints. If better placement heuristics are available, we could integrate them into our pipeline with ease.
Isotropic seeding
Our first automatic placement method produces isotropic distributions that work well for decorations with cylindrical symmetry. The user controls the density of decorations by setting the desired surface coverage, and the algorithm instantiates the correct number of seeds to guarantee the target density.
To ensure a high-quality distribution, we rely on optimization using a method based on the Centroidal Voronoi Tessellation (CVT) and its efficient implementation described in (Yan et al., 2009) and available in the Geogram library (Levy, 2020). We generate the base surface’s tessellation with the desired number of vertexes and use them as the centers of the decorations. When converged, this iterative approach produces a point distribution with good statistical properties, resulting in a high-quality decorated surface. To obtain a more “hand-made” look, we allow users to reduce the number of iterations. Fig. 8 shows an example results obtained with this method that closely resembles the hand-made objects shown in Fig. 2.
![]() |
![]() |
![]() |
Sampled points | Initial placement | Packed decorations |
![]() |
![]() |
![]() |
Decorative element | Close view (initial) | Close view (packed) |
Offset surface
The previous method works well if the decorative elements are small compared to the surface curvature. If that assumption is not valid, the decorated surface has visible artifacts, shown in Fig. 9. The main problem is that our method generates equally spaced seeds that represent the bottom of the decorations but does not take into account decorations’ volume and surface curvature. Decorations overlap more in concave regions than convex ones. The volume above the surface is smaller in the former case and can result in heavily compressed areas in concave zones and non-contacting in convex regions. When decorations are small compared to the surface curvature, this effect is negligible. But it becomes more noticeable as the decorations’ size increases.
For this reason, we also provide a method that considers the volume of the elements when point sampling their locations. The basic idea is to extract an isosurface at a signed distance from the base mesh, perform the sampling on it, and then map back the seed points on the original base surface, projecting them along the local normal direction.
An appropriate choice of is the height of the element’s z-section with the maximal area. In this way, we can handle large decoration sizes even on surfaces with varying curvature. We show a clear example of this in Fig. 9. Here the bunny features gulfs and bulges. They are handled without problems by sampling the offset surface. Conversely, sampling on the surface reveals significant artifacts. Since decorations are small in general, and the modified sampling has a non-negligible computational cost (see Section 7), we leave the choice of whether to use the offset surface to the user.
![]() |
![]() |
![]() |
On-surface sampling | ||
![]() |
![]() |
![]() |
Offset surface sampling |
![]() |
![]() |
![]() |
![]() |
On-surface sampling | Offset surface sampling |
Stripe-based, anisotropic seeding
To support the automatic generation of anisotropic element patterns, we also provide a stripe-based sampling approach. This method can create gridded patterns of decorations with approximate cylindrical symmetry and even with elongated shapes.
Our method is based on (Knöppel et al., 2015) that allows us to generate patterns of evenly spaced stripes over a generic base surface. The method is based on a simple optimization problem and approximately maintains a user-specified orientation and spacing of the lines by automatically inserting branch points where necessary. Furthermore, the generated patterns are globally continuous, which avoids visible seams after the applications of our decorative elements, and with frequencies not depending on the mesh resolution. We exploit the stripe-based method by generating two crossing stripe patterns with a user-defined crossing angle and sampling seed points at the line crossings. In this manner, we obtain lines with points sampled at constant distances and with a controlled offset among the decorative elements of two adjacent stripes. Fig. 10 shows an example with crossing stripes creating an angle of 60 degrees and elements placed with a constant orientation concerning the main stripe.
Since we can independently set the sample spacing on the main stripes and the distance between adjacent stripes, we are no longer forced to pack objects with approximate radial symmetry, but we can insert elements with arbitrary elongation. Furthermore, since the stripes encode a local directional field, we can use non-isotropic decorative elements oriented in a controlled way with respect to the stripes’ directions. Fig. 11 shows an example with perpendicular stripes-based sampling and non-isotropic elements with main directions aligned with the stripes fields.
In our stripe-based algorithm, we create the sampling points and estimate and store the point connectivity of the sample along with the two stripe directions. In this way, we can develop decorations alternating different elements and elements’ orientations, as shown in Fig. 12.
![]() |
![]() |
![]() |
Sampled points | Initial placement | Packed decorations |
![]() |
![]() |
![]() |
Decorative element | Close view (initial) | Close view (packed) |
![]() |
![]() |
![]() |
Sampled points | Initial placement | Packed decorations |
![]() |
![]() |
![]() |
Decorative element | Close view (initial) | Close view (packed) |
Elements’ perturbation
Aside from placement, we can easily integrate controls for decorations’ rotations and filling different areas with different decorations. The rotation for each element can be set randomly or aligned to a field defined over the object surface, giving the possibility to create different artistic effects that work particularly well when placing elongated objects over a gridded seed distribution. Figure 12 shows an example of an artistic pattern obtained with alternate rotations of 180 degrees of the elements along the principal stripe field direction.
![]() |
![]() |
![]() |
Sampled points | Initial placement | Packed decorations |
![]() |
![]() |
![]() |
Decorative element | Close view (initial) | Close view (packed) |
![]() |
![]() |
![]() |
Sampled points | Initial placement | Packed decorations |
![]() |
![]() |
![]() |
Decorative elements | Close view (initial) | Close view (packed) |
The average elements’ size is chosen to guarantee the desired decorative effect, and the number of elements can be tuned to guarantee the desired amount of initial overlap. However, we leave the possibility of applying a further random perturbation to the size of each decoration to increase the number of design options. We allow variations up to , as larger ones would lead to inconsistent overlaps and too many empty spaces.
Lastly, it is possible to load more than one decoration and randomly select one of those for each seed. We can exploit this to increase the final results’ variety loading a multitude of slightly different decorations (e.g., stones of various types, flowers, etc.).
6. Output generation
The last step we need to perform is to convert the process results into high-quality meshes for visualization or printable shells to decorate real-world objects.
High-quality meshes
To generate a 3D mesh of the whole object, we first independently create meshes for each deformed decorative element using the Marching Cubes algorithm (Lorensen and Cline, 1987). Then, we merge the elements and the base object into a single model and remesh the result using the Central Voronoi Tessellation approach (Yan et al., 2009), which provides feature-preserving results and is robust and efficient for large meshes.

Printable shells
It is possible to use our pipeline also to create decorative shells for real-world objects. To decorate an object, we first scan it to obtain an accurate digital model and then create a PAVEL decoration for it. This produces a mesh representing all the decorative elements fused together. We then decompose this final mesh into printable parts and wrap it around the original object. Fig. 14 shows the whole process of decorating an object.
For objects with a simple topology, the decomposition works as follows. First, we segment the base object. Any mesh partitioning can be used for this purpose. In the example shown, we cut the object with two mutually perpendicular planes passing through the model’s symmetry axis. Given the base segmentation, we cluster the deformed elements placed on each patch and remesh them into single shell elements to be 3D separately printed. One can use a more appropriate decomposition for more complex base objects while the rest of the pipeline remains the same.
![[Uncaptioned image]](https://cdn.awesomepapers.org/papers/9c912135-a000-491c-890f-15a5f072ce06/glassprint.jpg)
In the inset, we show the final result obtained by gluing the parts of the tangible shell created from the design in Fig. 14 over the base object. In this case, the object was a simple paper cup covered with modeling clay. We scanned it with a low-cost device (Intel Realsense F200) and automatically decorated with an isotropic distribution of elements with different shapes and randomized size and orientation. We finally printed the shell elements with a Stratasys J826 3D printer.
7. Results
Reproducing real-world decorations
Using PAVEL, we can create a variety of decorations that mimic real-world artworks. Fig. 15 shows side-by-side views of original artworks, courtesy of Heather Knight, and objects generated with our pipeline and rendered with clay-like material properties.
PAVEL decorations are not limited to the replicas of clay pieces but can be used to generate various artworks of different kinds. Figs. 16 and 17 shows a few examples, demonstrating potential uses in jewelry and pottery, exploiting manual elements positioning and automatic pattern creation.
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
Real-world objects | PAVEL replica |



Performance
To understand if PAVEL could be a useful design tool, it is necessary to evaluate the time required by the different steps and the global effort required to create the decorated models. We obtain all our results on a 12-core Ryzen 3900x with 32GB of RAM. Tab. 1 shows the time required by the automatic seeding procedure. All the times for the non-curvature adaptive methods ranges between 0.6 and 1.5s, with minimal differences between CVT and striped seeding. The most computationally expensive sampling strategy is, as expected, the curvature-dependent one. Our test took 54s to extract the isosurface but only 2.5s to sample it. This speed allows a reasonably fast interactive design procedure. The digital artist can quickly test different object choices and seeding options visualizing the seeded configurations superimposed on the base model.
Tab. 2 shows the times required by the volume recovery and mesh generation. While the whole procedure is clearly not interactive, the time required is reasonable for an offline rendering procedure. It is not critically variable varying the surface coverage and the elements’ volumes overlap within the parameters ranges discussed in Section 4. The time required by the volume recovery step is directly dependent on both the number of decorations and their resolution. The times range from 20 to 360 seconds, with the faster times achieved by the models with around 50 decorative elements. Still, the method scales relatively well, handling nearly 2,000 decorations in just under 6 minutes. Another critical factor in performances is the resolution, which is also crucial to maintaining the decoration’s details. Our results show how the method can handle millions of voxels to represent the decorations, even in intersections up to 33% of the volume. Lastly, another time-consuming step is CVT smoothing. While it ranges from 10 to 200 seconds to remesh our test models, it’s worth noticing that the marching cubes meshes’ resolution reaches up to 40 million triangles, and we output smooth meshes with up to 4 million triangles.
Model | Number of | Surface | Time |
---|---|---|---|
decorations | coverage | ||
Amphora, Fig. 10 | 358 | 1.42 | 0.59s |
Sphere, Fig. 1 left | 400 | 1.43 | 0.69s |
Vase, Fig. 12 | 953 | 1.27 | 0.91s |
Mug, Fig. 13 | 410 | 1.42 | 0.68s |
Bunny (adaptive), Fig. 9 middle | 1720 | 1.23 | 2.68s |
Teapot, Fig. 11 | 642 | 1.26 | 1.82s |
Vase, Fig. 8 | 450 | 1.49 | 0.70s |
Glass, Fig. 14 | 500 | 1.33 | 0.74s |
Vase, Fig. 15 top | 182 | 1.48 | 1.43s |
Tile, Fig. 15 bottom | 65 | 1.32 | 1.30s |
Tile, Fig. 15 middle | 48 | 1.49 | 0.80s |
Ring, Fig. 1 middle | 529 | 1.30 | 1.00s |
Vase, Fig. 17 right | 604 | 1.38 | 0.79s |
Vase, Fig. 17 left | 555 | 1.44 | 0.77s |
Model | Deformation | Marching cubes | Decorations | Overlapping | Base | Marching Cubes | Final |
---|---|---|---|---|---|---|---|
time | and Smoothing | voxels | voxels | voxels | triangles | triangles | |
Amphora, Fig. 10 | 112.5s | 58.6s | 31.68M | 30.2% | 64.71M | 12340K | 716K |
Sphere, Fig. 1 left | 163.2s | 124.3s | 49.41M | 12.8% | 41.39M | 17862K | 2484K |
Vase, Fig. 12 | 208.6s | 135.4s | 68.29M | 16.7% | 418.13M | 25564K | 1985K |
Mug, Fig. 13 | 121.7s | 59.8s | 43.23M | 17.0% | 200.23M | 14305K | 850K |
Bunny (adaptive), Fig. 9 middle | 357.8s | 138.6s | 96.24M | 13.7% | 204.00M | 38487K | 1745K |
Teapot, Fig. 11 | 202.4s | 101.6s | 54.27M | 32.3% | 414.82M | 22296K | 1386K |
Vase, Fig. 8 | 198.1s | 158.7s | 67.72M | 18.4% | 94.80M | 22616K | 2878K |
Glass, Fig. 14 | 316.5s | 101.2s | 127.36M | 14.0% | 395.85M | 31279K | 1028K |
Vase, Fig. 15 top | 68.6s | 41.8s | 25.87M | 17.4% | 7.08M | 7960K | 788K |
Tile, Fig. 15 bottom | 23.7s | 13.7s | 5.27M | 11.8% | 11.14M | 2331K | 260K |
Tile, Fig. 15 middle | 68.2s | 19.0s | 5.71M | 13.5% | 6.68M | 2156K | 295K |
Mask, Fig. 1 right | 322.1s | 74.7s | 32.26M | 16.6% | 13.64M | 8518K | 472K |
Roses, Fig. 16 top | 68.2s | 19.0s | 5.61M | 24.6% | 1.64M | 3405K | 325K |
Ring, Fig. 16 middle | 50.7s | 19.4s | 10.70M | 21.1% | 10.35M | 4675K | 287K |
Ring, Fig. 1 middle | 158.0s | 83.3s | 48.89M | 21.8% | 61.40M | 17877K | 1095K |
Vase, Fig. 17 right | 200.6s | 98.2s | 72.94M | 16.9% | 79.91M | 23445K | 1249K |
Vase, Fig. 17 left | 287.5s | 204.2s | 64.90M | 17.1% | 61.49M | 23437K | 3755K |
8. Discussion
To the best of our knowledge, PAVEL is the first attempt to propose a method to create packed volumetric decorations on 3D models. It is impossible to generate these decorations with either sculpting or texture mapping, and we work directly on positioning and deforming volumetric elements. Throughout the paper, we demonstrate that we can visually simulate real-world hand-crafted objects. We do so by placing decorative elements with point-sampled uniform or stripe-align distributions and packing elements with a volume-preserving deformation. The decorated models can be used for virtual applications of 3D printed for tangible reproductions.
Limitations
Our method has two significant limitations. First, decorations’ automatic placement is limited to approximately isotropic elements or elongated shapes placed on stripes. As stated in Section 1, this is a willing design choice to simplify the packing procedure leaving to the deformation step to fill the gaps between elements. However, we plan to improve the initial packing step with novel options, adding a greedy refinement of elements’ position and orientation after the initial placement to enhance the quality of the packing of non-radially symmetric elements.
The second limitation is our use of fast marching that limits the complexity of the deformed objects’ details since the number of voxels quickly grows w.r.t. surface details. In the future, we plan to explore sparse representations based on spatial hashing and wide-branching trees that are of common use in 3D animation.
Future work
In addition to the improvements listed above, we plan to improve the pipeline by adding more options to control the design, namely the possibility of performing automatic seeding for specific decorations on different parts of the mesh.
Another planned work is the optimization of the shell decomposition for printing. We plan to develop methods for the automatic decomposition of the PAVEL decoration in patches of controlled size and printer-friendly. We will also investigate the possibility of adding printability constraints in the fast marching evolution.
We also plan to better exploit the elements’ deformation’s parallelizability to obtain a faster implementation. We believe that it should be possible to parallelize both the computation of the elements deformations and the merging of the final result and obtain significant speed up in the case of large numbers of small decorations.
References
- (1)
- Angles et al. (2017) Baptiste Angles, Marco Tarini, Brian Wyvill, Loïc Barthe, and Andrea Tagliasacchi. 2017. Sketch-Based Implicit Blending. ACM Transactions on Graphics 36, 6, Article 181 (2017).
- Barton et al. (2011) Philip T Barton, B Obadia, and Dimitris Drikakis. 2011. A conservative level-set based method for compressible solid/fluid problems on fixed grids. J. Comput. Phys. 230, 21 (2011), 7867–7890.
- Blender (2020) Foundation Blender. 2020. Blender.
- Bridson (2007) Robert Bridson. 2007. Fast Poisson Disk Sampling in Arbitrary Dimensions. In ACM SIGGRAPH 2007 Sketches.
- Chen et al. (2017) Weikai Chen, Yuexin Ma, Sylvain Lefebvre, Shiqing Xin, Jonàs Martínez, and Wenping Wang. 2017. Fabricable Tile Decors. ACM Transactions on Graphics 36, 6 (2017).
- Chen et al. (2016) Weikai Chen, Xiaolong Xia, Shiqing Xin, Yang XIA, Sylvain Lefebvre, and Wenping Wang. 2016. Synthesis of Filigrees for Digital Fabrication. ACM Transactions on Graphics 35, 4 (2016).
- Coeurjolly et al. (2018) David Coeurjolly, Pierre Gueth, and Jacques-Olivier Lachaud. 2018. Regularization of Voxel Art. In ACM SIGGRAPH Talk. 44:1–44:2.
- Desbrun and Cani (1998) Mathieu Desbrun and Marie-Paule Cani. 1998. Active implicit surface for animation. In Graphics Interface. 143–150.
- Egeblad et al. (2009) Jens Egeblad, Benny K. Nielsen, and Marcus Brazil. 2009. Translational packing of arbitrary polytopes. Computational Geometry 42, 4 (2009), 269–288.
- Fratarcangeli et al. (2016) Marco Fratarcangeli, Valentina Tibaldo, and Fabio Pellacini. 2016. Vivace: A Practical Gauss-Seidel Method for Stable Soft Body Dynamics. ACM Transactions on Graphics 35, 6, Article 214 (2016).
- Gascuel (1993) Marie-Paule Gascuel. 1993. An Implicit Formulation for Precise Contact Modeling between Flexible Solids. In Proc. of ACM SIGGRAPH. 313–320.
- Knöppel et al. (2015) Felix Knöppel, Keenan Crane, Ulrich Pinkall, and Peter Schröder. 2015. Stripe Patterns on Surfaces. ACM Transactions on Graphics 34 (2015). Issue 4.
- Kwan et al. (2016) Kin Chung Kwan, Lok Tsun Sinn, Chu Han, Tien-Tsin Wong, and Chi-Wing Fu. 2016. Pyramid of Arclength Descriptor for Generating Collage of Shapes. ACM Transactions on Graphics 35, 6 (2016).
- Levy (2020) Bruno Levy. 2020. Geogram.
- Liu et al. (2015) Xiao Liu, Jia-min Liu, An-xi Cao, and Zhuang-le Yao. 2015. HAPE3D—a new constructive algorithm for the 3D irregular packing problem. Frontiers of Information Technology & Electronic Engineering 16, 5 (2015), 380–390.
- Lorensen and Cline (1987) William E. Lorensen and Harvey E. Cline. 1987. Marching Cubes: A High Resolution 3D Surface Construction Algorithm (SIGGRAPH ’87). Association for Computing Machinery, New York, NY, USA, 163––169.
- Lu et al. (2015) An Lu, Sylvain Lefebvre, Jérémie Dumas, Jun Wu, and Christian Dick. 2015. By-example synthesis of structurally sound patterns. ACM Transactions on Graphics (2015).
- Ma et al. (2018) Y. Ma, Z. Chen, W. Hu, and W. Wang. 2018. Packing Irregular Objects in 3D Space via Hybrid Optimization. Computer Graphics Forum 37, 5 (2018), 49–59.
- Malladi et al. (1995) Ravi Malladi, James A Sethian, and Baba C Vemuri. 1995. Shape modeling with front propagation: A level set approach. IEEE transactions on pattern analysis and machine intelligence 17, 2 (1995), 158–175.
- Osher and Sethian (1988) Stanley Osher and James A Sethian. 1988. Fronts propagating with curvature-dependent speed: Algorithms based on Hamilton-Jacobi formulations. Journal of computational physics 79, 1 (1988).
- Reinert et al. (2013) Bernhard Reinert, Tobias Ritschel, and Hans-Peter Seidel. 2013. Interactive By-example Design of Artistic Packing Layouts. ACM Transactions on Graphics 31, 6 (2013).
- Romanova et al. (2018) T. Romanova, J. Bennell, Y. Stoyan, and A. Pankratov. 2018. Packing of concave polyhedra with continuous rotations using nonlinear optimisation. European Journal of Operational Research 268, 1 (2018), 37–53.
- Santoni et al. (2016) Christian Santoni, Claudio Calabrese, Francesco Di Renzo, and Fabio Pellacini. 2016. SculptStat: Statistical Analysis of Digital Sculpting Workflows. arXiv:1601.07765 [cs.GR]
- Saputra et al. (2019) R. A. Saputra, C. Kaplan, and P. Asente. 2019. Improved Deformation-Driven Element Packing with RepulsionPak. IEEE Transactions on Visualization and Computer Graphics (2019).
- Scikit FMM (2020) Team Scikit FMM. 2020. Scikit FMM.
- Sethian (1996) James A Sethian. 1996. A fast marching level set method for monotonically advancing fronts. Proc. of National Academy of Sciences 93, 4 (1996), 1591–1595.
- SideFX (2020) Software SideFX. 2020. Houdini.
- Trimesh (2020) Authors Trimesh. 2020. Trimesh.
- Xin et al. (2016) Shi-Qing Xin, Bruno Lévy, Zhonggui Chen, Lei Chu, Yaohui Yu, Changhe Tu, and Wenping Wang. 2016. Centroidal Power Diagrams with Capacity Constraints: Computation, Applications, and Extension. ACM Transactions on Graphics 35, 6, Article 244 (2016).
- Yan et al. (2009) Dong-Ming Yan, Bruno Lévy, Yang Liu, Feng Sun, and Wenping Wang. 2009. Isotropic Remeshing with Fast and Exact Computation of Restricted Voronoi Diagram. Computer Graphics Forum 28, 5 (2009), 1445–1454.
- Zhang et al. (2019) Yu-Wei Zhang, Jing Wu, Zhongping Ji, Mingqiang Wei, and Caiming Zhang. 2019. Computer-assisted relief modelling: A comprehensive survey. In Computer Graphics Forum, Vol. 38. 521–534.