spine_flutter
The official Spine Flutter Runtime to load, display and interact with Spine animations.
4.3.6
13K downloads/mo
#2603 most downloaded on pub.dev
esotericsoftware/spine-runtimes
What this package is like to depend on
Last release 1 months ago
09 Jul 2026
Release timing varies
gaps range from 8 days to 7 months
Nearly every release is documented
notes for 50 of 54 stable releases
Nothing withdrawn
no release was ever pulled
5 years old
54 releases · first in 2022
7 releases in the last 12 months
see the full history below
Release timeline
54 releases · Jan 2022 to Jul 2026Releases
latest 54-
4.3.609 Jul 2026Release notes
Open source →Flutter
- Bug fixes
- Improved clipping performance through the updated spine-cpp clipping runtime.
- Bug fixes
-
4.3.524 Jun 2026Release notes
Open source →Flutter
- Bug fixes
- Fixed constraints so modifying a constrained bone's world transform preserves descendant bone transforms from earlier constraints.
- Bug fixes
-
4.3.405 Jun 2026Release notes
Open source →Flutter
- Bug fixes
- Fixed automated release publishing so native source files are included in the pub.dev package.
- Bug fixes
-
4.3.305 Jun 2026Release notes
Open source →Flutter
- Additions
- Added GitHub Actions release automation for spine-flutter.
- Additions
-
4.3.205 Jun 2026Release notes
Open source →Flutter
- Bug fixes
- Updated bundled spine-c/spine-cpp sources and WebAssembly assets for the 4.3 release.
- Bug fixes
-
4.3.106 Nov 2025Release notes
Open source →Flutter
- Additions
- Added
fromMemorymethods toAtlasFlutter,SkeletonDataFlutter,SkeletonDrawableFlutter, andSpineWidgetfor loading Spine data from custom sources (memory, encrypted storage, databases, custom caching, etc.) - Added example
load_from_memory.dartdemonstrating how to load all assets into memory and use thefromMemoryAPI
- Added
- Additions
-
4.3.029 Oct 2025Release notes
Open source →Dart
-
Additions
- Added
SliderandSliderDataclasses for slider constraints - Added
SliderTimelineandSliderMixTimelinefor animating sliders - Added new pose system with
BoneLocal,BonePose, and related classes - Added
Pose,Posed, andPosedActivebase classes for unified pose management
- Added
-
Breaking changes
- The Dart runtime is now fully auto-generated from the C runtime, maintaining the full C++ type hierarchy with proper nullability annotations. The code generator creates 150+ Dart files in
lib/generated/providing complete API coverage of all Spine runtime types. - All properties are now exposed as getters and setters instead of methods
- API changes to match C++ naming conventions (see examples below)
- Timeline
apply()methods now take an additionalappliedPoseparameter
- The Dart runtime is now fully auto-generated from the C runtime, maintaining the full C++ type hierarchy with proper nullability annotations. The code generator creates 150+ Dart files in
Flutter
- Breaking changes
- Updated to use the new auto-generated Dart runtime with all the Dart API changes above
Migration Examples
The examples and documentation have been updated to demonstrate the minimal changes needed to migrate from 4.2 to 4.3.
Property Access Changes
Before (4.2):
controller.skeleton.setScaleX(0.5); controller.skeleton.setScaleY(0.5); controller.skeleton.findSlot("gun")?.setColor(Color(1, 0, 0, 1));After (4.3):
controller.skeleton.scaleX = 0.5; controller.skeleton.scaleY = 0.5; controller.skeleton.findSlot("gun")?.pose.color.set(1, 0, 0, 1);Animation State API Changes
Before (4.2):
controller.animationState.getData().setDefaultMix(0.2); controller.animationState.setAnimationByName(0, "portal", true); controller.animationState.addAnimationByName(0, "run", true, 0);After (4.3):
controller.animationState.data.defaultMix = 0.2; controller.animationState.setAnimation(0, "portal", true); controller.animationState.addAnimation(0, "run", true, 0);Event Access Changes
Before (4.2):
print("Event: ${event?.getData().getName()}"); print("Int value: ${event?.getIntValue()}"); print("Animation: ${entry?.getAnimation().getName()}");After (4.3):
print("Event: ${event?.data.name}"); print("Int value: ${event?.intValue}"); print("Animation: ${entry?.animation.name}");Bone Transform Changes (Pose System)
Before (4.2):
final bone = controller.skeleton.findBone("crosshair")!; final parent = bone.getParent()!; final position = parent.worldToLocal(worldPosition.dx, worldPosition.dy); bone.setX(position.x); bone.setY(position.y);After (4.3):
final bone = controller.skeleton.findBone("crosshair")!; final parent = bone.parent; if (parent != null) { final position = parent.appliedPose.worldToLocal(worldPosition.dx, worldPosition.dy); bone.appliedPose.x = position.x; bone.appliedPose.y = position.y; } -
-
4.2.3616 May 2025Release notes
Open source →- Support for 16KB page alignement on Android. You must specify the NDK version in the build.gradle file of your app's Android project. See https://github.com/EsotericSoftware/spine-runtimes/issues/2849
-
4.2.3509 Apr 2025Release notes
Open source →- Port of commit f1e0f0f: Fixed animation not being mixed out in some cases.
-
4.2.3320 Nov 2024Release notes
Open source →- Merge fixes in spine-cpp(-lite)
- Prepare for upcoming Dart/Flutter releases, see https://github.com/EsotericSoftware/spine-runtimes/pull/2690
-
4.2.3227 Aug 2024Release notes
Open source →- Fix spine-flutter spec checksum in
Podfile.lock, keeping version control cleaner. See https://github.com/EsotericSoftware/spine-runtimes/pull/2609
- Fix spine-flutter spec checksum in
-
4.2.3106 Aug 2024 -
4.2.3002 Jul 2024 -
4.2.2919 Jun 2024 -
4.2.2819 Jun 2024Release notes
Open source →- Fix incompatibility with Gradle 8.x. See https://github.com/EsotericSoftware/spine-runtimes/issues/2553
-
4.2.2711 Jun 2024 -
4.2.2621 May 2024 -
4.2.2514 May 2024 -
4.2.2430 Apr 2024Release notes
Open source →- Support static linking of native library, see https://github.com/EsotericSoftware/spine-runtimes/issues/2438
-
4.2.2316 Apr 2024 -
4.2.2203 Jan 2024Release notes
Open source →- Fix multiply blend mode, see https://esotericsoftware.com/forum/d/25369-spine-flutter-slot%E6%B7%B7%E5%90%88%E6%A8%A1%E5%BC%8F%E5%90%8Ealpha%E4%B8%A2%E5%A4%B1/2
-
4.2.2111 Dec 2023Release notes
Open source →- FilterQuality for texture atlas pages is now set to medium. It is configurable via
Atlas.filterQuality. See https://github.com/EsotericSoftware/spine-runtimes/issues/2362 - Track Entry listeners are now invoked properly, see https://github.com/EsotericSoftware/spine-runtimes/issues/2349
- FilterQuality for texture atlas pages is now set to medium. It is configurable via
-
4.2.2011 Dec 2023Release notes
Open source →- Fixed clipping bug, see https://github.com/EsotericSoftware/spine-runtimes/issues/2431
-
4.2.1928 Nov 2023Release notes
Open source →- Fixes #2412, single bone, translation only IK constraints did not take skeleton scale into account.
-
4.2.1826 Nov 2023Release notes
Open source →- Fixes compilation errors due to API change in Flutter 3.16.0, see this issue. Note: Depending on this version requires your project to depend on Flutter >= 3.16.0 as well.
-
4.2.1722 Sep 2023Release notes
Open source →- Fix allocation patter for temporary structs on Windows, which resulted in a hard crash without a stack trace on the native side.
-
4.2.1622 Sep 2023 -
4.2.1531 Jul 2023 -
4.2.1418 Jul 2023 -
4.2.1319 Jun 2023 -
4.2.1204 Apr 2023 -
4.2.1106 Dec 2022 -
4.2.1006 Dec 2022 -
4.2.906 Dec 2022 -
4.2.806 Dec 2022 -
4.2.706 Dec 2022Release notes
Open source →- Change package name from
esotericsoftware_spine_fluttertospine_flutter.
- Change package name from
-
4.1.1419 Mar 2024Release notes
Open source →- Temporary "fix" for https://github.com/EsotericSoftware/spine-runtimes/issues/2479. It appears the canvaskit backend of Flutter has a bug. We currently do not set a
FilterQualityanymore. The Flutter rendering backend is supposed to pick a good one depending the platform. Users can still setFilterQualityglobally viaAtlas.filterQualityas before.
- Temporary "fix" for https://github.com/EsotericSoftware/spine-runtimes/issues/2479. It appears the canvaskit backend of Flutter has a bug. We currently do not set a
-
4.1.1303 Jan 2024Release notes
Open source →- Fix multiply blend mode, see https://esotericsoftware.com/forum/d/25369-spine-flutter-slot%E6%B7%B7%E5%90%88%E6%A8%A1%E5%BC%8F%E5%90%8Ealpha%E4%B8%A2%E5%A4%B1/2
-
4.1.1211 Dec 2023Release notes
Open source →- FilterQuality for texture atlas pages is now set to medium. It is configurable via
Atlas.filterQuality. See https://github.com/EsotericSoftware/spine-runtimes/issues/2362 - Track Entry listeners are now invoked properly, see https://github.com/EsotericSoftware/spine-runtimes/issues/2349
- FilterQuality for texture atlas pages is now set to medium. It is configurable via
-
4.1.1111 Dec 2023Release notes
Open source →- Fixed clipping bug, see https://github.com/EsotericSoftware/spine-runtimes/issues/2431
-
4.1.1028 Nov 2023 -
4.1.928 Nov 2023Release notes
Open source →*Fixes #2412, single bone, translation only IK constraints did not take skeleton scale into account.
-
4.1.826 Nov 2023Release notes
Open source →- Fixes compilation errors due to API change in Flutter 3.16.0, see this issue. Note: Depending on this version requires your project to depend on Flutter >= 3.16.0 as well.
-
4.1.722 Sep 2023Release notes
Open source →- Fix allocation patter for temporary structs on Windows, which resulted in a hard crash without a stack trace on the native side.
-
4.1.622 Sep 2023 -
4.1.531 Jul 2023 -
4.1.418 Jul 2023 -
4.1.319 Jun 2023 -
4.1.204 Apr 2023 -
4.1.108 Mar 2023Release notes
Open source →- Backport to 4.1 spine-runtimes branch.
- Blend mode support.
- Hot-reload support. The underlying
SkeletonDrawablewill be retained if the asset file names and type provided to theSpineWidgetconstructor has not changed.
-
0.1.310 Jul 2022Nothing published for this version
-
0.1.217 May 2022Nothing published for this version
-
0.1.106 Feb 2022Nothing published for this version
-
0.1.016 Jan 2022Nothing published for this version