Figure 17. (a) Creation of a part. the system projects the input stroke
to a working plane and cuts the base mesh with either an elliptic
curve or a line (b). the 3D geometry is constructed by creating a
mesh between the projected stroke and the base curves (c).
Creation of a Part: The system first projects the two endpoints of the input stroke onto the base model surface.
A plane that passes through these 3D points and is facing
toward the screen is constructed and the input stroke is
projected onto it. The system then draws an ellipse on the
model surface for constructing a fat part and draws a line for
creating a thin part (Figure 17). The ellipse or the line (what
we call base curves) is also projected to the plane. The system generates a 2D mesh on the projection plane in the area
enclosed by the projected input stroke and the projected
base curve. The 2D mesh is duplicated and serves as 2D pattern and as the initial 3D geometry for the added part. As in
the initial model creation case, the flat two-sided 3D mesh is
inflated by physical simulation. The silhouette of the added
part gradually shrinks and the system enlarges the 2D pattern so that the silhouette matches the input stroke as in
In case of a part with an elliptic base curve, the system
cuts open the base surface and stitches it with the newly created mesh. The result is a single connected mesh, and physical simulation is applied uniformly to the entire mesh. On
the other hand, the system does not open the base mesh
in case of the linear base curve. The new part is created as
an independent closed mesh and the simulation is applied
separately to the base mesh and the new part. The base
mesh inflates independently of the part mesh, and the base
curve is treated as a positional constraint in the simulation
of the part mesh (we simply do not move these vertices in
the simulation cycle).
Pull: The pull operation is a bit involved because the system cannot directly modify the 3D mesh and must do so
indirectly by deforming the corresponding 2D pattern. As
the user starts pulling a vertex on a seam line, the system
first constructs a projection plane that passes through
the seam line (Figure 18). The mouse cursor position on
the screen is projected onto the projection plane, and it is
used as a target position for the pulled vertex during subsequent dragging. The system computes the displacement di
in the local coordinate frame on the projected plane from
86 CommuniCationS oF thE aCm | DeCeMBeR 2009 | vOL. 52 | NO. 12
Figure 18. Pulling a vertex on a seam line.
the original position vi to the target position hi, and moves
the corresponding vertices ui0 and ui1 in the 2D mesh in
their local coordinate frames by that amount di. These 3D
and 2D coordinate frames are defined by the pulled vertex’s normal vector and the direction of the seam line. The
system iterates this displacement process with physical
simulation until it converges. To achieve a smooth deformation, the system also moves the surrounding vertices
in the 2D mesh using the curve manipulation method
introduced in Igarashi et al.
12 It enlarges the region to be
deformed proportional to the displacement of the pulled
insertion and Deletion of Seam lines: Insertion of a new
seam line is straightforward. The system simply cuts the
patch along the added seam line, and basically does not
change the result of simulation. Deletion is more complicated because the merged patch is not necessarily developable. The system applies an approximate flattening
operation23 to the merged 3D surface to obtain the geometry
of the new 2D patch.
Plushie is implemented as a Java™ program. Construction
of 2D patterns and a physical simulation run in real-time
on a 1.1GHz Pentium M PC. We designed a couple of
plush toys using our system and created a real toy based
on the printed pattern. A modeling session typically takes
10–20 min and sewing takes 3–5 h. Figure 19 shows a plush
toy and balloon model designed in our system. It shows
that the physical simulation successfully captures the overall shape of the real objects. We interviewed with professional balloon designers and they supported our system,
saying that it can significantly reduce the time necessary
for designing original balloon.
The user can assign different textures to individual
patches (Figure 20). Therefore the user can explore various
design possibilities before actuary sewing the real fabric
(such as Figure 20 right). These models also demonstrate
the effectiveness of thin parts.
We ran four small workshops to test the usability of the
system and found that novice users, mainly children, can
successfully create original plush toys using our system.
Here is an observation from one of these workshops. Nine