Luxar Viewer API Documentation - v2026.9.22
    Preparing search index...

    Interface DimensionAnimationState

    Animation state for a single dimension

    interface DimensionAnimationState {
        isPlaying: boolean;
        targetFPS: number;
        loopMode: LoopMode;
        direction: AnimationDirection;
        lastUpdateTime: number;
        frameCount: number;
        lastFPSMeasurementTime: number;
        actualFPS: number;
        ladderDepth: number | "auto" | null;
        stepSize: number | null;
    }
    Index
    isPlaying: boolean

    Whether animation is currently playing

    targetFPS: number

    Target FPS for animation

    loopMode: LoopMode

    Loop behavior (once, loop, bounce)

    Current animation direction

    lastUpdateTime: number

    Last update timestamp (ms since epoch)

    frameCount: number

    Frame counter for FPS measurement

    lastFPSMeasurementTime: number

    Time of last FPS measurement

    actualFPS: number

    Measured actual FPS (may differ from target)

    ladderDepth: number | "auto" | null

    Playback "detail": how deep every frame's additive ladder is loaded while this dimension plays (and scrubs). A number pins that many rungs (Infinity = the whole ladder); 'auto' pins each ladder at the first rung whose cumulative energy reaches config.dimensionAnimation.playback.autoEnergyThreshold (an unstamped ladder stays time-budgeted); null streams whatever is resident within the tick ("Fast"). Threaded to the progressive loaders as ViewState.ladderDepth.

    stepSize: number | null

    Explicit per-tick step size in dimension units; null = Auto (continuous dims derive the increment from fps + the range-traversal time, discrete dims use their authored step). Also consumed by the [ / ] keyboard navigation. Deliberately NOT consumed by the slider wheel/drag — hand stepping stays on the dimension's own base step.