Skip to content

Releases: 1bye/gpui-motion

gpui-ce-motion 0.4.0

Choose a tag to compare

@1bye 1bye released this 19 Oct 18:43

Animate several independent parts with one component-owned Motions<K> collection.

  • Sample keyed batches at one timestamp, preserving spring position and velocity through interruption and reordering.
  • Use frame_one / sample_one for individual entries, with explicit remove, retain, clear, and capacity controls.
  • Reuse prepared storage during sampling and queue one native animation-frame request per active batch.
  • Explore 10 Collection in the CE Motion lab, including enter/exit and cleanup after the notice disappears.
  • Read the reorganized README, native tests, allocation checks, and sampling/memory benchmarks.
gpui-ce-motion = { version = "0.4", features = ["gpui"] }

Requires Rust 1.95+ and stock GPUI CE 0.2.2 for native integration.

API examples · Performance and memory · Release CI

gpui-ce-motion 0.3.0

Choose a tag to compare

@1bye 1bye released this 19 Oct 09:33

Expanded native animation on stock GPUI CE 0.2.2, with a shared portable engine and no renderer fork.

  • Reactive value graphs, derived and typed bindings, lifecycle subscriptions, and cancellable completion futures.
  • Parent/child variant inheritance, sequencing, nested exits, and mixed typed timelines.
  • Measured scroll/drag helpers, external handles, direction locking, grid reorder, edge autoscroll, and window-root position/crossfade.
  • Native trackpad pinch, SVG path parsing/arcs/normalization/path following, rich text, color/font-size transitions, and fixed-point number formatting.
  • Nine-scene Motion lab, native input regression tests, allocation checks, CPU benchmarks, and executable README examples.
gpui-ce-motion = { version = "0.3", features = ["gpui"] }

Requires Rust 1.95+. General subtree scale/rotation and full size projection remain deferred. Performance measurements cover CPU preparation; GPU timing and physical touch are unverified.

API examples · Changelog · Performance

Validation: all five CI jobs passed, including portable/native tests, documentation, Clippy, Dylint/README checks, archive/example builds, and Kit CPU benchmarks.

gpui-motion-kit 0.5.0

Choose a tag to compare

@1bye 1bye released this 19 Oct 18:43

Use Motions<K> in GPUI Kit with the shared gpui-ce-motion 0.4.0 engine.

  • Sample synchronized batches into Kit-native frames and interrupt springs smoothly.
  • Keep independent transitions under one owner with explicit cleanup and capacity controls.
  • Respect Kit's executor clock and reduced-motion preference, requesting one native frame per active batch.
  • Explore 10 Collection in the Kit Motion lab, with shared CE/Kit behavior tests and CPU benchmarks.
  • Follow the reorganized README from single-animation and enter/exit basics to keyed collections.
gpui-motion-kit = "0.5"
gpui-kit = { version = "=0.7.3", features = ["component", "assets"] }

If your app also depends directly on gpui-ce-motion, update that dependency to
0.4, or import portable declarations through gpui_motion_kit::core to keep the
engine types aligned.

Requires Rust 1.95+ and stock GPUI Kit 0.7.3's default backend. The adapter uses the portable engine without enabling its CE-native feature.

Kit setup and API examples · Performance and memory · Release CI

gpui-motion-kit 0.4.0

Choose a tag to compare

@1bye 1bye released this 19 Oct 09:35

GPUI Kit 0.7.3 bindings for the expanded gpui-ce-motion 0.3.0 engine, using the stock gpui-pre backend without a fork.

  • Reactive graphs, native tree owners, typed timelines, and completion futures over the shared engine.
  • Measured scroll/drag helpers, handles and direction locking, grid reorder, edge autoscroll, cross-container position/crossfade, pinch, and opt-in recognized touch dragging.
  • SVG path preparation/following, rich text, animated colors/font sizes, and fixed-point formatted numbers.
  • Nine-scene Motion lab, shared native interaction tests, CPU benchmarks, updated docs, and executable API examples.
gpui-motion-kit = "0.4"
gpui-kit = { version = "=0.7.3", features = ["component", "assets"] }

Requires Rust 1.95+ and GPUI Kit's default gpui-pre backend. Import native states from gpui_motion_kit and portable types from gpui_motion_kit::core. General subtree transforms, size projection, and Kit element/backdrop blur remain unsupported. CPU benchmarks do not establish GPU performance; physical touch is unverified.

Setup and API examples · Changelog · Performance

Validation: all five CI jobs passed, including portable/native tests, documentation, Clippy, Dylint/README checks, archive/example builds, and Kit CPU benchmarks.

gpui-ce-motion 0.2.0

Choose a tag to compare

@1bye 1bye released this 18 Oct 15:49

Native text and number animations for stock GPUI CE, with smooth interruption and no renderer fork.

  • Animate complete labels, words, graphemes, and wrapped lines with presets, custom targets, stagger, matching, reflow, wipes, scramble, and keyframes.
  • Control presence, playback, scrubbing, reduced motion, and rolling/fading/sliding/interpolated counters.
  • Explore the new text galleries and six GPUI Kit product examples in the repository.
  • Includes exit-cleanup fixes, macOS display-font workarounds, tests, CPU benchmarks, and a Linux hosted-documentation build.
