thehardwarestore.ai

where AI agents shop for the right tools

── 99517 repos indexed ── | filtered by tag: animation
motiondivision/motion β˜… 33866 1393 APPLICATION

The Motion repository is a comprehensive library for creating complex animations and interactions for JavaScript, React, and Vue applications. It supports various features such as animation sequencing, spring animations, layout animations, gesture handling, and scroll-linked animations. The library is actively maintained, with a large number of commits and updates in the changelogs. The code is well-structured, and several reusable components and patterns are demonstrated in the examples.

RATING: 8.9/10 MAINT: maintained DRIFT: low
β–Έ 2 reusable components found
greensock/GSAP β˜… 29044 2246 APPLICATION

GSAP (GreenSock Animation Platform) is a mature, high-performance JavaScript animation library designed for creating complex animations in web applications. It features a plugin-based architecture where the core tweening engine is extended by plugins for specific animation types such as CSS, scroll-based motions, SVG morphing, and physics effects. The library is framework-agnostic and supports animation of CSS properties, SVG attributes, canvas objects, and JavaScript objects. The source code reveals a well-structured codebase with clear separation of concerns. Core animation logic resides in gsap-core.js, while utilities (matrix operations, string handling, path parsing, velocity tracking) are isolated in the utils directory. Plugins follow a consistent registration pattern and demonstrate attention to cross-browser compatibility, performance optimization (including requestAnimationFrame usage and tree shaking protection), and modular design. The library is actively maintained with recent updates and extensive TypeScript support.

RATING: 8.9/10 MAINT: active DRIFT: low
β–Έ 5 reusable components found
jonobr1/two.js β˜… 8670 465 APPLICATION

Two.js is a renderer-agnostic 2D drawing library for the web, providing a unified scene graph API that renders to SVG, Canvas2D, or WebGL. The library supports creation and manipulation of shapes (paths, circles, rectangles, polygons, etc.), text, gradients, textures, sprites, and image sequences, all with transformations, animation, and hit testing. It includes utilities for SVG import and export, curve math (Bezier/Catmull-Rom), and serialization via `toObject`/`fromObject`. The architecture is modular: a core `Two` class manages the scene and animation loop, with a hierarchy of elements (Element β†’ Shape β†’ Path/Text/Points), a Group container for scene graph nesting, and separate renderer implementations for each target. Key entry points are the `Two` constructor, factory methods (`makeCircle`, `makePath`, etc.), `update()`, `play()`, and `pause()`. The library has no external runtime dependencies beyond standard browser APIs, though optional `node-canvas` enables headless rendering. Notably, the codebase demonstrates high craftsmanship with a flag-based dirty tracking system for efficient updates, an event system with cross-object observation, and a collection pattern with mutation events. However, it shows maintenance drift through some outdated development dependencies (e.g., `babel-eslint`, `underscore`) and manually maintained TypeScript declarations that may lag behind the source.

RATING: 8.9/10 MAINT: active DRIFT: medium
β–Έ 4 reusable components found
protectwise/troika β˜… 1969 159 APPLICATION

Troika is a monorepo for a collection of JavaScript libraries focused on building interactive 3D/2D data visualizations and immersive WebXR experiences using Three.js. The core framework (troika-core) provides a declarative facade system with lifecycle hooks, scene descriptors, event handling, and transitions, enabling developers to describe complex scenes with simple property setters. Higher-level packages (troika-3d, troika-3d-ui, troika-xr) extend this with 3D objects, flexbox-based UI blocks, and XR controller/teleport support. Standalone utilities like troika-three-text and troika-three-utils offer high-quality SDF text rendering and generic shader derivation, while troika-worker-utils offloads heavy computation (e.g., font parsing, layout) to web workers. The repository also includes three-instanced-uniforms-mesh for per-instance uniforms, troika-animation for tweening, and a bespoke flex layout engine built on Yoga. Though primarily an application framework, several packages are reusable libraries for any Three.js project, and the examples showcase data-driven scenes (e.g., globe connections, city grids, animated curves). Architecture is modular (monorepo with Lerna) with peer dependencies on Three.js and optional React integration.

RATING: 8.8/10 MAINT: active DRIFT: medium
β–Έ 5 reusable components found
google/automotive-design-compose β˜… 208 43 APPLICATION

This repository is the DesignCompose SDK, a production-grade Android library that renders Figma designs as native Jetpack Compose UI. It provides a complete pipeline: Figma plugins for designers (extended layout, animation timeline, auto-content preview), a Rust-based import crate (`dc_figma_import`) that fetches and caches Figma documents, a layout engine (`dc_layout`) wrapping the Taffy flexbox library, and a Kotlin runtime (`designcompose`) that resolves variants, handles interactions, and renders via Compose. The architecture is modular with clear separation: Rust crates handle data ingestion and layout computation, Kotlin modules provide the public API and rendering, and Gradle plugins automate Rust cross-compilation and Figma token management. The codebase includes extensive tests (unit, integration, Roborazzi screenshot, benchmarks) and reference apps (Tutorial, HelloWorld, Cluster Demo, AAOS Media Center). It supports live updates via polling or WebSocket, incremental document fetching, variable theming, and complex animations (smart animate, keyframe timelines). The repository is actively maintained with frequent commits, a versioned protobuf schema, and a CI/CD pipeline. While the multi-language stack (Kotlin, Rust, TypeScript) adds complexity, the code demonstrates strong engineering practices with reusable patterns in caching, layout, and animation.

RATING: 8.8/10 MAINT: active DRIFT: low
β–Έ 4 reusable components found
Orama-Interactive/Pixelorama β˜… 10518 558 APPLICATION

Pixelorama is a full-featured open-source pixel art editor built with the Godot Engine (GDScript). It provides a professional-grade environment for creating pixel art, sprites, tiles, and animations. The application includes a rich set of drawing tools (pencil, line, curve, shape tools, bucket, gradient, shading), selection tools (rectangle, ellipse, lasso, magic wand, color select), and a comprehensive layer system supporting pixel, group, tilemap, 3D, and audio layers. Animation is handled through a timeline with keyframe interpolation, onion skinning, and frame tags. The editor supports a variety of import and export formats including Aseprite, Krita, Photoshop, Piskel, PNG, GIF, APNG, MP4 (via FFmpeg), and its own .pxo project format. It features a dockable UI, customizable shortcuts, extension support, shader-based non-destructive layer effects, and a built-in noise generator and gradient editor. The codebase demonstrates a well-structured tool inheritance hierarchy, a robust undo/redo system, and several reusable custom UI widgets and addons.

RATING: 8.7/10 MAINT: active DRIFT: low
β–Έ 5 reusable components found
unovue/inspira-ui β˜… 4961 333 APPLICATION

Inspira UI is a curated collection of beautifully designed, copy-paste-ready Vue/Nuxt UI components, inspired by Aceternity UI and Magic UI. The repository serves both as a component library and a documentation/demo site built with Nuxt 4, Tailwind CSS v4, and a rich ecosystem of animation and WebGL libraries (motion-v, Three.js, OGL, GSAP). The architecture is a standard Nuxt application with i18n (English, French, Chinese), content management via @nuxt/content, and a custom registry system that generates component metadata for CLI installation. Key entry points include the Nuxt configuration (nuxt.config.ts), the app configuration (app.config.ts) for UI theming, and the registry build script (scripts/build-registry.mts) that crawls component files and produces Zod-validated schemas. The primary data flow is static: markdown documentation files in content/ are rendered alongside live interactive playgrounds that allow users to tweak component props via DialKit config panels. External dependencies are heavy but modern, including motion-v for spring animations, Three.js/OGL for WebGL effects, canvas-confetti for particle effects, and @vueuse/core for utilities. The codebase demonstrates consistent patterns (barrel exports, cn() class merging, shader-based backgrounds, context injection for compound components) and a strong emphasis on visual polish and developer experience.

RATING: 8.7/10 MAINT: active DRIFT: low
β–Έ 5 reusable components found
SolarLune/tetra3d β˜… 517 24 APPLICATION

Tetra3D is a pure-Go 3D game engine and rendering library built on top of Ebiten (a 2D game library). It provides a full scene graph with nodes, models, cameras, lights, materials, and animations, along with collision detection, particle systems, text rendering, and pathfinding grids. The architecture is a library with a rich set of examples demonstrating each feature. Key entry points include the tetra3d package root, Camera.RenderScene() for rendering, and gltf.LoadGLTF() for asset loading. Data flows involve loading GLTF/GLB files (with custom Blender exporter metadata), constructing a scene graph, and rendering per frame with support for lighting, shadows, and transparency. External dependencies are Ebiten for rendering/input, qmuntal/gltf for GLTF parsing, tanema/gween for tweening, and golang.org/x/image for font rendering. The codebase includes SIMD-optimized matrix math, a comprehensive vector library, and a Blender addon for exporting scenes with engine-specific properties.

RATING: 8.7/10 MAINT: active DRIFT: low
β–Έ 5 reusable components found
DenverCoder1/readme-typing-svg β˜… 9422 1619 APPLICATION

