Lean, Mean Elasticity Model

While working on the physics engine for TIM (see below), I had to come up with an elasticity model. I usually just use a number for each material, and multiply them together to get the collision elasticity (percentage of kinetic energy not absorbed).

But then I thought about three characteristic materials elasticity-wise: A marble tile, a soft gym mat, and a super ball. A single number won’t do here, since the following relations hold (using × to denote said operation):

    tile × tile = 0
    mat  × mat  = 0
    ball × tile = 1
    ball × mat  = 0

If you can think of numbers and an operation × that have those properties, please comment. I’m quite certain that no such thing exists (without evil encoding of numbers and such; it has to be somewhat elegant).

But I did come up with a system that worked, and it naturally comes from the most practical branch of mathematics I’ve ever had the pleasure of studying: Linear Algebra. Each material is characterized by a tuple, <hardness elasticity>, both between 0 and 1. These are then run through a nice formula (materials α and β):

    αT·E·β
with:
    E = [ 0 1 ]
        [ 1 1 ]

If you run a few test cases, you’ll find that this gives the expected results many, many times. If you can find a counter-case, please comment and tell me.

About these ads

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s