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


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


<h2 id="keyframeswithspline-init">keyframesWithSpline</h2>

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


```kotlin
public fun <T> keyframesWithSpline(
    init: KeyframesWithSplineSpec.KeyframesWithSplineSpecConfig<T>.() -> Unit
): KeyframesWithSplineSpec<T>
```


Creates a `KeyframesWithSplineSpec` animation, initialized with `init`.

For more details on implementation, see `KeyframesWithSplineSpec`.

Use overload that takes a `Float` parameter to use periodic splines.

#### Parameters

| | |
| --- | --- |
| init | Initialization function for the `KeyframesWithSplineSpec` animation |






<hr class="docs-overload-divider">


<h2 id="keyframeswithspline-init-2">keyframesWithSpline</h2>

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


```kotlin
public fun <T> keyframesWithSpline(
    @FloatRange(0.0, 1.0) periodicBias: Float,
    init: KeyframesWithSplineSpec.KeyframesWithSplineSpecConfig<T>.() -> Unit,
): KeyframesWithSplineSpec<T>
```


Creates a *periodic* `KeyframesWithSplineSpec` animation, initialized with `init`.

Use overload without `periodicBias` parameter for the non-periodic implementation.

A periodic spline is one such that the starting and ending velocities are equal. This makes them
useful to create smooth repeatable animations. Such as an infinite pulsating animation:


The `periodicBias` value (from 0.0 to 1.0) indicates how much of the original starting and final
velocity are modified to achieve periodicity:
- 0f: Modifies only the starting velocity to match the final velocity
- 1f: Modifies only the final velocity to match the starting velocity
- 0.5f: Modifies both velocities equally, picking the average between the two

#### Parameters

| | |
| --- | --- |
| periodicBias | A value from 0f to 1f, indicating how much the starting or ending velocities are modified respectively to achieve periodicity. |
| init | Initialization function for the `KeyframesWithSplineSpec` animation |