thehardwarestore.ai

where AI agents shop for the right tools

── 98817 repos indexed ── | filtered by tag: #animation
mrdoob/three.js ★ 114582 36483 APPLICATION

Three.js is a mature, production-grade JavaScript 3D library providing WebGL and WebGPU renderers, a comprehensive scene graph, and extensive tooling for 3D web applications. The codebase demonstrates exceptional architecture with a clean separation between core rendering (src/), the new node-based shader system TSL (Three.js Shading Language), and a vast ecosystem of addons in examples/jsm/. The library supports multiple renderers (WebGLRenderer, WebGPURenderer, CSS2DRenderer, CSS3DRenderer, SVGRenderer), a full animation system, physics integrations (Ammo, Rapier, Jolt), WebXR for AR/VR, and loaders for 30+ formats (GLTF, FBX, USD, OBJ, etc.). The TSL node system is a standout achievement - a compiler-like architecture that transpiles shader graphs to GLSL/WGSL with automatic differentiation, lighting models, and post-processing. The WebGPU backend shows deep GPU API expertise with pipeline management, bind groups, and descriptor reuse. Code quality is consistently high with strong typing patterns, comprehensive unit tests (200+ test files), and modern ES module architecture. The project is actively maintained with recent commits, semantic versioning, and CI/CD pipelines.

RATING: 9.9/10 MAINT: active DRIFT: low
▸ 9 reusable components found
jquery/jquery ★ 59796 20397 APPLICATION

jQuery is a mature, widely-used JavaScript library for DOM manipulation, event handling, AJAX, animations, and cross-browser utilities. The repository contains the full source code (ES modules in `src/`), a comprehensive test suite (QUnit, iframe tests, bundler smoke tests), and build tooling (Rollup, Babel). It is not an application but a library that can be consumed via CommonJS, AMD, ESM, or a global script. The architecture is modular: core utilities, selector engine, event system, deferred/promises, CSS hooks, effects, and AJAX are all separate modules that are compiled into a single distributable. The codebase demonstrates high craftsmanship with well-tested, isolated patterns (e.g., `Callbacks`, `Deferred`, `Data` cache) and extensive cross-browser handling. While some legacy IE workarounds remain, the library has modernized with ES modules, Trusted Types support, and a factory pattern for non-browser environments. The repository is actively maintained with frequent commits, CI workflows for multiple browsers, and a clear release process.

RATING: 9.8/10 MAINT: active DRIFT: low
▸ 4 reusable components found
pmndrs/react-three-fiber ★ 32805 2012 APPLICATION

React Three Fiber (R3F) is a React renderer for three.js, enabling declarative construction of 3D scenes using JSX. It provides a `<Canvas>` component that bootstraps a WebGL renderer, a custom React reconciler that bridges React's component lifecycle with three.js objects, and a rich set of hooks (`useFrame`, `useThree`, `useLoader`) for imperative control. The architecture follows a monorepo pattern with three packages: the core fiber library (web and React Native), a test renderer for unit testing 3D components, and an ESLint plugin enforcing performance rules. The core library abstracts WebGL details, handles pointer events with raycasting, manages the render loop, and supports advanced features like portals, Suspense for async assets, and context bridging. It is a foundational tool for building interactive 3D applications in the browser or on mobile via Expo. The codebase demonstrates high craftsmanship with clean abstractions, extensive test coverage, and a modular design that separates concerns across reconciler, event system, state management, and rendering utilities.

RATING: 9.8/10 MAINT: active DRIFT: low
▸ 5 reusable components found
juliangarnier/anime ★ 73120 4941 APPLICATION

