Changelog
Releases
Runtime, CLI and component releases, newest first. Every runtime release also ships a full write-up in the package's own CHANGELOG.
- 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,beamStrengthandbeamReachset the light, andrimlights the edge that faces it. - NewVolumetric Light:
restPositionsets where the light waits before the pointer arrives, andidlelets it drift there.
- Heads-upVolumetric Light: draws its light with WebGL by default and assumes a light page; on a dark page, set
- components
- NewLookbook: pages can be videos. A URL in
imagesending in .mp4, .webm, .mov, .m4v or .ogv plays as a muted, looping page. - NewLookbook:
sheetWidthFractionruns 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
inertiais off or under reduced motion.
- NewLookbook: pages can be videos. A URL in
- runtime4.3.3patch
- Repaired
useSceneGate: 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. - Repaired
useSceneGate,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. - Repaired
useMagneticIntent,usePointerIntent: a button scrolled out of view no longer moves, and no longer counts as where the pointer is heading.
- Repaired
- runtime4.3.2patch
- Better
useAdaptiveQuality,useSceneGate: quality drops at once when rendering is clearly the bottleneck, with the causerender. - Repaired
useAdaptiveQuality,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.
- Better
- runtime4.3.1patch
- Better
useSafeToMount,useSceneGate: stop waiting for headroom after 5 seconds and mount.useSceneGateonly counts while the scene is near the viewport. - Repaired
useSafeToMount,useSceneGate: scenes mount on battery saver, where browsers cap pages at 30fps.
- Better
- cli2.8.3patch
- BetterMCP hook reference updated for runtime 4.3.1.
- components
- Heads-upRequires
@vectorvesper/motion4.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.
- Heads-upRequires
- components
- Heads-upWorks with
@vectorvesper/motion4.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.
- Heads-upWorks with
- runtime4.2.0minor
- New
useThreeScene(@vectorvesper/motion/three): off-screen pausing, adaptive quality, context-loss recovery and reduced motion for plain three.js. Works withWebGLRendererandWebGPURenderer. - New
useSceneGate({ content: true }): for content such as charts. Waits for scrolling to settle, then always mounts. - New
reportLost():builtAtoption, so a canvas lost again straight after a rebuild is rebuilt again. - Repaired
useRenderQuality: unmounting one canvas no longer rebuilds every other scene. - Repaired
useRenderQuality:dpris capped at the screen's pixel ratio. - Repaired
useRenderQuality: recovers a context lost while the scene is still building. - Repaired
useSceneGate: tier 2 runs at reduced quality instead of full. - Repaired
RendererHealth: no longer stuck recovering whenreportHealthy()is never called. - Repaired
useNumberTicker: stops writing to the DOM once it reaches its value. - Repaired
useNumberTicker,useMagneticIntent,useImageTrail,useVideoScrubber: work with elements that mount later, such as Next.js dynamic imports. - Repaired
DeviceSignals: Macs running Safari are no longer rated as mobile.
- New
- cli2.8.0minor
- New
check_motion: plain three.js rulesoffscreen-render,uncapped-pixel-ratio,unreleased-context,renderer-rebuilt-on-change. - New
check_motion:adapter-props-to-wrapper, for adapter props spread onto a wrapper instead of<Canvas>. - New
plan_motion: suggestsuseSceneGate({ content: true })for content that should mount once scrolling settles. - Better
plan_motion: returnsuseThreeScenescaffolding for plain three.js, anduseSceneGatewithuseRenderQualityfor React Three Fiber. - Better
search: ranksuseAdaptiveQualityfirst for reduced-motion queries. - BetterMCP guidance covers
builtAt,reportHealthy(), pixel-ratio caps andcost: "heavy". - Repaired
check_motion:webgl-context-lossrecognisesnew THREE.WebGLRenderer(). - Repaired
check_motion: flags render loops with no reduced-motion check.
- New
- runtime4.1.0minor
- New
watchGPUDevice: rebuilds scenes when a WebGPU device is lost. - New
DeviceSignals:webgpuflag. - Better
useRenderQuality: handles WebGPU device loss as well as WebGL context loss, including three.js falling back to WebGL. - Better
GPUDeviceLikeis structural, so@webgpu/typesstays optional. - Repaired
watchGPUDevice: ignores devices destroyed on purpose at unmount.
- New
- cli2.7.0minor
- New
check_motion: WebGPU rules for an unwatched device,destroy()read as a loss, andinstanceof WebGPURendererchecks. - New
check_motion: scans WebGPU-only files. - Better
plan_motion: sends WebGPU questions towatchGPUDevice.
- New
- runtime4.0.3patch
- Repaired
RendererHealth: losses within 250ms count as one reset, so a driver reset rebuilds each scene once.
- Repaired
- runtime4.0.2patch
- Repaired
useRenderQuality: an idle scene no longer goes blank when its pixel ratio changes.
- Repaired
- cli2.6.0minor
- Better
login,logout,whoami: listed in--help. - BetterMessages say "access token" throughout.
- RepairedWindows: failed commands exit with code 1.
- Better
- runtime4.0.1patch
- Repaired
AnimationBudget: 120–240Hz displays no longer read as struggling.
- Repaired
- cli2.5.0minor
- New
plan_motion: picks the primitives for a plain-language request and the order to wire them in. - New
check_motion: rules for separate frame loops, layout reads in the render lane, per-frame state updates and unhandled context loss.
- New
- runtime4.0.0major
- Heads-up
useRenderQuality: returns props to spread onto<Canvas>, instead of settingdpr,frameloopand shadows from inside the scene. - BetterIdle scenes stop rendering.
- Repaired
useRenderQuality: React Three Fiber no longer resetsdpr.
- Heads-up
- runtime3.0.0major
- New
useFramePressure: says whether a slow frame comes from the runtime, other main-thread work or the GPU. - Better
AdaptiveQuality: lowers quality only when rendering is the bottleneck.
- New
- runtime2.0.0major
- New
useSceneGate: decides when a scene mounts, draws and at what quality, and rebuilds it after context loss. - New
useSceneGate: pauses scenes off screen without losing their context or textures. - New
RendererHealth: context-loss detection, with agenerationkey for remounting. - New
@vectorvesper/motion/r3f: the React Three Fiber adapter, separate so builds without 3D skipthree.
- New
- components
- NewPro: Field Web, Ghost Typewriter, Glow Tile, Heart Stream, Jigsaw Puzzle, Lookbook, Play Pause, Prism Testimonial, Repel Me Text, Trail Collector, Wind Scatter.
- 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.
- components
- New
@vectorvesper/motion: one frame loop, shared sensors, quality governors and React hooks. Zero dependencies. - New
vectorvesperCLI: 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.
- New