interpolate()
Maps an input value from one range to another with support for easing and extrapolation.Parameters
number
required
The value to interpolate
number[]
required
Array of input values (must be strictly monotonically increasing). Minimum 2 elements.
number[]
required
Array of output values (must match length of inputRange)
InterpolateOptions
Configuration for extrapolation and easing
Returns
number - The interpolated value
Examples
Basic interpolation
Multi-point interpolation
With extrapolation
With easing
spring()
Calculates spring physics values for natural, bouncy motion using a damped harmonic oscillator simulation.Parameters
SpringOptions
required
Spring configuration object
Returns
number - The calculated spring value at the current frame
Examples
Basic spring animation
Configuring spring physics
Preventing overshoot
calculateSpringDuration()
Estimates how many frames a spring animation needs to settle within a threshold.Parameters
Omit<SpringOptions, 'frame'>
required
Spring configuration (same as
spring() but without frame)number
default:"0.001"
Distance from target value to consider the spring “settled”
Returns
number - Estimated duration in frames
Easing functions
Helios includes a comprehensive library of easing functions for use withinterpolate() and other animations.
Available easing functions
Basic
Easing.linear- No easing, linear interpolationEasing.step(steps)- Step function with specified number of stepsEasing.bezier(x1, y1, x2, y2)- Custom cubic bezier curve
Polynomial
All polynomial easings have.in, .out, and .inOut variants:
Easing.quad- Quadratic (t²)Easing.cubic- Cubic (t³)Easing.quart- Quartic (t⁴)Easing.quint- Quintic (t⁵)
Transcendental
Easing.sine- Sinusoidal easingEasing.expo- Exponential easingEasing.circ- Circular easing
Physical
Easing.back- Overshoots then returnsEasing.elastic- Elastic bounce effectEasing.bounce- Bouncing ball effect