BabylonJS/Babylon.js · error · Error

Easing type not yet implemented

Error message

Easing type not yet implemented

What it means

CreateEasingFunction maps an EasingFunctionType enum value to a concrete easing class, but only a subset (e.g. CubicEase, ElasticEase, ExponentialEase, ...) is implemented. Requesting any other easing type hits the default branch and throws this explicit not-implemented error.

Source

Thrown at packages/dev/core/src/FlowGraph/Blocks/Execution/Animation/flowGraphEasingBlock.pure.ts:55

 */
function CreateEasingFunction(type: EasingFunctionType, ...parameters: number[]): EasingFunction {
    switch (type) {
        case EasingFunctionType.BezierCurveEase:
            return new BezierCurveEase(...parameters);
        case EasingFunctionType.CircleEase:
            return new CircleEase();
        case EasingFunctionType.BackEase:
            return new BackEase(...parameters);
        case EasingFunctionType.BounceEase:
            return new BounceEase(...parameters);
        case EasingFunctionType.CubicEase:
            return new CubicEase();
        case EasingFunctionType.ElasticEase:
            return new ElasticEase(...parameters);
        case EasingFunctionType.ExponentialEase:
            return new ExponentialEase(...parameters);
        default:
            throw new Error("Easing type not yet implemented");
    }
}

/**
 * An easing block that generates an easingFunction object based on the data provided.
 */
export class FlowGraphEasingBlock extends FlowGraphBlock {
    /**
     * Input connection: The type of the easing function.
     */
    public readonly type: FlowGraphDataConnection<EasingFunctionType>;

    /**
     * Input connection: The mode of the easing function.
     * EasingFunction.EASINGMODE_EASEIN, EasingFunction.EASINGMODE_EASEOUT, EasingFunction.EASINGMODE_EASEINOUT
     */
    public readonly mode: FlowGraphDataConnection<number>;

View on GitHub (pinned to 0592b347b8)

Solutions

  1. Use one of the supported easing types (CubicEase, ElasticEase, ExponentialEase, etc. per the factory's switch)
  2. Check the EasingFunctionType value in the block config against the types the installed core version implements
  3. Upgrade @babylonjs/core if the desired easing type was added in a newer release, or implement a custom easing function

Example fix

// before
config.easingFunction = EasingFunctionType.BezierEase; // not implemented
// after
config.easingFunction = EasingFunctionType.CubicEase;
Defensive patterns

Strategy: validation

Validate before calling

const SUPPORTED = [EasingFunctionType.CubicEase, EasingFunctionType.ElasticEase, EasingFunctionType.ExponentialEase];
if (!SUPPORTED.includes(config.easingFunction)) throw new Error('Unsupported easing type: ' + config.easingFunction);

Try / catch

try { fn = CreateEasingFunction(type, params); } catch (e) { if (e.message === 'Easing type not yet implemented') { fn = new CubicEase(); } else throw e; }

Prevention

When it happens

Trigger: Configuring a FlowGraphEasingBlock with an easingFunction type value that the factory has no case for — e.g. BezierEase, BackEase, or an out-of-range/typo'd numeric enum value.

Common situations: Serialized graph configs produced by a newer editor version using easing types this core version doesn't support; typos or numeric literals in hand-written configs; confusion between easing-mode and easing-type values.

Related errors


AI-assisted analysis of BabylonJS/Babylon.js@0592b347b8 (2026-08-30). Data as JSON: /api/errors/11fe70f9eebfc16d. Report an issue: GitHub.