This repository provides a PHP web service that dynamically generates SVG images with a typing animation effect, commonly used in GitHub profile READMEs. The core architecture follows a simple MVC pattern: the entry point (`src/index.php`) instantiates a `RendererController` which delegates to a `RendererModel` for parameter validation and Google Font fetching, and a `RendererView` for rendering the SVG template. The system accepts query parameters such as `lines`, `font`, `color`, `duration`, and `multiline` to customize the animation. It also includes a demo site with a live preview and a dark mode toggle. The codebase is well-structured, with clear separation of concerns, input sanitization, and unit tests covering parameter validation and SVG output. External dependencies are minimal (PHP 8.1+, vlucas/phpdotenv, phpunit). The GoogleFontConverter component demonstrates non-obvious skill by fetching and embedding Google Fonts as base64 data URIs directly into the SVG, ensuring the font renders without external requests. Overall, this is a polished, production-ready application with good engineering practices.

RATING: 8.6/10 MAINT: active DRIFT: low
β–Έ 3 reusable components found
Zqysl/TypeFX.js β˜… 323 0 APPLICATION

TypeFX.js is a modern typewriter effect library implemented in plain JavaScript (with TypeScript source). It provides a fluent API for simulating typing, deleting, cursor movement, and text selection in DOM elements. The library is designed to be framework-agnostic and can be used in vanilla JavaScript, React, Vue, or any other web environment that supports the DOM. The core of the library is the `TypeFX` class, which manages an internal queue of actions to sequence asynchronous operations. It ensures only one instance per DOM element using a WeakMap and supports chaining of methods like `.type()`, `.wait()`, `.delete()`, etc. The library also allows customization of typing speed, caret appearance, and entrance/exit animations via the Web Animations API. The library is distributed as ES modules, CommonJS, and UMD formats via Rollup, with no runtime dependencies. It includes a comprehensive test suite that uses a custom fake DOM implementation to run tests in Node.js, demonstrating good testing practices for DOM-dependent code.

RATING: 8.6/10 MAINT: maintained DRIFT: low
β–Έ 1 reusable components found
Amansingh-afk/milli.nvim β˜… 317 4 APPLICATION

milli.nvim is a Neovim plugin for animated ASCII splash screens. It provides both pre-rendered splash animations (like fire, blackhole, skeleton) and live procedural shaders (plasma, rain, doomfire, starfield) all implemented in pure Lua using Neovim’s extmarks for coloring. The plugin integrates seamlessly with popular dashboard plugins (dashboard-nvim, alpha-nvim, snacks.nvim, mini.starter) via autocmds and preset functions. It also includes a community registry for sharing splash data, with a sandboxed loading mechanism to prevent arbitrary code execution. The codebase demonstrates careful engineering: anchor-based positioning to handle variable terminal sizes, color-run optimisation to stay within Neovim’s highlight-group limit (E849), and deterministic pseudorandom number generation in shaders to avoid corrupting math.random. The external CLI tool (npm package `milli`) allows users to generate their own splashes from images or GIFs, and the data format is simple and portable. Overall, it is a well-crafted, feature-rich plugin with clear architecture and several reusable patterns.

RATING: 8.6/10 MAINT: active DRIFT: low
β–Έ 3 reusable components found
majimboo/mviewer β˜… 304 78 APPLICATION

The mviewer repository is a Rust-based application for viewing and exporting Marmoset .mview scene files. It features a dual-mode interface: launching a GUI (using tao/wry embedded webview) for interactive preview when no arguments are provided, or running in CLI mode for batch conversion when arguments are given. The GUI loads a local HTTP server to serve an embedded, forked Marmoset JavaScript viewer that renders scenes with visual parity to Marmoset Toolbag. The core Rust logic handles loading the proprietary .mview archive format, extracting scene data (meshes, materials, animations, cameras, lights, textures), and exporting to glTF/GLB/OBJ formats. The application demonstrates strong modularity with clear separation between archive parsing, data processing, export pipelines, and GUI integration. While the embedded JavaScript viewer introduces some maintenance considerations due to its forked nature, the Rust components exhibit high reusability and craftsmanship, particularly in handling complex binary formats and data transformations.

RATING: 8.6/10 MAINT: active DRIFT: medium
β–Έ 3 reusable components found
pixiv/three-vrm β˜… 2151 189 APPLICATION

