Curvy: An Interactive Design Tool for Varying Density Support Structures
VVolume xx ( ), Number z, pp. 1–12
Curvy: An Interactive Design Tool for Varying Density SupportStructures
E. Ulu N. Gecer Ulu J. Li and W. Hsiao Palo Alto Research Center, USA UCLA HCI Research, USA
Figure 1:
Curvy enables users to design support structures implicitly, by providing high-level surface quality preferences (middle-left)directly on the target object (left). User preferences are translated into low-level support parameters to generate varying density curvy zigzagsupports (middle-right). Resulting prints satisfy perceptual and functional intents of the user (right). Puzzle pieces fit together well whilevisually important surfaces are free of support contact marks. In the middle figures, puzzle pieces are marked with colors corresponding tothe ones on the left model.
Abstract
We introduce Curvy–an interactive design tool to generate varying density support structures for 3D printing. Support structuresare essential for printing models with extreme overhangs. Yet, they often cause defects on contact areas, resulting in poor surfacequality. Low-level design of support structures may alleviate such negative effects. However, it is tedious and unintuitive fornovice users as it is hard to predict the impact of changes to the support structure on the final printed part. Curvy allowsusers to define their high-level preferences on the surface quality directly on the target object rather than explicitly designingthe supports. These preferences are then automatically translated into low-level design parameters to generate the supportstructure. Underlying novel curvy zigzag toolpathing algorithm uses these instructions to generate varying density supportsby altering the spacing between individual paths in order to achieve prescribed quality. Combined with the build orientationoptimization, Curvy provides a practical solution to the design of support structures with minimal perceptual or functionalimpact on the target part to be printed.
CCS Concepts • Theory of computation → Computational geometry; • Human-centered computing → Interactive systems and tools; • Applied computing → Computer-aided design;
1. Introduction
In many 3D printing approaches, support structures play an essen-tial role in successful printing by supporting the overhang regionsto prevent them from collapsing under gravity. While they may be necessary, these auxiliary structures often damage the surfacequality resulting in visual as well as functional artifacts. Such ar-tifacts are often unavoidable especially in widely used single ma-terial fused filament fabrication (FFF) process as there is a deli- a r X i v : . [ c s . G R ] F e b E. Ulu, N. Gecer Ulu, J. Li & W. Hsiao / Curvy cate balance between the amount of supports and the resulting sur-face quality. When supports are used excessively, they stick to thewalls of the models and leave blemishes on the surface. On theother hand, when insufficient, sagging occurs between the supportcontact points due to the large bridging distance. Many 3D print-ing software, such as Autodesk MeshMixer [Aut20], Simplify3D[Sim20], Ultimaker Cura [Ult20] and Slic3r [Pru20], provide auto-mated means to design support structures. However, without userinvolvement, resulting supports often lead to suboptimal surfacequality even for simple shapes. User involvement required to allevi-ate the quality issues, on the other hand, is generally very low-leveland tedious, such as manual placement of individual support pillars,local adjustments of support patterns, its orientation and spacing.Although such adjustments are attainable for experienced design-ers, a more intuitive and direct way of support design is requiredfor novice users.We present Curvy–an interactive tool to design support struc-tures with minimal perceptual and functional impact on the object.Curvy takes as input users’ high-level specifications on the desiredsurface quality and produces support toolpaths for each layer ac-cordingly (Figure 1). As the user input is defined directly on thesurface of the target model rather than the supports, users do notneed to have a low-level knowledge on inner workings of the sup-port generation algorithm to predict the impact of changes they aremaking on the final printed result.Main challenge in such a direct approach lies in the translationof the high-level inputs on the target object to the low-level supportdesign parameters. For such a transition to be possible, underlyingsupport parametrization needs to be sufficiently flexible to complywith any arbitrary input whereas general enough to be applicableto variety of shapes. Additionally, resulting supports are requiredto exhibit common properties including easy removal and low ad-ditional cost to print.Our approach overcomes this challenge using a novel tool-pathing approach that (i) generates curvy zigzag paths conformingto the shape boundaries as well as the infill patterns of each layerand (ii) controls the spacing between individual paths ( i.e. , density)locally. The former capability allows us to obtain easy to removesupports while consistently providing sufficient amount of contactpoints for successful bridging. The latter one, on the other hand,enables local control of the surface quality per user prescriptionson the target object. Combined with a build direction optimizationapproach, unnecessary supports as well as supports touching the re-gions that are intended to have high surface quality are minimized.Our main contributions are: • a novel curvy zigzag toolpathing algorithm that results in highsurface quality while allowing easy removal, • a method to manipulate support density locally, • an interactive support structure design tool that allows users todefine high-level preferences directly on the target object usingabove two ideas.
2. Related Work
Curvy aims to provide end-users an interactive way to design sup-port structures implicitly by defining their high-level surface qual- ity preferences directly on the target object. This goal cross-cutsthree areas of prior work in 3D printing: (i) computational toolsfor design and process planning, (ii) support structures generationmethods and (iii) build orientation optimization approaches.
As simple as it may seem, 3D printing is a complex process withmany aspects that require low-level design and process planning fora successful operation. In order to make it more accessible to noviceusers and more convenient to experienced users, past research hasexplored variety of interactive tools targeting many different as-pects of 3D printing. Recent examples include two-piece mold de-sign [NAI*18], modeling through augmented reality [PBW*18],patching for minimum waste design iterations [TMG*15] and de-formable object design [HPL*19]. Similar to these approaches,Curvy aims to alleviate the amount of low-level design users needto perform for a successful 3D print. In particular, Curvy focuseson making design of support structures easy and intuitive by elim-inating the need for explicit manipulation of support structures. In-stead, the support structures are designed implicitly, by specifyingthe high-level quality preferences directly on the target object.Other approaches focus on providing optimal slicing to improvethe surface quality or geometric accuracy. Recent examples of suchapproaches include adaptive [WCT*15; AHL17] and curved slic-ing [ERP*19] schemes. These methods improve the quality of theprints by mainly alleviating the so-called staircase effect. Our ap-proach is complementary to these tools in that presented slicingschemes may be facilitated in printing the target object to furtherimprove the surface quality while Curvy is minimizing the impactof supports on the final result.
Generating supports is often composed of two main steps: (i) detec-tion of surfaces requiring supports ( i.e. , overhangs), and (ii) designof the support structure itself. For detection of overhangs, Chal-sani et al. [CJR95] performed a boolean difference between twosuccessive slices while Kirschman et al. [KJB*91] and Allen etal. [AD95] considered down-facing facets of the input mesh havingangle too steep to print correctly as overhangs. In our build orien-tation optimization, we employ the latter as it is computationallymore practical while being sufficiently accurate.While commercial 3D printing software such as Simplify3D[Sim20], Ultimaker Cura [Ult20] and Slic3r [Pru20] provide gen-eral purpose space filling support structures in the form of regularpatterns such as zigzags or concentric, past research has exploredvarious specialized approaches targeting cost reductions in 3Dprinting. Sloped wall supports [HYW*09], tree-like space efficientapproaches [SU14; Aut20; VGB14], bridge supports [SDLW16]and scaffolding style support structures [DHL14] have been ex-plored. While these work focus on reducing the build time andamount of material used to print supports, Curvy has an emphasison enhancing the overall surface quality of the resulting print.In addition to aforementioned work on design of external supportstructures, variety of approaches has focused on developing internal . Ulu, N. Gecer Ulu, J. Li & W. Hsiao / Curvy Figure 2:
Given an input 3D geometry in an arbitrary initial orientation and users’ preferences in desired surface quality (a), Curvy optimizesthe build orientation to avoid supports in high quality regions as much as possible (b) and generates variable density curvy zigzags in eachsupport polygon (c) to create a final support structure (d). Green represents support polygons in (b) and generated support toolpaths in (c-d). supports for printing hollow objects [HLDC16; HL18; WWZW16;LL17]. While not our primary focus, our approach is inherentlycapable of generating internal support structures the same way itgenerates the external ones.
Effects of build orientation on build time and cost [AKL07;AAD98], mechanical properties [UKY*15], surface roughness[DTS16; WZK16], manufacturability [UGHN20] as well as thesupport structure [EME15] and its impacts on the target object[ZLP*15] have been studied extensively and automated means toselect the best orientation are proposed to minimize such direc-tional biases. Instead of selecting a single best orientation, other ap-proaches use robotic printing platforms to manipulate the build ori-entation actively during the print process in order to avoid the needfor support structures [WDF*17; WDF*19; DWW*18; GZN*15;XLCT19]. In our approach, we select a single build orientation thatminimizes amount of support contact on surfaces that are intendedto exhibit high surface quality when printed.Among all, Curvy is closest to [ZLP*15] that build orientationis adjusted to avoid support structures touching the perceptuallyimportant surfaces. However, our approach incorporates individualuser’s preferences rather than completely relying on a single gen-eralized model. Curvy uses saliency map only as a starting pointto guide the users in their selection. This approach allows Curvy tomitigate not only perceptual but also functional impact of supportson the target object.
3. Curvy Support Design3.1. Overview
Figure 2 illustrates the overview of our interactive support structuredesign process. Given an input 3D geometry in an arbitrary initialorientation, the user defines their preferences on desired surfacequality by simply painting on the surface of the object. Then, Curvyoptimizes the build orientation (i) to avoid the support requirementat regions that are depicted to be high quality by the user as much aspossible and (ii) to minimize the support contact area everywhere else. At the optimum orientation, the volume that is needed to befilled with support structure is computed and sliced into layers togenerate support polygons (green in Figure 2(b)). Note that lay-ers here corresponds to layers/slices in 3D printing process. Then,each support polygon is filled with curvy zigzag toolpaths. Spacingbetween the individual toolpaths ( i.e. , density) is adjusted basedon user preferences on the surface quality. For higher quality sur-face regions, spacing is decreased in corresponding parts of supportpolygons below it. Smaller spacing between support toolpaths pro-vide a higher quality bridging, thereby resulting in better surfacequality. On the other hand, it increases the amount of material usedfor supports as well as the overall print time. To mitigate such ef-fects in printing cost, density of supports are reduced in parts ofsupport polygons corresponding to lower quality requirement ar-eas. For example, note the density difference between the top leftpart of the slice and the rest of it in Figure 2(c). Finally, Curvycompiles a machine instruction (gcode) file by accumulating all thesupport toolpaths from each layer together with the toolpaths re-quired to print the target object. To illustrate the resulting supportstructure as a whole, we construct a 3D model from the generatedtoolpaths in Figure 2(d).Our motivation for generating curvy zigzags comesfrom two major observations in FFF: (i) for high qualityperimeter prints, a good bridging distance should be main-tained at the polygon boundaries and (ii) for easy removal,the support toolpaths should be perpen-dicular to both perimeter and infill tool-paths as much as possible. The formerproperty comes from the fact that sag-ging will occur when the bridging dis-tance between two supporting contactpoints is large. The latter one is dueto the adhesion characteristics betweenthe support and object layers. When thesupport paths are parallel to the infillor perimeter paths, the adhesion areaincreases, resulting in stronger bond-ing between them. The most commonlyused regular zigzag support pattern does
E. Ulu, N. Gecer Ulu, J. Li & W. Hsiao / Curvy
Figure 3:
Overview of how user input is collected. As a starting point, mesh saliency is provided (a). User paints over it to convey theirsurface quality preferences (b). Curvy then optimizes the build orientation (c). Overhanging regions that require support are highlighted ingreen in bottom view inset.
Figure 4:
Effect of build orientation optimization weight. Userpreference (a) and corresponding optimum build orientation con-sidering only user preference, ω = (b) and only support area, ω = (c). Overhang regions that require support are highlightedin green in bottom view insets. not satisfy these properties as the toolpaths are oriented in a pre-determined direction. For an arbitrary shape boundary or arbitraryinfill paths, this direction may become parallel or close to paral-lel to them, leaving some parts unsupported (parts of the ellipseperimeter shown as dashed) or resulting in very strong adhesion.Yet, both of these properties directly affect the surface quality asthe perimeters mainly constitute the visible surface of the print andpost-processing artifacts are often alleviated when the adhesion be-tween the supports and the object is lower. Our curvy zigzag tool-paths demonstrate both of these properties by complying to a bidi-rectional field (Figure 2(c)) governed by the boundary of the poly-gon as well as the predetermined infill pattern. At the heart of Curvy lies the idea of implicit support designthrough collecting user preferences directly on the target objectrather than explicitly designing supports. Figure 3 provides anoverview of user interaction and how user input is incorporated intosupport structure generation process. We start by computing meshsaliency on the input object such that salient features correspondto regions that require high surface quality Figure 3(a). Then, theuser paints over the saliency information expressing quality specifi-cations for their own preferences and functional requirements Fig-ure 3(b). This quality information is, then, used to find the optimumbuild orientation such that support contacts are minimized avoidinghigh quality regions as much as possible. We store user preference as a scalar field Q ∈ [ , ] defined on the vertices of the object meshrepresenting quality requirements. Then, Q is mapped to individ-ual slices later during the support generation process where densersupports are created for regions with higher quality requirements.We compute mesh saliency as presented in [LVJ05]. The saliencycomputation utilizes curvature information on the input mesh andidentifies visually interesting regions that are likely to be percep-tually important. While perceptual saliency methods excel in de-tecting facial features such as eyes and nose, mesh saliency ap-proaches often lack in capturing functionally important featuresthat are crucial for 3D printed objects. For this reason, we allowusers to paint over mesh saliency to express functional considera-tions. In that sense, saliency information maybe used as a startingpoint and guide users’ preference. On the other hand, saliency in-formation may partially or fully be removed on the regions that arenot visually or functionally important to the user. Contact surfaces where support structures touch the target objectoften have poor quality due to imperfect bridging or adhesion.Here, we present an optimization method to select a build orien-tation that results in minimal contact area at the regions designatedto be high quality by the user.To determine if an overhang area requires support to beprinted, how much the overhang tilts, ϕ from the build direction, z is measured and compared to a thresh-old overhang angle, ϕ t . If ϕ > ϕ t , theoverhang requires support structures.Using this principle, an object can beoriented to minimize overhang surfacearea that require support structures. In-stead of simply minimizing the con-tact surface area, in this work, we in-corporate user preferences to the objec-tive function using the quality field, Q .Since overhangs are defined on mesh faces, we map Q that is de-fined on the mesh vertices to mesh faces by averaging over verticesof each face, q j = ∑ n V k Q k / n V . Here, q j is the averaged quality valueof face j , n V is the number vertices on the face, and k is the vertex . Ulu, N. Gecer Ulu, J. Li & W. Hsiao / Curvy Figure 5:
Given the support polygons and corresponding slice of the target object with the quality preferences (a), we construct a scalardensity field (b-top) and a bidirectional field (b-bottom). We then integrate the bidirectional field to generate a set of streamlines. The spacingbetween the individual streamlines is dictated by the density field (c). Connected streamlines constitute the curvy zigzag toolpaths for thisparticular slice of the support structure (d). index. Then, we formulate our cost function as κ j ( θ ) = (cid:40) , if ϕ ( θ ) ≤ ϕ t ( − ω ) A j + ω A j q / pj , otherwise . (1)where θ = [ α , β ] represents rotations around z and x axes suchthat vertices of the rotated mesh can be calculated as V r = R x ( β ) R z ( α ) V . Here, R z and R x are rotation matrices, V is a ma-trix storing vertex positions, A j ∈ [ , ] is normalized area of face j , p > ω ∈ [ , ] is a weight param-eter. When ω is chosen to be 0, optimization minimizes total con-tact area without considering the quality input. On the other hand,when ω =
1, contact area overlapping with higher quality regionsare minimized. In other words, optimization works towards elimi-nating any support contact at high quality regions. Figure 4 demon-strates effect of ω parameter on an example case. While printingthe object upside down (Figure 4(c)) results in the least amount ofcontact area ( i.e. , ω = θ n F ∑ j κ j ( θ ) s.t. α ∈ [ − π , π ] β ∈ [ , π ] (2)where n F is the number of faces. In this formulation, only over-hang angle, ϕ needs to be recomputed for each objective evaluationas the object is reoriented. Thus, we have an optimization prob-lem with a reasonably fast objective evaluation and only two opti-mization variables. We solve this problem using simulated anneal-ing method [KGV83] that finds global minimum when sufficientnumber of iterations are performed. For the examples of this paper,optimization converged to a solution in a few seconds achievingpractical computation times for an interactive tool. We construct curvy zigzag toolpaths as connected streamlines gen-erated in a bidirectional field created inside a support polygon. Fig-ure 5 illustrates the main steps of our toolpath generation process.Let S i be a set of support polygons at layer i and T i + be the slice ofthe target object supported by S i . We start by computing the qual-ity requirements corresponding to the i th layer of our supports, QQQ i .This is done by simply taking a slab of QQQ between the layers i and i +
1, and projecting the per-vertex quality values on the surface ofthis slab onto the i th layer. This results in a set of samples on theperimeter and inside of T i + with their corresponding scalar qual-ity values (Figure 5(a)). Then, we construct two fields: (i) a scalardensity field DDD i and (ii) a bidirectional field BBB i (Figure 5(b)). Thedensity field corresponds to the linear interpolation of the qualitysamples in QQQ i . The bidirectional field is obtained as the interpo-lation of the T i + and S i boundary normals as well as a predeter-mined infill direction. Then, we generate streamlines to fill insidethe support polygon by integrating BBB i (Figure 5(c)). Here, the spac-ing between the streamlines are adjusted locally according to thedensity field DDD i . Finally, the streamlines are trimmed to the bound-aries of S i and neighboring ones are connected by their start or endpoints to create final curvy zigzag toolpaths (Figure 5(d)).For a 3D model with n slices ( i.e. , i ∈ [ , n ] where i = i = n corresponds to bottom and top slices, respectively), we start from ( n − ) th slice and process down to i =
0. For any layer, if thereexists a non-empty set of polygons C i = S i \ T i + , support toolpathsin this area is required to align with the support toolpaths in thelayer above it, S i + for a successful print. In order to guaranteesuch a property, we carry over the streamlines in S i + to S i andtrim them with C i . Then, we only create new streamlines in theremaining region of S i , E i = T i + ∩ S i . Suppose the infill direction fff is predetermined and let ddd be a vectorperpendicular to it. In order to ensure that the streamlines generated
E. Ulu, N. Gecer Ulu, J. Li & W. Hsiao / Curvy
Figure 6:
Construction of an example bidirectional field. For thesame input support polygon (a), selection of Γ along fff results inlonger and smoother paths in comparison to Γ along ddd (b-c). inside S i are perpendicular to both T i + perimeter and the infillinside it, we construct a field complying with the boundary normalsof E i and ddd . We first compute an effective infill region by offsetting E i inwards. Inside this offset polygon set O i , we enforce the fieldto be aligned with ddd . On the boundary of E i , we constrain the fieldto be aligned with the normals. Then, the region bounded by theboundaries of E i and O i constitutes the transition region where thefield orientation is obtained by linear interpolation. This allows usto obtain a smooth field inside E i to generate our streamlines.Simply computing a vector field through interpolation of bound-ary normals and ddd , however would result in a large number of sin-gularity points that would prevent us from creating long and smoothpaths. Consider a case where two points are located across eachother on opposite sides of a rectangular polygon. As the normals ofthe polygon point outward, they are assigned vectors in opposite di-rections. Although there may be a single path connecting these twopoints while satisfying our criteria above, interpolation of a vec-tor field in between these two points would result in a singularitypoint where the magnitude of the vector field becomes zero. Inte-gration of such a vector field would result in a broken path betweenthese two points. As the paths does not have directionality, we usea bidirectional field to avoid such problems. For bidirectional fieldinterpolation, we represent each vector with the smallest angle itmakes with a predetermined fixed axis, Γ . Figure 6 demonstratesan example case. In this example, we assume E i = S i = T i + ( i.e. , C i = ∅ and there are no streamlines carried over from the ( i + ) thlayer) for simplicity.Bidirectional fields allow singularities in the neighborhood ofwhich the field turns π radians [VO19]. In our formulation, thismeans that the singularities will occur around Γ . In order to mini-mize the number of singularities in the resulting field, we select Γ along the infill direction fff . As the interpolation is often betweenthe boundary normals of E i and ddd , we observed that selecting Γ this way keeps the active interpolation region away from the prob-lematic area. An example comparison is provided in Figure 6(b)and (c). For the same input configuration, we obtain longer andsmoother paths by selecting Γ along fff in comparison Γ along ddd .In cases where C i (cid:54) = ∅ , we additionally use boundary normals Figure 7:
Effect of density fields on generated toolpaths: constantdensity fields (a)-(b) versus arbitrary varying density fields (c)-(d). of S i while computing the bidirectional field (see Figure 5). Thisallows us to expand the field to the entire S i and extend the stream-lines towards C i . We found such an approach particularly usefulwhen S (and therefore, E ) is significantly small at a layer and grad-ually increases in size as moved towards the bottom. In such a case,streamlines in E become too short in the top layers and get filteredout (as practically it may not be possible to print such short paths),thereby effectively skipping that particular support layer. In the fol-lowing layers below it, extending streamlines to entire S allow usto compensate for the filtered out streamlines and prevent skippinglayers that have large S to generate long enough streamlines. We adopt a similar approach to [JL97] in creating streamlines withcontrolled density. Different from this method, our approach con-trols the spacing between adjacent streamlines locally using thedensity field
DDD iii rather than a global density parameter. We gen-erate streamlines by performing numerical integration of the bidi-rectional field
BBB i . Seed point for a new streamline is chosen at adistance d sep away from an existing streamline. As the streamlinesare represented as polylines (series of points), this corresponds tosimply offsetting a point on a streamline in its normal direction.Then, starting from the seed point, a new streamline is iterativelyelongated in both directions until it hits the domain boundary ( i.e. ,boundary of S i ), reaches to a singular point where magnitude of thefield is close to 0 or comes closer to another existing streamlinethan a distance d test . Streamline generation stops when there is nomore valid seed points. In our approach, an arbitrary point on theboundary of E i is selected as the starting seed point to initialize thealgorithm. In order to avoid leaving large gaps or skipping uncon-nected components of S i , we use additional seed points placed on aregular grid created inside the bounding box of S i .In order to control the local spacing between the streamlines, wecompute d sep as d sep = d min + ( − DDD iii ( x , y ))( d max − d min ) (3) . Ulu, N. Gecer Ulu, J. Li & W. Hsiao / Curvy Figure 8:
The order at which each streamline is created revealsour seed point selection approach. Different from C i + = ∅ (a), endpoints of carryover streamlines are used as seed points first whenC i (cid:54) = ∅ (b). Gray parts of the streamlines belong to S i + and are notcarried over to S i . where DDD iii ( x , y )) ∈ [ , ] is value of the density field at a location ( x , y ) . Here, d min and d max are minimum and maximum allowedspacing, respectively. d max is dictated by the process and corre-sponds to the maximum distance for successful bridging. On theother hand, d min may theoretically be 0, corresponding to solid fill-ing of the support area. In our examples, we set d min = . d max to avoid impractically strong adhesion between the supports andthe object. We use d test as a percentage of d sep . This relaxes theconstraints on streamline generation and helps us obtain longerstreamlines by increasing the minimal distance at which the inte-gration of the streamline will be stopped [JL97]. We found that d test = . d sep provides us a good balance between obtaininglonger streamlines and having a stricter control on the spacing be-tween streamlines. Figure 7 illustrates the effect of density field onthe spacing between streamlines. Toolpaths generated for arbitrary DDD iii ’s are demonstrated (Figure 7 (c)-(d)). Two extreme cases where
DDD iii = ∀ ( x , y ) ∈ S i ( i.e. , d sep = d max ) and DDD iii = ∀ ( x , y ) ∈ S i ( i.e. , d sep = d min ) are also provided as baseline cases (Figure 7 (a)-(b)).For the integration, we use a fixed step Euler integrator whereeach new point of a streamline is calculated as p k + = p k + h ¯ bbb ( p k ) . (4)Here, h is the integration step and p k is the last point of the stream-line. ¯ bbb ( p k ) represents the unit direction vector at point p k and it isobtained from the field BBB i . As BBB i is bidirectional, there are two pos-sible directions to extend the streamline at any arbitrary point p k .Suppose BBB i ( p k ) = { + bbb , − bbb } where bbb is a vector. Among the twopossible direction, we select the one that deviates the least from theprevious step as ¯ bbb ( p k ) = argmax xxx ∈ BBB i ( p k ) ( p k − p k − ) · xxx . (5)In order to avoid streamline making abrupt turns, we stop the inte-gration when the angle between ¯ bbb and the last line segment of thestreamline is larger than a certain threshold. In our examples, wefound π / C i (cid:54) = ∅ , we first elongate the streamlines that are carriedover from S i + as much as possible before starting to generate newstreamlines in E i . For this purpose, end points of carryover stream-lines are used as seed points for the integration. New seed points Figure 9:
Two types of connecting paths: Straight path (a)-(d) andboundary following path (b)-(c). All connecting paths are shown inred. are then created by offsetting the elongated streamlines. Figure 8demonstrates an example case. Order at which each streamline iscreated reveals our seed point selection process.
Given the streamlines in each layer of support S i , the last step inour support generation approach involves connecting neighboringones to generate long and continuous curvy zigzag paths. To dothat, we first trim streamlines to the boundary of S i . Then, startingfrom the shortest streamline, our algorithm visits each streamline l j in order and connects it to another unvisited streamline l k in closeproximity. For a successful connection to happen between l j and l k ,we look for the following criteria: (i) an end point l j is sufficientlyclose to an end point of l k , (ii) the connecting path does not inter-sect with other streamlines or other connecting paths and (iii) theconnecting path does not leave the boundaries of S i . When a suc-cessful connection occurs between l j and l k , extension continuesfrom the opposite end of l k until there is no more valid connectionavailable.In our algorithm, we create two types of connecting paths be-tween streamlines– straight path and boundary following path. Theformer one is created when the connecting end points of both l j and l k are inside S i . In this case, the end points are simply connectedwith a straight line. The latter one is created when the connectingend points are on the boundary of S i . This time our algorithm usesthe shortest boundary segment connecting these two points as theconnecting path. This approach allow us to create toolpaths thatsupports the perimeters well and maintains the boundary details.An example case is illustrated in Figure 9.For slices with C i (cid:54) = ∅ , we do not carryover the connecting pathsand re-evaluate the connections after all the streamlines are createdin the current slice. This is mainly because better connections maybe created after the carryover streamlines are extended in the newlayer. Here, the term better often indicates shorter connection dis-tance.In the presence of carryover streamlines, C continuity is oftenbroken, reducing to C , during the elongation process described E. Ulu, N. Gecer Ulu, J. Li & W. Hsiao / Curvy
Figure 10:
Example results. Left-to-right: quality preferences, resulting supports in optimum orientation, example slices of support structuresand 3D printed results. earlier. The reason behind this is that the bidirectional fields oftenchange from one slice to another. For example, carryover stream-lines are created by integrating
BBB i + while the extensions are donein a new field BBB i . In such cases, we smooth the streamline aroundthe junction point using Laplacian smoothing [BKP*10]. Resultingpaths are more suitable for FFF type printing as issues related toacceleration/deceleration at sharp corners are eliminated, resultingin an improvement in print time.After the individual paths are created, machine instructions arecompiled in the form of commonly accepted gcode. Here, both oursupport toolpaths and the target object toolpaths are accumulated together for all layers. We use gsSlicer[Gra20] to generate toolpathsfor the target object as well as to convert all the toolpaths to gcode.
4. Results and Discussion
We demonstrate the performance of our method on a variety ofmodels and validate it with 3D printed results. For all the examples,we set fff = [ , ] , ϕ t = π /
4, layer height to be 0 . mm and ω = . Ulu, N. Gecer Ulu, J. Li & W. Hsiao / Curvy Figure 11:
Detail views of 3D printed bunny puzzle pieces. Eachrow is marked with the color indicating correspondence to Fig-ure 1.
Figure 10 illustrate example results obtained using Curvy. All theexample models are successfully printed in corresponding optimalorientations with curvy zigzag supports. For cases where the buildorientation optimization is able to avoid supports in all high qualityregions ( e.g. , Mr. Humpty model in the first row, or mechanicalmodel in the last row), curvy zigzags are generated with constantspacing of d max . On the other hand, when there is no possible ori-entation that supports can be avoided at high quality regions alltogether, significant density variations are observed. For example,notice the dense region on the bottom left area of the example slicein the shell model (third row) in comparison to rest of the slice.In our approach, user selection may be driven by visual prefer-ences ( e.g. , first three rows of Figure 10) as well as functional re-quirements. Figure 1 and last row of Figure 10 demonstrate exam-ple cases where the motivation for the user selection is mainly func-tional. In these examples, the surfaces that are required to have tightgeometric tolerances due to contact with other parts are assignedhigh quality values. In resulting prints, supports contacting thosesurfaces are completely avoided or designed to have high densitycurvy zigzags to achieve best print quality. Figure 11 shows detailviews of 3D printed puzzle pieces. For the face piece (marked withyellow), perceptually important face as well as functionally impor-tant tabs and grooves are marked as high quality regions. There-fore, they are left support free as much as possible. For other pieces(marked with blue and red), only tabs and grooves are assignedhigh quality requirements, therefore some of their outward facingsurfaces show support contact marks in resulting prints. Figure 12:
Hilbert Cube. Curvy zigzag supports (a), an exampleslice of the support structure (b). Comparison of 3D printed resultsusing regular zigzag (c) and our curvy zigzag (d) supports. Insetfigures in (c)-(d) shows the printed models before support removal.
Figure 13:
Plant. Curvy zigzag supports (a), an example slice ofthe support structure (b). Comparison of 3D printed results usingregular zigzag (left) and our curvy zigzag supports (right) in (c)-(e).
We compare the performance of our curvy zigzag supports with theregular zigzags generated using Simplify3D[Sim20]. For an accu-rate comparison, we do not optimize the build orientation and weuse a constant d sep that is equivalent to regular zigzag spacing. InFigure 12 and Figure 13, we illustrate example cases. In Hilbert E. Ulu, N. Gecer Ulu, J. Li & W. Hsiao / Curvy
Figure 14:
Mushroom. Desired surface quality (a), resulting curvyzigzag supports (b), an example slice of the support structure (c)and 3D printed result demonstrating the effect of the input userpreferences on the surface quality (d). Close-up views of the surfaceare given in insets in (d). cube example, our curvy zigzags provide better support to over-hang surfaces by changing the zigzag orientation to comply withtheir boundaries (Figure 12(b)) as opposed to constant orientationin regular zigzags. As a result, bridging distance is well maintainedoverall, thereby allowing a better quality print. Similarly, in plantmodel, our curvy toolpaths result in significantly better perimeterswhile quality degrades on perimeter regions that are close to paral-lel to zigzag direction in regular zigzags.For the same spacing value, we measured 2% increase in totalprint time and 10% increase in total material amount with curvyzigzags in comparison to regular zigzags. This increase mainlycomes from the fact that curvy toolpaths can cover an arbitrarypolygon better and leave smaller amount of empty regions com-pared to regular zigzags aligned on a predetermined grid.
We demonstrate the effect of support density on the surface qualityon an example model in Figure 14. We set half of the mushroommodel to have the highest quality while the other half is assignedthe lowest quality value. We observe significant improvement onthe perimeters as well as the infill region on the half supported bydense curvy zigzags over the other half supported by low densityzigzags. On the low density half, gaps are formed between individ-ual extrusions due to sagging in the infill region and accuracy di-minishes due to large bridging distance on the perimeter. Yet, lowdensity half of the supports can be printed using ∼
70% less mate-rial which translates to similar savings in build time.
Figure 15:
Interface of our design tool. Quality toolkit for userinput (left) and build orientation optimization and support structuregeneration options (right).
Figure 16:
Survey results for selected questions (1: Strongly Dis-agree, 7: Strongly Agree). Circles and error bars represent meanvalues and standard errors, respectively.
We implemented the user interface in C++ and the backend tool-pathing algorithm in Python. We use Shapely † for geometric oper-ations and SciPy ‡ for field interpolations.Figure 15 demonstrates the interface of our design tool. Afterproviding the surface quality input, users have an option to performthe build orientation optimization. For the support toolpath genera-tion, users can calibrate the system to their own printer by adjusting d max , fff , ϕ t and layer height. The system outputs G-code files. In order to collect user feedback to evaluate and validate Curvy,we conducted an informal, guided preliminary user study with 8participants (aged 16-48). 7 out of 8 participants have reported thatthey are familiar with 3D printing and 6 of them have used a 3Dprinting software that is capable of generating support structures ofsome form.The participants joined the 45 minute remote study where theywere introduced the concept of support structures in 3D print-ing and their effects on surface quality. Then, they are showna video demonstrating support structure design process in Sim-plify3D[Sim20] as well as Curvy on the Moai Statue model. Once † https://pypi.org/project/Shapely/ ‡ . Ulu, N. Gecer Ulu, J. Li & W. Hsiao / Curvy they are familiar with the tools, they are asked to use Curvy todesign support structures on an arbitrary model. Participants areasked to use their favorite 3D model or the provided Moai Statuemodel. They were also shown 3D printed results of Hilbert Cube(Figure 12), plant (Figure 13) and mushroom (Figure 14) models tocompare the resulting surface quality with regular zigzag supports.Finally, participants are asked to complete a survey evaluating theiroverall experience with Curvy and quality of the resulting prints bycomparing them with ones obtained using regular zigzag supports(in the Likert scale 1-7).Survey results for a selected set of questions are reported in Fig-ure 16. Overall, we found that the participants saw a clear benefitof using Curvy for designing support structures. They reported thatCurvy is easy and straightforward to use. Yet, for some, adjustmentof build orientation optimization weight was not intuitive. Partic-ipants found the painting style input easy and intuitive to expressquality expectations. They reported to like the immediate feedbackthey are getting as opposed to conventional way of explicit sup-port design. One important comment we received was that suchfree-form surface painting was useful for organic shapes but forman-made geometries such as mechanical models, one participantsuggested that a surface selection tool would be useful for betterprecision. In general, participants expressed that the print qualityobtained using Curvy is better than what is achieved with regularzigzags. 50% of them indicated strong preference of using Curvyover other conventional software for designing support structures.Only one of the participants reported to prefer conventional soft-ware as opposed to Curvy. Our curvy toolpath generation algorithm is most suitable for sparsefilling of support polygons. For dense filling, it may create largenumber of short streamlines. Although this may be technically vi-able, it may not be practically desirable for toolpath generation.In connecting the streamlines, we use a naive approach of join-ing streamlines with closest end points. In some cases, this mayresult in suboptimal connections where the resulting toolpaths arepossibly shorter than what could be obtained with an optimizationapproach.In our approach, we collect user preferences only on surfacequality to design support structures. However, it is possible usesimilar user interaction to gather high-level preferences on otherqualities such as structural performance, model accuracy etc. andtranslate them to other process parameters in 3D printing similar toour approach. A natural extension to our approach would be to de-sign variable density infill toolpaths with structural considerations.We provide a saliency map to the user as a starting point for ac-quiring surface quality preferences. Although the saliency map isuseful for guiding users on perceptually important features of themodel, it does not provide any information on functionally impor-tant parts. In the future, our approach could be extended or comple-mented with a functional saliency map to provide better predictionor guidance on the quality requirements.
5. Conclusion
In this paper, we present an interactive tool for implicit design ofsupport structures through high-level user preferences defined di-rectly on the target object. Perceptual and functional impact ofthe support structure on the object is attenuated automatically by (i) selecting the build orientation that minimize the contact with re-gions that are intended to have high surface quality, (ii) generatingcurvy toolpaths that conform to the shape boundaries as well asthe infill patterns and (iii) adjusting the density of these toolpathslocally. Compared to previous methods, combination of these at-tributes makes our approach a practical and intuitive way to designsupport structures without requiring low-level knowledge on under-lying support generation algorithm.
References [AAD98] A
LEXANDER , P
AUL , A
LLEN , S
ETH , and D
UTTA , D
EBASISH .“Part orientation and build cost determination in layered manufacturing”.
Computer-Aided Design
ISSN : 0010-4485 3.[AD95] A
LLEN , S
ETH and D
UTTA , D
EBA . “Determination and evaluationof support structures in layered manufacturing”.
Journal of Design andManufacturing
LEXA , M
ARC , H
ILDEBRAND , K
RISTIAN , and L
EFEBVRE ,S YLVAIN . “Optimal Discrete Slicing”.
ACM Trans. Graph.
ISSN : 0730-0301.
DOI : HN , D AEKEON , K IM , H OCHAN , and L EE , S EOKHEE . “Fab-rication direction optimization to minimize post-machining in layeredmanufacturing”.
International Journal of Machine Tools and Manufac-ture
UTODESK , I NC . Autodesk MeshMixer
OTSCH , M
ARIO , K
OBBELT , L
EIF , P
AULY , M
ARK , et al.
Poly-gon mesh processing . CRC press, 2010 8.[CJR95] C
HALSANI , K
UMAR , J
ONES , L
ARRY , and R
OSCOE , L
ARRY .“Support generation for fused deposition modeling”. . 1995 2.[DHL14] D
UMAS , J
ÉRÉMIE , H
ERGEL , J
EAN , and L
EFEBVRE , S
YLVAIN .“Bridging the gap: automated steady scaffoldings for 3D printing”.
ACMTransactions on Graphics (TOG)
ELFS , P, T
OWS , M, and S
CHMID , H-J. “Optimized build ori-entation of additive manufactured parts for improved surface quality andbuild time”.
Additive Manufacturing
12 (2016), 314–320 3.[DWW*18] D AI , C HENGKAI , W
ANG , C
HARLIE
CL, W U , C HENMING , etal. “Support-free volume printing by multi-axis motion”.
ACM Transac-tions on Graphics (TOG)
ZAIR , B EN , M ASSARWI , F
ADY , and E
LBER , G
ERSHON . “Ori-entation analysis of 3D objects toward minimal support volume in 3D-printing”.
Computers & Graphics
51 (2015). International ConferenceShape Modeling International, 117–124.
ISSN : 0097-8493 3.[ERP*19] E
TIENNE , J
IMMY , R AY , N ICOLAS , P
ANOZZO , D
ANIELE , et al.“CurviSlicer: Slightly Curved Slicing for 3-Axis Printers”.
ACM Trans.Graph.
ISSN : 0730-0301.
DOI : RADIENTSPACE . gsSlicer AO , W EI , Z HANG , Y
UNBO , N
AZZETTA , D
IOGO
C., et al.“RevoMaker: Enabling Multi-Directional and Functionally-Embedded3D Printing Using a Rotational Cuboidal Platform”.
Proceedings of the28th Annual ACM Symposium on User Interface Software & Technology .UIST ’15. Charlotte, NC, USA: Association for Computing Machinery,2015, 437–446.
ISBN : 9781450337793 3.2
E. Ulu, N. Gecer Ulu, J. Li & W. Hsiao / Curvy [HL18] H
ORNUS , S
AMUEL and L
EFEBVRE , S
YLVAIN . “Iterative Carvingfor Self-supporting 3D Printed Cavities”.
EG 2018 - Short Papers . Ed.by D
IAMANTI , O
LGA and V
AXMAN , A
MIR . The Eurographics Associ-ation, 2018 3.[HLDC16] H
ORNUS , S
AMUEL , L
EFEBVRE , S
YLVAIN , D
UMAS ,J ÉRÉMIE , and C
LAUX , F
RÉDÉRIC . “Tight printable enclosures andsupport structures for additive manufacturing”.
Proceedings of theEurographics Workshop on Graphics for Digital Fabrication . 2016, 11–21 3.[HPL*19] H E , L IANG , P
ENG , H
UAISHU , L IN , M ICHELLE , et al. “Ondulé:Designing and Controlling 3D Printable Springs”.
Proceedings of the32nd Annual ACM Symposium on User Interface Software and Technol-ogy . 2019, 739–750 2.[HYW*09] H
UANG , X
IAOMAO , Y E , C HUNSHENG , W U , S IYU , et al.“Sloping wall structure support generation for fused deposition model-ing”.
The International Journal of Advanced Manufacturing Technology
OBARD , B
RUNO and L
EFER , W
ILFRID . “Creating evenly-spacedstreamlines of arbitrary density”.
Visualization in Scientific Comput-ing’97 . Springer, 1997, 43–55 6, 7.[KGV83] K
IRKPATRICK , S
COTT , G
ELATT , C D
ANIEL , and V
ECCHI ,M ARIO
P. “Optimization by simulated annealing”. science
IRSCHMAN , CF, J
ARA -A LMONTE , CC, B
AGCHI , A, et al.“Computer aided design of support structures for stereolithographiccomponents”.
Proceedings of the 1991 ASME Computers in Engineer-ing Conference . 1991, 443–448 2.[LL17] L EE , J USUNG and L EE , K UNWOO . “Block-based inner supportstructure generation algorithm for 3D printing using fused depositionmodeling”.
The International Journal of Advanced Manufacturing Tech-nology EE , C HANG H A , V ARSHNEY , A
MITABH , and J
ACOBS , D
AVID
W. “Mesh saliency”.
ACM SIGGRAPH 2005 Papers . 2005, 659–666 4.[NAI*18] N
AKASHIMA , K
AZUTAKA , A
UZINGER , T
HOMAS , I
ARUSSI ,E MMANUEL , et al. “CoreCavity: interactive shell decomposition for fab-rication with two-piece rigid molds”.
ACM Transactions on Graphics(TOG)
ENG , H
UAISHU , B
RIGGS , J
IMMY , W
ANG , C
HENG -Y AO , etal. “RoMA: Interactive fabrication with augmented reality and a robotic3D printer”. Proceedings of the 2018 CHI Conference on Human Factorsin Computing Systems . 2018, 1–12 2.[Pru20] P
RUSA R ESEARCH S . R . O . Slic3r (Prusa Edition)
HEN , Z
HEN -H ONG , D AI , N ING , L I , D A -W EI , and W U ,C HANG -Y OU . “Bridge support structure generation for 3D printing”. Materials, Manufacturing Technology, Electronics and Information Sci-ence (MMTEI2015) Proceedings for the 2015 International Workshopon Materials, Manufacturing Technology, Electronics and InformationScience (MMTEI2015) . World Scientific. 2016, 141–149 2.[Sim20] S
IMPLIFY NC . Simplify3D
CHMIDT , R
YAN and U
METANI , N
OBUYUKI . “Branching supportstructures for 3D printing”.
ACM SIGGRAPH 2014 Studio . 2014, 1–1 2.[TMG*15] T
EIBRICH , A
LEXANDER , M
UELLER , S
TEFANIE , G
UIM - BRETIÈRE , F
RANÇOIS , et al. “Patching physical objects”.
Proceedingsof the 28th Annual ACM Symposium on User Interface Software & Tech-nology . 2015, 83–91 2.[UGHN20] U LU , E RVA , G
ECER U LU , N URCAN , H
SIAO , W
ALTER , andN
ELATURI , S
AIGOPAL . “Manufacturability Oriented Model Correctionand Build Direction Optimization for Additive Manufacturing”.
Journalof Mechanical Design LU , E RVA , K
ORKMAZ , E
MRULLAH , Y AY , K UBILAY , et al.“Enhancing the structural performance of additively manufactured ob-jects through build orientation optimization”.
Journal of Mechanical De-sign
LTIMAKER
B.V.
Ultimaker Cura .https://ultimaker.com/software/ultimaker-cura. Accessed: 2020-04-06. 2020 2.[VGB14] V
ANEK , J
URAJ , G
ALICIA , J
ORGE
A G
ARCIA , and B
ENES ,B EDRICH . “Clever support: Efficient support structure generation fordigital fabrication”.
Computer graphics forum . Vol. 33. 5. Wiley OnlineLibrary. 2014, 117–125 2.[VO19] V
IERTEL , R
YAN and O
STING , B
RAXTON . “An approach to quadmeshing based on harmonic cross-valued maps and the Ginzburg–Landau theory”.
SIAM Journal on Scientific Computing
ANG , W
EIMING , C
HAO , H
AIYUAN , T
ONG , J
ING , et al.“Saliency-Preserving Slicing Optimization for Effective 3D Printing”.
Computer Graphics Forum
DOI :
10 . 1111 /cgf.12527 U , C HENMING , D AI , C HENGKAI , F
ANG , G
UOXIN , et al.“RoboFDM: A robotic system for support-free fabrication using FDM”. . IEEE. 2017, 1175–1180 3.[WDF*19] W U , C HENMING , D AI , C HENGKAI , F
ANG , G
UOXIN , et al.“General Support-Effective Decomposition for Multi-Directional 3-DPrinting”.
IEEE Transactions on Automation Science and Engineering (2019) 3.[WWZW16] W U , J UN , W ANG , C
HARLIE
CL, Z
HANG , X
IAOTING , andW
ESTERMANN , R
ÜDIGER . “Self-supporting rhombic infill structuresfor additive manufacturing”.
Computer-Aided Design
80 (2016), 32–42 3.[WZK16] W
ANG , W. M., Z
ANNI , C., and K
OBBELT , L. “Improved Sur-face Quality in 3D Printing by Optimizing the Printing Direction”.
Com-puter Graphics Forum
DOI :
10 . 1111 / cgf .12811 U , K., L I , Y., C HEN , L., and T
ANG , K. “Curved layer basedprocess planning for multi-axis volume printing of freeform parts”.
Computer-Aided Design
114 (2019), 51–63 3.[ZLP*15] Z
HANG , X
IAOTING , L E , X INYI , P
ANOTOPOULOU , A
THINA , etal. “Perceptual models of preference in 3D printing direction”.