assembly. In the context of animated visualizations, researchers have shown that adding signaling cues that sequentially
highlight the steps of the causal chain improves comprehension compared to animations without such cues. 11, 14
(iii) highlight important keyframes of motions. The
motions of most parts in mechanical assemblies are periodic. However, in some of these motions, the angular or linear velocity of a part may change during a single period. For
example, the pistons in the assembly shown in Figure 8
move the cylinder up and down during a single period of
motion. To depict such complex motions, static illustrations sometimes include keyframes that show the configuration of parts at the critical instances in time when the
angular or linear velocity of a part changes. Inserting one
additional keyframe between each pair of critical instances
can help clarify how the parts move from one critical
instance to the next.
3. systeM oVeRVie W
We present an automated system for generating how-things-work visualizations that incorporate the visual
techniques described in the previous section. The input to
our system is a polygonal model of a mechanical assembly that has been partitioned into individual parts. Our
system deletes hanging edges and vertices as necessary
to make each part 2-manifold. We assume that touching
parts are modeled correctly, with no self-intersections
beyond a small tolerance. As a first step, we perform an
automated motion and interaction analysis of the model
geometry to determine the relevant motion parameters
of each part, as well as the causal chain of interactions
between parts. This step requires the user to specify the
driver part for the assembly and the direction in which the
driver moves. Using the results of the analysis, our system
allows users to generate a variety of static and animated
visualizations of the input assembly from any viewpoint.
The next two sections present our analysis and visualization algorithms in detail.
4. MotioN + iNteRaCtioN aNaLysis
We analyze the input polyhedral model of an assembly
to extract the degrees of freedom for each part, and also
to understand how the parts move and interact with one
another within the assembly. We encode the extracted information as an interaction graph G := (V, E) where, each node
ni ∈ V represents part Pi and each edge eij ∈ E represents a
mechanical interaction between two touching parts (Pi, Pj)
(see Figure 2).
In order to construct this interaction graph, we rely on
two high-level insights: first, the motion of many mechani-
cal parts is related to their geometric properties, includ-
ing self-similarity and symmetry; and second, the different
types of mechanical interactions between parts are often
characterized by the specific spatial relationships and
geometric attributes of the relevant parts. Based on these
insights, we propose a two-stage process to construct the
interaction graph:
In the part analysis stage, we analyze each individual part
to determine its type (e.g., spur gear, bevel gear, and axle)
and relevant parameters (e.g., rotation axis, side profile, and
radius) using existing shape analysis algorithms. We store the
extracted information in the corresponding nodes of graph G.
In the interaction analysis stage, we analyze each pair of
touching parts and classify the type of mechanical interaction based on their spatial relationships and part parameters. We store the information in the corresponding edges
of graph G. Our system handles a variety of part types and
interactions as shown in Figure 3.
4. 1. Part analysis
Our part analysis automatically classifies parts into the following common types: rotational gears (e.g., spur and bevel),
helical gears, translational gears (i.e., racks in spur–rack
mechanisms), axles, and fixed support structures (i.e., the
stationary parts in an assembly that support and constrain
the motions of other parts). The classifier is based on the geometric features of the parts. We rely on the user to manually
classify parts that lack distinctive geometric characteristics
such as cams, rods, cranks, pistons, levers, and belts. Figure 3
shows many of the moving parts handled by our system, and
Figures 7a and 10b–c include some fixed support structures.
We also compute part parameters that inform the subsequent interaction analysis stage that determines how motion
is transmitted across parts. For all gears and axles, we estimate the axis of rotational, helical, or translational motion.
We compute teeth count and width for rotational and translational gears, and the pitch for helical gears. For rotational
and helical gears, we also compute whether the part has a
conical (e.g., bevel) or cylindrical (e.g., spur) side profile and
its radii (e.g., inner, outer), as these properties influence the
gear can interact with other gears. Since support structures
often have housings or cutouts that constrain the rotational
motion of other parts, we compute potential axes of rotation
for these structures. Finally, we also compute potential rotation axes for user-classified cams, cranks, and levers.
To distinguish the different types of parts and estimate
their parameters, we use the following shape analysis
algorithms.
symmetry detection. We assume that all gears and axles
exhibit rotational, helical or translational symmetry and
move based on their symmetry axes. We use a variant of
the algorithm proposed by Mitra et al. 22 to detect such
figure 3. typical part types and interactions encountered in
mechanical assemblies and handled by our system. While we
automatically detect most of these configurations, we require the user
to manually classify cams, rod, cranks, pistons, levers, and belts.
cam–rod
spur–axle
piston–crank
belt–spur
lever–axle
variable speed
spur–spur
spur–rackhelical–helical
helical–spurbevel–bevel