A monorepo providing `@pixiv/three-vrm`, a library for loading, controlling, and rendering VRM (Virtual Reality Model) avatars in three.js. It implements VRM 1.0 and partial VRM 0.0 specifications, handling humanoid bone mapping, facial expressions, eye gaze control (lookAt), first-person mesh culling, spring bone physics simulation, node constraints (aim, roll, rotation), and MToon toon material rendering. The library is structured as a collection of GLTFLoader plugins that parse VRM extensions from `.vrm` files. Core modules include `VRMLoaderPlugin` (orchestrating sub-plugins), `VRMCore` (humanoid, expressions, lookAt, firstPerson), `VRMSpringBoneManager` (verlet physics), `VRMNodeConstraintManager` (topological sort for constraints), and `MToonMaterial`/`MToonNodeMaterial` (custom shader/material for toon rendering). Both WebGL and experimental WebGPU renderers are supported. The codebase includes thorough examples, CI/CD, and compatibility shims for multiple three.js revisions (r123 through r180).

RATING: 8.5/10 MAINT: active DRIFT: medium
β–Έ 4 reusable components found
wirecube/android_additive_animations β˜… 979 68 APPLICATION

This repository contains an Android library for creating additive animations, where multiple animations can be combined by adding their values together rather than having later animations override earlier ones. The library provides a fluent API for animating View properties (position, size, rotation, alpha, etc.) and custom object properties. Key features include physics-based spring animations with configurable stiffness and damping, animation chaining with flexible timing controls, view visibility animations that automatically handle state transitions, and a sophisticated animation state system that determines whether to run animation start/end logic based on the current state of the target object. The implementation stands out for its physics-based spring solver (SpringSolver.kt) which provides an analytical solution to the damped harmonic oscillator equations, handling all damping regimes correctly. The RunningAnimationsManager provides intelligent state management for animations, eliminating common boilerplate for visibility and state-based animations. The library is actively maintained with recent updates, uses current AndroidX dependencies, and follows modern Android development practices with Kotlin coroutines and Java 17 compatibility.

RATING: 8.5/10 MAINT: active DRIFT: low
β–Έ 2 reusable components found
initialcommit-com/git-sim β˜… 4681 121 APPLICATION

git-sim is a CLI tool that generates visualizations of Git operations from within a local repository. It uses the Manim animation library to render commit graphs, branches, tags, and file states as either static images (JPG/PNG) or animated videos (MP4/WEBM). The architecture is built around a base class `GitSimBaseCommand` that extends Manim's `MovingCameraScene` and provides common drawing methods for commits, refs, arrows, and zone tables. Each Git subcommand (add, branch, checkout, merge, etc.) is implemented as a separate Python class that inherits from this base class and overrides the `construct()` method to build the specific scene. The CLI interface is defined using Typer, and the application reads the current Git repository state via GitPython. The animation output is handled by a dedicated `handle_animations` function that manages rendering, format conversion, and file output. The codebase is well-organized, with clean separation between command logic, animation rendering, and configuration management via Pydantic settings. It demonstrates effective use of the Manim library for non-trivial graphics and provides a robust framework for simulating Git commands.

RATING: 8.4/10 MAINT: active DRIFT: low
β–Έ 2 reusable components found
MisterBooo/LeetCodeAnimation β˜… 76707 13860 APPLICATION

LeetCodeAnimation is a documentation and indexing repository that catalogs 256 LeetCode algorithm problems with animated explanations, multi-language reference solutions (Java, C++, Python), and structured metadata. The actual content lives on the companion site algomooc.com; this GitHub repo serves as a versioned public index, historical asset archive, and synchronization layer. The architecture is a static site generator pipeline: a Node.js sync script (tools/scripts/sync-algomooc-index.js) reads the website's study_index.js, compares it against docs/data/manifest.json, and regenerates manifest.json, leetcode-animation-index.md, index-by-topic.md, and sync-log.md. A separate build-readme.js injects problem counts into the README and produces stats.json for dynamic badges. The Python anima CLI (tools/anima.py) scaffolds new problem directories with template Markdown. GitHub Actions CI validates manifest integrity and checks staleness of generated files on every push/PR. The codebase is well-structured with clear separation between generated artifacts and hand-maintained content, enforced through LCA-AUTOGEN markers in the README. The 256 problems span arrays, linked lists, trees, DP, graphs, and more, each with articles, animations (GIF/MP4), and reference code.

RATING: 8.3/10 MAINT: active DRIFT: low
β–Έ 7 reusable components found
EFPrefix/EFQRCode β˜… 4756 505 APPLICATION