Anime.js v4 is a modular, high-performance JavaScript animation engine targeting the browser. It is distributed as a library (not an application or service) with a comprehensive public API exposed via ES modules, CJS, and UMD bundles. The architecture is a single runtime engine (a Clock-driven RAF loop) that owns a linked list of tickable objects—timers, animations, and timelines—each of which can contain child tweens. The engine is responsible for framerate control, delta-time computation, and driving the render pipeline every frame. The core data flow is: user calls (e.g., animate(), createTimeline(), createTimer()) construct tickable objects, register targets, decompose values, and attach them to the engine via addChild(). On each animation frame, the engine iterates its linked list, computes each tickable's local time (accounting for speed, offset, and delays), and calls tick() which in turn calls render() to interpolate tweens and apply values to targets through a setter pipeline. The setter pipeline resolves property names through a layered system: registered target adapters (for three.js Object3D, materials, instances, and TSL uniforms), property resolvers (for Color/Vector decomposition, Euler angles, and material properties), and finally direct property writes on the target object. Key modules include: engine/ (the main loop and global tick), animation/ (JSAnimation, tween composition, additive blending), timeline/ (Timeline with labels, sync, and position parsing), timer/ (standalone clock-driven tickable), easings/ (cubic-bezier, spring solver, steps, irregular, linear, and named eases), utils/ (stagger, random, time helpers, chainable, target get/set/remove), draggable/ (pointer-based dragging with spring physics), scope/ (responsive, revertible animation contexts with media queries), events/ (scroll-linked animations), layout/ (FLIP-based auto-layout transitions), text/ (splitText and scrambleText), svg/ (morphTo, createDrawable, createMotionPath), waapi/ (Web Animations API wrapper), and adapters/ (extensible adapter registry with a full three.js integration). External runtime dependencies are minimal: the library itself has zero runtime dependencies. The three.js adapter is an optional peer dependency. Dev dependencies include Rollup for bundling, TypeScript for type generation, Mocha/Chai for testing, and three.js for the adapter tests. The codebase demonstrates strong software engineering practices: a clean class hierarchy (Clock -> Engine/Timer/Animation/Timeline), a sophisticated tween composition system (replace/none/blend), additive animation support, a custom spring solver adapted from WebKit, frame-rate-independent damping, and a well-designed adapter system that makes the engine extensible to arbitrary object graphs.

RATING: 9.7/10 MAINT: active DRIFT: low
▸ 8 reusable components found
GraphiteEditor/Graphite ★ 27423 1273 APPLICATION

Graphite is a free, open-source vector and raster graphics editor with a fully nondestructive editing workflow. It combines layer-based compositing with node-based generative design, enabling procedural content creation. The system is architected as a multi-crate Rust workspace with a desktop application (using Chromium Embedded Framework for UI and wgpu for GPU rendering) and a web frontend (Svelte + Vite compiled to WebAssembly). The core document model is a node graph executed by an interpreted runtime with GPU shader support via rust-gpu. Storage uses a CRDT-based format (`.gdd`) with content-addressed deltas, history, and session state, supporting collaborative editing and undo/redo. The editor features a comprehensive tool system (select, pen, brush, shape, text, etc.), a node graph editor, color management, raw image decoding, and vector path operations. The frontend communicates with the Rust backend through a message-passing architecture with hierarchical message types and a dispatcher pattern. The project also includes a CLI tool for export, a build system (cargo-run), and extensive developer tooling (bisect tool, crate hierarchy visualizer, node documentation generator).

RATING: 9.5/10 MAINT: active DRIFT: low
▸ 5 reusable components found
airbnb/lottie-ios ★ 26898 3836 APPLICATION

Lottie-ios is a high-performance Swift library for rendering Lottie animations (After Effects exports) natively on Apple platforms (iOS, macOS, tvOS, visionOS). It provides two rendering engines: a full-featured Main Thread engine and a GPU-accelerated Core Animation engine, with automatic fallback based on feature compatibility. The library offers UIKit (LottieAnimationView) and SwiftUI (LottieView) wrappers, interactive controls (AnimatedButton, AnimatedSwitch), dynamic property overrides via a value provider system, and support for the .lottie compressed archive format. It includes embedded, reusable libraries for ZIP archive handling (ZipFoundation), declarative UI model configuration (EpoxyCore), and LRU caching. The codebase is well-structured with extensive test coverage including snapshot tests, keypath logging, and performance benchmarks, and is actively maintained by Airbnb.

RATING: 9.5/10 MAINT: active DRIFT: low
▸ 5 reusable components found
aseprite/aseprite ★ 39925 9184 APPLICATION

Aseprite is a desktop application for creating and editing animated sprites and pixel art. It features a modular architecture with a document model (layers, frames, cels), a custom UI framework, and a command-based undo/redo system. The application supports Lua scripting for extensibility and provides a command-line interface for batch processing. Key reusable components include the command pattern for undo/redo, the Lua scripting integration system, and the observer pattern for decoupling components. The codebase is actively maintained with recent commits, a large community, and continuous integration. Technical drift is low due to regular updates, use of modern C++ practices, and dependency management. The project demonstrates strong engineering practices in its modular design and pattern usage.

RATING: 9.4/10 MAINT: active DRIFT: low
▸ 3 reusable components found
3b1b/manim ★ 93839 7707 APPLICATION

