Volume 27 (2008), Number 7

Pacific Graphics 2008
T. Igarashi, N. Max, and F. Sillion(Guest Editors)

Knitting a 3D Model
Yuki Igarashi†1 , Takeo Igarashi1,2 , and Hiromasa Suzuki1
1 The University of Tokyo, Japan
2 JST ERATO

Abstract
A knitted animal is made of a closed surface consisting of several knitted patches knitted out of yarn and stuffedwith cotton (Fig. 1). We introduce a system to create a knitting pattern from a given 3D surface model (mainly
designed for rotund animal models). A knitting pattern is an instructional diagram describing how to knit yarn toobtain a desired shape. Since the creation of knitting patterns requires special skill, this is difficult for nonprofessionals. Our system automates the process and allows anyone to obtain his or her original knitting patterns froma 3D model. The system first covers the surface of the model with parallel winding strips of constant width. The
system then samples the strip at constant intervals to convert it into a knitting pattern. The result is presented ina standard visual format so that the user can easily refer it during actual knitting. We show several examples ofknitted animals created using the system.
Categories and Subject Descriptors (according to ACM CCS): I.3.6 [Computer Graphics]: Methodology and TechniquesInteraction Techniques; I.3.5 [Computer Graphics]: Computational Geometry and Object Modeling Geometric Algorithms

1. Introduction
Computer graphics can be a powerful tool for designingphysical objects. While traditional computer-aided design
systems have been mainly used by professional users, inexpensive personal computers accompanied by recent progressin computer graphics and interaction techniques make it possible for nonprofessional users to benefit from computational
systems in their personal handicraft activities. Previous attempts to build such tools include the design of paper craft
toys [MS04, STL06] and stuffed animals [JKS05, MI07]. In
this work, we apply a similar approach to another interesting
application - that of designing knitted animals.
A knitted animal is made of a closed knitted yarn surface
that is stuffed with cotton as shown in Fig. 2 (d). Typicalknitted animals consist of several patches each of which corresponds to the body, head, arm, or leg as shown in Fig. 1.
Each patch is topologically equivalent to a disk and knitted
out a single strand of yarn forming a spiral pattern consistingof multiple rows. Each stitch in a row is usually connectedwith a stitch in the previous row and one in the next row,
† e-mail:yukim@acm.org
c 2008 The Author(s)Journal compilation c 2008 The Eurographics Association and Blackwell Publishing Ltd.
Published by Blackwell Publishing, 9600 Garsington Road, Oxford OX4 2DQ, UK and 350
Main Street, Malden, MA 02148, USA.

Figure 1: Example of a knitted animal. A typical knitted
animal consists of several circular and cylindrical patches.

forming a square cell. However, a stitch is occasionally connected with two stitches in the next row (increasing stitch)or two stitches are connected with one stitch in the next row(decreasing stitch) as shown in Fig. 3 and Fig. 4.
A knitting pattern is an instructional diagram describing
how to knit yarn to obtain the desired shape. It shows a sequence of stitches in a circular or horizontal arrangement as

Y. Igarashi et al. / Knitting a 3D Model

(a)

(b)

(c)

(d)

Figure 2: The system automatically generates stripping of a 3D model for making a knitted animal from an input triangulated
geometry. (a) Original 3D surface model; (b) a 3D virtual knitted animal model; (c) corresponding knitting pattern; (d) an
actual knitted animal.

Figure 3: Example of a knitting pattern. Left figure is acircular pattern and right one is a horizontal diagram. X isa regular stitch mark, V is an increase stitch mark, and Λ isa decrease stitch mark. We use a standard Japanese knitting
pattern format in this work.

Figure 4: Structure of knitting yarn. Increase stitches areshown in green, decrease stitches are shown in blue. Others
are normal stitches. Our current implementation assumes
purled knitting shown here, but basic algorithm should beapplicable to other methods such as plain knitting.

shown in Fig. 3. Since it is difficult for a nonprofessional todesign an original knitting pattern, we developed a system toautomate this task.
Our system takes a 3D surface model as input and produces a knitting pattern for knitting a real knitted animal.

The system first segments the surface into several disjoint
patches and then covers each patch by a winding constantwidth strip. The system then resamples the strip at constantintervals to determine the individual stitches. Finally, thesystem generates a 2D knitting pattern by spatially arranging
the stitches in the standard format. The user then can createa physical knitted animal by knitting the yarn in accordancewith the pattern. Our system also presents a preview of theresulting knitted animal by applying a physical simulation to
the model. Our current system is optimized for hand knitting
and it is our future work to test our method with automaticknitting machines.
2. Related Work
Various methods have been proposed for making physicaltoys from virtual 3D models. Mitani and Suzuki [MS04] andShatz et al. [STL06] presented methods for creating paper
craft models from 3D models, while Julius et al. [JKS05]
and Mori and Igarashi [MI06] demonstrated methods forcreating stuffed animals from 3D models. The Plushie system [MI07] combines a 3D modeling process and physics
simulation to design original stuffed animals. These systems transform a 3D surface into multiple 2D developableor quasi-developable patches. In this paper, we propose amethod to convert a 3D surface into a single 1D chain ofsmall cells for creating knitted animals. The Knitty system[IIS08] is an interactive design system for creating original
knitted animals. It takes the user’s sketching as input andgenerates a 3D knitted animal model and knitting pattern.
However, it does not provide a mechanism to convert an existing 3D model to knitting pattern.
Various geometry processing methods have some aspects
similar to our algorithm, but no existing method completely
satisfies our particular needs. Several algorithms have been
proposed to convert a 3D surface mesh into triangular strips[GE04, MS04] but they are not designed to generate strips
with constant width. Our system generates a quad mesh withc 2008 The Author(s)Journal compilation c 2008 The Eurographics Association and Blackwell Publishing Ltd.

Y. Igarashi et al. / Knitting a 3D Modela small number of triangles. However, existing methods forgenerating quad meshes [ACSD∗ 03, MK04, DKG05] were
not designed to generate quads of equal size. There is amethod that covers a surface with quadrilaterals of a uniform size [LHM06], but we also require that cells can form alinear chain. Sweep-based models [HYKJ03, YK06] or generalized cylinder [SK97] are somewhat related to our approach, but again, they are not designed to produce stripsof equal width.
Previous work on knit modeling and rendering has
mostly focused on more microscopic structure of knitted
materials. Examples of knit rendering can be found at[GRS95, SE98] and examples of knit modeling can be foundat [GH02, ZS06]. Our work focuses on more global behaviorof a knitted model and approximates each stitch with simple
planar quads.
3. Algorithm
Our system takes a 3D manifold surface as input. We currently use relatively coarse mesh (1000-3000 vertices) toachieve interactive performance on a 1.1 GHz Pentium M
PC. We assume the mesh to be reasonably well sampled;that is, the edge length is shorter than the size of a stitch.
Our system converts a 3D model into a knitted model inthe following four steps illustrated in Fig. 5,
1) Segmentation: We first manually segment the surface
into several disconnected patches. We currently do thismanually (Fig. 5 (b)).
2) Wrapping: The system covers each patch with winding
strips with equal width. This is achieved by computing
a series of iso-contours with constant intervals (Fig. 5(c)and (d)).
3) Re-sampling and meshing: For each patch, the system
places sampling points on each iso-contour at constant intervals and connects the nearby sampling points to form
a quad mesh with occasional triangles. Quads represent
a regular stitch and triangles represent increasing or decreasing stitches (Fig. 5 (e)).
4) Pattern Generation and Simulation: The system generates a knitting pattern (Fig. 5(f)) by arranging rows of
stitches. The system also runs a simple physical simulation to predict the shape of the resulting knitted animal.
(Fig. 5(g)).
3.1. Segmentation
Various automated segmentation methods have been proposed [JKS05, LA06, LCWK07]. However, a knitted partforms a characteristic shape (rotund cylinder or a circle)
and different segmentations yield very different final results.
Therefore, it is difficult to obtain desired results for our purpose using general automatic segmentation methods. In addition, since the number of patches is usually small, the segmentation process is relatively easy to perform manually,c 2008 The Author(s)Journal compilation c 2008 The Eurographics Association and Blackwell Publishing Ltd.

and it can be considered to be part of the creative authoring process. Therefore, we currently use manual segmentation and provide a simple user interface to do this in which
the user draws free-form lines on the 3D model surface toindicate the segmentation boundaries. Each patch must be
topologically equivalent to a disk or a disk with holes. The
system provides a warning if a patch has any other topology
such as a sphere or torus. We plan to incorporate some automated method to assist in this manual segmentation process
in the future.

3.2. Wrapping
The system first makes each patch topologically equivalent
to a disk by filling the holes. That is, for a patch that has
holes in it like the body of the bear, the user actually knitsa "bowl" (Fig. 6). In our current implementation, the system
identifies the longest boundary of a patch as the outer boundary and fills the inside of the remaining inner boundaries.
Hole-filling is done by placing a new vertex at the centerand connecting the center vertex with the boundary vertices.
The system then covers the patch by a series of isocontours at constant intervals, starting with the outer boundary and proceeding inwards one by one. The computation
works as follows (Fig. 7). The system first computes a distance field around the previous iso-contour and traces an isocontour in which the value of the filed equals the desiredinterval. We use simple Euclidian distance in the 3D space
here, not geodesic distance on the surface, because neighboring iso-contours are connected by stitches that can bewell approximate by straight lines (not curves) in the final
knitted model. We use a method similar to marching cubes(marching triangles) to obtain an explicit representation of acontour [LH87]. Specifically, the system computes the distance, d, from each mesh vertex to the previous iso-contour
and checks whether d is smaller or greater than the fixed interval, d0 . Then, the system visits each mesh face and places
a fragment of the new iso-contour on it if the face contains
both vertices with d > d0 and vertices with d < d0 . The new
iso-contour is obtained by connecting all these fragments.
An iso-contour can be divided into multiple closed loops
when the surface is branching (Fig. 8 a). In this case, the system chooses the largest loop as the next contour and continues the process. The other loops are closed at that point andno more iso-contours are generated inside of them (in thiscase, the artifact will be visible in the final result, prompting
the user to specify an additional segmentation). At the end of
this creating iso-contours process, the system creates a medial axis inside the last contour (Fig. 8 b). When the axis issufficiently short, the system creates a vertex at the center ofthe last contour (Fig. 8 c).

Y. Igarashi et al. / Knitting a 3D Model(a) initial 3D surface model(e) meshing(b) segmentation(c) calculation of iso-contours(d) resampling of the iso-contours(f) simulation and pattern generation

Figure 5: System overview. (a) input of the 3D manifold surface mesh; (b) manual segmentation; (c) calculation of iso-contours;(d) wrapping strips along with the iso-counters; (e) resampling vertices given the iso-counters and meshing; (f) construction ofknitted animal model and corresponding knitting pattern.

(a)Figure 6: Finding the seed boundary line. If the target patch
has one boundary, the system chooses it as the seed boundary (upper). If the target patch has many boundaries, thesystem chooses the longest boundary as the seed boundary(lower).

(b)

(d)

(c)

(e)

Figure 7: Wrapping algorithm. (a) previous contour; (b)calculation of a distance field; (c) tracing the next contour;(d) the next contour; (e) calculation of the next distance field.

3.3. Resampling and Meshing
In this step, the system first places sampling points alongeach iso-contour at constant intervals as shown in Fig. 9(a).
The interval used is identical to the interval between isocontours. The system then connects nearby sampling points
on adjacent contours to create a mesh. The detail of making
a mesh between two adjacent contours is as follows.
The system first visits each vertex of the first contour andconnects the vertex to the closest vertex on the second contour as shown in Fig. 9(b). The system then visits each vertexof the second contour and connects it to the closest vertex
on the first contour as shown in Fig. 9(c). We simply take aunion of these edges to create the final mesh and this guarantees that all vertices will be connected to at least one vertexof the other contour as shown in Fig. 9(d). We observed that
this simple method produces an ideal mesh for our purposein which only a few vertices in a row are connected to a vertex in an adjacent contour. Exception is the end points. They
are connected to around five to eight vertices.
c 2008 The Author(s)Journal compilation c 2008 The Eurographics Association and Blackwell Publishing Ltd.

Y. Igarashi et al. / Knitting a 3D Modelcreasing, and decreasing) as shown in Fig. 3. Knitting typically starts with a single center and proceeds outward, creating a circular pattern around it. Since our algorithm starts
with an open boundary and proceeds inward the system
places the rows in the reverse order when creating the knitting pattern.
(a)

(b)

(c)

Figure 8: An example of branching iso-contours.

The final shape of the knitted animal is different from theoriginal 3D model because it is determined by the physical interaction between the knitted skin and cotton stuffing.
Therefore, our system runs a physical simulation so that theuser can check the shape of final result before actually starting to knit (Fig. 5(f)). We used the simple static method introduced in Plushie [MI07] for an interactive simulation ona standard PC. This simple method gives reasonable results
sufficient for our purpose. However, the result still shows
many visible artifacts (Fig. 12) and we plan to test more sophisticated methods in the future.
4. Results

