---
title: "DecayAnimationSpec"
description: "[DecayAnimationSpec] stores the specification of an animation, including 1) the data type to be
animated, and 2) the animation configuration (i.e. [VectorizedDecayAnimationSpec]) that will be
used once the data (of type [T]) has been converted to [AnimationVector].

Any type [T] can be animated by the system as long as a [TwoWayConverter] is supplied to convert
the data type [T] from and to an [AnimationVector]. There are a number of converters available
out of the box. For example, to animate [androidx.compose.ui.unit.IntOffset] the system uses
[IntOffset.VectorConverter][IntOffset.Companion.VectorConverter] to convert the object to
[AnimationVector2D], so that both x and y dimensions are animated independently with separate
velocity tracking. This enables multidimensional objects to be animated in a true
multi-dimensional way. It is particularly useful for smoothly handling animation interruptions
(such as when the target changes during the animation)."
type: "interface"
---

<div class='type'>Interface</div>


<a id='references'></a>

<div class='sourceset sourceset-common'>Common</div>



```kotlin
public interface DecayAnimationSpec<T>
```


`DecayAnimationSpec` stores the specification of an animation, including 1) the data type to be
animated, and 2) the animation configuration (i.e. `VectorizedDecayAnimationSpec`) that will be
used once the data (of type `T`) has been converted to `AnimationVector`.

Any type `T` can be animated by the system as long as a `TwoWayConverter` is supplied to convert
the data type `T` from and to an `AnimationVector`. There are a number of converters available
out of the box. For example, to animate `androidx.compose.ui.unit.IntOffset` the system uses
`IntOffset.VectorConverter` to convert the object to
`AnimationVector2D`, so that both x and y dimensions are animated independently with separate
velocity tracking. This enables multidimensional objects to be animated in a true
multi-dimensional way. It is particularly useful for smoothly handling animation interruptions
(such as when the target changes during the animation).


## Functions

```kotlin
public fun <V : AnimationVector> vectorize(
        typeConverter: TwoWayConverter<T, V>
    ): VectorizedDecayAnimationSpec<V>
```


Creates a `VectorizedDecayAnimationSpec` with the given `TwoWayConverter`.

The underlying animation system operates on `AnimationVector`s. `T` will be converted to
`AnimationVector` to animate. `VectorizedDecayAnimationSpec` describes how the converted
`AnimationVector` should be animated.

#### Parameters

| | |
| --- | --- |
| typeConverter | converts the type `T` from and to `AnimationVector` type |