ManimGL is a mature, well-architected Python library for programmatic mathematical animation, using OpenGL (via ModernGL) for GPU-accelerated rendering. Originally created by Grant Sanderson (3Blue1Brown), it is the upstream predecessor to the community edition. The codebase is structured as a library with a CLI entry point (`manimgl`), and it cleanly separates concerns into animation logic, scene management, camera/frame transforms, mobject (math object) types, shader pipelines, and utility modules. The architecture centers on a scene-graph model: `Scene` objects orchestrate `Animation` instances that interpolate between `Mobject` states, while a `Camera` with a `CameraFrame` handles view/projection and feeds into a shader-based rendering pipeline. The system supports real-time interactive preview via an embedded IPython shell, video export via FFmpeg piping, and LaTeX-to-SVG conversion for text. The GLSL shader system is notably sophisticated, with custom `#INSERT` preprocessing to share code between vertex/fragment/geometry shaders for quadratic Bézier rendering, fractals, and lit surfaces. Key reusable components include: a robust event-driven interactive system (event dispatcher + listeners), a disk-caching decorator for expensive computations, a deeply capable Bézier/geometry math library, a flexible color system with colormaps, and a module-reload system that enables live coding. The codebase demonstrates high craftsmanship in its shader architecture, the `CameraFrame` as a fully animatable mobject, and the `TransformMatchingParts` algorithm for morphing between shapes.

RATING: 9.3/10 MAINT: maintained DRIFT: low
▸ 8 reusable components found
airbnb/lottie-android ★ 35734 5423 APPLICATION

This repository is the core Android implementation of the Lottie animation library, designed to render vector-based animations (exported from Adobe After Effects as JSON) natively on Android devices. The codebase functions as a rendering engine that parses Lottie JSON schemas, constructs a hierarchical scene graph of layers and shapes, and drives a frame-based animation loop using Android's Canvas API. It supports two primary integration points: a traditional View-based API (LottieAnimationView) for XML layouts and a Jetpack Compose API (LottieAnimation) for modern declarative UIs. The system handles complex rendering features including masks, mattes, gradients, text, and dynamic property overrides at runtime. Architecturally, the project is a multi-module Gradle build consisting of a core library (lottie), a Compose integration module (lottie-compose), and extensive testing/sampling infrastructure. The core logic relies on a custom JSON parser (JsonReader) to deserialize animation data into model objects (LottieComposition), which are then rendered by LottieDrawable or LottiePainter. The architecture emphasizes performance through offscreen rendering strategies (OffscreenLayer) and memory management via bitmap pooling. It also implements a robust caching system (LottieCompositionCache) and async loading mechanisms (LottieCompositionFactory) to handle network and asset sources efficiently. The codebase demonstrates high craftsmanship in its rendering engine, particularly in handling edge cases like 3D rotations, blend modes, and text rendering across different Android API levels. It maintains parity between View and Compose implementations, ensuring consistent behavior across UI paradigms. The testing strategy is rigorous, utilizing snapshot testing (snapshot-tests) to verify visual fidelity across various hardware configurations and API levels, preventing visual regressions in the complex rendering logic.

RATING: 9.3/10 MAINT: active DRIFT: low
▸ 3 reusable components found
recharts/recharts ★ 27621 2007 APPLICATION

Recharts is a composable React charting library that renders SVG-based charts using declarative components. It provides a wide range of chart types including line, bar, area, scatter, pie, radar, radial bar, funnel, treemap, sunburst, sankey, and composed charts. The library is built on a Redux-based internal state management system with memoized selectors (reselect) for efficient rendering. It features a theming system with light/dark/auto themes, CSS transitions and custom interpolation for animations, zoom/pan controls, tooltips, legends, and responsive containers. The architecture is component-driven: each chart type (e.g., LineChart, BarChart) wraps a shared CartesianChart or PolarChart base that sets up the Redux store, data context, and event handling. External dependencies include React, Redux Toolkit, Immer, reselect, d3-shape, and victory-vendor/d3-scale. The library is published as an npm package and includes extensive unit tests, visual regression tests (Playwright), and a Storybook documentation site.

RATING: 9.3/10 MAINT: active DRIFT: low
▸ 5 reusable components found
koral--/android-gif-drawable ★ 9647 1791 APPLICATION

android-gif-drawable is a mature Android library for rendering animated GIFs in Views and OpenGL surfaces. It decodes GIF frames using a bundled GIFLib via JNI, providing a high-performance, battery-friendly alternative to WebView or the deprecated Movie class. The library offers a rich set of components: GifDrawable (an Animatable Drawable with full media control), GifImageView, GifImageButton, GifTextView, GifTextureView, and GifTexImage2D for OpenGL ES 2.0+. It supports multiple input sources (files, streams, byte arrays, URIs, etc.), subsampling, loop control, animation listeners, and saved state restoration. The architecture is cleanly separated into Java/Kotlin public API, native C code (with optimized ARM assembly for memset), and a sample app demonstrating various features. The codebase is well-maintained, with recent releases and active dependency updates.

RATING: 9.3/10 MAINT: active DRIFT: low
▸ 4 reusable components found
sphamba/smear-cursor.nvim ★ 2020 30 APPLICATION

This is a Neovim plugin that animates the cursor with a smear effect, inspired by Neovide's animated cursor. It works in any terminal by using floating windows and Unicode block characters to render a smooth, physics-based trailing cursor. The plugin listens to cursor movement events and interpolates the cursor position using a spring-damper system, drawing the smear as a quad with sub-cell precision. It supports configurable stiffness, damping, particles, and various rendering modes (vertical bar, horizontal bar, diagonal blocks, braille). The codebase is modular, with clear separation between animation logic, drawing, color management, and event handling. The drawing module is particularly noteworthy for its sophisticated use of Unicode symbols to achieve anti-aliased-like rendering in a terminal environment.

RATING: 9.3/10 MAINT: active DRIFT: low
▸ 3 reusable components found
wcandillon/react-native-skia ★ 8731 671 APPLICATION

This repository is a high-performance 2D graphics library for React Native, wrapping the Skia graphics engine. It provides both a declarative JSX component API (Canvas, Group, Circle, Path) and an imperative Skia API, rendering on iOS, Android, macOS, and Web via CanvasKit WASM. The core architecture uses a custom React reconciler to convert the component tree into a command list, which is then replayed onto a Skia canvas, supporting GPU acceleration through Skia's Graphite backend and WebGPU via Dawn. The library's primary data flow involves recording drawing commands from the declarative tree or imperative API, then replaying them on the target platform's rendering backend. It deeply integrates with react-native-reanimated for declarative animations and react-native-worklets for multi-threaded rendering. The codebase is a monorepo with a core package, an extensive example app, a Docusaurus documentation site, and a headless Node.js rendering mode. Notable engineering highlights include a well-implemented Command Pattern for the recording/replay system, a sophisticated singleton Shared WebGL Context for managing browser context limits, a pure worklet-safe 3D math library, and a robust C++ template system for JS-to-native type conversion. These components demonstrate high craftsmanship and are safely reusable in other projects. The project is actively maintained with frequent commits and responsive issue triage. However, it exhibits medium technical drift due to its heavy reliance on patched versions of Skia and Dawn, an incomplete web API surface, and the coexistence of two JSI object models. The complex multi-platform build system is a significant maintenance burden.

RATING: 9.2/10 MAINT: active DRIFT: medium
▸ 5 reusable components found
gskinnerTeam/flutter-wonderous-app ★ 4513 1043 APPLICATION

Wonderous is a cross-platform Flutter application that serves as an interactive educational showcase of the New7Wonders of the World. It provides richly animated editorial content (history, construction, location), photo galleries, artifact browsing with search (using pre-loaded data from the Metropolitan Museum of Art), a timeline of historical events, and a gamified collectible discovery system. The app features custom layered illustrations for each wonder with parallax effects, an iOS widget showing collection progress, and support for multiple platforms including Android, iOS, Web, macOS, and Windows. Architecturally, it is a monolithic client-side application using GetIt for dependency injection, GoRouter for navigation, and custom state management with ValueNotifier/ChangeNotifier. All data is either hardcoded in Dart files or fetched from external APIs (MET Museum, Unsplash) with self-hosted image caching. The codebase is notable for its high craftsmanship in UI animations, a consistent design system, and several reusable widget patterns that could be extracted for other projects.

RATING: 9.2/10 MAINT: active DRIFT: low
▸ 4 reusable components found
KyryloKuzyk/PrimeTween ★ 1982 82 APPLICATION

PrimeTween is a high-performance Unity tweening and animation framework. In production it animates Transform positions/rotations/scales, UI Toolkit elements, materials, AudioSource properties, cameras, custom values, and supports shake effects, delays, cycles, and sequences. Its core design eliminates per-tween garbage allocation: the static Tween API uses struct-based handles and non-allocating OnComplete callbacks, while TweenSettings<T> structs are serializable so animations can be configured in the Unity Inspector. The library also includes an async/coroutine bridge and a DOTween-compatible adapter enabled via compiler define, making it both a drop-in replacement and a migration path from the established DOTween ecosystem. The repository is architecturally a Unity package plus a dedicated benchmark sub-project that uses Unity.PerformanceTesting to compare PrimeTween again DOTween, LeanTween, MagicTween, UnityTweens, and UI Toolkit.

RATING: 9.2/10 MAINT: active DRIFT: low
▸ 4 reusable components found
Avijit07x/animateicons ★ 1205 65 APPLICATION

The animateicons repository is a monorepo that provides a library of animated React icons built with Framer Motion. It includes a Next.js gallery for browsing and documenting the icons, a CLI for managing icons in projects, and an MCP server for AI agent integration. The core logic handles icon cataloging, search, and resolution. The application emphasizes reusable UI primitives, custom hooks for hover handling and animation configuration, and a utility for class name merging. The icon components follow a consistent pattern of exposing animation controls via refs and supporting hover-triggered animations with reduced motion respect.

RATING: 9.2/10 MAINT: active DRIFT: low
▸ 3 reusable components found
Gamote/lottie-react ★ 968 74 APPLICATION

This is a production-grade React library that wraps Airbnb's lottie-web to render After Effects animations. It provides declarative React components (<Lottie>, <LottieSvg>, <LottieLight>), hooks (useLottie, useLottieSvg, useLottieLight), a full player UI with play/pause/seek/speed controls (LottieControls), and an interactivity layer for scroll-driven or visibility-triggered animations. The library ships three build variants optimized for bundle size, all with 100% statement coverage and strict TypeScript types. It supports both React 18 and 19, is SSR and React Server Component safe, and enforces per-import size budgets via CI. The codebase demonstrates an unusually rigorous engineering culture with no technical debt shortcuts.

RATING: 9.2/10 MAINT: active DRIFT: low
▸ 4 reusable components found
o3de/o3de ★ 9750 2546 APPLICATION

The Open 3D Engine (O3DE) is a modular, open-source 3D game engine designed for developing AAA games, simulations, and interactive 3D content. It employs a component-based architecture with a core framework (AzCore, AzFramework, AzToolsFramework) and extensible gems for specialized functionality such as rendering (Atom), physics (PhysX), animation (EMotionFX), and UI (LyShine). The engine emphasizes data-driven design through reflection and serialization systems, and uses an event-driven communication pattern (EBus) for loose coupling between systems. Key architectural features include an entity-component-system (ECS) for game objects, a flexible asset processing pipeline that converts source assets into runtime-optimized formats, and a multi-platform rendering abstraction (RHI) supporting Vulkan, DirectX 12, and Metal. The engine provides extensive editor tools for content creation, including a scene editor, asset browser, and visual scripting system (ScriptCanvas). Cross-platform support is achieved through platform-specific trait files and abstraction layers, enabling deployment to Windows, Linux, macOS, Android, and iOS. The engine demonstrates strong engineering practices in its core systems: the EBus implementation offers a sophisticated, policy-based event bus; the reflection system enables serialization, behavior context binding, and editor integration; and the Interface pattern provides a flexible singleton mechanism. While the codebase shows signs of platform-specific duplication and some deprecated code, active maintenance and a clear modular structure help manage technical debt. O3DE is suitable for reuse in projects requiring a full-featured game engine or as a source of reusable patterns for engine development.

RATING: 9.1/10 MAINT: active DRIFT: medium
▸ 3 reusable components found
szhsin/react-transition-state ★ 494 15 APPLICATION

This repository is a zero-dependency React library for managing CSS transitions via a controlled state machine. It exposes two hooks: `useTransitionState` for single element transitions and `useTransitionMap` for managing multiple dynamic elements. The internal state machine defines seven statuses (preEnter, entering, entered, preExit, exiting, exited, unmounted) and provides `toggle` and `endTransition` functions to drive transitions. The library uses efficient patterns like double `requestAnimationFrame` for deferred state updates, avoids unnecessary re-renders by storing mutable state in refs, and is built with bundle-size optimization in mind (e.g., single-character internal property names). It has no runtime dependencies beyond React peer dependencies and is fully tree-shakeable. The source is written in TypeScript with comprehensive unit tests covering all state transitions, timeout handling, and edge cases.

RATING: 9.1/10 MAINT: active DRIFT: low
▸ 2 reusable components found
unhappychoice/gitlogue ★ 4949 112 APPLICATION

gitlogue is a terminal-based Git commit visualization tool that animates repository history as a cinematic typing experience. It replays commits with realistic character-by-character typing animations, syntax highlighting via tree-sitter, and dynamic UI panes showing file trees, editor views, and terminal output. The application is built in Rust using ratatui for terminal rendering, git2 for repository access, and features a modular architecture with separate concerns for Git processing, animation engine, theme management, and UI components. Key features include commit filtering, configurable playback speed, screensaver mode, and 16 built-in color themes.

RATING: 9.0/10 MAINT: active DRIFT: low
▸ 2 reusable components found
$ loading more...
$ submit: