Skip to content

andrestubbe/FastAnimation

Repository files navigation

FastAnimation — Ultra-Fast Native Animation Engine for Java [v0.1.0]

A high-performance animation and timeline engine for the FastJava ecosystem. Built for zero-latency UI transitions and complex motion graphics.

Status Java Maven License: MIT JitPack


Table of Contents

Features

  • ⚡ High-Precision Timing: Sub-millisecond animation updates using a dedicated engine thread.
  • 📈 Timeline Management: Complex keyframe sequences and concurrent track orchestration.
  • 📦 Zero GC Pressure: Reusable animation instances and optimized data structures.
  • 🖇️ Ecosystem Ready: Seamlessly integrates with FastTween for interpolation.

Quick Start

# Clone the repository
git clone https://github.com/andrestubbe/FastAnimation.git
cd FastAnimation

# Build the project
.\compile.bat

# Run the Performance Showcase (Battle of the Timers)
.\run-demo.bat

Installation

Option 1: Maven (Recommended)

Add the JitPack repository and the dependencies to your pom.xml:

<repositories>
    <repository>
        <id>jitpack.io</id>
        <url>https://jitpack.io</url>
    </repository>
</repositories>

<dependencies>
    <!-- FastAnimation Library -->
    <dependency>
        <groupId>io.github.andrestubbe</groupId>
        <artifactId>fastanimation</artifactId>
        <version>0.1.0</version>
    </dependency>

    <!-- Dependencies -->
    <dependency>
        <groupId>com.github.andrestubbe</groupId>
        <artifactId>fasttween</artifactId>
        <version>0.1.0</version>
    </dependency>

    <!-- FastCore (Required Native Loader) -->
    <dependency>
        <groupId>com.github.andrestubbe</groupId>
        <artifactId>fastcore</artifactId>
        <version>v1.0.0</version>
    </dependency>
</dependencies>

Option 2: Gradle (via JitPack)

repositories {
    maven { url 'https://jitpack.io' }
}

dependencies {
    implementation 'io.github.andrestubbe:fastanimation:0.1.0'
    implementation 'com.github.andrestubbe:fasttween:0.1.0'
    implementation 'com.github.andrestubbe:fastcore:v1.0.0'
}

Option 3: Direct Download (No Build Tool)

Download the latest JARs directly to add them to your classpath:

  1. 📦 fastanimation-v0.1.0.jar (The Core Library)
  2. ⚙️ fastcore-v1.0.0.jar (The Mandatory Native Loader)

Important

All JARs must be in your classpath for the native JNI calls to function correctly.

Running the Demo

We've included a comprehensive performance benchmark to compare different timing engines:

  1. Run compile.bat to build the engine.
  2. Run run-demo.bat to launch the Battle of the Timers.

Build from Source

  • JDK 17+
  • Maven 3.9+
  • Windows 10/11

See COMPILE.md for detailed build instructions.

Roadmap

  • Battle of the Timers: Implementation of the high-precision backend comparison.
  • Native Multimedia Ticker: JNI-based timeSetEvent integration for Windows.
  • DirectX VSync Provider: Syncing animation frames with the monitor refresh rate via FastDWM.

See ROADMAP.md for detailed implementation plans.

License

MIT License — See LICENSE for details.


Part of the FastJava EcosystemMaking the JVM faster.

About

Timeline orchestration for Java. Built on FastTween with sequences, parallel execution, loops, and keyframes.

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages