Skip to content
This repository was archived by the owner on Jul 14, 2026. It is now read-only.
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
35 commits
Select commit Hold shift + click to select a range
a3e2d4b
Render Motion's Animated Logo... with Motion!
b3ll Feb 1, 2023
f3c8af8
Fix Broken README Link
b3ll Feb 1, 2023
e07b724
Fix DocC Generation
b3ll Feb 1, 2023
a9cc8d6
Remove Erroneous Submodules for MotionMovieMaker
b3ll Feb 1, 2023
0c8420b
Fix resolvesUponReachingToValue to Actually Work
b3ll Feb 4, 2023
7d1bf0c
Performance Improvement for resolvesUponReachingToValue
b3ll Feb 4, 2023
3b12eaa
Fix Actions
b3ll Feb 4, 2023
fba4d70
Fix Logo in Documentation
b3ll Feb 4, 2023
cc4dc8d
Fix Typo in README.md
b3ll Feb 7, 2023
447ec29
Simplify EquatableEnough + SIMDRepresentable
b3ll Feb 5, 2023
62c3a31
Support toValue on DecayAnimation; Add roundingFactor
b3ll Apr 15, 2023
50fd338
Update Benchmark to Compile for Release
b3ll Apr 15, 2023
031d4c8
Remove Some Unnecessary inout Invocations for Functions
b3ll Apr 15, 2023
b4e9b51
Make 1000 Multipliers Consistent
b3ll Apr 15, 2023
fcf51c3
Merge pull request #29 from b3ll/dev/b3ll/scroll_toValue
b3ll Apr 15, 2023
9a6f110
Fix roundingFactor to Use toNearestOrAwayFromZero
b3ll Apr 19, 2023
de3a2e4
Pause animation driver if necessary when unobserving animations
adamastern Jul 5, 2023
0df91f6
Merge pull request #30 from adamastern/adam/pauseDisplayLinkOnUnobserve
b3ll Jul 17, 2023
932be5c
Introduce AnimationEnvironment to address #18
insidegui Jul 27, 2023
566d4d4
Ensure environment is not retained by Motion
insidegui Jul 27, 2023
69e639c
Ensure animation re-registers with animator if it changes
insidegui Jul 27, 2023
763ccf1
Added environment argument to convenience initializers in SpringAnima…
insidegui Jul 27, 2023
320b44f
Merge pull request #31 from insidegui/animation-environment
b3ll Jul 28, 2023
3bb3e02
Bridge approximatelyEqual to Swift Numerics' Implementation
b3ll Sep 4, 2023
fe99822
Fixed a crash on tvOS if the device’s refresh rate was set below 60fps.
rosskimes Jan 4, 2024
c676667
Merge pull request #32 from rosskimes/main
b3ll Jan 23, 2024
533e148
Initial visionOS Support
b3ll Feb 3, 2024
8216a58
Update create-release.yml
b3ll Apr 9, 2024
83784e7
Update create-release.yml
b3ll Apr 9, 2024
c054ce3
Update create-release.yml
b3ll Apr 10, 2024
08b756f
Add Script for Building xcframework
b3ll Apr 10, 2024
d7a781a
Select Xcode Version
b3ll Apr 10, 2024
d0439dd
Use Arm64 Image for GitHub Actions
b3ll Apr 10, 2024
c9a57f9
Update README.md
b3ll Jun 3, 2024
817847d
Skip spring integration on non-finite or non-positive frame durations
Jul 2, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 4 additions & 2 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -7,5 +7,7 @@ Pods
Benchmark/Packages
Benchmark/.build
Benchmark/.swiftpm
Resources/MotionLogo-Dark.mov
Resources/MotionLogo-Light.mov
Resources/deprecated/MotionLogo-Dark.mov
Resources/deprecated/MotionLogo-Light.mov
build
Motion.zip
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@
</Testables>
</TestAction>
<LaunchAction
buildConfiguration = "Debug"
buildConfiguration = "Release"
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
launchStyle = "0"
Expand Down
11 changes: 10 additions & 1 deletion Package.resolved

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

3 changes: 2 additions & 1 deletion Package.swift
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// swift-tools-version:5.6
// swift-tools-version:5.9
// The swift-tools-version declares the minimum version of Swift required to build this package.

import PackageDescription
Expand All @@ -9,6 +9,7 @@ let package = Package(
.iOS(.v13),
.tvOS(.v13),
.macOS(.v10_14),
.visionOS(.v1)
],
products: [
// Products define the executables and libraries a package produces, and make them visible to other packages.
Expand Down
6 changes: 3 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ Motion is an animation engine for gesturally-driven user interfaces, animations,
- [Spring Animation](#spring-animation)
- [Decay Animation](#decay-animation)
- [Basic Animation](#basic-animation)
- SwiftUI Support
- [SwiftUI Support](#swiftui-support)
- [Motion vs. Core Animation](#motion-vs-core-animation)
- [Interruptibility](#interruptibility)
- [SIMD](#simd)
Expand Down Expand Up @@ -121,7 +121,7 @@ Checkout the example project's [SwiftUI Demo](https://github.com/b3ll/Motion/blo

# Motion vs. Core Animation

Motion is not designed to be a general-purpose replacement for Core Animation. Core Animation animations are run in a special way, in another process, outside of your app and are designed to be smooth even when the main thread is being heavily used. Motion on the other head is all run in-process (like a game engine), and using it liberally without considering heavy stack traces, will result in poor performance and dropped frames. Motion itself is not slow (in fact it's really [fast](#performance)!), but calling methods to change view / layer properties or change layout at 60 FPS (or more) can be really taxing if not done carefully.
Motion is not designed to be a general-purpose replacement for Core Animation. Core Animation animations are run in a special way, in another process, outside of your app and are designed to be smooth even when the main thread is being heavily used. Motion on the other hand is all run in-process (like a game engine), and using it liberally without considering heavy stack traces, will result in poor performance and dropped frames. Motion itself is not slow (in fact it's really [fast](#performance)!), but calling methods to change view / layer properties or change layout at 60 FPS (or more) can be really taxing if not done carefully.

**tl;dr**: Treat Motion animations as you would a `UIScrollView` (since scrolling animations behave the same way). If you have too much going on in your `UIScrollView` it'll lag when it scrolls; the same applies to Motion.

Expand Down Expand Up @@ -321,4 +321,4 @@ If you have any questions, or want to learn more, feel free to ask me anything!

# Contact Info

Feel free to follow me on twitter: [@b3ll](https://www.twitter.com/b3ll)!
Feel free to follow me on Mastodon: [@b3ll](https://www.mastodon.social/@b3ll)!
Binary file modified Resources/MotionLogo-Dark-Cropped.gif
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified Resources/MotionLogo-Dark.gif
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added Resources/MotionLogo-Dark.mp4
Binary file not shown.
Binary file modified Resources/MotionLogo-Light-Cropped.gif
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified Resources/MotionLogo-Light.gif
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added Resources/MotionLogo-Light.mp4
Binary file not shown.
Loading
Loading