a general mechanics model for systems of ... - Semantic Scholar

2 downloads 0 Views 153KB Size Report
sify all existing phenomena like so, and insert them into a graph, we could simply extract all the bot- tom nodes (provided the number of phenomena is finite) ...
A GENERAL MECHANICS MODEL FOR SYSTEMS OF DEFORMABLE SOLIDS Johan Jansson Joris S. M. Vergeest Faculty of Design, Engineering and Production Delft University of Technology The Netherlands

ABSTRACT

limitations that exist are those of the model itself, accuracy, calculation time, consistency etc.

This paper describes a general mechanics model for solids, incorporating behavior such as motion, collision, deformation etc. The model is based on inter-atomic interaction, and can be viewed as a mass-spring model. We begin by surveying existing models, and discuss shortcomings and limitations. We then proceed with describing a theoretical base for our model, as well as some pragmatic additions. An application in the field of shape modeling of b-rep geometry (polygonal in this case) is presented, based on creating processing machines or tools which work purely through the model. The model is aimed at conceptual rapid prototyping, or similar areas where generality and simplicity are more important than metric correctness.

Unfortunately there exists no such model, not even theoretically. However, it’s a worthwile goal to strive for, and even if full generality is not achieved, a partial model can still be used for the same purposes, but only within the scope it covers. Modeling a phenomenon can be done in two ways. It can either be done directly, or by finding other lower order phenomena which govern it, and thus model it implicitly. If we could somehow classify all existing phenomena like so, and insert them into a graph, we could simply extract all the bottom nodes (provided the number of phenomena is finite), and thus create a truly general model. More realistically, we can extract phenomena of the lowest possible order we can find, and build a partial model, which is as general as we can manage.

KEYWORDS

This paper will, in the spirit of generality, try to describe the theory and implementation of a mechanmechanics model, deformation, collision, mass- ics model for solids. spring, shape modeling

2.

STATE OF THE ART

1. INTRODUCTION There have been numerous attempts to produce general mechanics models for solids. They can be separated into two main branches: variations on the textbook treatment of rigid body systems, and models where bodies are comprised of a discrete number of elements, whose interactions give rise to the behavior of the whole body. The latter Since the exact state of the model is known at all can further be subdivided into two branches: Finite times, extracting information is trivial, manipulatElement Method (FEM) based models, and massing slightly harder. In the real world, there are limspring models. itations of machinery and materials, both physical and economic, and (physical) laws which must be While the rigid body model performs very well for obeyed. In the model, there exists no such limita- certain applications (Horv´ath, et. al., 1998), it can, tions, and laws can be broken, as long as the con- by definition, not handle deformation. There also sequences are taken into consideration. The only exists problems with treating prolonged collision, A truly general physical model is the holy grail of physics research. Such a model, calibrated to match real-world measurements, essentially obsoletes the real world. Anything which can be done in reality, can also be done in the model.

for which heuristics must be applied (Keller, et. al., 1993). At least one attempt has been made to augment a rigid body model with a special module for deformable body collision (Baraff, Witkin, 1992). It applies a two-phase model, where the first phase prevents inter-penetration, and the second phase calculates contact forces. Deformations are constrained to what can be represented by a global deformation function, which avoids the problem of calculating impulse propagation. It is not clear however, how general this approach is. The authors also state that allowing complex deformation functions will lead to a heavy computational burden.

most likely affect rotational motion, which in turn may deform an object. A collision will affect both rotational and translational motion, as well as give rise to deformation. Fracturing also presents difficulties to the representation of objects, as it can make objects disjoint. We can instead try to break down the phenomena, and see what actually governs them. Translational motion seems atomic, and we can treat it using Newton’s three laws. Rotational motion however, is just a special case of translational motion. To see this, we have to cast away the common representation of objects as large, clearly defined shapes, and look at a more basic level. We can represent all matter as tiny objects, atoms if you will, which can interact with one another through some sort of bond forces. If we now look at a lone such object as part of a large rotating aggregate, we see that it is simply pushed and pulled by adjacent objects to follow such a rotational path.

3.

PHYSICAL MODEL

Attractive

