Autocompletion for Applying Texture to 3D Prints
\alignauthor{ Ryo Suzuki$^1$
\ Tom Yeh$^1$
\ Koji Yatani$^2$
\ Mark D. Gross$^1$
\affaddr{ $^1$University of Colorado Boulder
\ $^2$University of Tokyo
% \alignauthor{Ryo Suzuki
% \affaddr{Computer Science
% % \alignauthor{Ryo Suzuki$^1$
Niloufar Salehi$^2$
Michelle S. Lam$^2$
Juan C. Marroquin$^2$
Michael S. Bernstein$^2$
% % \affaddr{Computer Science
%[Update: \today, \url{http://goo.gl/K7nm2f]\\ Texture is an essential property of physical objects that affects aesthetics, usability, and functionality. However, designing and applying textures to 3D objects with existing tools remains difficult and time-consuming; it requires proficient 3D modeling skills. To address this, we investigated an auto-completion approach for efficient texture creation that automates the tedious, repetitive process of applying texture while allowing flexible customization. We developed techniques for users to select a target surface, sketch and manipulate a texture with 2D drawings, and then generate 3D printable textures onto an arbitrary curved surface. In a controlled experiment our tool sped texture creation by 80\% over conventional tools, a performance gain that is higher with more complex target surfaces. This result confirms that auto-completion is powerful for creating 3D textures.
0-abstract.tex

\begin{abstract}
%[Update: \today, \url{http://goo.gl/K7nm2f}]\\
Texture is an essential property of physical objects that affects aesthetics, usability, and functionality. However, designing and applying textures to 3D objects with existing tools remains difficult and time-consuming; it requires proficient 3D modeling skills. To address this, we investigated an auto-completion approach for efficient texture creation that automates the tedious, repetitive process of applying texture while allowing flexible customization. We developed techniques for users to select a target surface, sketch and manipulate a texture with 2D drawings, and then generate 3D printable textures onto an arbitrary curved surface. In a controlled experiment our tool sped texture creation by 80\% over conventional tools, a performance gain that is higher with more complex target surfaces. This result confirms that auto-completion is powerful for creating 3D textures.
\end{abstract}

% 1. infer the repitions through user's demonstration 
% 2. make 2D texture to 3D 
% 3. enable explore design variations through 

% Texture is an essential property of physical objects that affects aesthetics, usability, and functionality. However, designing and applying textures to 3D objects remains difficult and time-consuming; unlike 2D drawings, manually adding textures to complex surfaces requires difficult alignment and manipulation. Unintuitive operations for parametric modeling severely limits the user's creativity and destroys the natural workflow. To address this, we present Tabby, an interactive system that supports intuitive and efficient texture creation. Tabby is built upon an \emph{autocompletion} method, which automates tedious repetitions through inferring the user's demonstration. To support this, we developed a novel texture generation algorithm to infer patterns and to calculate the 3D position and orientation of individual texture units to smoothly and evenly cover an arbitrary non-flat surface. Our controlled experiment shows that Tabby enables 20\% faster for texture creation tasks and the performance gain was higher with more complex target surfaces, suggesting that the design process is more intuitive and efficient for both novice and experienced users. (144 words)


% \tom{}{(there's no transition here, it's not clear why manual edits are discussed. I still like my suggestion of saying "several studies suggest that users of existing 3D design software would add texture by manually editing an object's surface; some less experienced users may simply give up." because there's something reviewers can not dispute)}
% I think this sentence is too lengthy

% The workflow of parametric modeling becomes complex and unintuitive, particularly when interacting with complex surfaces.
% The lack of the proper tools significantly limits the user's creativity
% \tom{}{(I thought this is too weak unless we strengthen it by explicty saying that this is based on studies)
% (in abstract we can just say "several studies" and in intro we can elaborate more with these citations, we don't need to include reasons in the abstract, the point is just to tell the reviewers that this claim is based on studies, not something we just dream up, then later the reviewer can read the detailed reasons in intro)
% several studies suggest that users of existing 3D design software would add texture by manually editing an object's surface; some less experienced users may simply give up.
% (and this sentence also helps highlight the two classes of users we target)}

% \tom{(I highlight three possible positive attributes we can later elborate more "inutitive", "efficient" and "versatile", efficent because our study suggests it, versatile is to contrast with haptiprint since haptiprint doesn't let users define own features, intutitive to highlight how easy a novice user can use it)}
% A typical workflow is as follows: a designer creates a texture unit by sketching, makes a few copies of the unit, and arranges these copies on a small seed area of an object's surface by drag-and-drop.
% Meanwhile, the system observes how the designer places the first few units, intelligently suggests candidate patterns for the designer to preview and select, and \emph{autocomplete} the selected pattern.
% We argue that this interaction model is intuitive because of its similarity to familiar autocomplete applications (e.g., text-entry, 2D drawing); 
% it is efficient because the designer's manual effort is reduced to only the first few texture units;
% it is versatile because the designer can still exercise full creative control including the shape of individual units, the layout, and the local surface boundaries.
% To support this, we developed a novel texture generation algorithm to infer patterns and to calculate the 3D position and orientation of individual texture units to smoothly and evenly cover an arbitrary non-flat surface.
% (I purposely elaborate on the calcualtion, and smooth, even requirements to give an impression that how hard it is so that the reivewerrs wouldn't take it for granted)
% In terms of technical contributions, our tool incorporates novel algorithms to (a) automatically convert a sketch into a deformable water-tight mesh, (b) intelligently predict a desired pattern based on the user's demonstration, (c) auto-complete that pattern along with pre-defined guide (e.g., on a line, circle, or grid), and (d) ensure that each tactile unit is properly deformed to follow the curvature at every surface location.
% We implemented a functional prototype and conducted a controlled experiment with seven designers. We found that designers were able to add textures 20\% faster, and there was no difference in completion time between novice and experienced users.
% Moreover, the performance gain was higher with more complex target surfaces.

% \mdg{}{figure 1 is too complicated for this position in the paper and should move to later in the article, probably in the TABBY: INTERFACE AND USER INTERACTION section.  Possibly replace figure 1 with the current figure 2 or examples of what you can produce with TABBY.}


1-introduction.tex

\section{Introduction}

Texture is an essential property of physical objects~\cite{ashby2013materials}. 
It contributes to both aesthetics and usability~\cite{dumas2015example,gatto1978exploring,kreifeldt2011importance}.
For example, patterns in a lampshade can enhance the aesthetics of the light design. Brick patterns in architectural models can improve visual details.
%It offers users with impairments haptic information~\cite{ashby2013materials,dumas2015example,gatto1978exploring,kreifeldt2011importance}.
% \koji{}{we are saying this soon later. And don't put this into the second sentence. We should not emphasize visual impairment user scenarios as it is not our main target in this work.}
Texture can also enhance ergonomic and mechanical functionality~\cite{gibson1966senses,perez2015design,torres2015hapticprint}: 
a rough texture can improve an object's usability by providing a gripping surface.
Variations in texture can offer bending and stacking functionality (e.g., living-hinges and patterns seen in Lego blocks).
Texture can also support navigation and communication for people with visual impairments~\cite{brown2012viztouch,gotzelmann2014towards,stangl2015transcribing}.

Textures are used to be considered as a feature of the material~\cite{ashby2013materials}.
It is mostly a bi-product or side effect of the choice of the material, rather than the design choice.
However, with 3D printing, texture becomes an important aspect that characterizes a printed object.
Recent 3D printing technologies enable designers to determine and assess their texture design for physical objects. 
This can open up a new opportunity for user-driven 3D object design explorations.

However, designing textures in 3D modelling is generally a tedious task for designers. 
Many textures involve a repeating pattern. 
Designers often repeat copy-and-paste to create patterns on simple flat surfaces, but this severely limits flexibility, requiring tedious manual edits to explore alternatives.
Applying texture to complex curved surfaces is difficult even for experienced designers. 
Advanced CAD tools support parametric modeling, which allows flexible customization by automating repetitive changes.
Recent work extends this approach by synthesizing textures from pre-defined examples~\cite{torres2015hapticprint}.
However, this interaction model has a significant drawback:
Parametric design inherently requires repeated parameter tuning to create and edit a model.
Such indirect manipulation significantly interrupts workflow~\cite{kazi2012vignette} and is often perceived as a barrier to inexperienced designers~\cite{norman1986user}.
% \mdg{}{these last two sentences point to the same problem (indirect interaction), so probably only need one sentence.   Also: to what does "traditional design workflow" refer?  what "tradition"?)}
%the gap, or indirect mapping, between action and results causes difficulty in decision-making [ref]. % gulf of execution, ref Yotam Gingold's dissertation.

We present Tabby, an interactive design system that automates the repetitive operations involved in 3D texture creation while allowing the user's control over design parameters through intuitive operations.
In Tabby, a designer would only need to demonstrate the first few units of a texture pattern.
The system can automatically infer a complete pattern the designer may have in mind.
The system suggests this inferred pattern, and the designer can simply accept it or adjust to achieve the desired texture (Figure.~\ref{fig:cover-auto-completion}).

Our interaction technique is greatly inspired by recent advances in \emph{auto-completion} approaches~\cite{gulwani2011automating,xing2014autocomplete}.
Although the auto-completion technique has shown success in 2D drawing applications~\cite{kazi2014draco,xing2014autocomplete,xing2015autocomplete}, there are still challenges when applying to the 3D modeling application.
First, positioning texture elements in 3D space requires more cognitive efforts comparing to 2D drawing~\cite{hudson2016understanding}.
Our formative study shows that novice users often struggle to locate the texture by continuously changing the camera angle to ensure that texture elements were correctly attached on the surface.
Second, selecting the target region is another tedious interaction for users.
Unlike 2D drawing, specifying the target region is not a trivial problem in 3D modeling. 

We developed a series of techniques for auto-complete functionality to support 3D texture design.
To reduce the cognitive efforts to manipulate in 3D space, Tabby exploits 2D operations to design and align texture.
The system allows the user to sketch and arrange a texture element as a 2D drawing.
After designing texture patterns, the system automatically generates a 3D printable texture.
The system also infers which surface region to fill the repeated pattern.
We leverage the existing segmentation algorithms to enable automatically infer the semantic region.

We evaluate the efficiency and flexibility of designing with Tabby in a controlled experiment with seven designers.
Our study shows that Tabby speeds texture creation by 80\% over conventional tools.
This performance gain becomes even larger with more complex target surfaces. 
Our qualitative result confirms that designing and applying textures with our system is more simple and effective.

In summary, this paper includes the following three contributions to 3D object design and interactive fabrication: \begin{enumerate}
\item {Tabby, an interactive system that instantiates the auto-completion method in the context of 3D texture design;}
\item {A series of techniques to exploit 2D operation for designing 3D-printable texture patterns; and} 
\item {A controlled experiment with seven designers that show how users can efficiently and flexibly design textures comparing to conventional tools.}
\end{enumerate}


\begin{figure}[t!]
\centering
\includegraphics[width=1\columnwidth]{figures/cover-2}
\caption{Autocomplete textures: (A) The user interactively specifies the position of the next tactile unit. (B) Our system automatically infers the positions of other tactile units to suggest a complete texture pattern.}~\label{fig:cover-auto-completion}
%  (C) These tactile units then turn into 3D printable structures evenly and smoothly distributed over the selected area.
\end{figure}


% \begin{figure}[t!]
% \centering
% \includegraphics[width=1\columnwidth]{figures/examples}
%   \caption{Texture patterns can enhance aesthetics (e.g., a lampshade and architectural model), improve usability (e.g., grips of bike handle), and serve a function (e.g., changing the bending stiffness with living hinges.)}~\label{fig:examples}
% \end{figure}


\begin{figure*}[t!]
\centering
\includegraphics[width=2.1\columnwidth]{figures/design-goals}
  \caption{Four difficulties in applying texture to arbitrary surfaces: (A) Users often fail to align and manipulate 3D objects. (B) Texture surface must be deformed for non-flat surfaces. (C) Repetitive manipulation is required to adjust rotation and positioning for each element. (D) Users must perform tedious operations to choose a specific region.}~\label{fig:design-goals}
\end{figure*}


% infers a user's intention from the past workflow and then autocompletes the repetitive pattern creation.

% Our goal is to minimize repetitive manual efforts involved in 3D texture creation.% through a direct manipulation-based 3D design environment.
% To achieve this goal, we adopt the \emph{auto-completion} approach which has shown success in other applications, such as text entry and 2D drawing~\cite{gulwani2011automating,kazi2014draco,xing2014autocomplete,xing2015autocomplete}. 
% In our auto-completion technique, a designer would only need to demonstrate the first few units of a texture pattern.
% The system can automatically infer a complete pattern the designer may have in mind.
% The system suggests this inferred pattern, and the designer can simply accept it or adjust to achieve the desired texture.
% infers a user's intention from the past workflow and then autocompletes the repetitive pattern creation.
% The system also infers which surface region to fill the repeated pattern, reducing the cognitive difficulty to align and manipulate texture elements in 3D space~\cite{hudson2016understanding}.
% This paper presents a series of techniques that we developed for auto-complete functionality to support designing 3D textures.
%To this end, we developed a technique to infer the target surface region from the user's current interacting surface, to let the user to quickly interact with 2D drawings which has a constraint on the surface, and to converts a 2D drawing into a 3D mesh texture for arbitrary surface.
% unit that can be copied, warped, and oriented to smoothly laid along an arbitrary surface (mesh texture generation for arbitrary surfaces).
% While these techniques enable direct manipulations on details of the texture to be created, the users only need to perform a series of 2D operations.
% \koji{}{I still think that this paragraph doesn't flow well a bit. For example, it is still hard to understand how auto-completion works in our system.}

% We further instantiate these techniques with Tabby, an interactive design tool for creating and applying textures onto 3D surfaces.
% As designers often reuse and extend existing models, Tabby aims to support arbitrary 3D surface geometries.
% Users can download an existing model, sketch a texture element with 2D drawings, arrange the texture design on the model surface using the auto-completion method, and automatically generate a 3D printable texture.
% We evaluate the efficiency and flexibility of designing with Tabby in a controlled experiment with seven designers.
% Our study shows that Tabby speeds texture creation by 80\% over conventional tools.
% This performance gain becomes even larger with more complex target surfaces. 
% Our qualitative result confirms that designing and applying textures with our system is more simple and effective.



% Tabby enables the creation of repeated texture patterns through a series of simple 2D operations.
% The user first sketches a unit pattern in a dedicated 2D drawing space and applies it to the target surface.
% Tabby detects when the user is creating a repeated pattern by observing copy-and-paste operations.
% It also infers on which surface the user wishes to create a tactile texture as well as in what form (e.g., in a line, a circle, or a 2D grid), and suggests a possible pattern of repetition.




% When the user accepts Tabby's suggestion of a repetition pattern, Tabby performs three operations to create a complete texture pattern: 1) positioning a repeated set of the pieces evenly over the selected region of the object; 2) deforming each piece to fit the surface curvature; and 3) building walls to ensure water-tightness, guaranteeing that the resulting patterns are printable.


% We observe that these users often modify existing 3D models (e.g., copying others' models or downloading from publicly-available libraries) to create their own objects.
% Therefore, we designed Tabby to make it easy to revise, explore, and apply texture patterns to already-created 3D models.
% Tabby aims to support a wide variety of use by inexperienced designers and students.

% Similar to Xing et al.'s auto-completion techniques~\cite{xing2014autocomplete,xing2015autocomplete}, 
% When the user accepts Tabby's suggestion of a repetition pattern, Tabby performs three operations to create a complete texture pattern: 1) positioning a repeated set of the pieces evenly over the selected region of the object; 2) deforming each piece to fit the surface curvature; and 3) building walls to ensure water-tightness, guaranteeing that the resulting patterns are printable.
% \koji{}{Make sure that this describes the worklflow of Tabby correctly.}
% In this manner, Tabby avoids requiring the user to perform complex 3D operations, enabling even novice designers to explore various texture patterns.

% \ryo{}{2. Who are the target users.}
% As 3D printers become widely accessible, we have witnessed the growing communities are designing these patterns for various applications;
% they include designers who create adaptive music speakers~\cite{dumas2015example}, architects who prototype their architectural models [ref], makers who want to personalize their smartphone cases [ref], and parents who want to make tactile books for their children with visual impairments~\cite{stangl2015transcribing}.
% In many of these cases, users iteratively design and redesign different texture patterns on various surface geometries.
% % to explore the different alternative variations. 
% However, the existing CAD tools are not well designed to support this interactive design explorations.
% Hobbyists add tread for their RC tire, 
% Users want to add repeated pattern on architectural models to visually 
% Assistive people add tactile information for children with visual impairments ~\cite{philippe2009typhlo, stangl2015transcribing}.

%Tabby's interaction design is formulated through the iterative design process. 
%We observe that many users often have difficulty in manipulating objects in 3D space.
%Therefore, we treat the task of designing 3D tactile textures as a 2D sketching problem.
%Tabby augments a typical 3D modeling environment with a 2D sketching canvas.

% \koji{}{Maybe merge this into the previous paragraph. By the way, this is way too long. Summarize it into two or three sentences. Then maybe add an example scenario to highlight the diff from other tools.}
%To evaluate the Tabby system and its workflow, we conducted a controlled experiment wherein we asked seven experienced CAD users to add tactile texture patterns on a different variety of geometric surfaces. 
%The results demonstrate that the Tabby system can significantly reduce the time of both the texture creation task and the modification task.
%Participants reported that the Tabby helped to avoid confusion in 3D manipulation and that the system provided effective support to the texture design process, especially for arbitrary geometries.

%To evaluate the Tabby system and its workflow, we conducted a controlled experiment wherein we asked seven novice and experienced CAD users to add tactile texture patterns on a different variety of geometric surfaces.
%The results demonstrate that the Tabby system can significantly reduce the time of both the texture creation task and the modification task.
%Participants reported that the Tabby helped to avoid confusion in 3D manipulation and that the system provided effective support to the texture design process, especially for arbitrary geometries. 



% geometric constratint
% linear relationsship 

% Thus, our goal is to enable designers to flexibly design and manipulate user-defined texture, while preserving easy-to-use interactive design process.
% enable designers to explore texture patterns quickly, flexibly, and interactively.
% modeling, which enables a designer to algorithmically define the relationships of each texture element.
% This allows the user to manipulate several element properties at once.
% Texture pattern creation becomes a pervasive task in 3D object design as we described above with a variety of examples, but it is not well supported in existing tools.



% \koji{}{In the next paragraph, explain that many of texture patterns we see in 3D objects have repetitions. So people may think they can just copy-and-paste, much like we do in 2D. But it wouldn't work. Explain why it doesn't work well.}
%Despite their importance, the existing CAD tools are not well designed for interactive design explorations of texture creation.
%Traditional CAD tools help automate the creation of repetitive patterns with parametric modeling.
%However, the workflow can be quite complicated when the target surface becomes non-flat.
% Typical workflow is ... 
%For instance, when a user wants to add a dotted pattern on a rounded surface, she has to first consider mapping between the target object and pattern.
%The user also must perform appropriate deformation before applying a pattern. 
%\ryo{}{The current explanation may not be good. See \url{http://tinyurl.com/hptp75v} for the detail.}
%Even for experienced users, such a task can be intractable if the target geometry becomes more complex.
%Due to this, many users often simply copy-and-paste repetitive elements while this approach significantly limits the flexible customization.
%As digital fabrication tools are democratizing, both expert and casual users must be empowered by intuitive, yet powerful design exploration tools for rapid prototyping.
%Therefore, it is important to improve the user interface to reduce the time and cost required for texture creation.

% While many texture patterns are comprised from repetition, texture pattern creation is still difficult and tedious.
% Novice users may simply apply the repeated patterns by copying and pasting, but positioning in 3D space requires more cognitive efforts, making much more difficult than 2D drawing applications~\cite{hudson2016understanding}.
% To enable both quick and interactive prototyping, both expert and casual users must be empowered by intuitive, yet powerful design exploration tools for texture creation.
% Traditional CAD tools offer parametric editing functionality, where users do \XXX. \koji{}{it's better to have a bit more detailed explanation about parametric editing. Maybe explain this with a scenario of creating a simple texture. We will then use the same scenario for Tabby to highlight how awesome we are.}
% However, it requires to manually \koji{define a surface with approximate plane and perform appropriate deformation.}{pretty vague}
% Such a task becomes tedious and even intractable when the target surface and patterns are non-flat and complex.
% Although the goal of using parametric models is to accelerate design process by 
% change the design later on, this complicated workflow 
% can slow down the desng-and-redesign process. 
% of texture patterns in current 3D CAD tools are not well designed for novice or casual users.
% Despite of the versatility and ubiquity of the texture, not fully explored. 
% Texture inherently consists of repeated elements, however, 
% Particularly 
% While, digital fabrication tools are capable of with "complexity-free" 
% users do not fully exploit its capability
% rather, users suffer in the design process
% tools lock its capability of tools can be created.
% As a result, currently, most of the users
% \koji{While computer graphics research has demonstrated automated texture synthesis techniques~\cite{bhat2004geometric,dumas2015example,lagae2005geometry}, they apply textures over the entire surface of the object. None of these methods provide users with the freedom to interactively choose a precise subsection of the surface area on which to apply textures and control textural properties (e.g., density and bumpiness). As the digital fabrication brings the new opportunity, both expert and casual users must be empowered by intuitive, yet powerful parametric design tools.}{Are they all fully-automated methods? If so, I don't think we have to talk about them here. We already focus on interactive explorations.}



% In designing everyday objects, texture is one of the essential design components~\cite{ashby2013materials}. Texture contributes to various aspects of usability and aesthetics in physical objects, providing important visual and haptic information~\cite{ashby2013materials, gatto1978exploring,gibson1966senses, kreifeldt2011importance,torres2015hapticprint}. For example, surface textures like grips or knurl is important factor to improve usability by enhancing friction and haptic characteristics. Patterns in a lampshade or architectural models can visually enhance aesthetics of the light and landscape design. Texture plays a critical role in providing tactile information for people with visual impairments \cite{philippe2009typhlo, stangl2015transcribing}. Beyond ornamentation, texture patterns themselves can also serve as a function. Patterns like living-hinge can enhance bending stiffness of rigid material, and repeated dovetail patterns serve as joint connectors.
%As 3D printers become widely available, many practical use of texture pattern can be seen in many different design prototype in online repository like Thingiverse (e.g. lamp [thing:978768], smartphone case [thing:40703], architectural models [thing:862724], music speakers [thing:586075], and wheel [thing:964789]). % shoe sole thing:430251, grips [thing:179161], LEGO blocks, braille, tactile texture


% \koji{}{In this paragraph, we need to explain why texture patterns are so important in 3D (printed) objects. In addition, we also present where our focus is. What size of 3D objects are we talking about, for example? What applications are we considering? This is not where you do laundry-listing but you form a claim of how important texture patterns are.} 
% \koji{texture}{We need to be more specific. We are not doing anything about feeling of touch, which is also called texture.} is considered as one of the essential components along with shapes, colors, and materials~\cite{ashby2013materials}.
% \ryo{}{1. Why texture is important}


%\koji{Patterns}{be more specific. "patterns" can be design patterns, which are totally different from what we are doing.} are important component of many 3D designs. 
%play an integral role in adding an aesthetic feature to everyday objects [ref], providing a functional property with joint parts or folding pattern [ref], and enhancing accessibility and usability for people with visual or physical impairment [ref]. 
%\koji{These properties can be seen in many different domains such as everyday objects (e.g. smartphone cases, lamps, music speakers), architectural designs [ref].}{Sounds similar to the previous sentence?}
% \koji{Advances of 3D printing technologies will widen the application domain to micro-pattern surface for   [Cillia, 3D-hair] and 3D printed tissue engineering [ref].
% However, designing such a pattern is notoriousely hard and unintuitive. }{why do we need to talk about micro-pattern surfaces? These are quite different from applications we have presented. Are we also doing this?}


% \item \koji{Algorithms that implement Pidemont's key features, including an algorithm to convert a 2D drawing to a printable mesh, an algorithm to compute 2D to 3D texture mapping, and an algorithm to repair meshes to achieve water tightness for 3D printing}{This is one of the most ugly sentences. How many ``algorithms'' are there? Rewrite.}, and
% (i.e., Tinkercad and Solidworks) in terms of \koji{success, efficiency and learnability}{do you really define them clearly later?}.


%Another key innovation of Tabby is to bring the familiar ``predicative text'' feature from text editing into 3D tactile texture editing. Tabby observes and pays close attention to how a user manually places the first few fragments and uses such knowledge to intelligently predict what pattern the user may try to achieve. Pidemont than attempts to complete the rest of the pattern automatically for the user. Currently, the range of patterns Pidemont can predict includes lines, circles, and 2D grids. Our technique is a step-forward with respect to a number of auto-complete techniques proposed in the literature for 2D drawing applications  by extending the use cases of these techniques to 3D printing applications.

% such as locating the texture as 2D images on the surface, converting them into 3D patterns while the water-tightness is maintained. Also, to alleviate repetitive process, we adapt to autocomplete repetition techniques which are widely used in 2D drawing applications \cite{kazi2012vignette,xing2014autocomplete,xing2015autocomplete}. We extend this method to 3D texture creation. Therefore, these interaction techniques allow users to easily arrange and manipulate the textures in 3D space. 

% Our user study validates Tabby by comparing our system with the existing commercial CAD tools. [TODO: what is the goal of our user study, what and how we measure, the basic results, the insights from the observations and semi-structure interviews.user study result goes here.]

% \ryo{}{TODO: a summary of the user study}

% We also incorporate the concept of auto-completion, which is well explored in 2D drawings~\cite{kazi2012vignette,xing2014autocomplete,xing2015autocomplete}, into the Tabby system. 
%\koji{Hudson et al. found that novice users are able to use the \emph{extrude} feature provided by existing 3D modeling tools to turn a 2D shape into a 3D shape.
%However, they often struggle to position and manipulate 3D shapes in a 3D design environment due to the misconception of different dimensions \cite{hudson2016understanding}.}{These two sentences do not connect well.}
%In \koji{Pidemont}{I don't think it's a good idea to give your system a name which you cannot correctly spell. I also prefer the system name to be more descriptive rather than a random Italian state.}, we strive to convert the task of designing 3D tactile textures to a series of 2D operations.


% they have strong needs to speed up the design-and-redesign process as they see digital fabrication as a rapid prototyping tools.
% There are two major problems: \\
% 1. Changing the parameters gives an easy way to customize the existing objects, but the flexibility of customization relies on the original design, thus the user’s design exploration is limited.
% 2. If users want to go beyond changing the pre-defined parameters, they need to understand the original model, and sometime it requires to redesign from scratch.
% Such a complicated workflow makes tedious or intractable to perform even simple task such as adding the use-defined pattern on the curved surface.
% Moreover, it is not trivial to set the parameter in the right way.
% As a result, designers often struggle with this and end up re-designing the same geometry from scratch.


% 4th Iterataion
% The design is not one shot, rather, the designer iteratively design and redesign through the prototyping process. Traditional CAD tools help this process through parametric modeling. The power of this approach is that some of the parameters can be changed later on, but the workflow often require a large amount of steps and it is not trivial to set the parameter in the right way. As a result, designers often struggle with this and end up re-designing the same geometry from scratch.
% 
% Such a complicated workflow is intractable for novice users to perform even simple tasks such as adding the use-defined pattern on the curved surface. Even for professional users, it is tedious and time-consuming, making the design iteration process slow. As the fabrication tools is democratizing, there are strong needs a intuitive, yet powerful parametric design tool to empower the growing “makers” community with  process.


% 3rd Iteration
% The democratization of the digital fabrication opens up a new opportunity for much larger community interested in designing their own 3D objects. These growing "casual makers" must be empowered by the easy-to-use CAD tools \cite{hudson2016understanding}. Traditional CAD tools, however, are mostly designed for professional engineers or designers. Its steep learning curve can be a significant barrier for novices to adapt these tools \cite{schmidt2013design}. 
% 
% Texture plays an important role in adding aesthetic features to and augmenting the functionality of objects like smartphone covers (thing:40703), lamps (thing:978768), shoe soles (thing:430251), cases (thing:1348371), and music speakers (thing:586075). Most of these have more than 1,000 likes, which implies a large demand for these designs. However, these artistic objects are typically designed by professional artists (e.g. Joshua Harker, Henry Segerman), and consumers buy these objects in an online marketplace (e.g. ShapeWays) rather than design by themselves [Lipson and Kurman 2013]. Tabby aims to lower the burden for 3D design prototyping for non-expert users.
% 
% While traditional CAD tools allows to automate the repetitive operations through parametric editing, the workflow usually require a large amount of commands to implement their desired models. For example, create the unit shape, define the plane, set the parameter, and automate. Such a complicated workflow makes tedious or intractable to perform even simple task such as adding the use-defined pattern on the curved surface.
% 
% The development of new types of easy-to-use design tools is needed. Such a complicated workflow degrade the natural user interaction which in artistic style. Its steep learning makes intractable for novice users to perform even simple task such as adding the pattern on the existing model surface. Moreover, the incorrect parameterization significantly reduce its customizability. Even for experienced users, they have strong needs to speed up the design-and-redesign process as they see digital fabrication as a rapid prototyping tools.
% 
% There are two major problems: \\
% 1. Changing the parameters gives an easy way to customize the existing objects, but the flexibility of customization relies on the original design, thus the user’s design exploration is limited.
% 2. If users want to go beyond changing the pre-defined parameters, they need to understand the original model, and sometime it requires to redesign from scratch.

% Recent researchers have proposed a class of design tools for the growing user base of consumer-level 3D-printing devices. Such a tool can also benefit expert users as well. Even if they are professionals by day, when they put on the “Maker” hat these individuals can accelerate prototyping process and have the more freedom to explore an alternative design. This is spurring the development of new types of design tools; particularly those in which the knowledge that the end goal is a physical object is deeply integrated into the system.

% In creating patterns, users usually use their user-defined patterns, and automate the pattern along the model. When users want to create a repetitive pattern, they either using parametric modeling such as OpenSCAD or SolidWorks or simply copying and pasting to create a pattern. Defining parameters suffers a quick prototyping. It first requires the plane, but if the plane is complex shape, then it could be difficult or impossible to perform. Expert users sometimes deal with approximate primitive shape such as sphere, but this sometimes lacks the aesthetic features and it requires expert knowledge. Therefore, it is important to improve the user interface to reduce the time and costs required for pattern creation.

2-related-work.tex
\section{Related Work}

\subsection{Geometric Texture Synthesis}
% The argument here is voxelization 
Computer graphics research has a long history of 2D image mapping~\cite{heckbert1986survey} and by-example image texture synthesis~\cite{wei2009state}.
Work on solid texture synthesis has extended 2D image synthesis to 3D models~\cite{pietroni2010solid}.
While these techniques can render and simulate 3D textures, they only generate colors or shadow on the surface, and do not change the underlying surface geometry.
Recent work has developed 3D geometric texture synthesis methods by performing voxelization \cite{bhat2004geometric}.
The synthesis process can be improved through a distance field matching~\cite{lagae2005geometry} or by restricting synthesis to only surface voxels~\cite{dumas2015example}.
% Voxelization is in general computationally expensive, and loses the smoothness of a surface (similar to pixelization of a vector curve).
% Therefore, this method is not suitable for interactive applications.
A major limitation of this approach is to require voxelization to produce an output mesh.
The outcomes are sometimes undesirable because they lose the smoothness of a surface (similar to pixelization of a vector curve).
In addition, voxelization is in general computationally expensive and difficult to modify the result outcomes.
Therefore, this method is unsuitable for interactive design.

Several alternative approaches extend the geometric synthesis method.
They do not require voxelization \cite{zhou2006mesh}, and consider 3D printability or structural soundness of output models~\cite{dumas2015example}. 
However, these systems mainly aim to fully automate texture synthesis, and do not support interactive explorations of texture design.
One of our main objectives is to support interactive tactile texture creation for 3D models.
%Although automated approach is useful to generate complex texture patterns on an entire surface mesh, there is no room for users to interactively explore alternative textures through an iterative design process. Through the design process, users have no control to select a region where the texture should be applied, and if the users are not satisfied with the result, then they have to start from scratch. We observe that, in many use cases, users have strong desires of the support of their design exploration, rather than automatically generating result outcomes. Therefore, it is important in HCI to explore a semi-automated approach in which users have full control to explore their design spaces, yet reduce tedious manual process by automated texture creation. 
%[TODO: other citation]
% - A survey on solid texture synthesis
% - Geometric Texture Synthesis and Transfer via Geometry Images
% - Dual Poisson-Disk Tiling: An Efficient Method for Distributing Features on Arbitrary Surfaces
% - Solid_Texture_Synthesis_from_2D_Exemplars

\subsection{Design Tools for 3D Texture Creation}
Prior research has developed interactive systems for various mesh editing tasks including surface deformation \cite{sorkine2004laplacian} and mesh composition \cite{schmidt2008sketch}.
% \koji{These tools allow users to interactively deform a surface mesh\cite{lawrence2004painting}, sculpt geometric details [sculpting tools], and remix separate objects .}{not sure about the difference from the previous sentence.}
% This system may support generating tactile textures.
% \koji{But, the user sill needs to manually paint the region which is limited to a single boundary, and the resulting geometry is bounded by the source geometry.}{not sure what this means.} 
Systems like MeshMixer \cite{schmidt2010meshmixer} and GeoBrush \cite{takayama2011geobrush} provide an interactive texture cloning tool, and users can copy a geometric feature from example models by a simple brushing operation.
However, these systems are not designed to support the creation of repeated patterns like tactile textures.
Exemplars of 3D tactile texture are typically difficult to obtain, inducing another limitation in existing texture cloning tools.
Also, a user must manually choose a region of both the source texture and the target surface.
Such a task can be time-consuming if the target region is large.
Tabby reduces efforts on region selection and enables a user to generate geometric features based on user-provided 2D images. 

Similar to our work, HapticPrint \cite{torres2015hapticprint} provides a design tool for tactile texture. 
With this tool, users can interactively explore a library of 2D texture patterns, choose a pattern, and apply it to an object.
HapticPrint uses the 2D height map to generate a texture mesh.
While this approach has benefits to create 3D tactile textures, it sometimes requires a re-meshing process to increase the vertex density of the target surface.
The capability of HapticPrint is also limited to bumpy textures, and hole or hollow patterns are not supported.
Our system supports the creation of a wider variety of 3D textures as well as flexible design explorations through auto-complete approaches.
%From the user interaction perspective, the workflow of existing texture creation tools is basically parameter tweaking.
%Such indirect manipulation often perceived as a barrier to inexperienced designers~\cite{norman1986user} and significantly interrupts workflow~\cite{kazi2012vignette}.

Landreneau et al. \cite{landreneau2010scales} developed an interactive tool for scale pattern synthesis.
In the workflow, the user can fill a region with scale-like structure with a single stroke.
Although the system allows users to adjust the position and orientation of the scales, the options of the texture distribution is limited to only scale-like structure because the underlying method is based on a specific type of tesselation (i.e., Centroidal Voronoi) rather than general texture parameterization.
Tabby advances these works by enabling users to create general texture patterns for 3D models with complex geometries. 

\subsection{Autocomplete 2D Texture Creation}
Creating repetitive patterns is a tedious manual process.
To alleviate user workload, prior work has developed auto-completion techniques in 2D drawing applications
% \koji{several automating approaches have been proposed in 2D drawing applications.}{Do not use unnecessary passive voice. Rewrite this.}
Kazi et al.~\cite{kazi2012vignette} demonstrated Vignette, an interactive drawing application that can facilitate user-defined 2D textures.
The user draws a part of a texture and gestures to automatically fill a 2D region with the texture.
% \ryo{I think this means Draco?}
% She can then specify the animation behavior with additional interaction. 
Later research adapted this concept to enable data-driven decorative patterns~\cite{lu2014decobrush}, animated textures \cite{kazi2014draco}, and autocompletion of hand-drawn repetitions~\cite{xing2014autocomplete,xing2015autocomplete}.
These systems inspired us to investigate how we can integrate these autocomplete techniques into 3D modeling to support interactive tactile texture design. 



3-design-goals.tex
\section{Design Goals}

We conducted a formative study to discover the needs and challenges in performing texture pattern creation with current 3D modeling tools.  
We observed the design process of two different types of users.
First, we participated in a workshop at a local community center where 25 novice users (most of them were high school students) designed 3D printed objects using entry-level CAD tools (TinkerCAD)
Next, we asked three professional Solidworks (CAD) users to apply a repeated texture to several complex geometries.
We conducted brief interviews with both user groups to learn from their experience.
These observations and interviews led us to the following high-level design goals.

\subsection{D1: Liberating from 3D Operations}
Prior work found that novice users often struggle to develop sufficient mental models in 3D modeling tools~\cite{hudson2016understanding}.
This causes difficulty in aligning or manipulating objects in 3D space.
Our study also confirmed that novice users struggle to precisely locate objects in a 3D space.
They needed to continuously change the camera angle to ensure that all texture elements were attached correctly to the target surface (Figure~\ref{fig:design-goals}A). 

This task becomes even harder on curved surfaces because the user must deform a texture to fit the target curvature (Figure~\ref{fig:design-goals}B).
Otherwise, the texture merely touches the surface at a single point.
However, this type of deformation task requires extensive 3D modeling skills.
In fact, our participants from the professional community confirmed that such a task often becomes intractable even for experienced users.
As a result, we observed that some participants from the experienced user group simply gave up creating textures on non-flat surfaces, or unwillingly accepted undesirable outcomes. 

These unsuccessful examples illustrate typical issues that CAD users encounter in 3D modeling.
Prior work found that 3D modeling becomes manageable even by novice users when it is presented as a series of 2D operations~\cite{hudson2016understanding}.
We thus should also exploit 2D operations in our system. 

%
% Corresponding feature:
% => Interactive extruding/intruding on arbitrary surface geometries 
%

\subsection{D2: Liberating from Repetitive Operations}
Tactile textures often consist of repeated patterns.
We observed that our participants from novice users attempted to achieve this through manually copying and pasting an element (Figure~\ref{fig:design-goals}C).
This na\"{i}ve approach can be feasible if the target surface is simple and flat.
But, it becomes intractable when the target geometry is more complex and curved because users must adjust the position and orientation of each element.
In addition, this simple copy-and-paste approach lacks the flexibility for design explorations.
After the texture elements are placed, if there is a need to iterate on the design, it would be very difficult to adjust the locations or orientations of all these elements manually. 

Some advanced CAD tools, such as SolidWorks or OpenSCAD, allow users to define and control the parameters of repetitive patterns to automate this process.
However, the parametric approach sometimes fails in non-symmetric geometries.
We asked professional SolidWorks users about the strategy to apply parameteric design for complex surfaces. 
According to their responses, the tool typically supports only symmetric shapes in automatically repeating the texture, so they must perform combinations of symmetric operations to approximately cover the surface (e.g., line patterns for a flat surface and circular patterns for a rounded surface).
Such tasks can be very difficult, and some of the professional users confessed it can be easily intractable to automate texture creation for complex surfaces.

Our tool, therefore, should reduce users' manual operations, even when interacting with complex surfaces.
We observed that users typically perform copy-and-paste operations to create repetitive patterns; thus, a repetition of such operations can signal an attempt to create tactile textures.
Our system should exploit this behavior to infer the user's intentions and, if possible, automatically complete the intended texture. 

\begin{figure*}[t!]
\centering
\includegraphics[width=2.1\columnwidth]{figures/workflow}
\captionof{figure}{An overview of the workflow for creating gripping surface texture with Tabby. (A) Users sketch a texture element for grips and drag-and-drop it onto the 3D model. The system infers a possible target surface based on the user interaction. (B) Users copy and paste the texture element a couple of times. (C) When the system detects repetitive operations, Tabby suggests texture patterns. (D) Users can accept the suggested pattern. (E -- G) Another example of texture creation with Tabby. (H) Users extrude the texture, creating a 3D-printable pattern.}
%(I) Users download and 3D-print the output model.}
\label{fig:workflow}
\end{figure*}


\subsection{D3: Allowing Intuitive Control}

With our interview, we found that designers typically want to control the following design elements:
\begin{enumerate} % [noitemsep,topsep=0pt,parsep=0pt,partopsep=0pt]
\item type of texture (e.g., bump, embossed, and hollow);
\item design of the texture unit (e.g., shape, size, and rotation);
\item alignment of the texture pattern (e.g.,  along a line, on a grid, or at random);
\item tactile properties (e.g., roughness and smoothness); and
\item region to fill the texture (e.g., roof of a house, a specific area in a tactile map).
\end{enumerate}

Although experienced designers can control these properties with  parameter tuning, such design process leaves them with a large gulf of evaluation~\cite{norman1986user}.
For example, one participant of our formative study suggested that he sometimes attempts to randomly change parameter values in an effort to achieve a certain effect because he does not fully understand the association between parameter values and their effects on the design.
Moreover, it could be even more difficult when designers have to deal with multiple parameters and constraints simultaneously.
Therefore, one design goal of our tool is to bridge this gulf by supporting \emph{direct manipulation} such that designers can more easily map their actions to intended results.

The ability to control the shape and patterns of texture may not be enough.
In many scenarios, users may want to specify a certain region to add texture (Figure \ref{fig:design-goals}D).
For example, when users design the texture for an object, such as the sole of shoes, scales of fish, the grip of robotic arms, and the tread of tires, they often need to choose a certain region and add tactile textures only to that region, instead of over the entire object. Therefore, another design goal is to simplify region selection. For this goal, we incorporate a semantic region selection method (described later).

% However, most existing tools or current state-of-the-art texture creation methods have not addressed this issue.
% As a result, when a target region is complex, users may need to perform manual placement for every single part of the target region.

% Therefore, the system should allow not only to control the parameters of a texture pattern but also to specify a target region.
% To enable intuitive region selection, we notice that copy-and-paste operations are always associated with a particular location.
% We can thus infer the user’s target region from this interaction. 
% This is another motivation for Tabby’s exploitation of the user’s repeated copy-and-paste operations.

% \subsection{D3: Auto-selecting Target Regions}

% Although auto-filling elements over a surface can greatly reduce workload, this requires the system to know on which surfaces the users want to add textures.
% However, selecting regions is another tedious interaction for novice users.
% When a target region is complex, users may need to perform many 3D operations to make sure that every single part of the target region is selected.
% This is a very demanding task for users who are not familiar with 3D modeling tools (Figure \ref{fig:design-goals}D).

% Copy-and-paste operations are always associated with a particular location.
% We can thus infer the user's target region from this interaction.
% This is another motivation for Tabby's exploitation of the user's repeated copy-and-paste operations.




% \koji{}{I have completely rewritten this section because users do not need explicit region selection, which is one of our system's benefits.}

%In many real use scenarios, only automating the repetitive patterns may not satisfy the users' design needs. When designing the repeated textures, users often have desires to define specific regions where the texture should be added. For example, when users design the texture, such as sole of shoes, scales of fishes, a cogwheel of a gear, and a tread of tires, they often need to choose a certain region, then to add tactile textures only selected regions. However, with the current existing tools, it is difficult to achieve the both pattern automation and region selection at the same time. Manual placement is flexible but tedious, on the other hand, parametric modeling can automate the process, but it cannot specify or exclude a certain region. Also, as discussed in the previous section, the current state-of-the-art texture synthesis methods also have not addressed this issue.  

%We see many users who have strong desires of this feature for real use scenarios. For example, designers of 3D printed robotic arms need to add grip on tip of the its fingers to increase the friction [cite], and parents of visual impaired children want to add tactile textures on 2.5D picture book as make objects more identifiable [cite]. In these applications, users want to add textures not only for aesthetic features but also for improving usability and accessibility. To make these broad applications possible, design tools should allow users to "semantically" select regions where textures put on. 



4-interface.tex

\section{Tabby: Interface and User Interaction}

% \begin{figure}[!h]
% \centering
% \includegraphics[width=1\columnwidth]{figures/user-interface}
%   \caption{The Tabby interface.}~\label{fig:user-interface}
% \end{figure}
% \mdg{}{Adding star-texture to the chess-piece (rook/castle) isn't the most compelling example for me, but I guess we will have to live with it.  The text should explain that we are adding a texture (made of little stars) to the surface of the rook (why?). }

This section introduces Tabby, a system to support the design process of rich, user-defined tactile texture creation.
Tabby's design environment resembles that of a typical existing 3D modeling tool.
Our user interface consists of two components: a 3D model viewer and a 2D sketching canvas to design texture elements. 

The typical workflow in Tabby is as follows:

\emph{Step 1:} Import a 3D object into Tabby's working space. 

\emph{Step 2:} Sketch or import an SVG image for a desired texture element, and place it on the object (Figure~\ref{fig:workflow}A). 

\emph{Step 3:} The system infers the target region based on the placement of the texture element. Users can accept the suggested pattern (Figure~\ref{fig:workflow}D) or adjust the region selection if needed. 

\emph{Step 4:} After users copy and paste the texture elements a couple of times, the system suggests auto-completion of the pattern  (Figure~\ref{fig:workflow}B, C, E and F). 

\emph{Step 5:} Users adjust the properties of the pattern (Figure~\ref{fig:workflow}G). 

\emph{Step 6:} Once users confirm, the system extrudes the 2D texture, converting it into a 3D geometry while maintaining water-tightness (Figure~\ref{fig:workflow}H). 

\emph{Step 7:} Users can download the modified model to 3D print. % (Figure~\ref{fig:workflow}I). 

Tabby has the following key features that address issues identified in our formative study and make the system usable for realistic applications.

\subsection{Semantic Region Selection}
% Step. 2, Design Goals 1
Users start with defining an element for texture patterns.
In Tabby, they draw the element in a 2D sketching canvas or import the element as an SVG file.
After deciding the element, users drag it into the main working space.
The system displays a shadow of the element as visual feedback.
As users move the element, the system automatically infers the surface region where they intend to create textures, and highlights it in light blue (Figure~\ref{fig:region}).
They may refine the system's suggested surface region by changing the region's size or by specifying the cutting boundaries with a mouse click.
When users release the mouse button, the system confirms the initial position of the element.
In this manner, Tabby liberates users from performing complex 3D operations (D1) and automates the task of selecting target regions (D3).

\begin{figure}[!ht]
\centering
\includegraphics[width=1\columnwidth]{figures/region-selection}
  \caption{Automatic target region selection. Based on the current texture position, the system automatically infers on which surface she desires to create a tactile texture (highlighted in light blue).}~\label{fig:region}
\end{figure}

%Tabby supports the texture design and manipulation. First, users can define a desired texture by sketching or importing existing vector images. After designing the texture element, users can simply drag and drop the texture image on to a 3D surface.  then users can manipulate the texture on the surface.

%While users can extrude the texture to create 3D shape, Tabby allows users to manipulate the texture element as 2D images. While manipulating the element, users can move the position, scale, and rotation of each  texture unit through the mouse dragging. Since the 2D texture patterns are always attached on the target surface, users can reduce the cognitive difficulty of controlling 3D objects, and  users no longer need to deform the texture surface, which addresses the first design goal.  


\subsection{Texture Auto-completion}
After users place the first element, they can perform copy-and-paste operations to start forming a texture.
Our formative study found that it is often very difficult to place new elements properly along the target surface.
Tabby supports this task by auto-completing repetitive patterns.

Tabby's auto-completion process is as follows. 
Once the system detects the user's copy-and-paste operations.
When such operations are detected, it tracks the placements of the first two texture units and calculates the relative positions between the two.
Then, Tabby makes a suggestion for auto-completion by presenting an example where each individual element is visualized as a shadow cast on the surface (Figure~\ref{fig:workflow} and ~\ref{fig:auto-complete}).
Tabby's extrapolation can support both patterns in x and y, and curves lines with the user's additional demonstration. 

Tabby can also support flexible customization.
When the user changes the position of the current element, the system shows the real-time preview to demonstrate how the rest of pattern can be changed.
With this preview, the user can adjust the properties of the repeated pattern, such as the density, the element size, and the rotation.  
In this manner, Tabby liberates users from repetitive operations while preserving the intuitive design process (D2).

After completing the design, the system automatically converts the 2D drawing element into a series of triangle meshes to create 3D textures.
Users can also interactively change texture types (e.g., bumps or cutting holes). 
As we will show in the following section, the system also ensures that these added triangle meshes are properly fused into the target to obtain a water-tight result.





\begin{figure}[!h]
\centering
\includegraphics[width=1\columnwidth]{figures/auto-complete}
  \caption{Auto-completion of repeated patterns by drawing a line. (A-B) Users copy and paste the element. (C) Users can demonstrate the line to create a pattern. (D) The system suggests a complete pattern along with the curved line.}~\label{fig:auto-complete}
\end{figure}



%Tabby helps to create repeated texture patterns. By simply copying and pasting the texture element, then the system automatically suggests the possible repeated elements. This features allows users to automate the repetitive manual process with an intuitive operation. Unlike the existing tools, users can interactively explore alternative designs through changing the parameters. The autocompletion is also flexible. Users have full control in the design of repeated patterns. 


%\subsection{Semantic region selection}
%While users change the position, the system highlights a similar segmented area based on the current texture position and suggests a possible regions to expand the texture in real time. User can copy and paste the image unit, and the system auto-complete repeated patterns based on the alignment. 


%\subsection{Interactive extrusion or cutting operation}
%Once users are satisfied with the current design, then the system converts 2D images into a series of triangle meshes to create 3D textures. Then, users can interactively change the texture type such as bumps or cutting holes, and export the result model as STL files.

5-method.tex

\section{Method}
In this section, we present algorithms we have developed in order to support Tabby's key interactive features. 
Tabby converts a 2D drawing into a 3D printable texture.
A naive method would perform a linear extrusion of a 2D shape to obtain a 3D solid of the same shape and copy it over the target surface.
But this works well only when the target surface is flat. 
In order to support general applications where a target surface may have an arbitrary curvature, we must address two technical challenges: (1) each texture element must be deformed individually in order to smoothly conform to the curved surface; and (2) the resulting object maintains water-tightness for 3D printing.

Our method consists of two key components: (1) it utilizes UV mapping to achieve the evenness in sizes and spatial arrangements across the target surface, (2) it triangulates 2D sketch onto the target surface to achieve smooth deformation for three different types of textures.
Here we present the details of our method.

\subsection{Texture Mesh Generation}

% We first introduce our notation.
Let $M$ be the original mesh (the target to which a tactile texture is to be added) that consists of sets of triangle mesh surfaces $F$ and vertices $V$ in $\mathbb{R}^3$ ($|F| = N_F$ and $|V| = N_V$).
We compute a UV map for $F$ that gives us the UV coordinates of each vertex in $V$. 
We adopt the as-rigid-as-possible (ARAP) mesh parameterization \cite{liu2008local} to generate UV coordinates.
Next, we define $T_i$ as triangle points of UV mapping of the face $F_i$, and $T_i = [t_i^0, t_i^1, t_i^2] \ (t_i^j \in \mathbb{R}^2)$.
Let $P$ be a 2D shape (based on user's sketch) which consists of a set of 2D coordinates of stroke points.
For each $F_i \in F$, we calculate the overlapping region between $F_i$ and $P$ by performing boolean operations between $T_i$ and $P$ with Greiner–Hormann algorithm (Figure.~\ref{fig:mesh-generation} A).
We denote the result points as $P_i'$.
Once we obtain $P_i'$, then we triangulate $P_i'$ to get faces $F_i' = [f_{i, 1}', \cdots, f_{i, n}']$ that span the diff regions (Figure.~\ref{fig:mesh-generation} B).
To perform the triangulation, we use the standard constrained Delaunay triangulation~\cite{chew1989constrained}.
Through triangulating each face, we can obtain the boundary points in 2D coordinates and corresponding triangle faces.
Then, we replace the original mesh surface $F, V$ with new meshes $F', V'$, where $V'$ are 3D vertices converted from 2D coordinates of $P' = \{P_i'\}$ (Figure.~\ref{fig:mesh-generation} C). 
Algorithm~\ref{alg:texture-generation} illustrates this process in pseudo code.

\begin{figure}[h!]
\centering
\includegraphics[width=1\columnwidth]{figures/mesh-generation}
  \caption{Texture mesh generation. (A) Obtain a diff region between a triangle and the texture. (B) Triangulate the diff region. (C) Replace the surfaces with the new one.}~\label{fig:mesh-generation}
\end{figure}

\begin{algorithm}
\caption{Texture Mesh Generation}\label{alg:texture-generation}
\begin{algorithmic}[1]
\State \textbf{Input:} $V, F, P$
\State \textbf{Output:} $V', F'$
\\
\For{$i = 0, \cdots, Size(F)$}
\State $T_i \gets getVertexUV(F[i])$
\State $P_i \gets getDiffPoints(T_i, P)$
\If {$Size(P_i) > 3$}
  \State $removeFace(F[i])$
  \State $F_i' \gets triangulate(P_i)$
  \State $V_i' \gets getVertex3D(F_i', P_i)$
  \For{$j = 0, \cdots, Size(F_i')$}
    \State $addFace(F_i'[j], V_i'[j])$
  \EndFor
 \EndIf
\EndFor
\end{algorithmic}
\end{algorithm}

\subsection{Texture boundary extrusion}
Once the boundary positions and surrounding surfaces are determined, the system creates a corresponding enclosure to maintain the water-tightness.
We compute the vertex normal vector for each boundary point, and get a set of outer vertices by extending with the normal vector.
We then perform the same constrained Delaunay triangulation on the outer vertices to obtain outer polygonal surfaces (Figure.~\ref{fig:mesh-extrusion} B).
Note that the resulting textures are smoothly deformed to fit the target curvature.
With the same interactive operation, users can also obtain an embossed texture by intruding the boundary points (Figure.~\ref{fig:mesh-extrusion} C) or a hollow texture by creating internal cavities inside the mesh with a consistent wall thickness.

% a hole by extruding each vertex point into inner direction.
% However, this extrusion operation does not guarantee to maintain the water-tightness of the resulting mesh.
% \koji{Thus, our system automatically generates an inner layer to maintain the water-tightness. }{This may need a bit more details.
% \koji{
% Using a sketch-based 3D design software such as Sketchup, it is possible to hand sketch a tactile 3D texture as a mesh; alternative, one can 3D scan an existing texture from a physical object to obtain a tactile surface mesh and import it into a 3D design space.
% In most 3D design tools, it is straightforward to bring into the design space an existing 3D model and a tactile surface mesh in such a way that the tactile mesh overlaps with the 3D model. But the resulting combination only ``appears'' to have tactile texture added. 
% This is often when many novice users are surprised that the combination is not 3D printable, 
% To be able to do so requires a certain level of understanding about 2D-to-3D extrusion and constructive solid geometry.}{this looks being half the way. Just describe what Tabby does for this.}


\begin{figure}[!h]
\centering
\includegraphics[width=1\columnwidth]{figures/mesh-extrusion}
  \caption{Extrusion operations. (A) After the system defines the boundary vertices, it computes the normal vector for each vertex. (B) When the system performs extrusion, it automatically adds walls around the texture element based on the obtained vertex normals. (C) With the same operation, the system can perform intrusion. }~\label{fig:mesh-extrusion}
\end{figure}


\subsection{Interactive Mesh Segmentation}

Tabby enables the user to interactively select a semantic region.
To enable this, we leverage and extend the existing mesh segmentation algorithms.
Our method is based on cross-boundary mesh decomposition~\cite{zheng2010mesh}, which computes a harmonic field with a Laplacian matrix to obtain segmentation boundaries by cutting along an isoline of the harmonic field.
To obtain boundary positions, previous work requires users to explicitly specify the boundary points by user interaction, such as selecting the foreground or background regions~\cite{ji2006easy}, drawing strokes along the boundaries~\cite{guy2014simselect}, and clicking a point near the boundaries~\cite{zheng2012dot}.
However, these specifications of cutting boundaries require additional user interaction for mesh segmentation.
Thus, we extend these methods to automatically infer the surrounding segmented region based on the current mouse position.

To achieve this goal, we obtain the cutting boundaries by computing distortion metrics.
We hypothesize that highly distorted vertices can be potential candidates of boundary points because the distortion occurs in high surface curvature, and cutting boundaries are also most likely located in high curvature points.
To compute the degree of distortion, we use the Gaussian curvature of the vertices across a larger surrounding region~\cite{sheffer2002seamster}.
The distortion of a vertex $i$ is defined as: 
\begin{eqnarray*}
D (i) = \max_{0 \le r \le R} \frac{2 \pi - \sum_{j} \tau_j (r) }{2 \pi}
\end{eqnarray*}
where $R$ is a region radius and $\tau_j (r)$ are the angles at $i$ of face $j$ inside of region radius $r$.
After calculating the distortion of each vertex, we extract high distorted points using a terminal vertex selection algorithm~\cite{sheffer2002seamster} with weights defined by the distance between the current mouse position and the target vertices.

\begin{figure}[!h]
\centering
\includegraphics[width=1\columnwidth]{figures/mesh-segmentation}
  \caption{Mesh segmentation. (A) The system identifies high distortion points (dots in the model). (B) Tabby uses these points as boundary candidates, and segments surface regions. (C) Based on the cursor position, the system updates harmonic fields and suggests possible target regions.}~\label{fig:mesh-segmentation}
\end{figure}

Figure~\ref{fig:mesh-segmentation} illustrates the high distortion points around the current mouse position.
Once we obtain the boundary candidates with the distorted points, we compute a set of harmonic fields that propagate in different directions and select the best isolines.

\begin{algorithm}
\caption{Mesh Segmentation with Harmonic Field}\label{alg:2}
\begin{algorithmic}[1]
\State \textbf{Input:} $V, F, L$
\State \textbf{Output:} $Isolines$
\\
\For{$i = 0, \cdots, Size(V)$}
\State $D[i] \gets computeDistortion(V[i])$
\EndFor
\State $Bnd \gets getBoundaries(D)$
\For{$i = 0, \cdots, Size(Bnd)$}
\State $v_1, v_2 \gets getNeighborPoints(Bnd[i])$
\State $V_1.push(v_1)$
\State $V_2.push(v_2)$
\EndFor
\State $P, B \gets getPositionalMatrix(V_1, V_2)$
\State $phi \gets computeHarmonicField(L, P, B)$
\State $computeIsolines(phi)$
\end{algorithmic}
\end{algorithm}




% A harmonic field can be obtained by solving a poisson equation $\Delta \Phi = 0$.
% Given the cross-boundary positions $V_1$ and $V_2$ $(|V_1| = |V_2| = c)$ and the boundary constraints $\Phi(v_1) = 1$ $(v_1 \in V_1)$ and $\Phi(v_2) = 0$ $(v_2 \in V_2)$, this poisson equation can be solved as a solution of the linear system~\cite{zheng2010mesh}:
% \begin{eqnarray}
% \begin{bmatrix}
% L \\
% \cmidrule(lr){1-1}
% W P
% \end{bmatrix}
% \Phi
% =
% \begin{bmatrix}
% O \\
% \cmidrule(lr){1-1}
% W B
% \end{bmatrix}
% \end{eqnarray}
% where $L$ is cotangent mesh Laplacian matrix, $W = diag \{w, \cdots w\}$ is a $2c \times 2c$  weighting matrix, and $P$ is the $2c \times N_V$ positional constraint matrix, and B is a $2c \times 1$ matrix with $\left[1, 1, \cdots, 0, 0\right]^T$.
% To solve this system, we can use Cholesky update and downdate methods~\cite{xu2009dynamic}. 



% \subsection{Texture Parameterization}
% To manipulate 2D images on the mesh surface, we need to have 2D coordinates of each vertex with surface parameterization.
% To obtain a local texture parameter, we adapt the Discrete Exponential Mapping (DEM) algorithm that was used by Schmidt et al. for interactive decal composition work~\cite{schmidt2006interactive}.
% To approximate the geodesic distances, we use the Euclidean triangle update algorithm~\cite{melvaer2012geodesic}, which we found to give better results than the Dijkstra algorithm used by Schmidt et al..

% \begin{figure}[t]
% \centering
% \includegraphics[width=1\columnwidth]{figures/mesh-parameterization}
%   \caption{Texture parameterization. (A) Initial DEM parameterization. (B) Update parameterization by computing mapping on several points through cursor movements.}~\label{fig:results}
% \end{figure}

% However, the DEM method has a limitation.
% It only parameterizes a certain region, and the surrounding surfaces could be significantly distorted.
% To avoid distortion, we adapt the stroke parameterization technique~\cite{schmidt2013stroke} by computing geodesic mapping on several points collecting through cursor movements. 

6-evaluation.tex
\section{User Evaluation}
To validate the usability of Tabby, we conducted a controlled experiment.
The objective of this evaluation was a performance comparison in texture creation and modification tasks between Tabby and commercial CAD tools.

\subsection{Participants}
We recruited 7 participants (5: male, 2: female) who major in various fields (computer science, mechanical engineering, architecture, and industrial design) in a local university.
Tabby is designed to support both novice and experienced users, but we expect the non-experience users may not be able to complete tasks in the reference system.
Therefore, to make a comparative study feasible, we targeted intermediate- or expert-level CAD users in this experiment.
The participants had at least 10-month experience in using commercial CAD tools (Min: 10 months, Max: more than 6 years, Average: 3.2 years).
The tools they chose include both novice-oriented (e.g., TinkerCAD and 123D Design) and expert-oriented (e.g., SolidWorks and Rhinoceros) traditional CAD software.
They self-reported the expertise of 3D modeling tools as 5.3 out of 7 in average.

\subsection{Tasks}
We asked participants to add and edit a tactile texture on existing models.
The task consisted of two different operations: creating and modifying textures.
We prepared six different basic geometries as target surfaces.
We chose six target surfaces to cover a variety of complexity: 1) a flat rectangle; 2) the side of a cylinder; 3) a sphere; 4) the side of a cone; 5) the head of a knight \footnote{\url{http://www.thingiverse.com/thing:1301815}}; and 6) the body of the Stanford bunny.
In the creation tasks, the participants were instructed to create a texture onto the given surface by placing a small cylinder texture element in a 3x3 grid.
In the modification tasks, we asked participants to change the size of the texture elements which they had created in the previous creation task. We measure the completion time of two geometries: a sphere and cone.

\subsection{Procedure}
Each participant first completed the tasks with the existing tools in their computers.
We allowed them to choose a tool they felt most comfortable with using.
Four participants chose SolidWorks, one chose Rhinoceros, and two participants chose TinkerCAD.
They were asked to create textures on all target surfaces except the last.
We excluded the last condition (the Stanford bunny) because we expected that it would be highly unlikely to be completed in five minutes.
We also allowed the participants to give up after five minutes if they felt that they would not be able to complete a task.

After completing all the tasks with their tools, they were instructed to perform the same tasks with our tool.
We gave participants a brief instruction about Tabby, and provided time for familiarizing themselves with the system.
We recorded their interactions and measured their completion time in all conditions.
At the end of the experiment, we conducted a semi-structured interview where we asked their experiences with Tabby, opinions about its benefits and drawbacks, and potential use cases.
Each participant was offered a \$15  Amazon gift certificate as a compensation at the end of the experiment.

%In an experimental condition, all of the participants performed their tasks using our laptop computer which is installed Tabby (Intel Core i7 2.8GHz CPU, 16GB Memory).

\section{Results}
Figure~\ref{fig:results} illustrates the overview of the completion time for each texture creation task.
With Tabby, participants completed their tasks with 29 seconds on average (Flat: 24 sec, Cylinder: 26 sec, Sphere: 41 sec, Cone: 24 sec).
In contrast, in the reference condition, they needed 248 seconds on average (Flat: 117 sec, Cylinder: 270 sec, Sphere: 275 sec, Cone: 332 sec).
Two participants even gave up completing the tasks for a sphere and cone surfaces.

A quantitative analysis of the task completion time reveals that the Tabby substantially reduced the time to perform texture creation tasks.
Our repeated-measure ANOVA test found significant results for both tools  ($F_{1,6}=48.6$, $p<.01$) and surfaces ($F_{3,18}=6.19$, $p<.01$) as well as their interaction ($F_{3,18}=6.03$, $p<.01$).
Our post-hoc pairwise comparison reveals significant differences between Tabby and the reference tools.
It also confirmed significant differences in the tasks; the flat surface was significant faster than the others.

We further examined the effect of the interaction of the tools and surfaces.
A repeated-measure ANOVA test for the performance time revealed that the surfaces were a significant factor with the reference systems ($F_{3,18}=6.18$, $p<.01$) but not with Tabby ($F_{3,18}=2.39$, $p=.10$).
This suggests that surface complexity greatly influenced on performance with the reference systems while the completion time was more comparable with Tabby.

% \ryo{}{Please check quickly the R script: \url{https://www.getdatajoy.com/project/570d442c0e5acb1a4b86249a}}
% $ANOVA
%              Effect       DFn     DFd           F                     p            p<.05       ges
% 2         Technique       1       6       48.644910     0.0004319188     * 0.6633020
% 3           Surface       3     18     6.185699       0.0044696924     * 0.2136944
% 4 Technique:Surface   3  18       6.028247      0.0049982899     * 0.2030077

% $`Mauchly's Test for Sphericity`
%              Effect         W         p p<.05
% 3           Surface 0.4816066 0.6381902
% 4 Technique:Surface 0.3882934 0.4934140

% $`Sphericity Corrections`
%              Effect       GGe      p[GG] p[GG]<.05       HFe       p[HF]
% 3           Surface 0.7140435 0.01205914         * 1.1228057 0.004469692
% 4 Technique:Surface 0.6465381 0.01650838         * 0.9504269 0.005897706
%   p[HF]<.05
% 3         *
% 4         *
% \koji{}{Not repeated-measure. Look at "Two-way repeated-measure ANOVA for balanced data with ez package". Your independent variables should be techniques and surfaces.}



\begin{figure}[!h]
\centering
\includegraphics[width=1\columnwidth]{figures/results}
  \caption{Completion time of the texture creation tasks with the reference tool (orange) and Tabby (light blue). Each box represents the median (the solid line), the mean (the dotted line), and the quartiles (the top and bottom edges of the box) in each condition.}~\label{fig:results}
\end{figure}


\begin{figure}[!h]
\centering
\includegraphics[width=1\columnwidth]{figures/results-modification}
  \caption{Completion time of the modification tasks with the reference tool (orange), and Tabby'(light blue).}~\label{fig:results-modification}
\end{figure}


% we remove this because we don't have significant results, and these are not interesting to discuss anyway.
% > cor.test(months,y1,method="pearson")

%         Pearson's product-moment correlation

% data:  months and y1
% t = -2.4937, df = 5, p-value = 0.05491
% alternative hypothesis: true correlation is not equal to 0
% 95 percent confidence interval:
%  -0.9595746  0.0194492
% sample estimates:
%        cor
% -0.7445133

% > cor.test(months,y2,method="pearson")

%         Pearson's product-moment correlation

% data:  months and y2
% t = 0.3016, df = 5, p-value = 0.7751
% alternative hypothesis: true correlation is not equal to 0
% 95 percent confidence interval:
%  -0.6887217  0.8056277
% sample estimates:
%       cor
% 0.1336576



%Moreover, we found that the time measurement in the controlled condition is strongly correlated to their experience in CAD tools (Completion time on months of experience: $t=6.6$, $p < 0.01$), while there is no correlation in using Tabby ($t=-0.73$, $p=0.48$).
% \koji{there is no difference}{you cannot say "no difference" from NHST results.} in using Tabby (t=X, p>0.X).
%We also discovered that the completion time in the control condition becomes significantly correlated to the complexity of the target geometry with two-way ANOVA results ($F=6.03, p < 0.01$).

% \koji{)}{this should come from the two-way anova result.}
% \ryo{}{I'm not sure how can I test this...}
% $ANOVA
%              Effect       DFn     DFd           F                     p            p<.05       ges
% 2         Technique       1       6       48.644910     0.0004319188     * 0.6633020
% 3           Surface       3     18     6.185699       0.0044696924     * 0.2136944
% 4 Technique:Surface   3  18       6.028247      0.0049982899     * 0.2030077


%Whereas, there is no correlation between them in Tabby (XXX).
%This suggests that the participants were able to complete the task in the relatively same time without depending on the complexity of the target surfaces including arbitrary geometries (kinght: 24 sec, Stanford bunny: 29 sec on average).
% all of the task with \koji{the same time (t=X, p<0.0X)}{again, you cannot prove no difference.}

% \koji{For the modification task, we also confirm that Tabby condition is significantly faster with two-way ANOVA results (F = 6.1, p < 0.01) }{Use the two-way anova results}
Figure~\ref{fig:results-modification} depicts the result in the modification tasks.
Our two-way repeated-measure ANOVA found a significant effect in tools ($F_{1,6}=12.7$, $p<.05$) but not in the two surfaces ($F_{1,6}=0.72$, $p=.42$).
A post-hoc test confirmed that Tabby was significantly faster than the reference tools.

% $ANOVA
%              Effect         DFn DFd              F                p           p<.05         ges
% 2         Technique       1   6       12.7360185    0.01180187     *    0.467116563
% 3           Surface         1   6       0.7234893    0.42763520            0.003953581
% 4 Technique:Surface  1   6        0.6502051     0.45080880            0.003106716

On 7-point Likert scale questions (1: strongly disagree -- 7: strongly agree), participants rated our tool as useful (6.3),  easy to use (5.7), and effective to perform the task (6.4).
The participants liked each feature of the Tabby useful (texture generation: 6.7, auto-completion: 6.1, drag-and-drop manipulation: 5.5, and sketching: 5.7).


\begin{figure*}[t!]
\centering
\includegraphics[width=2.1\columnwidth]{figures/applications}
  \caption{Examples of possible real-world use scenarios. All models are created within one minute design time by the authors. (A) A roof tile pattern on an architectural model. (B) A grip pattern on a bike handle. (C) A light design for lampshades. (D) A repeated pattern for smartphone cases. (E) Stacking functionality for toy blocks. (F) Scale of geckos. (G) A design for chairs. (H) Tactile picture books. (I) Shell of turtles. (J) Anti-slip finishing for cup holders.}~\label{fig:applications}
\end{figure*}

\subsubsection{Simple and effective interaction}
Our user interface facilitates the intuitive operations of texture creation.
One participant commented that the simplicity of the interface helped them quickly adapt to the system.
\begin{quote}
P2: \textit{``I really like the simplicity of it. [...] This one is actually pretty easy, just by messing around this, you can really get a better understanding of how it works pretty quickly, compared to the SolidWorks which is extremely intimidating with a lot of buttons that doesn’t make sense to us.''}
% \ryo{}{P2 - interview audio 0:15}
\end{quote}

Participants also agreed that the user interface is simple yet powerful to effectively perform the task.
\begin{quote}
P4: \textit{``Also, the pattern generation tool was very helpful because instead of clicking and dragging like 10 different times, I only needed to copy or paste once for the full pattern to be generated.''}
% \ryo{}{P4 - post-survey response}
\end{quote}




The auto-completion feature significantly reduced their workload.
P3 also appreciated the flexibility of the generated texture pattern.
\begin{quote}
P3: \textit{``You get one axis when you copy and paste in one direction and another axis you copy and paste in another direction. I like that there are a lot of options of how you can copy and paste as to how you get your pattern to wrap around the object is''}
% \ryo{}{P3 - interview audio - 8:50}
\end{quote}

\subsubsection{Avoiding confusion in 3D manipulation}
With Tabby, participants successfully reduced the number of 3D object manipulation.
As Tabby allows users to perform texture design as a series of 2D operations, participants did not get confused about object manipulation in the 3D space.
\begin{quote}
P4: \textit{``I like that [in our tool] the pattern is automatically attached to the shape, because I don't have to make sure that there is no space between it. [...] TinkerCAD is hard to know where you're in the space, when clicking and dragging sometimes you think the object is sitting on the top of object, but when you rotate the workspace, it turned out it’s floating somewhere random in space.''}
% \ryo{}{P4 - interview audio - 1:13 and 0:15}
\end{quote}




\subsubsection{Most effective for arbitrary geometries}
Participants liked that Tabby can support arbitrary geometries and automatically deform surface textures.
They agreed that wrapping a pattern around a complex surface becomes much faster [P6, P7] and easier [P5] than manual efforts.
P6 realized that if he tried to add textures on arbitrary curvatures, it took much more time than he initially thought:
\begin{quote}
P6: \textit{``I don't know if I could. I could do that, but it would take a while. I could not automate, I would have to manually make every texture element. I could copy and paste them, but thing is when I extrude it, from the sketch I would have to make different extrusion for each texture.''}
% \ryo{}{P6 - interview audio - 1:00}
\end{quote}



For users who have less experience, even simple geometries like a cone and a sphere are difficult and tedious to apply the texture to.
To create repetitive patterns with the parametric modeling tools like SolidWorks, users have to define the plane and control the parameter over it.
However, this can easily become intractable once the target geometry becomes non-flat.
Because of this, two participants gave up the tasks in creating textures on non-flat curvature.
P2, one of these participants, expressed why he gave up the task:
\begin{quote}
P2: \textit{``I know that there is a way to do it, but I know the task is tedious. [...] When you're doing stuffs on rough surfaces like this [bunny], it takes forever to look more natural.''}
% \ryo{}{P2 - interview audio - 1:00}
\end{quote}

%\subsubsection{Supporting design explorations}
%Participants also agreed that Tabby facilitates to explore the alternative design through changing the properties of texture patterns.  They liked the ability to modify a whole group of objects with a single interaction [P7], and interactively change the size and the rotation with the visual feedback [P4].

Our user study results showed that Tabby was significantly faster than existing 3D tools across surfaces with different complexity levels.
With Tabby, participants completed a texture creation task almost five times faster even in the simplest target surface than commercial 3D modeling software.
Performance with Tabby was consistent whereas participants needed more time in the reference condition as target surfaces became more complex.
Our qualitative evidence also supported this quantitative result.
These results validate that Tabby meets its three design goals.


7-applications.tex
\section{Applications}

Our participants were able to articulate a variety of specific use scenarios for Tabby.
Examples are making gears [P1, P7], grips for robotic arms [P3], architectural models [P2], treads of a tire [P3, P6], wavy texture on a phone holder [P2, P6], scales of animals [P4], and tactile graphics and physical visualization [P4].

Based on their feedback, we later investigate whether our tool is capable of creating such possible applications.
Figure~\ref{fig:applications} demonstrates that our tool can potentially support a wide variety of use scenarios.
Tabby enables users to quickly apply texture for increasing the aesthetics of the design (lampshades, design of chairs, smartphone cases), adding the details for realistic models (architectural models, scales of animals), increasing the usability and accessibility (grips, tactile picture books for people with visual impairments), and enhancing the functionality (blocks). 



%The participants agreed that our tool was most effective for rapid prototyping of 3D objects [P2, P3].
%For such a rapid prototyping, existing tools can be too complicated, and have steep learning curves.

% \begin{quote} 
% P2: \textit{It’s most useful for people who want to just create a 3D printable models. [...] I want to make some sort of a pencil holder or a phone holder. Although it does seem simple, but it probably, with the SolidWorks, take a lot of extruding and a lot of defining the planes, which take so much.} 
% % \ryo{}{P2 - interview audio - 4:05}
% \end{quote}

% \subsection{Tactile Pictures}
% One potential real-world application of Tabby is to add textures to 3D tactile pictures.
% A number of recent projects examined the use of 3D printing for producing tactile pictures that users with visual impairments can read by touch~  \cite{kim2015toward,brown2012viztouch}.
% It is highly desirable for these users to have distinct tactile textures to illustrate different regions in the pictures.
% However, for designers, adding these tactile textures is a time-consuming and tedious task using existing design tools~\cite{stangl2015transcribing}.
% Tabby could make it possible to customize an existing 3D picture design by quickly adding tactile textures.
% As an example, we downloaded the model of a tactile picture published on Thingiverse (thing:1104933) \footnote{\url{http://www.thingiverse.com/thing:1104933}}.
% We were able to add tactile textures to the boat and the sun after two minutes of work. Figure~\ref{fig:applications}A and B show the modified version of the tactile picture and its 3D printed object.

% \subsection{Assistive Objects}

% Another potential application is to enhance the design of an existing 3D assistive object.
% Buehler et al.~\cite{buehler2014abc} surveyed assistive designs shared on Thingiverse and found that many designs were created by the users themselves or on behalf of friends.
% Also, these designs were simple modifications to existing objects to add assistive features.
% One example of such modifications is to add friction dots to enhance the grip of a particular part of an object, such as a handle.
% HapticPrint~\cite{torres2015hapticprint} is a technique that can enable this type of modifications.
% But it provides no support for selectively applying a texture (\eg only to the bottom of a cup), nor is it possible to handle arbitrary surface geometries.
% Tabby can be a better solution because users can not only interactively design but also selectively add textures to a wider variety of objects.
% As an example, we used the body of an assistive cup-holder (thing:28067) \footnote{\url{http://www.thingiverse.com/thing:28067}} to increase the surface friction of the bottom through the dotted textures.
% Figure~\ref{fig:applications}C and D illustrate that Tabby enables easy selection of a desired surface region and adds friction dots evenly across the region within one minute of design time.
% Manually placing and orienting these dots would have taken significant more time.
% Note that in both examples the target regions have complex surface geometries.

% \koji{}{Maybe some limitations about Tabby?}

% Therefore, the participants agreed upon the Tabby is most useful for people who want to just create a 3D printable models quickly.
% \begin{quote} 
% P3: \textit{For rapid prototyping, your program is perfect. [...] If I was to need a 3D printed object, [...] using your program would be, in many cases, preferred to doing with SolidWorks unless I need it very high precision.} \ryo{}{P3 - interview audio - 12:08 and 5:20}
% \end{quote}

8-discussions.tex

\section{Limitations and Future Work}

Tabby has several technical limitations that require future work.
One major limitation is that our techniques heavily rely on 2D coordinates of UV mapping.
If the UV coordinates do not properly parameterize in surrounding areas, the resulting texture can be distorted.
For example, we noticed that sphere topology may produce distorted patterns.
One possible solution is to compute parameterization locally on a segmented area.
Because the system already identifies the segmented region, we may compute and update UV coordinates on the selected region~\cite{schmidt2006interactive}.
In addition, the discontinuity on a seam could cause problem associated with the UV mapping.
Currently, the system automatically cuts the shapes on the seam of the UV mapping.
But it may produce undesirable results, such as a discontinuous pattern on a cylinder surface.
Interestingly, our participants reported resulting patterns (e.g., distorted patterns on a cone or an edge of a roof tile or a grip) generally looked more natural (P2, P3) and organic (P4) than manual or parametric placement.
We will further need to investigate what aspect may affect the undesirable outcomes.

Another limitation is the lack of 3D texture geometry. 
3D printable textures have a rich design space of more complex geometry, such as hemisphere bumps or spikes, instead of simply extruding or intruding 2D sketches. 
One typical way to create such 3D textures is to use the displacement map discussed in~\cite{torres2015hapticprint}.
However, there are several trade-offs between our approach and the displacement map.
First, our approach can generate a hollow structure (e.g. a lampshade, a chair, and an iPhone case in Figure.~\ref{fig:cover}) which can be potentially difficult with the displacement map.
Another trade-off is that the displacement map typically requires a high-density mesh to produce a smooth surface.
For example, it requires 40,000 (200 x 200) vertices to generate 7 x 7 texture patterns~\cite{torres2015hapticprint}.
For a low-density mesh, the system may require the re-meshing process to increase the density of the vertices. 
To address these problems, we will seek to combine the displacement map with our mesh generation method to generate textures that have more complex geometry while maintaining the auto-completion workflow.

Our current implementation only supports a limited variety of texture patterns.
Such variations can be greatly improved using a data-driven approach to learn new patterns from examples.
For example, recent advances in 2D drawing texture creation have demonstrated that a data-driven algorithm can enable rich and nuanced expressions of possible designs~\cite{guerrero2016patex,lu2014decobrush,xing2014autocomplete}. 
Since our system exploits 2D drawing for 3D pattern creation, we expect it could be relatively easy to incorporate with these algorithms to enhance the variation of patterns.
As future work, we will extend the variation of the patterns by adopting these techniques.

\section{Discussions}

We also acknowledge that our evaluation study lacks a comparison with other state-of-the-art tools and recent research systems.
For example, tools like MeshMixer and Grasshopper also provide some form of rapid patterning functionality via menu-based commands. 
While our participants did not use these tools before, they were able to notice Tabby's comparative advantages.
They pointed out that the existing tools require them to know what commands to use and what effects to occur.
As the tool are more capable, such commands also increase and become more complex. 
However, most of these commands are simply not utilized by common users. 
For example, among the thousands of commands available in AutoCAD, typical users only utilize 31-40 of these commands~\cite{matejka2009communitycommands}.
On the other hand, they appreciate Tabby's ``situated'' interactive interface, which triggers a certain command (e.g., repeat a pattern) with an intuitive interaction (e.g., copy-and-paste) because they do not need to explicitly learn the commands beforehand.
We envision that our work is a stepping stone to redesign such command-based interface into the situated interface in the domain of 3D modeling software. 


% This is because we asked participants to use 
% We also  not compare our system with other state-of-the-art tools such as Meshmixer and recent research systems in our user study. 
% - The lack of comparison with other state-of-the-art tools 
%   - [1AC] There are many other tools that offer some form of patterning (such as Meshmixer, Grasshopper and Dynamo). Although the approach is not exactly the same as presented by the authors they all provide rapid pattering for different situations. A lack of discussion on the pros and cons of the different approaches from an interaction perspective combined with lack of examples of any patterning on a model with complex geometry limits the contribution of this paper further.
%   - [R5] These tools are far more capable than the presented interface. They are also not as easy to use, because that flexibility comes with complexity (eg visual programming). My point is not that the presented interface is not effective, but that comparisons to general-purpose CAD interfaces is not indicative of the actual state-of-the-art. Frankly, many design tools have explicit "pattern" functionality such as the Meshmixer pattern tool mentioned above. None of these tools is exactly like the one presented, but all of them provide rapid patterning in the situations they are developed for. So, making the case that patterning is "too hard" by comparing to general-purpose unconstrained 3D manipulation is misleading at best.
% To be added: 
% \begin{itemize}
% \item evaluation study does not compare with the state-of-the-art techniques such as MeshMixer because we measure the 
% \item scalability issue if the number of texture becomes over a thousand, it becomes computationally expensive 
% \end{itemize}


% Tabby has several technical limitations that require future work.
% One major limitation is that our techniques heavily rely on 2D coordinates of UV mapping. 
% If the UV coordinates do not properly parameterize in surrounding areas, the resulting texture can be distorted.
% We can investigate alternative approaches \cite{igarashi2001adaptive} to provide more robust parameterization yet fast enough for interactive systems.

9-conclusion.tex

\section{Conclusion}

We present Tabby, an interactive tool to support designing and applying 3D printable textures on an arbitrary complex surface of the existing object.
To minimize repetitive manual efforts, we adopt the \emph{auto-completion} metaphor, which automatically infers the user's demonstration and suggests the possible desired patterns.
To enable this, we develop a series of techniques which infer the user's intention, select the semantic region, and convert 2D shapes into 3D textures.
Our controlled experiment shows that Tabby enables the participants to create and modify 3D texture much faster than conventional tools, especially for complex target surfaces.

main.tex
\documentclass{sigchi}

% Use this command to override the default ACM copyright statement (e.g. for preprints).
% Consult the conference website for the camera-ready copyright statement.


%% EXAMPLE BEGIN -- HOW TO OVERRIDE THE DEFAULT COPYRIGHT STRIP -- (July 22, 2013 - Paul Baumann)
% \toappear{Permission to make digital or hard copies of all or part of this work for personal or classroom use is 	granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from permissions@acm.org. \\
% {\emph{CHI'14}}, April 26--May 1, 2014, Toronto, Canada. \\
% Copyright \copyright~2014 ACM ISBN/14/04...\$15.00. \\
% DOI string from ACM form confirmation}
%% EXAMPLE END -- HOW TO OVERRIDE THE DEFAULT COPYRIGHT STRIP -- (July 22, 2013 - Paul Baumann)


% Arabic page numbers for submission.
% Remove this line to eliminate page numbers for the camera ready copy
\pagenumbering{arabic}


% Load basic packages
\usepackage{balance}  % to better equalize the last page
\usepackage{graphics} % for EPS, load graphicx instead
\usepackage{times}    % comment if you want LaTeX's default font
\usepackage{url}      % llt: nicely formatted URLs

% llt: Define a global style for URLs, rather that the default one
\makeatletter
\def\url@leostyle{%
  \@ifundefined{selectfont}{\def\UrlFont{\sf}}{\def\UrlFont{\small\bf\ttfamily}}}
\makeatother
\urlstyle{leo}


% To make various LaTeX processors do the right thing with page size.
\def\pprw{8.5in}
\def\pprh{11in}
\special{papersize=\pprw,\pprh}
\setlength{\paperwidth}{\pprw}
\setlength{\paperheight}{\pprh}
\setlength{\pdfpagewidth}{\pprw}
\setlength{\pdfpageheight}{\pprh}

% Make sure hyperref comes last of your loaded packages,
% to give it a fighting chance of not being over-written,
% since its job is to redefine many LaTeX commands.
\usepackage[pdftex]{hyperref}
\hypersetup{
pdftitle={SIGCHI Conference Proceedings Format},
pdfauthor={LaTeX},
pdfkeywords={SIGCHI, proceedings, archival format},
bookmarksnumbered,
pdfstartview={FitH},
colorlinks,
citecolor=black,
filecolor=black,
linkcolor=black,
urlcolor=black,
breaklinks=true,
}

% create a shortcut to typeset table headings
\newcommand\tabhead[1]{\small\textbf{#1}}

%%%%%%%%%%%%% IIS Lab macros %%%%%%%%%%%%%%
% prevent hyphenation
\hyphenpenalty=10000\relax
\exhyphenpenalty=10000\relax
\sloppy

% for comments
\usepackage{color}
\definecolor{orange}{RGB}{255,127,0}
\definecolor{limegreen}{RGB}{50, 205, 50}
\definecolor{violet}{RGB}{148,0,211}
\newcommand{\xxx}{{\textcolor{red}{\bf XXX }}}

% make COMMENTS true to enable comments
\newif\ifCOMMENTS
\COMMENTStrue

\ifCOMMENTS
\newcommand{\koji}[2]{\textcolor{violet}{#1\bf{ (Koji: #2)}}}
\newcommand{\tom}[2]{\textcolor{blue}{#1\bf{ (Tom: #2)}}}
\newcommand{\ryo}[2]{\textcolor{limegreen}{#1\bf{ (Ryo: #2)}}}
\newcommand{\mdg}[2]{\textcolor{red}{#1\bf{ (Mark: #2)}}}
\else
\newcommand{\koji}[2]{#1}
\newcommand{\tom}[2]{#1}
\newcommand{\ryo}[2]{#1}
\newcommand{\mdg}[2]{#1}
\fi

\usepackage{multicol}
% Creating spanned figure space for Figure 1 in Page 1.
\usepackage{cuted}
\usepackage[font=small,labelfont=bf,tableposition=top]{caption}
%%%%%%%%%%%%% IIS Lab macros %%%%%%%%%%%%%%

% for algorithm
\usepackage{algorithm}
\usepackage{algpseudocode}

% for matrix hline
\usepackage{booktabs}

% End of preamble. Here it comes the document.
\begin{document}

\title{Autocomplete Textures for 3D Printing}
% \title{Autocompletion for Applying Texture to 3D Prints}

\numberofauthors{1}
\author{
  \alignauthor{
    Ryo Suzuki$^1$, \
    Tom Yeh$^1$, \
    Koji Yatani$^2$, \
    Mark D. Gross$^1$ \\
    \affaddr{
        $^1$University of Colorado Boulder, \
        $^2$University of Tokyo} \\
    \affaddr{%
      \{ryo.suzuki, \ tom.yeh\}@colorado.edu, \
      koji@iis-lab.org, \
      mdgross@colorado.edu
    }
  }
}
% \numberofauthors{4}
% \author{
%   \alignauthor{Ryo Suzuki\\
%     \affaddr{Computer Science}\\
%     \affaddr{University of Colorado Boulder}\\
%     \email{ryo.suzuki@colorado.edu}}\\
%   \alignauthor{Niloufar Salehi\\
%     \affaddr{Computer Science}\\
%     \affaddr{Stanford University}\\
%     \email{niloufar@stanford.edu}}\\
%   \alignauthor{Michelle S. Lam\\
%     \affaddr{Computer Science}\\
%     \affaddr{Stanford University}\\
%     \email{mlam4@stanford.edu}}\\
%   \alignauthor{Juan C. Marroquin\\
%     \affaddr{Computer Science}\\
%     \affaddr{Stanford University}\\
%     \email{msb@cs.stanford.edu}}\\
% }


% \author{%
%   \alignauthor{Ryo Suzuki$^1$, Niloufar Salehi$^2$, Michelle S. Lam$^2$,\\ Juan C. Marroquin$^2$, Michael S. Bernstein$^2$\\
%     % \affaddr{Computer Science}\\
%     \affaddr{$^1$University of Colorado Boulder, $^2$Stanford University}\\
%     \email{ryo.suzuki@colorado.edu, niloufar@cs.stanford.edu, \{mlam4, juanm95\} @stanford.edu, msb@cs.stanford.edu}}\\
% }



\teaser{
\includegraphics[width=2.1\columnwidth]{figures/cover-alt}
\caption{Examples of 3D printed texture with Tabby. (A) patterns in a lampshade, (B) grips of a bike handle, (C) scales of a gecko, (D) pattern on an iPhone case, (E) a tile of an architectural model, (F) patterns of a turtle shell, and (G) aesthetic pattern on a back of a chair. In these examples, texture patterns can improve aesthetics (e.g. A, D, G), usability (e.g. B, D), and the visual details of the model (e.g. C, E, F).}~\label{fig:cover}
}

\maketitle

\input{0-abstract}

\keywords{digital fabrication, 3D modeling, texture, auto-completion.}
\category{H.5.2}{User Interfaces}{}


\input{1-introduction}
\input{2-related-work}
\input{3-design-goals}
\input{4-interface}
\input{5-method}
\input{6-evaluation}
\input{7-applications}
\input{8-discussions}
\input{9-conclusion}


% \section{Acknowledgments}
% We thank all participants in our user study.



\balance

\bibliographystyle{acm-sigchi}
\bibliography{references}

\end{document}

main.bbl
\begin{thebibliography}{10}

\bibitem{ashby2013materials}
Ashby, M.~F., and Johnson, K.
\newblock {\em Materials and design: the art and science of material selection
  in product design}.
\newblock Butterworth-Heinemann, 2013.

\bibitem{bhat2004geometric}
Bhat, P., Ingram, S., and Turk, G.
\newblock Geometric texture synthesis by example.
\newblock In {\em Proceedings of Eurographics}, ACM (2004), 41--44.

\bibitem{brown2012viztouch}
Brown, C., and Hurst, A.
\newblock Viztouch: automatically generated tactile visualizations of
  coordinate spaces.
\newblock In {\em Proceedings of TEI}, ACM (2012), 131--138.

\bibitem{chew1989constrained}
Chew, L.~P.
\newblock Constrained delaunay triangulations.
\newblock {\em Algorithmica 4}, 1-4 (1989), 97--108.

\bibitem{dumas2015example}
Dumas, J., Lu, A., Lefebvre, S., Wu, J., M{\"u}nchen, T., Dick, C., and
  M{\"u}nchen, T.
\newblock By-example synthesis of structurally sound patterns.
\newblock {\em ACM Transactions on Graphics (TOG) 34}, 4 (2015), 137.

\bibitem{gatto1978exploring}
Gatto, J.~A., Porter, A.~W., and Selleck, J.
\newblock {\em Exploring visual design}.
\newblock Davis Publications, 1978.

\bibitem{gibson1966senses}
Gibson, J.~J.
\newblock The senses considered as perceptual systems.

\bibitem{gotzelmann2014towards}
G{\"o}tzelmann, T., and Pavkovic, A.
\newblock Towards automatically generated tactile detail maps by 3d printers
  for blind persons.
\newblock In {\em Computers Helping People with Special Needs}. Springer, 2014,
  1--7.

\bibitem{guerrero2016patex}
Guerrero, P., Bernstein, G., Li, W., and Mitra, N.~J.
\newblock Patex: exploring pattern variations.
\newblock {\em ACM Transactions on Graphics (TOG) 35}, 4 (2016), 48.

\bibitem{gulwani2011automating}
Gulwani, S.
\newblock Automating string processing in spreadsheets using input-output
  examples.
\newblock In {\em ACM SIGPLAN Notices}, vol.~46, ACM (2011), 317--330.

\bibitem{guy2014simselect}
Guy, E., Thiery, J.-M., and Boubekeur, T.
\newblock Simselect: Similarity-based selection for 3d surfaces.
\newblock In {\em Computer Graphics Forum}, vol.~33, Wiley Online Library
  (2014), 165--173.

\bibitem{heckbert1986survey}
Heckbert, P.~S.
\newblock Survey of texture mapping.
\newblock {\em Computer Graphics and Applications, IEEE 6}, 11 (1986), 56--67.

\bibitem{hudson2016understanding}
Hudson, N., Alcock, C., and Chilana, P.~K.
\newblock Understanding newcomers to 3d printing: Motivations, workflows, and
  barriers of casual makers.
\newblock In {\em Proceedings of CHI}, ACM (2016).

\bibitem{ji2006easy}
Ji, Z., Liu, L., Chen, Z., and Wang, G.
\newblock Easy mesh cutting.
\newblock In {\em Computer Graphics Forum}, vol.~25, Wiley Online Library
  (2006), 283--291.

\bibitem{kazi2014draco}
Kazi, R.~H., Chevalier, F., Grossman, T., Zhao, S., and Fitzmaurice, G.
\newblock Draco: bringing life to illustrations with kinetic textures.
\newblock In {\em Proceedings of CHI}, ACM (2014), 351--360.

\bibitem{kazi2012vignette}
Kazi, R.~H., Igarashi, T., Zhao, S., and Davis, R.
\newblock Vignette: interactive texture design and manipulation with freeform
  gestures for pen-and-ink illustration.
\newblock In {\em Proceedings of CHI}, ACM (2012), 1727--1736.

\bibitem{kreifeldt2011importance}
Kreifeldt, J., Lin, R., and Chuang, M.-C.
\newblock The importance of “feel” in product design feel, the neglected
  aesthetic “do not touch”.
\newblock In {\em Internationalization, design and global development}.
  Springer, 2011, 312--321.

\bibitem{lagae2005geometry}
Lagae, A., Dumont, O., and Dutre, P.
\newblock Geometry synthesis by example.
\newblock In {\em Shape Modeling and Applications, 2005 International
  Conference}, IEEE (2005), 174--183.

\bibitem{landreneau2010scales}
Landreneau, E., and Schaefer, S.
\newblock Scales and scale-like structures.
\newblock In {\em Computer Graphics Forum}, vol.~29, Wiley Online Library
  (2010), 1653--1660.

\bibitem{liu2008local}
Liu, L., Zhang, L., Xu, Y., Gotsman, C., and Gortler, S.~J.
\newblock A local/global approach to mesh parameterization.
\newblock In {\em Computer Graphics Forum}, vol.~27, Wiley Online Library
  (2008), 1495--1504.

\bibitem{lu2014decobrush}
Lu, J., Barnes, C., Wan, C., Asente, P., Mech, R., and Finkelstein, A.
\newblock Decobrush: Drawing structured decorative patterns by example.
\newblock {\em ACM Transactions on Graphics (TOG) 33}, 4 (2014), 90.

\bibitem{matejka2009communitycommands}
Matejka, J., Li, W., Grossman, T., and Fitzmaurice, G.
\newblock Communitycommands: command recommendations for software applications.
\newblock In {\em Proceedings of UIST}, ACM (2009), 193--202.

\bibitem{norman1986user}
Norman, D.~A., and Draper, S.~W.
\newblock User centered system design.
\newblock {\em New Perspectives on Human-Computer Interactio\/} (1986).

\bibitem{perez2015design}
P{\'e}rez, J., Thomaszewski, B., Coros, S., Bickel, B., Canabal, J.~A., Sumner,
  R., and Otaduy, M.~A.
\newblock Design and fabrication of flexible rod meshes.
\newblock {\em ACM Transactions on Graphics (TOG) 34}, 4 (2015), 138.

\bibitem{pietroni2010solid}
Pietroni, N., Cignoni, P., Otaduy, M.~A., and Scopigno, R.
\newblock Solid-texture synthesis: a survey.
\newblock {\em Computer Graphics and Applications, IEEE 30}, 4 (2010), 74--89.

\bibitem{schmidt2006interactive}
Schmidt, R., Grimm, C., and Wyvill, B.
\newblock Interactive decal compositing with discrete exponential maps.
\newblock {\em ACM Transactions on Graphics (TOG) 25}, 3 (2006), 605--613.

\bibitem{schmidt2008sketch}
Schmidt, R., and Singh, K.
\newblock Sketch-based procedural surface modeling and compositing using
  surface trees.
\newblock In {\em Computer Graphics Forum}, vol.~27, Wiley Online Library
  (2008), 321--330.

\bibitem{schmidt2010meshmixer}
Schmidt, R., and Singh, K.
\newblock Meshmixer: an interface for rapid mesh composition.
\newblock In {\em ACM SIGGRAPH 2010 Talks}, ACM (2010), 6.

\bibitem{sheffer2002seamster}
Sheffer, A., and Hart, J.~C.
\newblock Seamster: inconspicuous low-distortion texture seam layout.
\newblock In {\em Proceedings of the conference on Visualization'02}, IEEE
  Computer Society (2002), 291--298.

\bibitem{sorkine2004laplacian}
Sorkine, O., Cohen-Or, D., Lipman, Y., Alexa, M., R{\"o}ssl, C., and Seidel,
  H.-P.
\newblock Laplacian surface editing.
\newblock In {\em Proceedings of Eurographics}, ACM (2004), 175--184.

\bibitem{stangl2015transcribing}
Stangl, A., Hsu, C.-L., and Yeh, T.
\newblock Transcribing across the senses: Community efforts to create 3d
  printable accessible tactile pictures for young children with visual
  impairments.
\newblock In {\em Proceedings of ASSETS}, ACM (2015), 127--137.

\bibitem{takayama2011geobrush}
Takayama, K., Schmidt, R., Singh, K., Igarashi, T., Boubekeur, T., and Sorkine,
  O.
\newblock Geobrush: Interactive mesh geometry cloning.
\newblock In {\em Computer Graphics Forum}, vol.~30, Wiley Online Library
  (2011), 613--622.

\bibitem{torres2015hapticprint}
Torres, C., Campbell, T., Kumar, N., and Paulos, E.
\newblock Hapticprint: Designing feel aesthetics for digital fabrication.
\newblock In {\em Proceedings of UIST}, ACM (2015), 583--591.

\bibitem{wei2009state}
Wei, L.-Y., Lefebvre, S., Kwatra, V., and Turk, G.
\newblock State of the art in example-based texture synthesis.
\newblock In {\em Eurographics}, Eurographics Association (2009), 93--117.

\bibitem{xing2014autocomplete}
Xing, J., Chen, H.-T., and Wei, L.-Y.
\newblock Autocomplete painting repetitions.
\newblock {\em ACM Transactions on Graphics (TOG) 33}, 6 (2014), 172.

\bibitem{xing2015autocomplete}
Xing, J., Wei, L.-Y., Shiratori, T., and Yatani, K.
\newblock Autocomplete hand-drawn animations.
\newblock {\em ACM Transactions on Graphics (TOG) 34}, 6 (2015), 169.

\bibitem{zheng2010mesh}
Zheng, Y., and Tai, C.-L.
\newblock Mesh decomposition with cross-boundary brushes.
\newblock In {\em Computer Graphics Forum}, vol.~29, Wiley Online Library
  (2010), 527--535.

\bibitem{zheng2012dot}
Zheng, Y., Tai, C.-L., and Au, O. K.-C.
\newblock Dot scissor: a single-click interface for mesh segmentation.
\newblock {\em Visualization and Computer Graphics 18}, 8 (2012), 1304--1312.

\bibitem{zhou2006mesh}
Zhou, K., Huang, X., Wang, X., Tong, Y., Desbrun, M., Guo, B., and Shum, H.-Y.
\newblock Mesh quilting for geometric texture synthesis.
\newblock {\em ACM Transactions on Graphics (TOG) 25}, 3 (2006), 690--697.

\end{thebibliography}
