String Art: Towards Computational Fabrication of String Images

如果无法正常显示,请先停止浏览器的去广告插件。
分享至:
1. EUROGRAPHICS 2018 / D. Gutierrez and A. Sheffer (Guest Editors) Volume 37 (2018), Number 2 String Art: Towards Computational Fabrication of String Images Michael Birsak 1 Florian Rist 1 1 GCD / TU WIEN Peter Wonka 2 2 VCC Przemyslaw Musialski 1 / KAUST Figure 1: Closeup photography of a string art image generated with our computational fabrication pipeline. Abstract In this paper we propose a novel method for the automatic computation and digital fabrication of artistic string images. String art is a technique used by artists for the creation of abstracted images which are composed of straight lines of strings ten- sioned between pins distributed on a frame. Together the strings fuse to a perceptible image. Traditionally, artists craft such images manually in a highly sophisticated and tedious design process. To achieve this goal fully automatically we propose a computational setup driven by a discrete optimization algorithm which takes an ordinary picture as input and converts it into a connected graph of strings that tries to reassemble the input image best possibly. Furthermore, we propose a hardware setup for automatic digital fabrication of these images using an industrial robot that spans the strings. Finally, we demonstrate the applicability of our approach by generating and fabricating a set of real string art images. 1 Introduction String art is a technique for the creation of visual artwork where images emerge from a set of strings that are spanned between pins. There are several artists that have experimented with the creation of string art using a proprietary algorithmic solutions in combination with manual crafting [Vre16] or automatic fabrication [Laa18]. In this paper, we propose a formal treatment of the problem and an automatic computational fabrication pipeline to generate string im- ages that resemble a gray scale image given as input. Our goal is to compute the string path around the given pins and to fabricate the string images automatically using a robot. While the pins can be placed in any pattern, we focus on a setup where pins are distributed along a circular frame which encloses a canvas. In addition, we would like the image to be generated by a single string without cutting it. Please refer to Figure 2 which depicts this process. The main challenge of computational string art is the proper for- submitted to EUROGRAPHICS 2018. mulation of an optimization problem that computes the path of the string. There are many parameters and design choices leading to very different optimization problems. For example, the selection of parameters, like the number of pins and the image resolution used in the computation, drive the scale of the problem. The image for- mation model influences the complexity of optimization. Considering all possible factors leads to an overly ambitious mod- eling of the problem that is discrete, very-large scale, and non- linear. Therefore, the best known algorithm for generating string art proposes to relax the problem into a least squares formulation and employ thresholding [Var17]. This leads to a reasonable base- line solution, but there are still too many visual artifacts. Based on a large set of experiments, we confirmed that it is reason- able to split the problem into two parts. The complete string path is broken down into individual string segments from one pin to an- other. The first part of the optimization is concerned with selecting a subset of individual string segments and the second part of the
2. 2 M. Birsak, F. Rist, P. Wonka, P. Musialski / String Art: Towards Computational Fabrication of String Images optimization computes a sequence of string segments. However, we also observed that the relaxation of the string segment selection leads to large errors and that it is better to formulate the problem as a non-linear binary least squares problem directly. While this prob- lem is NP-hard and cannot be solved exactly in feasible time, we propose an iterative greedy algorithm that clearly outperforms the relaxed version of the problem in practice. Contributions. We propose a framework for the computation and automatic fabrication of string images. We present an analysis of the important parameters in the fabrication process in Section 3, a formulation of the problem as an optimization task with various objectives in Section 4, an iterative greedy approximation solver for binary problems in Section 5, an improved Eulerian path extraction algorithm in Section 6, and an automatic fabrication setup using an industrial robotic arm in Section 7. 2 Related Work The generation of artistically looking images has a long tradition in the computer graphics community. There have been many ap- proaches for the abstraction and creation of images both for digital as well as for physical purposes. All these techniques have one in common: there is some input example (often just an image), and there is a computational pipeline that transforms the input into a specific artistic style, appearance, or a physical phenomenon. Abstractions and Conversions. There are couple of pioneer- ing works that aim at abstraction of input photographs such that they mimic some artistic techniques, like impressionistic images [Hae90], pen and ink illustrations [SABS94], or general transfer of one style of painting to other images [HJO ∗ 01]. Elber [Elb10] pro- posed a method for creation of abstract 3d ortho-pictures from sets of various 2d inputs. Also other types of abstractions have been developed, as for in- stance generation of halftone QR codes [CCLM13] or creating per- sonalized jigsaw puzzles from input images [LSS ∗ 14]. Also meth- ods for the conversion of low-resolution pixel images to vector graphics have been proposed [KL11]. Shadows and Perspective. Another branch of works aims at the generation of images using controlled shadow casting. One impres- sive work proposes a system for optimization of 3d objects in or- der to cast varying shadow images [MP09] if lit from different di- rections. Alexa and Matusik proposed a method which generates images by self-occlusion of a large set of small tubes of varying length [AM11]. The idea of images cast by shadowing has been further explored by Bermano et al. [BBAM12], who proposed a method to create multiple self-shadowing pictures which emerge depending on the direction the surface is lit from, and by Baran et al. [BKB ∗ 12], who proposed a set of layers which cast a desired shadow if lit appropriately. Recently, Zhao et al. [ZLW ∗ 16] proposed an approach for the com- putation of perforated lampshades for continuous projective images which emerge as shadows on the walls if a lamp is lit. Another very interesting method proposed by Schüller et al. [SPSH14] creates so-called appearance-mimicking surfaces, where an image is dis- tributed across different geometric objects and emerges as a relief only if viewed from a very specific position. Light and Optics. Yet another set of methods aim at the genera- tion of images from reflections or other light effects, especially by fabricating surfaces of objects with controlled appearance and re- flectance properties. Weyrich et al. [WPMR09] proposed a method for the fabrication of small geometric patches whose surfaces ex- hibit desired appearance, such that e.g., their reflection casts a spe- cific pattern. These ideas were further extended, e.g., by Levin et al. [LGX ∗ 13]. Other interesting image generation methods utilize effects caused by light transport through (semi) transparent me- dia [PJJ ∗ 11, YIC ∗ 12, STTP14]. These works introduce solutions how to create controlled caustics using inverse light transport. Reliefs and Fabrication. Reliefs are yet another technique for creation of abstracted physical images. They were used by artists since ancient times, and also in the computer graphics community, their computation from 2d [AM10] and 3d objects [WDB ∗ 07] with further digital fabrication using CNC milling has been proposed. Reliefs have been also used to make existing artworks more acces- sible by blind and visually impaired people [RMP11]. More recently, techniques for the texturing of physical reliefs or 3d objects [PDP ∗ 15, ZYZZ15] as well as for the generation of spatial physical shapes from flat sheets using thermoforming have been proposed [SPG ∗ 16]. In both cases the problem is to map the image appropriately to the deformed surface. Computer and Robot Aided Arts. Utilization of robots for im- age generation has also been already approached. For instance, Lindemeier et al. [LPD13] intorduced a feedback loop robot-setup which repaints given target images in with a certain abstraction. Another setup uses drones that are automatically controlled in or- der to paint stipples on the canvas in order to reproduce an input image [GKAK16]. Computationally aided-painting has been also introduced. For in- stance, Prevost et al. [PJJSH16] introduced a spray-painting system based on motion-tracking and computer-controlled release of the spray-valve, and Shilkrot et al. [SMPZ15] an augmented air-brush system. Finally, also in the HCI community, questions of the utilization of robots for arts [SY17] have been raised. Our method, however, does not claim to generate arts. Indeed, our method is an automation of a known technique which generates artistically looking results from existing input samples. 3 Fabrication Considerations The physical setup we propose is the following: we use a (circular) canvas of a certain diameter and distribute pins along its frame. Then we span strings between the pins following an Eulerian path using an industrial robot. In Section 7 we explain the details of the fabrication process. However, in order to model the problem formally as a computational task and at the same time to meet the requirements for digital fabrication, we cast a set of assumptions and requirements: (R1): We assume that a physical string is entirely opaque. In prac- tice, the polyester overlock thread we have used meets this as- sumption very well. This implies that drawing the same string multiple times results in the same outcome, hence, the question if a particular string between two pins is drawn or not is binary (i.e., ∈ B). (R2): Further, we discretize the canvas with a regular grid and as- sume that the physical string thickness t in combination with the submitted to EUROGRAPHICS 2018.
3. M. Birsak, F. Rist, P. Wonka, P. Musialski / String Art: Towards Computational Fabrication of String Images Frame 3 where m is the number of all pixels, concatenated row-wise. The output of the optimization algorithm is a binary array, where each entry corresponds to an edge which could be drawn on the canvas. Activated bins reflect edges which need to be drawn. We denote the output as the column vector Canvas Pins x ∈ B n , Strings where n is the number of all possible edges. It has the dimension- ality of   p n = 4 , 2 Figure 2: Top: three schematic steps of the string image generation process. The setup is a frame that surrounds a canvas. The pins are distributed along the frame. Then strings are spanned between the pins until they fuse to a perceptible image. Bottom: three steps of a real string image generation process with 256 pins. diameter of the canvas d induce its resolution Z, in particular: Z = 1 d . t This means that if a string is drawn horizontally or vertically and it passes through the middle of a pixel, it covers it entirely. The rationale behind this assumption is that it gives us a unique assignment of the physical domain to the computational model, such that, in general, our model is independent of the used string thickness or frame size. However, please note that it now influ- ences the computational complexity of the model. In practice we work with a canvas of d = 630 mm and a thread with a thickness t = 0.15 mm and thus with a full grid resolution of Z = 4, 096 × 4, 096 pixels. (R3): We account for the pin diameter (or width), which implies that a connection between two pins in practice can be drawn in four different ways, as shown in Figure 6. In our setup, a pin has a rectangular cross section with a width of 2 mm, which corresponds to approx. 13 pixels on the canvas. Working with single connections would thus introduce a significant error and moreover, also disturbing Moire patterns. (R4): Eventually, we also take into account that the output needs to be fabricable using one long thread, which means that the finally generated path needs to be an Eulerian path. In order to meet all these requirements we have developed a com- putational fabrication model which converts an input target image into a string artwork that is automatically fabricated by a robot. 4 Problem Formulation The input to our framework is an ordinary grayscale image. We convert it into a real number representation in the range of [ 0, 1 ] and denote it further as the column vector y ∈ [ 0, 1 ] m ⊂ R m , submitted to EUROGRAPHICS 2018. where p is the number of pins on the frame of the canvas. Please note that B n is an extended space of edges which includes all four possibilities to connect two pins as required by (R3) as depicted in Figure 6. In the following, the goal of our efforts is to determine the best way to define a mapping F from the space of edges to the space of pixels, i.e., F : B n → [ 0, 1 ] m x 7→ F ( x ) , with and to determine the values of the elements of the vector x such that it delivers the best approximation of the input image. Best means here to reach the highest possible visual quality of the fabricated re- sult which needs to be—of course—judged qualitatively. However, in order to quantify this problem to treat it computationally, we cast it as an optimization task of the form: min k F ( x ) − y k x s.t. x ∈ B n under a certain norm k·k . 4.1 Linear Least Squares Using least squares is the simplest baseline approach [Var17]. The goal is to determine the values of the vector x such that the squared l 2 -norm (further denoted as k·k 22 ) between the input image and the approximated image is minimized in the least squares sense. In the simplest case, we could cast the problem as an ordinary linear least squares problem of the form: min k Ax − y k 22 x with A : R n → R m , (1) where A is a linear mapping from the space of edges to the space of pixels. The rows of the matrix A correspond to pixels and columns to edges and in the simplest case it contains ones in all entries A ij if a pixel i is (partially) covered by an edge j and zero elsewhere. The coverage of the pixels can be determined by drawing the edge lines on the canvas separately using a discrete line drawing algorithm (e.g., Bresenham [Bre65]). An output image can be then created as a linear combination of the strings as z = Ax. In practice, in order to increase the accuracy, we construct the ma- trix by rendering each edge with an anti-aliasing algorithm (e.g., Wu et al. [WXWX91]) and use the resulting grayscale values as each pixel’s contribution, such that A ij ∈ [ 0, 1 ] . If n < m, the problem is overdetermined and it results in a positive definite quadratic function with a unique solution, which can be found very efficiently. We used a sparse iterative conjugate gradient based solver (e.g., LSQR [PS82]]) which needs less then 5 seconds for m = 262, 144 and n = 130, 560 on a standard PC. Figure 3b
4. 4 M. Birsak, F. Rist, P. Wonka, P. Musialski / String Art: Towards Computational Fabrication of String Images 1.00 0.50 0.00 (a) input (target) (f) Eq. 4 RMS = 0.463 (b) Eq. 1 RMS = 0.056 (g) Eq. 5 RMS = 0.279 (c) Eq. 1 rounded RMS = 0.421 (d) Eq. 3 RMS = 0.169 (h) Eq. 7 (GUROBI) RMS = 0.232, L 1 = 3.4e+4 (e) Eq. 3 rounded RMS = 0.374 (i) Eq. 7 (ours) RMS = 0.221, L 1 = 3.1e+4 (j) Eq. 8 (ours) RMS = 0.154 Figure 3: Comparison of the output images given by different objective functions we have tested in this paper. The first image is the target. Each result is given as its reconstructed image and the difference image to the target. First row of results are the linear least squares approaches (3b-3e). Second row are binary approaches. Please note that even if results 3b and 3d provide very good reconstructions, they violate fabrication constraints and cannot be physically produced. depicts the result and an error image. Unfortunately, the minimizer x is real-valued and can contain large ( > 1) as well as negative values, which would mean that an edge can be (partially) subtracted from the canvas. Indeed, the decision if an edge should be drawn or not is binary, thus, this solution violates requirement (R1). A simple remedy would be rounding to the nearest integer with an operator like R : R n → B n  with u 7→ R ( u ) = round u − min ( u ) max ( u − min ( u ))  , such that the final image is given by z = C ( AR ( x )) , with the clamping function C : R + m → [ 0, 1 ] m with u 7→ C ( u ) = min ( 1, u ) . (2) Please note that since all entries of A are nonnegative, the result AR ( x ) is also nonnegative, thus we need only to clamp at the upper bound of the range. This procedure is, however, very inaccurate and does not provide satisfactory results, as evident in Figure 3c. Also the baseline approach of [Var17] proposed a similar operation, submitted to EUROGRAPHICS 2018.
5. 5 M. Birsak, F. Rist, P. Wonka, P. Musialski / String Art: Towards Computational Fabrication of String Images under the assumption of a non-opaque string and thus quantizing the result to a (small) integer value. However, their results have not been fabricated. More importantly, this solution does not take the resolution con- straints (R2) into account, which states that the output image reso- lution is induced by the physical thickness of the thread. We could address it by upsampling the input y to the necessary resolution using an upscaling (w.l.o.g. a linear) operator U : R m → R sm , and obtain min Ãx − Uy x 2 2 with à : R n → R sm , (3) where the matrix à maps the output array x to a supersampled im- age space of real values R sm . The scaling factor s equals the num- ber of used superpixels per input pixel. The resolution is chosen in such a way that a superpixel fulfills the fabrication requirement (R2). Please refer to Figure 3d for the resulting image. However, also in this case the output is not binary and hence still violates (R1). Applying the rounding operator R again delivers very inaccurate results, as depicted in Figure 3e. Obviously, a crucial disadvantage of the least squares approaches is their non-binary output. One solution which could help would be constraining the problem to x ∈ R 0, + or even better to x ∈ [ 0, 1 ] , however, our efforts to solve it with M ATLAB failed due to memory limitations. For this reason, we further focused on a solution with a hard con- straint that enforces x to strictly be ∈ B n , which in fact is an NP- hard problem. While there exist approaches to relax it and address it more efficiently [QS08, CZ07], they are currently still limited in the size of the problem they can deal with. In particular, in our current setup, we require a number of 130, 560 edges and 4096 2 pixels, which is a too large number for MILES [CZ07] that only works with dense matrices. 4.2 Binary Non-Linear Least Squares At this point we conclude that in order to meet the requirement (R1), we need to solve a binary optimization problem and to meet requirements (R2) and (R3), the solution needs to scale to a very large number of variables. Hence, we propose to solve with an it- erative greedy solver described in detail in Section 5. Using this solver we can cast the problem as min k C ( Ax ) − y k 22 x s.t. x ∈ B n , (4) in order to solve it at the lower resolution or, to meet criterion (R2) as  2 min C Ãx − Uy 2 s.t. x ∈ B n . (5) x In both cases C is a clamping operator as defined in Eq. 2 with appropriately chosen dimensionality m or sm. It brings pixel values back to the range [ 0, 1 ] and is the actual non-linear component of the objective. Please note that clamping at this stage does not falsify our computation because, since the string is opaque, putting one or more layers over one other always results in a value ≥ 1. Thus, clamping to 1 does not change the result. Figures 3f and 3g show the results of optimization using the objec- tives in Equations 4 and 5 respectively. submitted to EUROGRAPHICS 2018. (a) (b) (c) Figure 4: Lines sampled directly on the grid lack in range. Whether sampled in lower resolution (a) or in high resolution (b), each pixel is either black or white. Our solution (c) is to sample lines in su- perresolution and to filter them down to introduce more range per pixel in the lower resolution (cf. Sec. 4.4). 4.3 Binary Integer Programming Finally, a third possible way would be the usage of binary inte- ger programming, to account for the fabrication requirement (R1)- (R3). In particular, we could solve the problem: min Ãx − Uy x 1 s.t. x ∈ B n , with k·k 1 being the sum of absolute differences between pixel val- ues (L 1 -norm). Although it is also an NP-hard problem, there exist mature algorithms which can approximate a solution within both reasonable time and error bound. We have formulated this task and tried to solve it using a state-of-the-art integer programming library (G UROBI [Gur16]), however, it turns out that it is too large to be solved using commodity hardware. Nonetheless, we still managed to solve a relaxed version of the problem as further explained in Section 4.5 4.4 Range Problem The investigation of the results so far allows to conclude, that if the problem is solved for a binary minimizer x, we obtain results which are characterized by very strong contrast and either dark or white regions (Fig. 3c, 3e, 3f, 3g). This is not the case with the real-valued least squares results in Fig 3b and 3d. The reason for that is that the output image lacks an expressive range per pixel. In other words, since each pixel is a linear combi- nation of the edge contributions (which are in the case of the Bre- senham algorithm also binary), and it is crossed by many edges, it reaches almost always values ≥ 1. Whether we compute the norm in low (Eq. 4) or in high (Eq. 5) resolution, we encounter a variant of this problem. This is depicted schematically in Figure 4a and 4b for each resolution respectively. The effect is also visible in Figure 3, where in low resolution (Fig.3f) the edges are too thick and too many of them are drawn. While in high resolution the edges are thinner, they are drawn in order to account for darker or lighter regions but gray areas in be- tween cannot be expressed due to the lack of range (Fig.3g). Addi- tionally, we should notice that the computation in high resolution is very expensive and the generation of the result in Figure 3g took 14.7 hours. Our solution to this issue is to render the resulting strings in such a way that they exhibit enough range in order to simulate the resulting
6. 6 M. Birsak, F. Rist, P. Wonka, P. Musialski / String Art: Towards Computational Fabrication of String Images string images. Thus, we cast is as the following problem:  2 min DC Ãx − y 2 s.t. x ∈ B n , x (6) where the function D : [ 0, 1 ] sm → [ 0, 1 ] m with u 7→ D ( u ) = Bu 4.5 Comparison to L 1 -norm Using the extended range introduced above, we were able to solve the problem with the L 1 norm using an adapted binary integer pro- gram for the following objective function: min D Ãx − y x 1 s.t. x ∈ B n . (7) We could reach a solution since now the codomain is the lower resolution with a significantly smaller dimensionality. In order to solve it with G UROBI [Gur16], we have developed a hierarchical multiresolution approach that works only with a sub- set of possible edges at each resolution. In detail, we compute an image pyramid of our 512 × 512 input image down to a resolution of 32 × 32 pixels. Then we solve Equation 7 repeatedly, starting at the lowest resolution (32 × 32) with all 130, 560 edges in the ma- trix Ã. In each iteration we increase the resolution of the image by taking the image on the next upper level of the pyramid, while at the same time we reduce the number of available edges (= num- ber of columns of Ã). To obtain a coherence across the levels of the pyramid, we use the outcome of each iteration to determine the columns of à for the next iteration. We argue that the non-zero entries of x of each iteration provide a good guess of the optimum, so we always use the corresponding columns in à for the next iteration. Since a restriction to just the edges corresponding to x would heavily limit the variety of possible outcomes of the solver, we additionally add edges to à up to a maximum quota. We empirically identified a decrease of this quota as a scaled and shifted e − x function to allow meaningful runtimes with noticeable quality increase of the result in each iteration. The result is depicted in Figure 3h. In order to compare it, we have also solved the same objective using our greedy optimization solver and depict the results in Figure 3i. 4.6 Importance Mapping In order to introduce additional control over the results we use a real-valued importance map of the form W : [ 0, 1 ] m → [ 0, 1 ] m , (b) without W (a) input is a downsampling operator that filters the image back to the target resolution. In our method, we use a box-filter which can be repre- sented as a linear map B, however, higher order filters could also be used. The rationale is to draw the edges in the high resolution (and hence also to meet requirement (R2)), but to compute the norm at the lower resolution and at the same time to increase the range of each pixel by the number of super pixels used (in our case s = 8 × 8, cf. Figure 4c). Using this method we can extend the expressiveness of the output image during the optimization and improve the visual results significantly as shown in Figure 3j. Additionally, since we perform the evaluation of the objective in the low-resolution space, we reduce the computational burden significantly if compared to Eq. 5, where the result in Figure 3j took 2.3 hours. (c) with W (d) W Figure 5: An example of the usage of the importance map W as defined in Eq. 8 in Section 4.7. which allows to enhance the importance of particular regions of the target image manually. It allows to downgrade the importance of particular pixels, for instance the background noise or other less expressive features. This map can be controlled by the user and its effects can be observed in Figure 5. 4.7 Summary Now, we encapsulate the mapping from edges to pixels as  F ( x ) = DC Ãx and state our final binary non-linear least squares optimization task: min k WF ( x ) − Wy k 22 x 5 s.t. x ∈ B n . (8) Optimization Algorithm In the following we describe our greedy optimization algorithm used for solving of Eq. 6 and 8. while true do j = arg min i k WF ( x ± e i ) − Wy k 2   2 f ˜ = WF x ± e j − Wy if f ˜ < f then x = x ± e j f = f ˜ else break end end Algorithm 1: Our algorithm computes a subset of all possi- ble strings which are used together to reassemble the input im- age. Please note that this code summarizes the edge addition ( x + e i ) and edge removal ( x − e i ) operations of the algorithm as described in Section 5. Note that the vector e i refers to the i-th column of the identity matrix. We start the process with an empty canvas and therefore initialize the output vector x = 0 and the residual f = k Wy k 22 . Then we suc- cessively add edges to the canvas, one at a time, and update the vector x accordingly. To keep track of the progress, after each up- date of the vector x we compute the current reconstruction result and the corresponding norm according to Equation 8. In each iter- ation we pick the edge that allows the biggest norm reduction, and we stop when further addition would cause an increase of the error. We outline our approach in Algorithm 1. submitted to EUROGRAPHICS 2018.
7. 7 M. Birsak, F. Rist, P. Wonka, P. Musialski / String Art: Towards Computational Fabrication of String Images A 1 2 2 (a) (b) (c) 2 3 4 3 4 C S 1 B E (a) The big disadvantage of a greedy approach as we use it is that a decision at an early stage can later turn out to be a bad choice. In our case, an addition of one edge might bring the biggest benefit when it is chosen, but can then prevent a better solution later on. Thus, we try to further improve the results by an iterative removal of edges. In particular, if the initial addition stage terminates, we sequentially remove those edges that allow to improve the norm. If it is not possible anymore, we start to add edges again, pick one edge at a time, and continue as long as the norm can be improved. We alternate those two stages until it is not possible to further im- prove the norm, neither by removal nor by addition, in which case the algorithm terminates. Eulerian Graph Extraction As stated in Section 3, requirement (R4), the string representation of the input image needs to be fabricated from a single piece of a thread. This is only the case if the corresponding graph consisting of the computed edges is Eulerian or at least semi-Eulerian. 6.1 Eulerian Graph In the first case, each pin would have an even valence and would therefore be connected to an even number of edges. The graph would then, by definition, contain an Eulerian cycle—the first and last pin would coincide and could be chosen arbitrarily. In the sec- ond case, there would be two dedicated pins with odd valence act- ing as the start and end node. These properties, however, would only work according to our expectation when we consider connec- tions between the pin centers (cf. Figure 6a). Since we aim at an automated fabrication in which we can attach the thread to the pins by simply moving it clockwise or counter- clockwise around the pins (and not sticking it to the pin centers), we distinguish between 4 different possibilities to connect two pins and therefore consider 4 edges for each pair of pins in our algorithm (cf. Figure 6b). One implication of this is that an even valence of the pins is not anymore a sufficient condition to make it fabricable. The problem is that not only the valence, but also the type of the connections is of importance. This issue is shown as a toy example in Figure 7. Pin B acts as the start and end node of an Euler cycle, where we denote the connection points of the first and last edge at the pin B with S and E respectively. Although pin A exhibits an even number of connected edges, it is not possible to fabricate the toy example 7a because there is no simple way to mount the thread at pin A such that it is connected to the pins B and C in the demonstrated manner. In contrast, in the example 7b, pin A also has an even valence but submitted to EUROGRAPHICS 2018. C 2 Figure 6: Different connections of two pins: (a) pin center to pin center, (b) four different strings, and (c) enumeration of strings used by our algorithm (cf. Section 6). 6 A S B E (b) Figure 7: An even valence at every pin is not a sufficient condition to make a result fabricable. (a) While pin A has even valence, the thread can not be easily mounted to follow the given edges. (b) The result can easily be produced by moving the thread around the pins. the thread can easily be moved clockwise around A to produce the desired result. 6.2 Edge Enumeration To get a better track of different connection types between two pins, we enumerate them as shown in Figure 6c. The enumeration num- bers are defined w.r.t. a reference pin. In the figure, red numbers refer to the lower pin and the blue numbers to the upper pin. The following explanation refers to the lower pin. Further, we assume a clockwise movement of the string around the pin. We enumerate the inbound outer tangent with 1, the outbound outer tangent with 2, the diagonal inbound tangent with 3 and the diagonal outbound tangent with 4. Note that w.r.t. the upper pin the enumerations of the edges 1 and 2 are swapped while the numbers 3 and 4 stay unchanged. Due to their similar role as inbound edges in case of a clockwise movement, we group the edges 1 and 3 to one group (denoted as 1-3) and due to their role as outbound edges we group the edges 2 and 4 to another group (denoted as 2-4). In case of a counter-clockwise movement of the thread, only the directions but not the groups would change. The edges in group 1-3 would then act as outbound edges while the edges in group 2-4 would act as inbound edges. Finally, we deduce the key criteria of a fabricable graph: At each pin the sum of edges of group 1-3 must equal the sum of group 2-4, thereby allowing an easy mounting of the thread by entering the pin on an edge of one group and leaving it on an edge of the other group. Compared to the traditional definition of an Eulerian graph, we consider our graph only Eulerian if all pins have an equality of the two mentioned edge groups (1-3, 2-4), which allows an ar- bitrary choice of the start node. The thread would then reach and leave each pin equally often and the start node also represents the end node. A valid semi-Eulerian graph in our notion implies equality of the edge groups at all but two pins where the absolute difference be- tween the sums equals 1. This means that one of these two pins is left once more by the thread than it is reached (start node) and one pin is reached once more by the thread than it is left (end node). 6.3 Auxiliary Edges The first step towards a fabricable string art image is therefore an analysis of the graph given by the computed edges. Since the result will generally not meet the mentioned requirements, we add auxil- iary edges to get a graph that meets the mentioned requirement of equilibrium of numbers of edges from each group at each pin. We
8. 8 M. Birsak, F. Rist, P. Wonka, P. Musialski / String Art: Towards Computational Fabrication of String Images Figure 8: The hardware setup for digital fabrication using a K UKA industrial robot and custom tools for winding (cf. Section 7.1). compute these auxiliary edges by ordering the set of pins which are not in equilibrium in descending order w.r.t. to the number of edges which are needed to reach an equilibrium stage. Then we identify pairs that need the same number of edges and connect them with suitable auxiliary edges. Note that two pins with an equal number of missing edges can always be brought into equilibrium, no matter on which side the edges are missing. This is possible through the use of all four connection types. Note that we can let two pins with offset of 1 untouched. These pins would then be the start and end of an Eulerian path. To avoid visible artifacts, the auxiliary edges which were added are not drawn across the image but outside of the domain. The two cor- responding pins of each auxiliary edge are therefore not connected by a straight line but by an arch around the frame which does not influence the image quality at all. Note that this strategy can also be managed during the fabrication with the robot by moving the tool tip on an arch outside the frame accordingly (cf. Sec. 7). 6.4 Path Identification We use Hierholzer’s algorithm [HW73] to compute a path in the graph that we augment with the auxiliary edges. The algorithm of Hierholzer finds an Eulerian cycle (or an Eulerian path in a semi- Eulerian graph) by the computation of sub-cycles. Since we require a path through the graph on which we enter each pin using an edge of one group (1-3, or 2-4) and leaving it using an edge of the other group, we have to adapt Hierholzer’s algorithm to meet our require- ments. In detail, we have to change the edge choice when a pin is reached. While computing the sub-cycles in the algorithm, we have to constrain that when a pin is entered on an edge of one group, we are only allowed to reach a neighbor pin using an edge of the other group. With this small adaption of the algorithm we receive a path through the graph that we can easily fabricate by a simple movement of the thread around the pins. 7 7.1 Fabrication Hardware Setup Industrial Robot. We used a high precision 6-axis articulated arm type industrial robot with a reach of 2033 mm and a payload of 60 kg, a K UKA R60HA, to automatically fabricate our samples. The robot was equipped with some standard tools holders, drills and end mills, a custom made winding tool, custom fixtures to hold the winding frame, a mechanism to adjust the string tension and a digital IP extension to trigger a digital camera (cf. Fig 8). Frame Preparation. The fabrication process starts with the preparation of the frame and pins. For convenience we used alu- minum bicycle rims as the base frame to hold the pins in place. The rim was mounted on a precisely defined piston on the machine ta- ble in a custom fixture, for each pin a hole was drilled at the center at an angle of about 10 degrees, the spikes (2x2x35mm) were then pressed into these holes. Number of Pins. In an experimental setup, we have determined that a circular canvas of the diameter of d = 630 mm (approx. 26") the number of pins p = 256 is adequate and increasing this number improves the result only negligibly. This results in total in n = 4 × 32, 640 = 130, 560 possible edges. Please refer to supple- mental material for the details on the experiment. String Winding. To wind the string the drilling tool was replaced by a custom made tool mounted in a tool holder. The string exits this tool at the center point of the 2.5 mm nozzle at the center of the tool axis (therefore the main spindle did not have to be locked but was allowed to rotate freely during the fabrication process). The string tension was adjusted by running the string trough the modified thread tension regulator of a knitting machine. The thread used is thin polyester thread fabricated by Amann, type Seracor. Fabrication Process. The large number of relatively short mo- tions and necessary path accuracy between the pins slows down the fabrication process. To fully utilize the maximum speed available we only used linear path interpolation where absolutely necessary and point-to-point moves wherever possible. We also adjusted the allowed path deviation during different phases of the winding pro- cess and we carefully set the end effector orientation to make sure that the slow axis (A5 and A6) are not limiting the speed of the faster axis (A1, A2, A3). With these optimizations and given a pre- pared frame, the automated fabrication process is capable of pro- ducing a typical sample (5000 windings, 2500 m of string) in about 2 hours. 7.2 Robot Programming A K UKA industrial robot as we use it for the fabrication of our results provides a programming interface via the proprietary K UKA Robot Language (KRL), which contains standard com- mands PTP, LIN, and CIRC to control a point-to-point, a linear, and a circular movement of the robot tool tip respectively. While a linear movement is guaranteed to describe a straight line, a point-to-point command moves the tool tip to the required position as fast as possible, thereby describing a (for the programmer) unde- fined curve. Since we could not identify any problems when using a submitted to EUROGRAPHICS 2018.
9. 9 M. Birsak, F. Rist, P. Wonka, P. Musialski / String Art: Towards Computational Fabrication of String Images (a) original (b) our result (c) our make (d) from [Vre16] Figure 9: Comparison of our result generated with Eq. 8, our make, and a result taken from the web-page of Petros Vrellis. (a) original (a) 512 2 , original (b) 512 2 , t=2.8h (c) 256 2 , t=9.5h RMS = 0.154 RMS = 0.136 (d) 128 2 , t=12.6h RMS = 0.129 Figure 10: Comparison of the results computed with our solver and Eq. 8 with varying input resolution. PTP command to move the tool tip from one pin to another, we use it throughout our source code for performance reasons. To move the tool tip around the pins, we use CIRC commands depending on the output of our algorithm in clockwise or counter-clockwise direction. We also use CIRC commands for the auxiliary edges to move the thread around the frame. 8 Implementation Our whole pipeline is implemented in M ATLAB . Due to the heavy size of the matrix à (4096 2 × 130, 560 with 615, 320, 477 non- zeros, therefore 4.58 GB in double precision), we precompute it once as a sparse matrix and store the non-empty indexes and values given by the find function into binary files on the hard disc. For efficiency reasons, we avoid the use of usually slow for loops and instead make use of large index vectors to reference the pixels of all edges at once. This gives us a good performance in the update of the vectors in which we store the forecast of the l 2 norms for the ad- dition and removal of each edge. These vectors have to be updated after each iteration of our greedy algorithm. To further improve the performance, during each update we only refer to the pixels of each edge which are influenced. To sum up the changes for all edges at once we make use of the M ATLAB function accumarray. 9 Results and Discussion Outputs. Using our optimization method and Eq. 8 we have com- puted a number of string art images, which are shown in Figures 12 and 13. Table 1 shows the number of edges and the total running times for the computation of the particular outputs. Table 2 shows the timings of the comparisons shown in Figure 3. Additionally, we have fabricated the results shown in Fig. 13 using our fabrication setup as described in Section 7. The fabrication time was about 2.4 hours for Ada Lovelace, 3.4 hours for Einstein, and 4.3 hours for the cat. For the Ada we used 2, 679 meters of thread, for Einstein 2, 980 meters, and for the cat, which is most complex, we used 5, 985 meters. submitted to EUROGRAPHICS 2018. (b) c = 0.9, RMS = 0.137 (c) c = 0.7, RMS = 0.114 (d) c = 0.5, RMS = 0.097, Figure 11: Comparison of the results computed with our solver and Eq. 8 with scaling of the input image range by the factor c. Top: target, bottom: the resulting output. Comparisons. For our benchmarks and comparisons we have used a cutout of the image of the picture Penitent Magdalene by El Greco. This motive has also been used by the artist Petros Verl- lis [Vre16] for his outputs, and we show a comparison in Figure 9. Moreover, we compared the results of our solver to the G UROBI multiresolution solver using the same objective function (Eq. 7). Figures 3i and 3h show the visual outcomes respectively. Interestingly, regarding the running times (cf. Table 2), it turns out that our solver outperforms the multiresolution G UROBI solver by an order of magnitude and provides even better results in terms of both the minimized L 1 norm and the l 2 norm. Input Resolution. In Figure 10 we compare the results of our al- gorithm with varying resolution of the input image. Since we work with a constant output resolution in order to suffice fabrication re- quirement (R2), reducing the input resolution results in increasing the subsampling window, which again results in increasing of the range of each pixel that is evaluated. In practice, as it can be envi- sioned in Figure 10, reduction of the input resolution does not in- fluence the quality of the results considerably, however, it leads to longer computation times. The rationale is that a bigger range leads to a bigger design space per pixel, or in other words to more pos- sibilities, which boils down in longer execution times of the solver, which tries to explore this space. In practice we have determined empirically that a input resolution of 512 2 pixels, which results in 8 2 subsampling windows and thus in a range of 64 gray values, delivers best results in most cases. Image Preprocessing. An additional question is about an appro- priate preprocessing of the input images. From the experiments we have performed we concluded that results are better if inputs do not exhibit too big variations in the range and if the images are in general darker. Thus, an essential issue of the string imagery is the actual range of the images. In Section 4.4 we introduce a method to extend the range during optimization. On the other side, we could also compress the range and lower the intensity of the input image in order to shift the optimization problem into a more appropriate design space region. We implemented it in a rather straightforward manner just by scal- ing the input image down by a constant factor c ∈ ( 0, 1 ) , i.e., ȳ = cy
10. 10 M. Birsak, F. Rist, P. Wonka, P. Musialski / String Art: Towards Computational Fabrication of String Images name Ada Lovelace Alan Turing Albert Einstein Albert Einstein (with tongue) Cat Gaussian Blob Magdalene Marie Curie W yes no no no no no no yes n 6575 20559 13026 8324 14850 507 10493 6785 t [s] 6998.289 14922.560 9432.940 6721.494 15812.312 2178.496 9992.371 6354.935 name Fig. 3(b) Eq. 1 Fig. 3(d) Eq. 3 Fig. 3(f) Eq. 4 Fig. 3(g) Eq. 5 Fig. 3(h) Eq. 7 (GUROBI) Fig. 3(i) Eq. 7 (ours) Fig. 3(j) Eq. 8 (ours) RMS 0.056 0.169 0.463 0.279 0.232 0.221 0.154 t [s] 3.82 92.81 4,084.88 51,271.36 7765.43 539.47 9,992.37 Table 2: Timings and errors of the samples shown in Figure 3. Table 1: Timings of some results presented in Figures 12 and 13. and could obtain better results for images with large variations in the range, as shown in Figure 11. Discussion. From the experiments we have performed and docu- mented in Section 4, we extract the following insights: First of all, we need enough range per pixel in order to express the grayscale nuances which make the string images look much more realistic. Thus, we trade resolution for range by utilizing supersam- pling and downfiltering. In fact, the number of superpixels gives us approximately the number of achievable graylevels. Second, in general, we do not need a very high resolution input, since the degree of detail that can be approximated with a string image is limited. Using 512 2 sized input Third, the input should not exhibit too large range variations and especially very light regions. Darker and smoother images can be better approximated by string images. Finally, we need to say that non-binary least squares do not suffer the range problem since the minimizer can take real values and ac- count for enough grayscale range by adding fractional parts of the edges to particular pixels. This is, however, not possible to fabricate with our setup. Limitations. A major limitation comes from the current setup with pins only placed on the boundary of a circular frame. This limits the space of images that can be faithfully represented. Plac- ing pins in the interior of the artwork or jointly optimizing for pins and strings should provide additional degrees of freedom and im- prove the quality of the output. Our current computation should be able to adapt to different fixed pin placement setups without ma- jor changes, but the joint optimization of pin placement and string selection would require new algorithmic components. One final limitation to mention is the fact that our solver does not necessarily converges to a global minimum. In fact, it can still get stuck in a local minimum; our efforts were however, to find a min- imum which still results in a string image of good visual quality. 10 Conclusions In this paper, we proposed a novel method for the automatic com- putation and digital fabrication of artistic string images. We analyze the problem and derive a problem formulation as a non-linear bi- nary least squares problem. We propose a hardware setup for the automatic digital fabrication of these images using an industrial robot that spans strings between pins. We also propose a greedy algorithm to compute an approximate solution to the optimization problem and demonstrate that the quality of our solution signifi- cantly outperforms other approaches. Finally, we demonstrate the applicability of our methods by generating and fabricating a set of real string art results. In future work, we would like to extend our setup to experiment with more general pin placement, to generate 2.5d string art. Fur- ther, we would like to experiment with strings of different colors and more transparent strings. We are also interested to investigate the fabrication of customized shading systems using a similar pro- cess. 11 Acknowledgments We thank the reviewers for their helpful suggestions. This research was funded by the Austrian Science Fund (FWF P27972-N31) and the Vienna Science and Technology Fund (WWTF ICT15-082). References [AM10] A LEXA M., M ATUSIK W.: Reliefs as images. ACM Transac- tions on Graphics 29, 4 (jul 2010), 1. 2 [AM11] A LEXA M., M ATUSIK W.: Images from self-occlusion. In Pro- ceedings of the International Symposium on Computational Aesthetics in Graphics, Visualization, and Imaging - CAe ’11 (New York, New York, USA, 2011), ACM Press, p. 17. 2 [BBAM12] B ERMANO A., B ARAN I., A LEXA M., M ATUSK W.: Shad- owPix: Multiple Images from Self Shadowing. Computer Graphics Fo- rum 31, 2pt3 (may 2012), 593–602. 2 [BKB ∗ 12] B ARAN I., K ELLER P., B RADLEY D., C OROS S., J AROSZ W., N OWROUZEZAHRAI D., G ROSS M.: Manufacturing Layered At- tenuators for Multiple Prescribed Shadow Images. Computer Graphics Forum 31, 2pt3 (may 2012), 603–610. 2 [Bre65] B RESENHAM J. E.: Algorithm for computer control of a digital plotter. IBM Systems Journal 4, 1 (1965), 25–30. 3 [CCLM13] C HU H.-K., C HANG C.-S., L EE R.-R., M ITRA N. J.: Halftone QR codes. ACM Transactions on Graphics 32, 6 (nov 2013), 1–8. 2 [CZ07] C HANG X.-W., Z HOU T.: MILES: MATLAB package for solv- ing Mixed Integer LEast Squares problems. GPS Solutions 11, 4 (nov 2007), 289–294. 5 [Elb10] E LBER G.: Ortho-Pictures: 3D Objects from Independent 2D Data Sets. In Advances in Architectural Geometry 2010. Springer Vi- enna, Vienna, 2010, pp. 175–192. 2 [GKAK16] G ALEA B., K IA E., A IRD N., K RY P. G.: Stippling with aerial robots. In Proceedings of the Joint Symposium on Computa- tional Aesthetics and Sketch Based Interfaces and Modeling and Non- Photorealistic Animation and Rendering (2016), Eurographics Associa- tion, pp. 125–134. 2 [Gur16] G UROBI O PTIMIZATION I.: Gurobi Optimizer Reference Man- ual. http://www.gurobi.com, 2016. Accessed: 2018-02-06. 5, 6 [Hae90] H AEBERLI P.: Paint by numbers: abstract image representations. ACM SIGGRAPH Computer Graphics 24, 4 (sep 1990), 207–214. 2 [HJO ∗ 01] H ERTZMANN A., J ACOBS C. E., O LIVER N., C URLESS B., submitted to EUROGRAPHICS 2018.
11. 11 M. Birsak, F. Rist, P. Wonka, P. Musialski / String Art: Towards Computational Fabrication of String Images (a) Marie Curie (f) Puppy (b) Alan Turing (g) Popeye (c) Albert Einstein (h) Peace (d) Nelson Mandela (i) EG Logo (e) Mahatma Gandhi (j) Gaussian Figure 12: Results we have computed with our automated pipeline. Top: the input image, bottom: the results of our optimization. S ALESIN D. H.: Image analogies. In Proceedings of the 28th an- nual conference on Computer graphics and interactive techniques - SIG- GRAPH ’01 (New York, New York, USA, 2001), ACM Press, pp. 327– 340. 2 [HW73] H IERHOLZER C., W IENER C.: Ueber die Möglichkeit, einen Linienzug ohne Wiederholung und ohne Unterbrechung zu umfahren. Mathematische Annalen 6, 1 (mar 1873), 30–32. 8 [KL11] K OPF J., L ISCHINSKI D.: Depixelizing pixel art. ACM Transac- tions on Graphics 30, 4 (jul 2011), 1. 2 [Laa18] L AARCO : Laarco Studio | String Art, Algorithmic Art, Cus- tomized Portraits, 2018. 1 [LGX ∗ 13] L EVIN A., G LASNER D., X IONG Y., D URAND F., F REEMAN W., M ATUSIK W., Z ICKLER T.: Fabricating BRDFs at high spatial res- olution using wave optics. ACM Transactions on Graphics 32, 4 (jul 2013), 1. 2 [LPD13] L INDEMEIER T., P IRK S., D EUSSEN O.: Image stylization with a painting machine using semantic hints. Computers & Graphics 37, 5 (aug 2013), 293–301. 2 submitted to EUROGRAPHICS 2018. [LSS ∗ 14] L AU C., S CHWARTZBURG Y., S HAJI A., S ADEGHIPOOR Z., S ÜSSTRUNK S.: Creating personalized jigsaw puzzles. In Proceed- ings of the Workshop on Non-Photorealistic Animation and Rendering - NPAR ’14 (New York, New York, USA, 2014), ACM Press, pp. 31–39. 2 [MP09] M ITRA N. J., P AULY M.: Shadow art. ACM Transactions on Graphics 28, 5 (dec 2009), 1. 2 [PDP ∗ 15] P ANOZZO D., D IAMANTI O., P ARIS S., T ARINI M., S ORKINE E., S ORKINE -H ORNUNG O.: Texture Mapping Real-World Objects with Hydrographics. Computer Graphics Forum 34, 5 (aug 2015), 65–75. 2 [PJJ ∗ 11] P APAS M., J AROSZ W., J AKOB W., R USINKIEWICZ S., M A - W., W EYRICH T.: Goal-based Caustics. Computer Graphics Forum 30, 2 (apr 2011), 503–511. 2 TUSIK [PJJSH16] P RÉVOST R., J ACOBSON A., J AROSZ W., S ORKINE - H ORNUNG O.: Large-scale painting of photographs by interactive opti- mization. Computers & Graphics 55, C (apr 2016), 108–117. 2 [PS82] P AIGE C. C., S AUNDERS M. A.: LSQR: An Algorithm for
12. 12 M. Birsak, F. Rist, P. Wonka, P. Musialski / String Art: Towards Computational Fabrication of String Images (a) Albert Einstein (b) Ada Lovelace (c) Black Cat Figure 13: Three results we have fabricated with our automated pipeline. Top: the input image, bottom: photography of the physically fabricated image. Sparse Linear Equations and Sparse Least Squares. ACM Transactions on Mathematical Software 8, 1 (mar 1982), 43–71. 3 Robot Interaction - HRI ’17 (New York, New York, USA, 2017), ACM Press, pp. 418–418. 2 [QS08] Q IAO S., S ANZHENG : Integer least squares. In Proceedings of the 2008 C3S2E conference on - C3S2E ’08 (New York, New York, USA, 2008), ACM Press, p. 23. 5 [Var17] V ARGA D.: String art. https://github.com/ danielvarga/string-art, 2017. Accessed: 2018-02-06. 1, 3, 4 [RMP11] R EICHINGER A., M AIERHOFER S., P URGATHOFER W.: High-quality tactile paintings. Journal on Computing and Cultural Her- itage 4, 2 (nov 2011), 1–13. 2 [Vre16] V RELLIS P.: A new way to knit. http://artof01.com/ vrellis/works/knit.html, 2016. Accessed: 2018-02-06. 1, 9 [SABS94] S ALISBURY M. P., A NDERSON S. E., B ARZEL R., S ALESIN D. H.: Interactive pen-and-ink illustration. In Proceedings of the 21st an- nual conference on Computer graphics and interactive techniques - SIG- GRAPH ’94 (New York, New York, USA, 1994), ACM Press, pp. 101– 108. 2 [SMPZ15] S HILKROT R., M AES P., P ARADISO J. A., Z ORAN A.: Aug- mented Airbrush for Computer Aided Painting (CAP). ACM Transac- tions on Graphics 34, 2 (mar 2015), 1–11. 2 [SPG ∗ 16] S CHÜLLER C., P ANOZZO D., G RUNDHÖFER A., Z IMMER H., S ORKINE E., S ORKINE -H ORNUNG O.: Computational thermo- forming. ACM Transactions on Graphics 35, 4 (jul 2016), 1–9. 2 [SPSH14] S CHÜLLER C., P ANOZZO D., S ORKINE -H ORNUNG O.: Appearance-mimicking surfaces. ACM Transactions on Graphics 33, 6 (nov 2014), 1–10. 2 [STTP14] S CHWARTZBURG Y., T ESTUZ R., T AGLIASACCHI A., P AULY M.: High-contrast computational caustic design. ACM Trans- actions on Graphics 33, 4 (jul 2014), 1–11. 2 [SY17] S EO S. H., Y OUNG J. E.: Picassnake. In Proceedings of the Companion of the 2017 ACM/IEEE International Conference on Human- [WDB ∗ 07] W EYRICH T., D ENG J., B ARNES C., R USINKIEWICZ S., F INKELSTEIN A.: Digital bas-relief from 3D scenes. ACM Transac- tions on Graphics 26, 3 (jul 2007), 32. 2 [WPMR09] W EYRICH T., P EERS P., M ATUSIK W., R USINKIEWICZ S.: Fabricating microgeometry for custom surface reflectance. ACM Trans- actions on Graphics 28, 3 (jul 2009), 1. 2 [WXWX91] W U X., X IAOLIN , W U , X IAOLIN : An efficient antialiasing technique. In Proceedings of the 18th annual conference on Computer graphics and interactive techniques - SIGGRAPH ’91 (New York, New York, USA, 1991), vol. 25, ACM Press, pp. 143–152. 3 [YIC ∗ 12] Y UE Y., I WASAKI K., C HEN B.-Y., D OBASHI Y., N ISHITA T.: Pixel Art with Refracted Light by Rearrangeable Sticks. Computer Graphics Forum 31, 2pt3 (may 2012), 575–582. 2 [ZLW ∗ 16] Z HAO H., L U L., W EI Y., L ISCHINSKI D., S HARF A., C OHEN -O R D., C HEN B.: Printed Perforated Lampshades for Continu- ous Projective Images. ACM Transactions on Graphics 35, 5 (jun 2016), 1–11. 2 [ZYZZ15] Z HANG Y., Y IN C., Z HENG C., Z HOU K.: Computational hydrographic printing. ACM Transactions on Graphics 34, 4 (jul 2015), 131:1–131:11. 2 submitted to EUROGRAPHICS 2018.

trang chủ - Wiki
Copyright © 2011-2024 iteam. Current version is 2.132.1. UTC+08:00, 2024-09-23 23:32
浙ICP备14020137号-1 $bản đồ khách truy cập$