Another well-established model is the mass-spring model (Provot, 1995), (Chen, et. al., 1998). It describes bodies as sets of point-masses, and the materialistic properties as a graph of springs over these sets. While the model is very useful for describing deformation of a single body, it does not cover collision at all, since there exists no concept of volume. Computationally, it can give rise to stiff In fact, we can describe all the phenomena through differential equations, for very stiff springs for exsuch a representation. An object on the surface of ample, which requires finer time discretization, and one aggregate colliding with another will be pushed thus more computation. or pulled by other objects on the surface of the Finally, there exists many models based on the other aggregate. Similarly, adjacent objects inside FEM. The FEM does not particularly have any- an aggregate can push and pull one another, and thing to do with the mechanics of solids, but is thus give rise to deformation. In the extreme case, a method for solving energy problems (Grandin, they will reach a critical distance, and break away 1986), (Hunter, Pullan, 1997). It is based on an from one another completely, and the aggregate assumption of energy minimization in a system. To will fracture. describe the behavior of a solid body for example, Though we cannot fully describe such micromethe internal strain energy is minimized, which prochanics, we can make approximations based on duces the equilibrum state of the body. While this what we know about interatomic forces. We know may be a very useful approach for calculating stress that the force between two atoms is essentially lintolerance, and similar properties, it does not corear for small distances, and negligible for large disrectly describe the motion of a body. Much of the tances (See figure 1) (Kleppner, Kolenkow, 1978). elastic interaction between bodies consists of oscilF latory behavior, which is bypassed by the energy minimization.

3.1.

Theoretical Model

Repulsive

0

d

In solid mechanics, there are three main phenomena which can be observed: motion (translational, rotational), collision and deformation (bending, Figure 1: Sketch of the atomic bond force function compression, fracturing). While it’s possible to treat these separately, it’s quite difficult. Several phenomena are inter-dependent; a deformation will We define a “connection” as something that is able

to transmit forces between two atoms, and also maintain some state in itself. We can now use this to model the atomic bond force, by creating such a connection between two atoms when they come into a certain distance from one another, and then destroy it when they move too far away. This has the advantage over a global force function, in that it allows us to define a force with unique parameters between two specific atoms. While we could also choose a specific force function for each connection, we restrict ourselves to linear forces for now.

will behave similarly to an aggregate comprised of many small objects, with the same shape. We define our aggregate as a homogenous spherical shape comprised of many atoms. We now need to show that the interaction between two such aggregates is isomorphic to the interaction between two atoms. Since we don’t know the exact nature of the bond forces, and our approximation is not very friendly to mathematical treatment, it’s difficult to make an analytical proof. We can instead reason approximatively.

We have to note however, that while the real force We need to show two things: presumably is conservative, our model of the force is nonconservative for certain situations. If we collide two atoms, and they later break apart, the sys- 1. That inter-aggregate bond forces do not affect the tem will have lost energy if the “cutoff distance” total angular momentum of a particular aggregate, for the connection between them was greater than with regard to its center of mass. the “intersection distance”. For all other situations 2. That the total normal bond force between two however, the force is conservative. such aggregates is linear with regard to the distance We define the bond force a connection exerts on an between the centers. atom, oriented toward the center of the connection, as: While the aggregates consist of a discrete number of atoms, we can idealize them, and assume that Fc = ,k(d , l) (1) any plane cutting through the geometrical center of an aggregate will divide it symmetrically. Since the d actual distance center of mass and geometry is the same for a homogenous sphere, we have a completely symmetrik Hooke constant cal distribution of atoms about such a plane.

l

nominal distance

We now examine the interaction between two such aggregates. We place a plane through the center of We can also define any number of global forces both aggregates, thus forming a valid plane of symwhich are valid for atoms, i.e. gravity, electrostaticmetry for both systems. We can see that for every ity, electromagnetism, etc. pair of atoms, where the two atoms are picked from For now, we restrict ourselves to gravity: different aggregates, there is a corresponding pair on the other side of the plane of symmetry which m 1 m2 Fg = G r2 (2) will balance the torque caused by the bond force. Thus, the net torque is zero, and the net change of angular momentum is zero.

G gravitational constant m1 ; m2 masses

To reason about the linearity of the normal bond force, we again idealize the aggregates. We assume they together form an orthonormal lattice, r distance shaped as two contiguous spheres (See figure 2). We assume every atom is connected to neighboring We can now proceed to build solids by connecting atoms, and that no new connections will be formed, atoms in various formations. However, while such and no connections will be destroyed. a model might relatively accurately describe solids, it’s not very practical to have to track every single Due to symmetry, all force components orthogonal atom. We need a way to aggregate many atoms, to the line connecting the centers of the aggregates so that we can treat them as a single unit. Intu- balance out, and since they don’t contribute to the itively, an aggregate comprised of few large objects normal force, can be disregarded. The components

A

connection

c

f l; k; t; o1 ; o2 g.

is

a

set

of

parameters

k Hooke spring constant l nominal distance o1 ; o2 objects comprising the connection t tolerance force

Figure 2: Two “low resolution” spherical aggregates

While objects can be connected from the start, connections will also be created and destroyed dynamically during collisions. Thus, we need a way to control the constants of these connections. We can add the k and t parameters to the object primitive as well, and use it when a new connection is created. Exactly how the constants for the new spring should be calculated remains to be determined. Presumably, the radii of the colliding objects should also be taken into consideration. For now however, we simply average the constants for the new connection.

along the line (i.e. the contributors to the normal force) can be regarded as several layers of parallel springs, connected serially. As neither parallel nor serial configuration of springs remove the linear property, the total normal force must also be With this basic model that we now have, we can linear. construct arbitrarily shaped solids, in arbitrary iniWe define such a big aggregate as an “object”, and tial states, and simulate the behavior. We will see a bond as a “connection”. We also need to intro- however, that such systems do not behave very duce several parameters which control the behav- well. In reality, most actions and interactions inside ior of these two primitives. While the original dis- and between solids involve nonconservative procussion mentioned a “cutoff distance”, we will in- cesses which damp the motion of such systems. As stead define a “tolerance force”, at where the con- no such processes exist within our model, the sysnection will be destroyed, since it’s more intuitive. tems will simply oscillate eternally, or more probaFor most practical purposes, the two concepts are bly, if solved numerically, oscillate divergently and interchangeable, as the force is a function of the “explode”. distance. We will also replace the “intersection distance” with a radius for each object. When two Therefore, we need to identify, and find a way to radii intersect, a connection will be created with an incorporate such processes into our model. Unforintersection distance of the the sum of the two radii. tunately, such processes are not as simple as what we have seen so far, and need more heuristic and approximative methods. Definition

3.2. Pragmatic Model

Object:

o is f ~p; ~v; m; r; C g. An

object

a

set

of

parameters

C set of connections connected to the object m mass p~ position r radius ~v velocity Connection:

There are three easily identifiable nonconservative processes we can observe: internal damping (compress and release a foam ball), sliding friction (run and fall down) and ambient viscous friction (throw a foam ball into the air). However, there does not exist any simple general models for these processes, the models that exist are only based on very special cases. Regardless, as long as they convey a reasonable approximation of the process, they’re useful.

Internal Damping We damp the linear bond Inelastic Collision, “Stickiness” If we rememforce with viscous friction, oriented along the elon- ber the force tolerance parameter of the connection, gation velocity vector: we can now actually use it to pragmatically model various phenomena. We have already added dampFd = ,b k~ek (3) ing to the bond force, so we’ve theoretically already modeled inelastic collision. However, some b damping constant very inelastic collision situations actually fuse the participants together, the classic example being ~e elongation velocity putting clumps of clay on the ends of two riders on an air rail. Regardless how much we damp the Sliding Friction We use the standard sliding fric- bond force, damping by itself cannot model such a tion model, oriented along the velocity vector com- phenomenon, since a connection created as the reponent normal to the normal force vector: sult of a collision will be repulsive. Such a fusing essentially means an additional force is required to Ff = ,kN~ k (4) separate the participants. We can thus use our force tolerance constant directly. ~

N normal force  friction constant

We now need to extend our definitions with new parameters to control the new forces. Similarly to how we treated the Hooke spring constant k , and force tolerance constant t, and shared them between both the object and connection defininition, we will share the damping and friction constants as well.

We must observe that this friction model is defined for the interaction of two surfaces, while our model does not have a concept of a surface, or, a surface could be defined as the boundary of an object. The friction model can be characterized as a “macroscopic” model, it is a simple model for a complex interaction, while we have so far tried to create a Definition (revised) “microscopic” model, where the complexity arises from the combination of many simple interactions. Object: Thus, this friction model is not entirely compati- An object o is a set of parameters ble. However, if we simply disregard the theoret- f p~; ~v ; m; r; k; t; d; u; C g. ical implications, and only use it as a way of not having to define explicit surfaces, it can be made to C set of connections connected to the object work surprisingly well. We cannot avoid the con- d damping constant cept of a surface completely however. We need to m mass distinguish between internal and boundary objects, p~ position or we will end up with internal friction, which is r radius erroneous behavior.

~v

velocity

While the empirically found friction constants are t tolerance force only valid for interaction between two specific materials, we simplify this a bit, and define a friction  friction constant constant for every object. When two objects interConnection: act, we average the constants for the friction force A connection c between the objects.

is

f l; k; t; b; u; o1; o2 g.

Ambient Viscous Friction We use the model for fluid resistance at high speed, oriented along the velocity vector:

Fv = ,ro2kv~o k2 

medium density

(5)

a

set

of

b damping constant k Hooke spring constant l nominal distance o1 ; o2 objects comprising the connection t tolerance force  friction constant

parameters

Our bond force definition for a connection c on an We can define the force on a single object object o is thus now, sans orientation information system: for the components:

Fo = ,kc(d , lc ) , bc k~ek , uc kN~ k N~ normal force bc damping constant d actual distance ~e elongation velocity kc Hooke spring constant lc nominal distance c

friction constant

F~o = F~C + F~G + F~L

F~C F~G F~L

o in the (6)

the sum of all the connection forces the sum of all global forces

the sum of all “local” forces, i.e. forces depending only on the state of the object itself

We then use Newton’s second law, F = mp00 , to produce a system of second-order ordinary differential equations:

p~o

00

=

F~o mo

(7)

d; ~e; N~ , and the various orientations of the com-

As we only know how to solve first-order ordinary ponents are defined by the positions and velocities differential equations (ODEs), we need to transof the objects making up the connection. This form form this into a system of only such equations. We has been chosen for clarity. We will define Fo more define two new vector functions: formally when we solve systems defined within this g1 = p~o (8) model. Although we may be able to relatively correctly de0 scribe real materials with this model, there exists no g2 = p~o mapping to use when transfering a real such material into the model. Thus, we are currently limited We now have a new system: to inventing our own materials, and hoping they match some real counterpart. This is a field which g10 = g2 needs more research.

(9)

(10)

~

We are now satisfied with the components of the g 0 = Fo (11) 2 mo model. We can reasonably correctly simulate most phenomena observed in systems of solids. We will now proceed to show how we can numerically Thus, solving (11) produces g2 , which we can use in (10) to produce g1 , which is equal to p~o , the sosolve such systems defined within this model. lution to (7).

3.3.

We can now solve this system using our preferred

Mathematical Model and Numerinumerical method. We have to keep in mind that cal Solution

mathematical treatment may encounter difficulties however, due to the nature of the bond forces, so we want to keep that to a minimum. As a start we choose Euler’s method, as it’s very simple and requires barely any treatment at all. Neverthless, it’s practically usable, so even if we never manage to apply any other methods, we can still create a practical implementation.

Though the nature of the bond forces in the physical model may provide for difficulties in mathematical treatment, the mathematical formulation for the entire system is actually quite simple. As all forces are central (except the friction force, which we have defined as an exception), we can disregard rotational dynamics, and treat the objects as pointmasses. Thus, all we have is a particle system with The required stepsize is dependent on a number of forces depending on the location and velocities of factors. We are not so much interested in correctthe particles. ness as in stability. We can reason that the Euler

method (as well as most other numerical methods) works by sampling the state of the system, and then extrapolating current state to produce the next state. Since the extrapolation necessarily will miss important events in our system, such as a collision, we can see that we at least must sample often enough to not extrapolate over such events. This means that the step size is dependent on the velocity, position and radius of the objects in the system. Since our method is not adaptive, we must choose a stepsize in advance, which will correctly handle the most extreme event in the simulated sequence. Step size will also be dependent on the stiffness of our connections. This is however related to the previous attributes (velocity, etc.), as a connection only can provide an acceleration.

F~f

friction force

To simplify notation, we define the subscript o as we have done before, and a new subscript p as the opposite object in the connection. We iterate over the connection set C of the object:

F~b =

XC ,kc kp~o , p~pk , lc

j

oj

i=0

(

)

p~o , p~p kp~o , p~pk

We define the relative velocity of the two objects in the connections as two components, one parallel to the connection, and one orthogonal: (

v~o , v~p)  (p~o , p~p) (p~ , p~ ) o p

As we are required to specify an initial state for v~k = kp~o , p~pk2 the physical system, we have all the information we need to start the Euler iteration. All we now need to do is to define F~o formally. We define O as v~? = (v~o , v~p ) , v~k the set of all objects in the system. The subscript o refers to the object we are calculating the force on. Then: We also define an informal order in the set so we jCo j can iterate through it. We define each component ~ separately: Fd = ,bc(v~k )

X i=0

Local Forces only force)

o

F~G =

XO G j

j

i=0

(16)

(17)

(18)

(ambient viscous friction is the The sum of these two forces could be called “contact force” in certain contexts. They form the normal force in the friction definition,

F~L = ,ro 2 kv~o k2 kvv~~o k Global Forces

(15)

(12)

(gravitation is the only force)

momi p~o , p~i kp~o , p~ik2 kp~o , p~ik

F~N = F~b + F~d

(19)

We can now define the friction force: (13)

F~f =

XC ,ucF~N v~

j

oj

?

i=0

kv~ k

(20)

?

Connection Forces As the friction force depends on the other components of the bond force (which 4. APPLICATIONS define the normal force of the friction equation), we need to further subdivide the bond force. For 4.1. General clarity, we simply use the logical components we have already defined: There exists many applications for a system such as described. It can be used as a simulator for various ~ F~C = F~b + F~d + Ff (14) purposes; as a laboratory in an educational environment (to experiment with rotational phenomena for instance), as a laboratory in industrial environF~b original bond force definition ments (to predict and test certain behaviors), as a F~d damping force virtual environment, providing realistic interaction

with the environment (for training and testing artificial intelligences perhaps, or simply as a realistic environment for humans) etc. It can also be used as a tool, to create realistic motion paths (for animation), realistic deformations etc. What we will focus on is using it for such deformations, as a shape modeling tool.

4.2.

Gram-Schmidt method for example). We can now express our point in this new space, as p~0 .

When we at some later time t want to extract the dislocated position of p~, p~t we orthogonalize the new basis, multiply by p~0 , and add o~t . I.e. what we are doing is keeping ~p fixed, and transforming its basis and origo.

Mounting Geometry 4.3. Molding

While it may be possible to directly use the geometry inherent in the system, i.e. constellations of spheres, it may not be very practical, or efficient. What we want to do is find a way to mount arbitrary geometrical shapes on top of such constellations.

We have shown how we can mount a shape on aggregates of objects in the system. However, it might also be useful to go the other way, to mold aggregates of objects from shapes, with the restriction that the shape needs to enclose a volume, we There are many different types of geometry in use can call such a shape a “solid shape”. If we can in computer design, the main factions are: find a good representation of such a shape in the system, we can then mount the solid shape on to  Polygonal geometry this representation, and make it seem as if the solid shape is interacting with the environment correctly  Spline-based geometry (while it actually is the representation).

 

Constructive solid geometry (CSG) Voxel geometry.

Such a molding can be done in many ways. Any such method should however consist of two parts:

Luckily, while the first two factions are most com- 1. A function which determines which parts of the mon, they are also most suited for our purpose. space is inside the solid shape and which are outThey are both based on points, with certain graphs side. flowing through the points, making up shapes. However, for simple deformations such as bend- 2. A method to distribute objects inside the shape. ing and compression, it’s enough to only modify the points, and not the graphs, as they will follow. We can outline a simple such method for polygonal Thus, we only need to treat the geometry as a set of shapes: points. In a polygonal shape, we can define a normal for As we have discussed earlier, a global deformation every point, dependent on the normals of the polyof an aggregate of objects in the system is comgons which share the point. If the shape is closed prised of many small dislocations of the members (and thus solid), we can simply examine the normal of the aggregate, in effect, many small local deof the point closest to us. If the normal is pointing formations. Thus, if we create a coordinate space away from us, we’re inside the shape, otherwise, for each point, based on local objects of the aggrewe’re outside. This will be the basis for our funcgate, it will follow such a dislocation. The result of tion. all such local dislocations of the points will be the same global deformation as the aggregate has gone For distribution, we can define an orthonormal lattice of objects within the bounding space of the through. shape. Then we simply strip away all objects outWe can create a local space by selecting 4 objects side the shape space. near our point p. We define one object as origo ~o, and the 3 others as bases ( b~x ; b~y ; b~z ), with regard This simple method suffices for creating functional to ~o. To prevent disproportional magnification of representations of closed polygonal shapes which dislocations, we orthogonalize the basis (through a do not self-intersect.

4.4.

Shape Modeling

We are now ready to actually start building shape modeling processes. Normally, in computer design tools, shape modeling is done through purely artificial tools, which have little or nothing at all to do with reality. This can be very counter-intuitive, especially if the operator has little knowledge of the representation of the shapes, the mathematics behind the tools and shape representations etc. We now have the opportunity of building modeling tools which work entirely through our physical model, which supposedly is quite close to reality. This allows the operator to directly transfer knowledge of real shape modeling into the tools. There are two modes in which one could work through the model, we can call them online or offline. To work online means to work in real-time, that the time flow of the model reasonably matches that of reality. This allows high interactivity, the goal being to be able to work with tactile tools. To work offline means that one has to set up machines, or automatons in the model, which can do the work automatically, over longer periods of time. While the online mode could be very interesting, it’s also harder to explore. There needs to be a reasonably high update frequency to convey a sense of real-time. For tactile interfaces, it needs to be very high. This means there is a complexity limit of the systems involved. We, the authors, also have not yet experimented with advanced enough interface equipment. The model seems especially fit for tactile interfacing however, there are welldefined contact forces for every element, so one could transfer these directly through the interface. This field will have to be researched further.

Figure 3: Primitive bending machine.

A twisting machine can be created similarly. We need to create two “grippers”, one which holds one end of the shape still, and one which turns the other end. A gripper can be implemented using two opposing aggregates, bonded together (See figure 6). While we can create cutting machines (see figures 9, 10, 11), the “mounting” method does not support fracturing. This can be solved by creating dependencies between polygons/surfaces and connections in the aggregates. However, as the mounted shapes are boundary representations, a fracture will create a hole in the boundary, which will remove the solidity property. There may exist methods to patch such openings, exploration of this topic is outside the scope of this paper however. We can process shapes through two different representations. If we can find a closely matching representation of a shape, we can use that representation, as it will allow more precise manipulation of the details of the shape. However, if we have a difficult shape, or we simply want a general process, we can use a block-shaped aggregate, and mount an arbitrary shape on that. (See figures 7 and 8)

We will instead focus only on the offline mode. We can create machines with moving parts, which can be used to deform shapes. This is not very hard, at least for simple machines. First of all, we can turn off gravity, to remove the need for supports. We can then simply place several heavy aggregates When we have deformed a shape, and are satisfied around the target shape, and move them toward, or with the result, we can either export it to some fiaround the shape. nalizing output stage, or we can reinsert it into our To create a simple bending machine, which bends process, either into the same machine, or inte other a shape around a fixed support, we need three ag- such machines. We can also choose to either keep gregates, one for the support, and two for pushing the same representation, or create a new one. With the shape around the support. (See figures 3, 4 and this, we get an important feedback loop, where we can create multi-stage processes. 5)

Figure 4: A block is processed by the bending ma- Figure 5: A model of a cow is mounted on the block. chine.

5.

CONCLUSION AND RESULTS

We have shown a novel general mechanics model for solids, encompassing most observable macroscopic phenomena. We have also shown an application in the field of shape modeling of pointbased geometry (polygonal, spline). Several future research fields have been presented, both regarding the model itself, and in applications of the model.

for plasticity, aside from the very basic fracturing. There are also other phenomena, such as elastic hysteresis which don’t seem to be representable in this model, we, the authors, do not have enough knowledge in material physics to verify such things however. Of course there are many other phenomena which can affect the behavior of solids related to heat, chemical processes, liquid mechanics etc. These phenomena are however outside the original scope of this model.

We have created an implementation of the model, which has been used to create the examples. It has proven that the model is indeed lightweight, and can be used for real-time simulation. As stability and correctness is dependent on both stepsize, rigidity and velocity, and calculation time is a non-linear function of the number of objects, it’s difficult to provide a meaningful benchmark. Performance and implementation will have to be discussed in a future paper. However, as a rough sample, sustained real-time performance, at ca. 10 Hz, has been achieved with a semi-rigid system comThere are also certain phenomena we apparently prised of 187 objects and 1325 connections, with a are not modeling. We don’t really have a model mounted polygonal shape consisting of 1094 points The model has the strength of being general, while remaining simple and lightweight. It has also proven to be very functional and providing realistic behavior. There exists certain weaknesses however. As the radius of the object primitive is not a constraint, but a nominal distance, it allows shapes to inter-penetrate to some extent, and even in extreme cases pass through one another. It may also allow internal reordering in shapes. While these phenomena may be common at the atomic level, they are not very desirable macroscopically.

Figure 6: A twisting machine.

Figure 7: A better representation of the cow is bent. (the machine has also been slightly shrunk).

and 2191 polygons, and with a stepsize of 0.01s (so there are 10 calculated frames for every produced frame). The sample was executed on a dual Celeron “Physically-based Animation of Volumetric system at 450 MHz, running BeOS. Objects”. Proceeding of IEEE Computer Animation ’98, pp. 154-160 (1998).

ACKNOWLEDGMENTS

Grandin Jr., H., Fundamentals of the Finite Element Method. Macmillan Publishing (1986).

Hollerbach, J. M., Cohen E., Thompson, W., This research has been performed as part of the InFreier, R., Johnson, D., Nahvi, A., Nelson, D., tegrated Concept Advancement (ICA) project, at Thompson, T. V. “Haptic Interfacing for Virtual the Delft University of Technology. Prototyping of Mechanical CAD Designs”. Proceedings of the ASME Design Engineering Technical Conferences (1997). REFERENCES Horv´ath, I., Kuczogi, G., Staub, G. “Spatial Behavioural Simulation of Mechanical Objects”. Baraff, D., Witkin, A., “Dynamic Simulation of Non-Penetrating Flexible Bodies”. In Computer Proceedings of TMCE ’98 Tools and Methods of Graphics (Proc. SIGGRAPH) volume 26, pp. 303- Concurrent Engineering Symposium, pp. 221-223 (1998). 308 (1992). Berkley, J., Weghorts, S., Gladstone, H., Hunter, P. J., Pullan, A. J., “FEM/BEM notes” “Real-Time Finite Element modeling with Haptic (1997). http://www.esc.auckland.ac. Support”. Proceedings of the ASME Design Engi- nz/Academic/Texts/FEM-BEM-notes. neering Technical Conferences (1999). html

Figure 9: We fix a bar at one end, and prepare to clamp it with two tools.

Figure 8: The cow model is mounted on the new representation.

Kang, H., Kak, A., ”Deforming Virtual Objects Interactively in Accordance with an Elastic Model”. Computer Aided Design (1996). Keller, H., Stolz, H., Ziegler, A., Br¨aunl, T., “Virtual Mechanics - Simulation and Animation of Rigid Body Systems”. Computer Science Report No. 8/93 (1993). http://www.ee.uwa.edu.au/˜braunl/ aero/ftp/docu.english.ps.gz

Figure 10: We clamp the bar.

Kleppner, D., Kolenkow, R. “An Introduction to Mechanics”, pp. 91. McGraw-Hill (1978). Provot, X. “Deformation Constraints in a Mass-Spring Model to Describe Rigid Cloth Behavior”. Proceedings Graphics Interface ’95, pp. 147-154 (1995). Terzopoulous, D., Platt, J., Barr, A., Fleischer, K. ”Elastically Deformable Models”. SIGGRAPH Vol 21 (1987) pp. 205-214.

Figure 11: The bar has been severed.