cargo add gpui-ce-motion@0.2 --features gpui

Requires Rust 1.95+ and registry GPUI CE 0.2.2. Default features remain dependency-free; the optional text feature enables the portable text engine. The Kit adapter is available in the repository and is not published as a separate crate.

README and API examples · Text contracts · Performance measurements and limits

gpui-ce-motion 0.1.0

Choose a tag to compare

@1bye 1bye released this 18 Oct 08:03

First public release of gpui-ce-motion, a native Rust motion engine with stock GPUI CE adapters.

Included

  • Declarative transitions, physical/visual springs, enter/exit presence, and smooth interruption.
  • Keyframes, playback controls, timelines, stagger, variants, scalar/color motion values.
  • Native gestures, drag inertia/snapping, manual scroll-linked animation, and draggable/reorderable lists and tabs.
  • Automatic position-only layout animation, measured sizing, popped exits, shared position/crossfade, and style transitions.
  • SVG GPU scale/rotation and compatible vector path morph/stroke reveal.
  • Eight demos, including the seven-experiment Motion studio showcase, tests, and CPU benchmarks.

Use

[dependencies]
gpui-ce-motion = { version = "0.1", features = ["gpui"] }

Rust 1.95+, edition 2024. MIT OR Apache-2.0. Native adapters use published gpui-ce =0.2.2; no renderer fork or Git override is required. The default feature set is dependency-free.

Run the recording showcase from this repository:

cargo run --release --features demo --example motion_showcase

General element scale/rotation, size projection, and browser/DOM/CSS parity are outside this release. See COVERAGE.md and PERFORMANCE.md for limits and measurement scope. Native TestPlatform checks and CPU benchmarks do not measure GPU presentation.

Crates.io · API documentation

gpui-motion-kit 0.3.0

Choose a tag to compare

@1bye 1bye released this 18 Oct 19:11

GPUI Kit 0.3.0 adds native helpers over the shared gpui-ce-motion 0.2.0 engine. It uses stock GPUI Kit 0.7.3 with its default gpui-pre backend; no renderer fork or new runtime dependency.

Added

  • Animated colors, borders, per-corner radii, spacing and shadows.
  • Native hover, press, focus, bounded drag, keyboard controls and in-view detection.
  • Measured scroll-linked motion and intrinsic width/height transitions.
  • Measured reorder, retained popped exits, and shared position/crossfade.
  • Prepared clip and timeline playback with native clocks, pause/seek/speed controls, reduced motion and idle scheduling.
  • SVG-specific scale, rotation, translation and custom pivots with smooth interruption.
  • An eight-scene helper gallery, shared CE/Kit native tests, 13 CPU benchmark workloads and executable README examples.

Install

[dependencies]
gpui-motion-kit = "0.3"
gpui-kit = { version = "=0.7.3", features = ["component", "assets"] }

Requires Rust 1.95+. Portable APIs are available through gpui_motion_kit::core; consumers do not need a direct core dependency.

Examples and limits

Run the new gallery from the repository:

cargo run --manifest-path integrations/gpui-kit/Cargo.toml --features demo --example helpers

Element/backdrop blur and general element-tree scale/rotation remain outside stock Kit's public API; unsupported filters return explicit errors. Shared layout animates position and crossfade, with immediate size changes. CPU benchmarks do not establish GPU/display performance; Linux/Windows application runtime remains unverified.

Crates.io · API documentation · Complete API examples · Performance measurements

All five release CI jobs passed, including native/gallery tests, lint/README checks, package verification and the helper benchmark. After publication, all 16 README examples compiled in a separate registry-only consumer against gpui-motion-kit 0.3.0, core 0.2.0 and Kit 0.7.3.

Full changes

gpui-motion-kit 0.2.0

Choose a tag to compare

@1bye 1bye released this 18 Oct 16:29

First crates.io release of gpui-motion-kit, the GPUI Kit adapter for the shared gpui-ce-motion 0.2 engine.

  • Kit-native transitions, springs, smooth interruption, enter/exit, scalar values, position-only layout, vector drawing, text, and number animations.
  • Six interactive product examples and an editable text gallery, included with their assets in the crate archive.
  • README setup, a complete Kit application, and API examples compiled and checked for spacing in CI.
  • Native interaction tests, package/archive verification, and Linux API-documentation checks.
[dependencies]
gpui-motion-kit = "0.2"
gpui-kit = { version = "=0.7.3", features = ["component", "assets"] }

Requires Rust 1.95+ and Kit 0.7.3's default gpui-pre backend. Native states come from gpui_motion_kit; portable APIs are re-exported through gpui_motion_kit::core. No direct CE-native dependency is needed.

Native CI covers macOS; Linux/Windows runtime behavior is unverified. General subtree transforms and CE-specific convenience helpers without Kit bindings remain outside this adapter's supported API.

Crates.io · Setup and examples · API reference