Changelog

Releases

Runtime, CLI and component releases, newest first. Every runtime release also ships a full write-up in the package's own CHANGELOG.

  1. components

    WebGL context recovery and lifecycle management in Pro components

    • Explicitly release WebGL contexts upon unmount across Pro components: Bubble Transition, Follow Cursor, Ghost Typewriter, Glass Curtain, Glow Tile, Halo Cursor, Heart Stream, Media FX Pro, Pixel Smear Carousel, and Refractive Gallery. Prevents context leakage exhausting browser-level MAX_WEBGL_CONTEXTS limits.
    • The same components now restore state following unrecoverable GPU driver resets. Resolved cases where components waited indefinitely for restoration events that never fired, and implemented missing reset handlers in Ghost Typewriter, Glow Tile, and Heart Stream.
    • Carousel 3D, Particle Morph Gallery and Play Pause: mount="eager" bypasses initial mount scheduling without disabling scene gate guards. Components pause render loops when offscreen and display static fallbacks when prefers-reduced-motion is active.
    • Follow Cursor, Ghost Typewriter and Heart Stream enforce viewport culling and reduced-motion preferences. Under reduced motion, Ghost Typewriter renders complete text strings immediately rather than running the typing animation loop.
    • Lookbook: unmounting no longer triggers cascade rebuilds across adjacent scenes. Differentiates intentional React Three Fiber canvas destruction from unexpected hardware context loss.
    • Compatible with @vectorvesper/motion >= 4.0.0.
  2. runtime4.2.0minor

    Standalone Three.js runtime integration via useThreeScene

    • @vectorvesper/motion/three: useThreeScene provides declarative lifecycle management for standalone Three.js pipelines. Coordinates renderer instantiation, viewport culling, shared frame conductor loops, hardware DPR ceilings, automated context restoration, and prefers-reduced-motion guards across both WebGLRenderer and WebGPURenderer.
    • useRenderQuality: isolated canvas unmounts from global recovery loops. Suppressed false-positive loss signals caused by R3F unmount procedures, preventing cascading scene rebuild cycles during rapid route or tab transitions.
    • useRenderQuality: clamped profile DPR targets against window.devicePixelRatio. Prevents over-rendering on standard-density displays (such as dpr: 2 targets forcing 4x pixel fill rates on 1x panels) and stabilizes fill-rate-bound frame rates.
    • useRenderQuality: captured and recovered from context loss events occurring during active R3F scene initialization, preventing unhandled blank canvas states.
    • RendererHealth: added builtAt timestamp support to reportLost() to detect rapid post-rebuild context failures, allowing up to three consecutive recovery passes for unstable contexts.
    • RendererHealth: added automated 5-second recovery timeouts when reportHealthy() is omitted, preventing dropped context loss events and permanently blank canvas states while issuing diagnostic warnings.
    • useSceneGate: corrected fallback handling on tier 0 hardware load profiles to enforce lowest-tier fidelity instead of falling through to default maximum quality.
    • useSceneGate({ content: true }): added content-mode gating for critical UI elements (e.g. data visualizations). Defers initial render until scroll and main-thread settling, then mounts unconditionally regardless of device tier or reduced-motion settings.
    • useNumberTicker: halted DOM write cycles immediately upon reaching target values, eliminating redundant 60Hz reflow passes on static counters.
    • useNumberTicker, useMagneticIntent, useImageTrail and useVideoScrubber: added deferred ref resolution to support delayed DOM mounts from Next.js dynamic imports and hydration boundaries.
    • DeviceSignals: refined Apple GPU classification heuristics to require touch capability before assigning mobile performance profiles, ensuring macOS Safari instances default to desktop tiers.
  3. cli2.8.0minor
    • check_motion: added static analysis rules for standalone Three.js implementations: offscreen-render, uncapped-pixel-ratio, unreleased-context, and renderer-rebuilt-on-change.
    • check_motion: added adapter-props-to-wrapper rule to detect adapter spreads onto intermediate wrapper components that fail to forward frameloop, DPR, and context loss handlers to <Canvas>.
    • check_motion: resolved namespaced new THREE.WebGLRenderer() instantiations in webgl-context-loss, enforced reportHealthy() pairings, and flagged un-guarded custom render loops missing prefers-reduced-motion checks.
    • plan_motion: prompt synthesizer generates useThreeScene scaffolding for raw Three.js requirements, while routing declarative R3F architectures to useSceneGate and useRenderQuality.
    • plan_motion: expanded semantic routing to suggest useSceneGate({ content: true }) when querying for scroll-deferred content mounting.
    • search: refined rank-ordering to prioritize useAdaptiveQuality for reduced-motion and accessibility queries.
    • Updated MCP motion planner with builtAt signatures, reportHealthy() contracts, DPR clamping rules, and starvation mitigation for cost: "heavy" pipelines.
  4. runtime4.1.0minor

    WebGPU device loss lifecycle

    • watchGPUDevice: binds WebGPU device.lost Promise resolution into the runtime lifecycle, incrementing scene generation counters to trigger automated reconstruction via useSceneGate.
    • watchGPUDevice: filters out reason === "destroyed" events during intentional unmounting, preventing recursive rebuild loops during component teardown.
    • DeviceSignals: carries a webgpu flag, read synchronously from navigator.gpu. Adapter limits remain decoupled from tier assignment pending asynchronous requestAdapter() capability checks.
    • useRenderQuality: dual-binds WebGPU device loss observers and WebGL context restoration listeners to transparently handle Three.js fallback switches during backend initialization failures.
    • GPUDeviceLike is structural, ensuring @webgpu/types remains optional in dependency trees.
  5. cli2.7.0minor
    • check_motion: added WebGPU audit rules: unmonitored GPU device acquisition, device.lost handlers misclassifying intentional destroy() calls as runtime faults, and unreliable instanceof WebGPURenderer checks under silent WebGL fallbacks.
    • check_motion: extended scanner entrypoints to parse WebGPU-only source files independently of WebGL or R3F markers.
    • plan_motion: routes WebGPU queries directly to watchGPUDevice instead of WebGL webglcontextlost listeners.
  6. runtime4.0.3patch
    • RendererHealth: debounced concurrent context losses within a 250ms window into a unified reset event, preventing cascading multi-canvas remount storms during driver resets.
  7. runtime4.0.2patch
    • useRenderQuality: preserves drawing buffer DPR during idle states to prevent buffer clearing without scheduled repaints.
  8. cli2.6.0minor
    • login, logout and whoami commands documented in --help reference.
    • Normalized authentication token terminology to access token across all CLI outputs and diagnostics.
    • Resolved non-zero exit code mapping on Windows platforms, normalizing spinner error terminations to exit code 1.
  9. runtime4.0.1patch
    • AnimationBudget: dynamically calculates frame budget thresholds from display refresh rate, eliminating false-positive throttling on high-refresh panels (120Hz–240Hz).
  10. cli2.5.0minor
    • plan_motion: maps natural language requirements to motion primitives, execution sequences, and CSS hardware acceleration boundaries with strict refusal heuristics.
    • check_motion: thirteen static analysis rules covering isolated frame loops, layout thrashing in render lanes, unthrottled per-frame state dispatches, and unhandled context loss.
  11. runtime4.0.0major

    Declarative Canvas props from useRenderQuality

    • useRenderQuality: refactored to export declarative props for <Canvas> outside the scene tree, deprecating imperative internal calls to setDpr, setFrameloop, and gl.shadowMap.enabled.
    • Idle scenes pause frame execution: eliminates unneeded background render cycles once scene stability is reached.
    • useRenderQuality: enforced explicit DPR overrides against React Three Fiber default reconfiguration passes.
  12. runtime3.0.0major

    Frame pressure attribution engine

    • useFramePressure: classifies frame drops into runtime overhead, competing main-thread script execution, or GPU fill/compute bottlenecks with confidence scoring.
    • AdaptiveQuality: gates quality degradation strictly to verified GPU bottlenecks, avoiding unnecessary visual fidelity drops during third-party main-thread stalls.
  13. runtime2.0.0major

    Scene gate and React Three Fiber adapter

    • useSceneGate: manages viewport mount thresholds, frame loop execution, adaptive resolution profiles, and automated state restoration upon context loss.
    • RendererHealth: provides WebGL context loss detection and generation state keys for automated scene remounting under React Three Fiber.
    • React Three Fiber adapter isolated under @vectorvesper/motion/r3f, keeping three peer dependencies decoupled from non-3D builds.
    • useSceneGate: implements viewport suspension to pause render loops offscreen while preserving WebGL contexts, GPU textures, and compiled shader programs.
  14. components

    Ghost Typewriter, Jigsaw Puzzle, Lookbook and expanded Pro catalogue

    • New Pro components: Field Web, Ghost Typewriter, Glow Tile, Heart Stream, Jigsaw Puzzle, Lookbook, Play Pause, Prism Testimonial, Repel Me Text, Trail Collector and Wind Scatter.
  15. components

    Ribbon Text and Tilt Transition

    • Ribbon Text: typography composed of multi-chromatic vector bands that deform dynamically along scroll trajectories and resolve via spring physics.
    • Tilt Transition: 3D perspective route transitions utilizing pre-rendered target routes to maintain immediate navigation responsiveness without mounting delays.
  16. components

    Initial release

    • @vectorvesper/motion: the frame conductor, sensor bus, quality governors and React hooks. Zero dependencies, all peer packages optional.
    • vectorvesper CLI: provides local source scaffolding and registry ingestion without adding runtime dependency overhead.
    • Open-source core components: Acrylic Shader, Cinematic Text, Code Rain, Dispersed Text, Glass Gallery, Image Ticker, Liquid Transition, Magnetic Sand, Media Shader, Physics Buttons, Scroll Highlighter, Video Card.
    • Pro launch components: Blur Transition, Bubble Transition, Card Deck, Carousel 3D, Cube Scroll Menu, Follow Cursor, Glass Curtain, Halo Cursor, Media FX Pro, Particle Morph Gallery, Pixel Smear Carousel, Pixel Stretcher, Portal Peeler, Refractive Gallery, SVG Path Story, Text Trail, Volumetric Light.