EFQRCode is a pure-Swift, cross-platform Apple framework for generating stylized and highly customizable QR codes, and for recognizing QR codes from images. The core production code exposes two primary entry points: `EFQRCode.Generator` and `EFQRCode.Recognizer`. The generator accepts text/data input, encodes it using the external `QRCodeSwift` package, maps the resulting matrix through a strategy-based style hierarchy (`EFQRCodeStyleBasic`, `EFQRCodeStyleBubble`, `EFQRCodeStyleLine`, `EFQRCodeStyle25D`, `EFQRCodeStyleImage`, etc.), and produces SVG representations which are then rasterized by `SwiftDraw` into static images, PDFs, GIFs, APNGs, or AVFoundation-backed video files. The recognizer uses CoreImage-based detection with grayscale fallback and result caching. The library is heavily documented, supports iOS, macOS, tvOS, watchOS, and visionOS, and is distributed through SPM, CocoaPods, and Carthage. The `Examples/` directory contains demo apps for each platform that act as integration-style usage references, but these are example clients rather than the core deliverable. This is definitively an application/library repository; there are no data pipelines, notebooks, or research artifacts.

RATING: 8.3/10 MAINT: maintained DRIFT: medium
β–Έ 3 reusable components found

This repository provides a full port of AndroidX ConstraintLayout and MotionLayout for Compose Multiplatform, enabling declarative, constraint-based layouts and keyframe animations across Android, iOS, Desktop, macOS, and Web (Wasm). The library is published as `tech.annexflow.compose:constraintlayout-compose-multiplatform` and includes a complete Kotlin Multiplatform implementation of the core constraint solver, motion engine, JSON5 parser, and Compose DSL. It supports both inline DSL and JSON-based constraint definitions, with experimental MotionLayout for animated transitions between constraint sets, including swipe gestures, keyframes, and custom easing curves. Architecturally, the project is split into a `compose` module containing the Compose-specific composables (`ConstraintLayout`, `MotionLayout`, `ConstraintSet`, `Transition`) and a `core` module that houses the platform-agnostic constraint solving engine (`LinearSystem`, `SolverVariable`, `ConstraintWidget`), motion interpolation (`CurveFit`, `Easing`, `StopLogicEngine`), and a custom JSON5 parser (`CLParser`). The sample app demonstrates various use cases such as collapsible toolbars, carousels, puzzle layouts, and swipe-driven transitions. The codebase is well-tested with extensive unit tests for both the core engine and Compose integration, and includes CI pipelines for building and validation. The library is actively maintained with recent commits and responsive issue triage. While it is a port of an AndroidX library, it has been adapted for multiplatform use with platform-specific expect/actual declarations for logging, weak references, and debug rendering. The code exhibits high craftsmanship in areas like the custom linear solver, motion interpolation algorithms, and the JSON parser, making it a valuable resource for developers needing advanced layout and animation capabilities in Compose Multiplatform projects.

RATING: 8.2/10 MAINT: active DRIFT: low
β–Έ 5 reusable components found
dai-shi/excalidraw-animate β˜… 2074 140 APPLICATION

This is a React-based single-page application that converts Excalidraw drawings into animated SVGs. It provides both an editing mode (using the Excalidraw library) where users can configure animation order and duration per element, and an animate mode where the resulting SVG is rendered with playback controls (play/pause/step/reset). The core animation logic is implemented using SMIL (SVG animations), patching SVG elements with `animate`, `animateMotion`, and `textPath` elements. Users can load drawings from files, libraries, or shareable URLs. The app also exports to SVG and WebM (via screen capture). It is published as an npm package for programmatic use, exposing `animateSvg`, `getBeginTimeList`, and export utilities. The codebase is modern (React 19, TypeScript, Vite) and includes comprehensive testing with Playwright. Architecturally, it operates as a client-side SPA with two views (edit and animate) and a toolbar for loading/playback/export.

RATING: 8.1/10 MAINT: maintained DRIFT: low
β–Έ 2 reusable components found
davideas/FlipView β˜… 491 77 APPLICATION

This repository contains FlipView, an Android library that extends ViewFlipper to provide animated view flipping capabilities similar to Gmail's swipe actions. The core component is a custom ViewGroup that manages front and rear views with configurable animations, layouts, and images. It supports auto-flipping at intervals, user-triggered flips, initial cascade animations for multiple views, and SVG image support. The library includes sophisticated animation coordination to avoid visual glitches and provides extensive customization through XML attributes. A sample application demonstrates usage in various configurations including RecyclerView integration.

RATING: 8.1/10 MAINT: active DRIFT: medium
β–Έ 1 reusable components found
$ loading more...
$ submit: