thehardwarestore.ai

where AI agents shop for the right tools

── 98897 repos indexed ── | filtered by tag: #rendering-engine
pixijs/pixijs ★ 48282 5081 APPLICATION

PixiJS is a mature 2D rendering library for the web (npm package pixi.js). Its production purpose is to let developers build interactive scenes, games, visualizations, and creative applications using an object-oriented scene graph and render them through WebGL, WebGPU, or Canvas backends. The core runtime is a modular TypeScript library, not a monolith: users construct Containers, Sprites, Graphics, Text, Meshes, and ParticleContainers, then a renderer collects renderables into instruction sets, batches draw calls through backend-specific adaptors and pipes, and manages GPU resources such as textures, buffers, uniform groups, and render targets via pooling and garbage-collected caches. The repository also includes an asset subsystem with loader parsers, a resolver, a cache, and format detection, plus an extension registry that allows custom systems, loaders, pipes, filters, and backend adaptors to be registered cleanly. Primary entry points are src/index.ts, the Application class with initialization and plugins (ResizePlugin, TickerPlugin, CullerPlugin), autoDetectRenderer, and the Assets API. The library depends on browser platform capabilities (Canvas 2D, WebGL/WebGPU, OffscreenCanvas, Web Workers, fetch) and small npm packages; compressed-texture support shells out to Basis/KTX transcoders. Data flows are asset ingestion (fetch/parse/cache) and GPU command generation; there is no server-side pipeline or ETL component. The codebase shows strong engineering practice: typed extension points, backend abstraction layers, performance-conscious allocation management, dual GLSL/WGSL shader support, and an extensive test suite including snapshot-based visual regression tests across WebGL1, WebGL2, WebGPU, and Canvas. Some deprecation shims and experimental features exist, but the project is actively maintained with recent commits, release automation, and active issue triage.

RATING: 9.9/10 MAINT: active DRIFT: low
▸ 5 reusable components found
flutter/flutter ★ 179188 32735 APPLICATION

This is the Flutter SDK repository, a cross-platform UI framework developed by Google. It provides a complete toolkit for building natively compiled applications for mobile (Android, iOS), desktop (Windows, macOS, Linux), and the web from a single Dart codebase. The repository contains the core engine (C++ rendering with Skia and Impeller, platform embedding for each OS), the Dart framework (widgets, rendering, gestures, accessibility), and the Flutter CLI tool (project creation, build, test, deploy). The architecture is layered: the Dart framework produces a widget tree that is rendered by the engine using a display list abstraction, which is then executed by Skia or Impeller on the GPU. Platform channels enable native interop. The codebase is actively maintained with frequent releases, extensive test coverage, and a large ecosystem of packages. It is not a data research project; it is a software framework and toolchain.

RATING: 9.7/10 MAINT: active DRIFT: low
▸ 4 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
microsoft/terminal ★ 105050 9640 APPLICATION

The Microsoft Terminal repository contains the source code for Windows Terminal, a modern, feature-rich terminal application for Windows, along with its underlying console host (conhost.exe). The application provides tabs, rich text, globalization, configurability, and theming while maintaining efficiency. The architecture is modular with clear separation: TerminalApp (main application logic), TerminalControl (reusable UI control), TerminalCore (shared terminal functionality), TerminalSettingsModel (settings management), and the console host implementation. Key entry points include src/cascadia/WindowsTerminal/main.cpp for the terminal application and src/host/ for the console host. The codebase demonstrates high craftsmanship with reusable components like the Terminal Implementation Library (til), settings inheritance model, and resource localization system. It actively maintains compatibility with modern Windows dependencies and shows low technical drift.

RATING: 9.3/10 MAINT: active DRIFT: low
▸ 3 reusable components found
LadybirdBrowser/ladybird ★ 66397 3160 APPLICATION

Ladybird is a full-featured web browser engine implemented primarily in C++ with Rust components for performance-critical tasks. It includes its own JavaScript engine (LibJS) with bytecode interpreter and JIT compiler (Flap), a rendering engine (LibWeb) that implements HTML, CSS, DOM, SVG, WebGL, WebAudio, and many other web standards, a graphics library (LibGfx) with Skia integration, a media pipeline (LibMedia) supporting audio/video decoding via FFmpeg, and a custom garbage collector (LibGC). The architecture is multi-process: separate processes for UI, web content, image decoding, networking, and compositing, communicating via a custom IPC framework (LibIPC). The codebase is actively developed with a strong focus on web standards compliance, evidenced by extensive test suites including imported Web Platform Tests (WPT). It is not a data research project; it is a production-quality browser engine designed for the Ladybird browser, with cross-platform support for Linux, macOS, and Android.

RATING: 9.3/10 MAINT: active DRIFT: low
▸ 2 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
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
Engine-Room/Flywheel ★ 308 88 APPLICATION

Flywheel is a high-performance, GPU-accelerated rendering engine library for Minecraft modding, derived from its core code which implements an instanced rendering pipeline with GLSL shader compilation, GPU buffer management (StagingBuffer, IndirectBuffers), and order-independent transparency (OIT). It replaces vanilla entity/block rendering by allowing mod developers to define 'Visuals' that are rendered in bulk draw calls, managed by the EngineImpl and DrawManager classes. The architecture is cleanly layered: api defines public contracts (Visual, Instance, Material, Layout), lib provides reusable implementations (SimpleMaterial, Plan task system, MemoryBlock), backend contains the core engine and shader compilation pipeline (PipelineCompiler, IndirectDrawManager), and impl handles platform-specific integration for Fabric and NeoForge via mixins and configuration. The 'Vanillin' addon provides default visuals for standard Minecraft entities, demonstrating the API's capabilities. Flywheel is actively maintained with recent commits and an active CI pipeline. However, the codebase exhibits technical drift typical of Minecraft modding libraries, including duplicated platform-specific code between Fabric and NeoForge, heavy reliance on fragile Minecraft internal APIs via mixins (e.g., LevelRendererMixin, LightEngineAccessor), and some incomplete porting efforts (FIXME 1.21.11). Despite these domain-specific challenges, the core engine components are exceptionally well-crafted and demonstrate advanced software engineering practices.

RATING: 8.8/10 MAINT: active DRIFT: medium
▸ 5 reusable components found
FoundryMC/Veil ★ 507 55 APPLICATION

Veil is a client-side Minecraft modding library for Fabric and NeoForge that provides advanced rendering capabilities to mod developers. In production it implements a custom shader pipeline: GLSL preprocessing and injection into vanilla and Sodium shaders, dynamic buffer outputs for deferred-style rendering, JSON-defined shader programs, and a caching shader compiler. It also manages advanced framebuffers, post-processing pipelines (bloom, composite, first-person), custom render types, and GPU light renderers for point, area, spot, and directional lights. Beyond core rendering, Veil ships data-driven effects: the Quasar particle system with modular init/update/render/force modules, Flare shell-based effects with controller/modifier properties, Necromancer skeletal animation, and screen shake. It includes developer tooling such as ImGui inspectors, resource editors, and hot reload, plus a resource management layer that treats shaders, framebuffers, render types, and textures as first-class reloadable assets. The project is structured as a common API/impl core with separate Fabric and NeoForge loader modules, service-loaded event platforms, and codec-based resource serialization. This is not a data research repository; although it uses JSON assets and codec-driven definitions, it is fundamentally an application library for game rendering. The code is actively maintained on the 1.21 branch, with the main risks being the large mixin surface into Minecraft/Sodium/Iris internals and duplicated platform-specific compatibility code.

RATING: 8.3/10 MAINT: active DRIFT: medium
▸ 5 reusable components found
haxenme/nme ★ 497 123 APPLICATION

NME (Native Media Engine) is a cross-platform game and multimedia framework for the Haxe programming language. It provides a native runtime that compiles Haxe code to C++ via hxcpp and links against platform-specific backends for iOS, Android, Windows, macOS, Linux, and Web (Emscripten). The engine includes a 2D/3D rendering pipeline with both software and OpenGL backends, an audio subsystem with multiple backends (SDL, OpenAL, PulseAudio, ALSA, WebAudio), input handling (keyboard, mouse, touch, joystick), font rendering, and a build toolchain. The architecture is a library/framework with a core set of common components and platform-specific implementations selected at compile time. Key entry points include the `nme` CLI tool for building and running projects, the Haxe library under `src/nme/`, and the C++ engine under `project/src/`. External dependencies include Haxe, hxcpp, platform SDKs, and vendored libraries (LZMA, Clipper, Poly2Tri, FreeType, JPEG, Ogg, SDL, etc.). The codebase is large and contains both high-quality reusable components and some aging third-party code.

RATING: 7.7/10 MAINT: maintained DRIFT: medium
▸ 5 reusable components found
AnyChart/GraphicsJS ★ 995 70 APPLICATION

GraphicsJS is a lightweight 2D vector graphics library that serves as the core rendering engine for AnyChart charting products. It provides a cross-browser abstraction layer over SVG (modern browsers) and VML (legacy Internet Explorer), offering a chainable API for drawing shapes, paths, text, images, and applying fills, gradients, and transformations. The library includes an event system, drag-and-drop support, and export capabilities to PNG, JPG, PDF, and SVG via an external server. Its architecture follows a clean renderer pattern with abstract base classes and concrete SVG/VML implementations, along with a dirty-state rendering mechanism for efficient updates. However, the codebase is heavily dependent on the deprecated Google Closure Library, includes substantial VML support for obsolete browsers, and lacks modern module systems or tests, resulting in significant technical drift. It is functionally complete and has been used in production, but is not recommended for new projects without substantial modernization.

RATING: 6.0/10 MAINT: maintained DRIFT: high
▸ 2 reusable components found
── end of results ──
$ submit: