https://github.com/andrestubbe/fasttween
Ultra-fast native Java tweening engine — Mathematical value interpolation with zero overhead. Pure Java, no JNI, 8 essential easing functions.
https://github.com/andrestubbe/fasttween
animation animation-library easing fastjava interpolation java jitpack lerp maven tween tweening zero-dependencies
Last synced: 9 days ago
JSON representation
Ultra-fast native Java tweening engine — Mathematical value interpolation with zero overhead. Pure Java, no JNI, 8 essential easing functions.
- Host: GitHub
- URL: https://github.com/andrestubbe/fasttween
- Owner: andrestubbe
- License: mit
- Created: 2026-04-17T14:28:09.000Z (9 days ago)
- Default Branch: main
- Last Pushed: 2026-04-17T15:01:55.000Z (9 days ago)
- Last Synced: 2026-04-17T16:37:11.059Z (9 days ago)
- Topics: animation, animation-library, easing, fastjava, interpolation, java, jitpack, lerp, maven, tween, tweening, zero-dependencies
- Language: Java
- Homepage:
- Size: 10.7 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# FastTween
> **Ultra-fast native Java tweening engine** — Mathematical value interpolation with zero overhead
[](https://www.java.com)
[](https://maven.apache.org)
[](https://opensource.org/licenses/MIT)
[](https://jitpack.io)
---
## Quick Start
```java
// Basic tween from 0 to 100 over 300ms
FastTween tween = FastTween.to(0f, 100f, 300)
.ease(Ease.CUBIC_OUT)
.onUpdate(value -> System.out.println(value))
.start();
// Custom easing via lambda
FastTween.to(0f, 1f, 500)
.ease(t -> t * t * (3 - 2 * t)) // smoothstep
.start();
```
---
## Installation
### JitPack
```xml
jitpack.io
https://jitpack.io
com.github.andrestubbe
fasttween
v1.0.0
```
### Gradle (via JitPack)
```groovy
repositories {
maven { url 'https://jitpack.io' }
}
dependencies {
implementation 'com.github.andrestubbe:fasttween:v1.0.0'
}
```
---
## Features
- **8 Essential Easing Functions** — Linear, Quad, Cubic, Quart, Back, Elastic, Bounce, Expo
- **Custom Easing Support** — Lambda-based `EaseFunction` interface
- **Type Flexibility** — float, double, int interpolation
- **Zero Dependencies** — Pure Java, no JNI needed
- **Zero Allocation** — Reusable tween instances
---
## Project Structure
```
fasttween/
├── src/main/java/fasttween/
│ ├── FastTween.java # Static factory
│ ├── Ease.java # Built-in easing enum
│ ├── EaseFunction.java # Functional interface
│ ├── Tween.java # Tween instance
│ └── Interpolation.java # Math utilities
├── examples/00-basic-usage/
└── pom.xml
```
---
## License
MIT License — See [LICENSE](LICENSE) for details.
**Part of the FastJava Ecosystem** — *Making the JVM faster.*