# Model Interpolation

Interpolation is the most fundamental operation in [Model Morphing](/docs/core-concepts/model-morphing): blending two checkpoints' weights into a new set of weights, parameterized by how much of each source to keep.

## Linear vs. spherical

Two checkpoints can be blended two ways:

-   **Linear interpolation** - a straight-line blend, `(1 − t) * A + t * B`. Simple, but a straight line through high-dimensional weight space doesn't always correspond to a meaningful intermediate model - weight space isn't guaranteed to behave like an ordinary flat space along that path.
-   **Spherical interpolation (SLERP)** - a blend along the shorter arc of a hypersphere connecting the two weight vectors, which tends to better respect weight space's actual geometry, particularly when the two source checkpoints are far apart.

Both are exposed as morph-DAG node types (see [Model Morphing](/docs/core-concepts/model-morphing#common-operation-types)); which one is appropriate depends on how similar the two source checkpoints already are - closer sources make the linear/spherical distinction matter less.

## The interpolation coefficient

The coefficient t (0 = entirely the first source, 1 = entirely the second) is a single scalar you set exactly, mid-operation, the same way a modal transform tool lets you type an exact numeric value rather than only dragging - precision matters here because a small change in t can correspond to a meaningfully different resulting model.

`t` doesn't have to be uniform across the whole model - a morph DAG can apply a different coefficient per layer or module, which is how a task-vector-style merge (see [Model Morphing](/docs/core-concepts/model-morphing#common-operation-types)) achieves "blend the parts that matter, leave the rest close to the base" rather than one global blend ratio.

## Previewing before materializing

Because a morph is an [expression DAG, not committed weights](/docs/core-concepts/model-morphing#expression-dag-not-an-edit-history) until materialized, trying several interpolation coefficients is cheap - adjust `t`, inspect a preview of the result's [statistics](/docs/inspect-and-analyze/tensor-statistics) or a quick [diff](/docs/compare-and-morph/weight-diff) against either source, and only materialize once a coefficient looks right.

## Related resources

-   [Model Morphing](/docs/core-concepts/model-morphing) - the DAG/materialize model interpolation operates within.
-   [SVD, PCA and Effective Rank](/docs/inspect-and-analyze/svd-pca-and-effective-rank) - relevant when an interpolation is effectively low-rank by construction.
-   [Merge Conflicts](/docs/compare-and-morph/merge-conflicts) - interpolation as one possible resolution for a numerically resolvable conflict.
