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
    • Heads-upVolumetric Light: draws its light with WebGL by default and assumes a light page; on a dark page, set ground="dark".
    • NewVolumetric Light: marked elements block the light, so shadows stream out behind them and light pours through the gaps (beams).
    • NewVolumetric Light: beamColor, shadeColor, beamStrength and beamReach set the light, and rim lights the edge that faces it.
    • NewVolumetric Light: restPosition sets where the light waits before the pointer arrives, and idle lets it drift there.
  2. components
    • NewLookbook: pages can be videos. A URL in images ending in .mp4, .webm, .mov, .m4v or .ogv plays as a muted, looping page.
    • NewLookbook: sheetWidthFraction runs the lookbook across the width, from the roll at the left margin to the end of the open sheet at the right.
    • RepairedLookbook: stops drawing after a drag when inertia is off or under reduced motion.
  3. runtime4.3.3patch
    • RepaireduseSceneGate: a scene the browser refuses WebGL to during a visit shows its still, not an empty box. Chrome does this to a tab after a GPU reset.
    • RepaireduseSceneGate, useAdaptiveQuality: phones that report 4 GB of memory, which is most Android phones under 8 GB, get the scene at reduced quality instead of only its still.
    • RepaireduseMagneticIntent, usePointerIntent: a button scrolled out of view no longer moves, and no longer counts as where the pointer is heading.
  4. runtime4.3.2patch
    • BetteruseAdaptiveQuality, useSceneGate: quality drops at once when rendering is clearly the bottleneck, with the cause render.
    • RepaireduseAdaptiveQuality, useSceneGate: quality comes back when someone else's script is blocking the main thread. It dips for a moment, returns to full once reducing proves not to help, and stays full after the block. Since 4.0.0 it stayed lowered.
  5. runtime4.3.1patch
    • BetteruseSafeToMount, useSceneGate: stop waiting for headroom after 5 seconds and mount. useSceneGate only counts while the scene is near the viewport.
    • RepaireduseSafeToMount, useSceneGate: scenes mount on battery saver, where browsers cap pages at 30fps.
  6. cli2.8.3patch
    • BetterMCP hook reference updated for runtime 4.3.1.
  7. components
    • Heads-upRequires @vectorvesper/motion 4.2.0 or later.
    • RepairedLookbook, Particle Morph Gallery, Play Pause: recover from two GPU resets in quick succession.
    • RepairedJigsaw Puzzle: adaptive quality never adds pieces on weaker devices.
    • RepairedMedia Shader: the effect comes back when the browser can't restore a lost context.
  8. components
    • Heads-upWorks with @vectorvesper/motion 4.0.0 or later.
    • BetterGhost Typewriter: shows the whole line under reduced motion.
    • RepairedBubble Transition, Follow Cursor, Ghost Typewriter, Glass Curtain, Glow Tile, Halo Cursor, Heart Stream, Media FX Pro, Pixel Smear Carousel, Refractive Gallery: free their graphics context on unmount.
    • RepairedThe same components recover from GPU resets the browser can't undo.
    • RepairedCarousel 3D, Particle Morph Gallery, Play Pause: mount="eager" no longer keeps drawing off screen or under reduced motion.
    • RepairedFollow Cursor, Ghost Typewriter, Heart Stream: stop drawing off screen and under reduced motion.
    • RepairedLookbook: unmounting no longer rebuilds other 3D scenes on the page.
  9. runtime4.2.0minor
    • NewuseThreeScene (@vectorvesper/motion/three): off-screen pausing, adaptive quality, context-loss recovery and reduced motion for plain three.js. Works with WebGLRenderer and WebGPURenderer.
    • NewuseSceneGate({ content: true }): for content such as charts. Waits for scrolling to settle, then always mounts.
    • NewreportLost(): builtAt option, so a canvas lost again straight after a rebuild is rebuilt again.
    • RepaireduseRenderQuality: unmounting one canvas no longer rebuilds every other scene.
    • RepaireduseRenderQuality: dpr is capped at the screen's pixel ratio.
    • RepaireduseRenderQuality: recovers a context lost while the scene is still building.
    • RepaireduseSceneGate: tier 2 runs at reduced quality instead of full.
    • RepairedRendererHealth: no longer stuck recovering when reportHealthy() is never called.
    • RepaireduseNumberTicker: stops writing to the DOM once it reaches its value.
    • RepaireduseNumberTicker, useMagneticIntent, useImageTrail, useVideoScrubber: work with elements that mount later, such as Next.js dynamic imports.
    • RepairedDeviceSignals: Macs running Safari are no longer rated as mobile.
  10. cli2.8.0minor
    • Newcheck_motion: plain three.js rules offscreen-render, uncapped-pixel-ratio, unreleased-context, renderer-rebuilt-on-change.
    • Newcheck_motion: adapter-props-to-wrapper, for adapter props spread onto a wrapper instead of <Canvas>.
    • Newplan_motion: suggests useSceneGate({ content: true }) for content that should mount once scrolling settles.
    • Betterplan_motion: returns useThreeScene scaffolding for plain three.js, and useSceneGate with useRenderQuality for React Three Fiber.
    • Bettersearch: ranks useAdaptiveQuality first for reduced-motion queries.
    • BetterMCP guidance covers builtAt, reportHealthy(), pixel-ratio caps and cost: "heavy".
    • Repairedcheck_motion: webgl-context-loss recognises new THREE.WebGLRenderer().
    • Repairedcheck_motion: flags render loops with no reduced-motion check.
  11. runtime4.1.0minor
    • NewwatchGPUDevice: rebuilds scenes when a WebGPU device is lost.
    • NewDeviceSignals: webgpu flag.
    • BetteruseRenderQuality: handles WebGPU device loss as well as WebGL context loss, including three.js falling back to WebGL.
    • BetterGPUDeviceLike is structural, so @webgpu/types stays optional.
    • RepairedwatchGPUDevice: ignores devices destroyed on purpose at unmount.
  12. cli2.7.0minor
    • Newcheck_motion: WebGPU rules for an unwatched device, destroy() read as a loss, and instanceof WebGPURenderer checks.
    • Newcheck_motion: scans WebGPU-only files.
    • Betterplan_motion: sends WebGPU questions to watchGPUDevice.
  13. runtime4.0.3patch
    • RepairedRendererHealth: losses within 250ms count as one reset, so a driver reset rebuilds each scene once.
  14. runtime4.0.2patch
    • RepaireduseRenderQuality: an idle scene no longer goes blank when its pixel ratio changes.
  15. cli2.6.0minor
    • Betterlogin, logout, whoami: listed in --help.
    • BetterMessages say "access token" throughout.
    • RepairedWindows: failed commands exit with code 1.
  16. runtime4.0.1patch
    • RepairedAnimationBudget: 120–240Hz displays no longer read as struggling.
  17. cli2.5.0minor
    • Newplan_motion: picks the primitives for a plain-language request and the order to wire them in.
    • Newcheck_motion: rules for separate frame loops, layout reads in the render lane, per-frame state updates and unhandled context loss.
  18. runtime4.0.0major
    • Heads-upuseRenderQuality: returns props to spread onto <Canvas>, instead of setting dpr, frameloop and shadows from inside the scene.
    • BetterIdle scenes stop rendering.
    • RepaireduseRenderQuality: React Three Fiber no longer resets dpr.
  19. runtime3.0.0major
    • NewuseFramePressure: says whether a slow frame comes from the runtime, other main-thread work or the GPU.
    • BetterAdaptiveQuality: lowers quality only when rendering is the bottleneck.
  20. runtime2.0.0major
    • NewuseSceneGate: decides when a scene mounts, draws and at what quality, and rebuilds it after context loss.
    • NewuseSceneGate: pauses scenes off screen without losing their context or textures.
    • NewRendererHealth: context-loss detection, with a generation key for remounting.
    • New@vectorvesper/motion/r3f: the React Three Fiber adapter, separate so builds without 3D skip three.
  21. components
    • NewPro: Field Web, Ghost Typewriter, Glow Tile, Heart Stream, Jigsaw Puzzle, Lookbook, Play Pause, Prism Testimonial, Repel Me Text, Trail Collector, Wind Scatter.
  22. components
    • NewRibbon Text: ribbons of colour that carry text and bend as you scroll.
    • NewTilt Transition: 3D tilting page transitions with no wait on navigation.
  23. components
    • New@vectorvesper/motion: one frame loop, shared sensors, quality governors and React hooks. Zero dependencies.
    • Newvectorvesper CLI: adds components to your project as source.
    • NewFree: Acrylic Shader, Cinematic Text, Code Rain, Dispersed Text, Glass Gallery, Image Ticker, Liquid Transition, Magnetic Sand, Media Shader, Physics Buttons, Scroll Highlighter, Video Card.
    • NewPro: 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.