Figure 9: Construction of a mesh between iso-contours.

3.4. Rendering and Simulation
The resulting mesh consists of many quads and occasional
triangles with nearly identical sizes. Quads represent regular stitches and triangles denote increasing or decreasing
stitches. The system visualizes these stitches by assigning
the appropriate stitch texture pattern to each cell as shown in
Fig. 10.

Fig. 2(c) and Fig. 11 show actual knitted animals createdusing our system. The user can color the 3D model usinga paint tool and the system automatically updates the colorof the corresponding stitches on the knitting pattern. In theactual knitting process, the user changes the color of yarn
referring the colored knitting pattern (Fig. 12). The system
automatically marks the current knitting position on the knitting pattern column when the user pushes the up and down
keys. Clicking the right mouse button on the knitting patternalso shows the user how to knit the particular stitch. The system also indicates the total knitting time and total length ofyarn required to produce the model. Table 1 provides timing
data for several different animals.

Figure 10: The system visualizes the stitches by assigning
the appropriate stitch texture pattern to each cell.
Each row forms a closed loop of connected stitches, but
it is necessary to specify a point to start knitting each row
to arrange the stitches in a 2D knitting pattern. This pointis also used to cut the closed loop open to generate a 2D
knitting pattern. The system does this by selecting a random
starting point on the first iso-contour and tracing the nearest
vertex on the consecutive contours.
Several conventions (stitch marks) exist for describing
knitting patterns such as circular and horizontal diagrams,
but we choose to use a simple representation showing thenumber of consecutive stitches of each type (regular, inc 2008 The Author(s)Journal compilation c 2008 The Eurographics Association and Blackwell Publishing Ltd.

Figure 11: Actual knitted animals using our system.

5. Limitation
The models generated by our algorithm can represent subtle
concavity and convexity of surface in the direction perpendicular to rows using decrease and increase stitches as shownY. Igarashi et al. / Knitting a 3D Model

Table 1: Timing data. (RAM1.5GB, 1.1 GHz Pentium M.)
Model
House
Bunny
Teddy
TeapotCow#vertex
527
1039
1990
527
787

#patch969412Segmentation
0.10 sec
0.12 sec
0.23 sec
0.09 sec
0.06 sec

Wrapping
5.22 sec
13.91 sec
7.76 sec
2.39 sec
6.11 sec

Meshing
0.42 sec
0.60 sec
0.44 sec
0.37 sec
0.45 sec

Simulation
15.43 sec
22.95 sec
6.71 sec
6.42 sec
17.01 secis achieved by iteratively computing iso-contours at constantintervals starting from a boundary and moving inward. The
system then samples the strip at constant intervals to convert
it into a series of stitches. The final knitting pattern is presented in a standard format so that the user can easily refer
to it during actual knitting.

Figure 12: Coloring example. The colors painted on themodel surface are also shown in the knitting pattern.

This work demonstrates the effectiveness of designingphysical objects by taking into account the material’s physical property into account in the construction process. In the
future, we would like to apply this approach to other physical objects such as leather crafts and rattan furniture.

in Fig. 13. However, it can not represent concavity and convexity in a direction parallel to rows because each row forms
a circle. In the actual knitting process, professional users canrepresent desired concavity by pulling the surface using knit
yarn inside of the body.

References

The quality of the current results is by no means perfectyet. Resulting models are often very different from handdesigned knitted animals. Knitting pattern should be moreregular, having irregular stitches (increase and decrease)
only near the patch borders. We need to incorporate a number of additional heuristics to solve these problems, which
we plan to address in the future.

[DKG05] D ONG S., K IRCHER S., G ARLAND M.: Harmonic functions for quadrilateral remeshing of arbitrary
manifolds. Computer Aided Geometry Design, Special
Issue on Geometry Processing 22, 5 (2005), 392–423.

[ACSD∗ 03] A LLIEZ P., C OHEN -S TEINER D., D EVILLERS O., L EVY B., D ESBRUN M.: Anisotropic polygonal remeshing. ACM Transactions on Graphics (In Proceedings of SIGGRAPH 2003) 22, 3 (2003), 485–493.

[GE04] G OPI M., E PPSTEIN D.: Single-strip triangulation of manifolds with arbitrary topology. Computer
Graphics Forum (EUROGRAPHICS) 23, 3 (2004).
[GH02] G OKTEPE O., H ARLOCK S.: Three-dimensional
computer modeling of warp knitted structures. Textile Research Journal 72, 3 (2002), 266–272.
[GRS95] G ROELLER E., R AU R., S TRASSER W.: Modeling and visualization of knitwear. IEEE Transactions on
Visualization and Computer Graphics 1, 4 (1995), 302–
310.

Figure 13: Example of local feature. Left shows a dent of
ear of bunny. Right shows a forefoot of cow without stuffing
cotton.

6. Conclusion
We presented an automatic method for producing knitting
patterns from a 3D model. Our system first covers the surface of the model with winding strips of constant width. This[HYKJ03] H YUN D. E., YOON S. H., K IM M. S., J UTTLER B.: Modeling and deformation of arms and legs
based on ellipsoidal sweeping. In 11th Pacific Conference
on Computer Graphics and Applications (PG’03) (2003).
[IIS08] I GARASHI Y., I GARASHI T., S UZUKI H.: Knitty:
3d modeling of knitted animals with a production assistantinterface. In Eurographics 2008 Annex to the Conference
Proceedings (2008), pp. 187–190.
[JKS05] J ULIUS D., K RAEVOY V., S HEFFER A.: Dcharts: quasi developable mesh segmentation. Computerc 2008 The Author(s)Journal compilation c 2008 The Eurographics Association and Blackwell Publishing Ltd.

Y. Igarashi et al. / Knitting a 3D Model

Graphics Forum (Proceedings of Eurographics 2005) 24,
3 (2005), 981–990.
[LA06] L IEN J. M., A MATO N. M.: Approximate convex decomposition of polyhedra. Technical Report TR062002, Texas A M University (2006).
[LCWK07] L U L., C HOI Y. K., WANG W., K IM M. S.:
Variational 3d shape segmentation for bounding volume
computation. Computer Graphics Forum 26, 3 (2007),
329–338.
[LH87] L ORENSEN W., H ARVEY C. E.: Marching cubes:
A high resolution 3d surface construction algorithm.
Computer Graphics (SIGGRAPH 87 Proceedings) 21, 4(1987), 163–170.
[LHM06] L AI Y. K., H U S. M., M ARTIN R. R.: Surface
mosaics. The Visual Computer 22, 9-11 (2006), 604–611.
[MI06] M ORI Y., I GARASHI T.: Pillow: Interactive pattern design for stuffed animals. In DVD publication at
SIGGRAPH 2006 Sketches (2006).
[MI07] M ORI Y., I GARASHI T.: Plushie: An interactive pattern design for plush toys. ACM Transactions on
Graphics (ACM SIGGRAPH 2007) 23, 3 (2007), Article
No.45.
[MK04] M ARINOV M., KOBBELT L.: Direct anisotropic
quad-dominant remeshing. In Proceedings of Computer
Graphics and Applications (PG ’04) (2004), pp. 207–216.
[MS04] M ITANI J., S UZUKI H.: Making papercraft toys
from meshes using strip-based approximate unfolding.
ACM Transactions on Graphics (Proceedings of SIGGRAPH 2004) 23, 3 (2004), 259–263.
[SE98] S TRASSER W., E BERHARDT B.: Representationof knit fabrics. In SIGGRAPH Course Notes: Cloth andClothing in Computer Graphics (1998), pp. F–1–18.
[SK97] S HAFF E. B., K UIJLAARS A. B. J.: Distributing
many points on a sphere. In Springer-verlag new york 19,
1 (1997).
[STL06] S HATZ I., TAL A., L EIFMAN G.: Paper craftmodels from meshes. The Visual Computer: International
Journal of Computer Graphics (Proceedings of PacificGraphics 2006) 22, 9 (2006), 825–834.
[YK06] YOON S. H., K IM M. S.: Sweep-based freeform
deformations. Computer Graphics Forum (Proceedingsof Eurographics 06) 25, 3 (2006), 487–496.
[ZS06] Z AHARIEVA -S TOYANOVA E.:
Algorithm forcomputer aided design curve shape form generation ofknitting patterns. In 2006 IEEE International Conference
on Automation, Quality and Testing, Robotics (2006),
pp. 327–331.

c 2008 The Author(s)Journal compilation c 2008 The Eurographics Association and Blackwell Publishing Ltd.