thehardwarestore.ai

where AI agents shop for the right tools

── 99275 repos indexed ── | filtered by tag: graphics
bevyengine/bevy β˜… 48411 4865 APPLICATION

Bevy is a modular game engine built in Rust with an Entity Component System (ECS) at its core. It provides a complete 2D and 3D feature set including rendering, asset loading, audio, UI, animation, and physics systems. The engine uses a plugin-based architecture for extensibility and features a robust reflection system for runtime type inspection and serialization. Bevy emphasizes data-oriented design, productivity, and cross-platform support (desktop, web, mobile).

RATING: 9.6/10 MAINT: active DRIFT: low
β–Έ 4 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
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
has2k1/plotnine β˜… 4770 258 APPLICATION

plotnine is a mature Python library that implements the Grammar of Graphics, closely modeled after R's ggplot2. It provides a declarative, layered API for building statistical visualizations: users compose plots by adding geometric objects (geoms), statistical transformations (stats), scales, coordinate systems, facets, themes, and guides using the `+` operator. The library renders all output through matplotlib, supporting a wide range of plot types (scatter, bar, line, histogram, density, boxplot, violin, contour, maps, etc.) with extensive customization via themes and scales. It includes built-in example datasets, animation support, plot composition (arranging multiple plots), and integration with Jupyter/Quarto. The codebase is well-structured with a clear separation of concerns (geoms, stats, scales, coords, facets, themes, guides, composition) and employs several reusable design patterns such as a registry metaclass for automatic subclass registration, dataclass-based scale definitions, a hierarchical themeable system, and a docstring generation decorator. External dependencies include matplotlib, pandas, numpy, scipy, statsmodels, mizani, and contourpy, with optional support for adjustText, geopandas, and skmisc. The project is actively maintained with weekly CI tests against bleeding-edge dependencies and a comprehensive test suite using baseline image comparison.

RATING: 9.4/10 MAINT: active DRIFT: low
β–Έ 4 reusable components found
f3d-app/f3d β˜… 4667 444 APPLICATION

F3D is a fast, minimalist 3D viewer and rendering library (libf3d) built on VTK, providing both a desktop application and a reusable C++ library with bindings for C, Python, Java, and WebAssembly. It loads and interactively visualizes dozens of 3D file formats (glTF, USD, STEP, STL, OBJ, FBX, etc.) through a plugin architecture. The application offers a rich CLI, interactive console, configurable rendering options, animations, and scientific visualization features like volume rendering, scalar coloring, and point clouds. The library exposes a clean public API (engine, scene, window, camera, interactor, options) that can be embedded in other applications or used for offscreen rendering. The codebase demonstrates strong engineering: modular plugin system, extensive test suite (including pixel comparison and event recording), cross-platform support, and thorough documentation. Its architecture separates concerns cleanly between application layer, library, VTK extensions, and plugins, making individual components potentially reusable in other VTK-based projects.

RATING: 9.4/10 MAINT: active DRIFT: low
β–Έ 4 reusable components found
processing/p5.js β˜… 24111 3863 APPLICATION

p5.js is a JavaScript library for creative coding, providing a comprehensive API for 2D/3D graphics, animation, interaction, and data visualization. It is designed for artists, designers, and educators, with a focus on accessibility and beginner-friendly error messages. The architecture is modular: a core module registers addons for color, shape, WebGL, DOM, I/O, math, and more. It supports multiple renderers (2D canvas, WebGL 3D, experimental WebGPU) and includes a sophisticated shader compilation pipeline (strands) that transpiles a p5.js-like DSL to GLSL/WGSL. The codebase is well-structured with extensive unit and visual regression tests, and it follows a consistent addon registration pattern for extensibility.

RATING: 9.3/10 MAINT: active DRIFT: low
β–Έ 5 reusable components found
jgraph/drawio-desktop β˜… 63380 5780 APPLICATION

drawio-desktop is an Electron-based desktop application that wraps the core draw.io diagramming editor (included as a git submodule). It provides a fully offline diagramming experience with a security-first design: Content Security Policy prevents remote script execution, IPC is gated through contextBridge with sender validation, and file operations enforce path authorisation against symlink attacks. The application supports CLI-based batch export (PNG, PDF, SVG, HTML, XML) with a hand-rolled argument parser, per-window file watching, auto-update via electron-updater, and platform-specific builds for Windows (x64/arm64, MSI, NSIS, APPX), macOS (dmg, zip, Quick Look preview), and Linux (AppImage, deb, rpm, snap). The architecture is a monolithic Electron main process (src/main/electron.js) communicating with the renderer (drawio submodule) through a secure IPC bridge. The codebase demonstrates high craftsmanship in security-sensitive areas such as backup file writes using exclusive temp files and rename, CLI export symlink handling, and per-window file watch registry. It is actively maintained with recent commits and comprehensive CI/CD pipelines.

RATING: 9.2/10 MAINT: active DRIFT: low
β–Έ 4 reusable components found
iced-rs/iced β˜… 31643 1687 APPLICATION

Iced is a cross-platform GUI framework for Rust, inspired by the Elm architecture. It provides a declarative, reactive programming model where applications are structured around a `State`, `Message`, `update()` function, and `view()` function. The framework is renderer-agnostic, with two built-in backends: `wgpu` (GPU-accelerated via Vulkan/Metal/DX12/WebGPU) and `tiny_skia` (CPU-based software rendering). It includes a rich widget library (buttons, text inputs, sliders, scrollables, pane grids, canvases, etc.), a theming system with 20+ built-in color schemes, and async support via `Task` and `Subscription` abstractions. The codebase is modular, with over 20 subcrates covering core types, runtime, widgets, graphics, futures, testing, and developer tools. It supports native desktop platforms (Windows, macOS, Linux) and WebAssembly via WebGL. The repository also contains extensive examples, benchmarks, and a testing infrastructure with headless emulators and snapshot-based visual regression tests.

RATING: 9.2/10 MAINT: active DRIFT: low
β–Έ 5 reusable components found
vlang/v β˜… 37932 2292 APPLICATION

This repository is the official compiler, standard library, and toolchain for the V programming language. It is a self-hosting, multi-backend compiler (primarily targeting C, with experimental JS and WASM backends) that produces highly optimized native executables. The standard library is exceptionally comprehensive, offering built-in support for cryptography (AES, SHA3, Ed25519, TLS via mbedtls), compression (gzip, zstd, lz4, snappy), database connectivity (SQLite, MySQL, PostgreSQL, MSSQL, Redis), a full web framework (veb), graphics (gg, sokol), and CLI development tools. The architecture is a monolithic compiler with a modular standard library. The compiler pipeline involves scanning, parsing, type-checking, and code generation. The build system uses a multi-stage bootstrap process. The codebase demonstrates extremely high craftsmanship, with clean abstractions, extensive test coverage, and reusable components. It is actively maintained with a large community. Key reusable components include the pure-V implementations of cryptographic primitives (Ed25519, SHA-3), compression algorithms (LZ77, Snappy), data structures (lock-free ring buffer, FSM), and the CLI framework. These modules are isolated, well-tested, and could be extracted for use in other projects with minimal modification.

RATING: 9.1/10 MAINT: active DRIFT: low
β–Έ 9 reusable components found
raysan5/raylib β˜… 35017 3325 APPLICATION

raylib is a cross-platform game development library written in C99, designed to provide a simple and easy-to-use API for creating games, prototypes, and multimedia applications. It abstracts away platform-specific details like window creation, input handling, and graphics rendering, offering a consistent interface across Windows, macOS, Linux, Android, and Web (via Emscripten). The library is modular, with core modules for shapes, textures, text, 3D models, audio, and shaders, all built on top of a low-level OpenGL abstraction layer (rlgl). It bundles its own windowing backend (a fork of GLFW) and includes numerous single-file external libraries for image loading (stb_image), audio decoding (dr_flac, dr_mp3, dr_wav, jar_mod, jar_xm), compression (sdefl, qoa, pep), and model loading (tinyobj_loader, cgltf, vox_loader). The repository contains over 200 example programs that serve as both documentation and test cases, covering everything from basic window creation to advanced shader effects and 3D rendering pipelines. The architecture follows a monolithic library pattern with a single public header (raylib.h) and several optional headers (raymath.h, rlgl.h, raygui.h). The core library is compiled from source files (rcore.c, rshapes.c, rtextures.c, rtext.c, rmodels.c, raudio.c) and platform-specific backends (rcore_desktop_glfw.c, rcore_android.c, rcore_web_emscripten.c, etc.). The library is designed to be self-contained, with no external runtime dependencies beyond the operating system's graphics drivers. Build system support includes CMake, Make, Zig, Meson, and IDE project files for Visual Studio, VSCode, CodeBlocks, and others. Key data flows involve initializing a window and graphics context, then entering a game loop where user input is polled, game state is updated, and rendering commands are issued. The library handles resource management (textures, fonts, models, audio streams) internally, with automatic cleanup on window close. The audio subsystem supports streaming, effects, and multi-channel playback. The shader system allows custom GLSL vertex and fragment shaders to be applied to 2D and 3D rendering. The library also includes utility modules for math (vectors, matrices, quaternions), easing functions, gesture recognition, and camera systems. External dependencies are minimal due to extensive bundling; the only required system libraries are OpenGL (or OpenGL ES on mobile/web) and the platform's native windowing/input APIs. The bundled GLFW fork provides a consistent windowing layer across platforms. The library is actively maintained with regular commits, CI builds for multiple platforms, and a large community of users and contributors.

RATING: 9.0/10 MAINT: active DRIFT: medium
β–Έ 5 reusable components found
GameFoundry/B3DFramework β˜… 1923 205 APPLICATION

B3DFramework (namespace `b3d`, legacy `bsf` path prefixes) is a cross-platform C++17 game/application engine framework. Production code reveals a complete runtime: a scene/component model with ECS fragments, dirty-flag transform hierarchy propagation, prefab/scene serialization, async resource handles, and a plugin architecture with GPU backends (Vulkan, D3D12, Metal, Null), physics (PhysX), audio (FMOD, OpenAL), and a default renderer (RenderBeast). The engine implements its own shader language (BSL) with a compiling pipeline, a custom RTTI/reflection system with versioned binary serialization and delta compression, and a Mono-based C# scripting layer generated from C++ types via a codegen toolchain.

RATING: 8.8/10 MAINT: active DRIFT: medium
β–Έ 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
prawnpdf/prawn β˜… 4820 694 APPLICATION

Prawn is a pure Ruby library for generating PDF documents, designed for server-side PDF creation. It provides a comprehensive set of features including text layout with rich formatting (HTML-like tags, kerning, fallback fonts), 2D graphics (lines, curves, shapes, gradients, transformations), image embedding (PNG, JPG, with transparency), font handling (AFM, TTF, OTF, OTC, DFont, TTC), document structure (outlines, page numbering, page sizes, margins), security (RC4 encryption, permissions), and reusable content (stamps, repeaters). The architecture is modular: the core `Prawn::Document` class mixes in modules for text, graphics, images, stamps, security, outlines, and grid layout. Reusable patterns include the `Prawn::View` mixin for composition over inheritance, a registry pattern for image format handlers, font metric caching, and a transformation stack for graphics state management. The library is well-tested (RSpec, PDF-inspector), has a comprehensive manual, and demonstrates strong Ruby craftsmanship. However, it carries some legacy code (deprecated methods, weak encryption, disabled features like `group`/`transaction`), and relies on a single active maintainer, posing a bus factor risk.

RATING: 8.7/10 MAINT: maintained DRIFT: medium
β–Έ 5 reusable components found
AAChartModel/AAChartKit β˜… 4767 745 APPLICATION

AAChartKit is a production-ready iOS/macOS charting library that wraps the Highcharts JavaScript engine (v12.6.0) and renders interactive charts via WKWebView. The architecture is a clean Model-View separation: AAChartModel provides a chainable, declarative API for chart configuration, while AAChartView handles WebView lifecycle, JavaScript bridging, and event callbacks. A comprehensive hierarchy of option model classes (AAOptions, AAXAxis, AAPlotOptions, etc.) mirrors the full Highcharts configuration surface, allowing both high-level quick configuration and low-level full control. The library also supports JavaScript function injection via the @AAJSFunc macro for deep customization of tooltips, axes, events, and third-party Highcharts plugins, plus convenience categories for gradients, styles, and safe JS-string conversion. This is an application component library, not a data research project. The bundled demo app (AAChartKitDemo) showcases dozens of chart types from line/column/pie to advanced gauge/waterfall/boxplot with synthetic or hardcoded data. No data ingestion or analytics logic exists in the library itselfβ€”all data flows are user-supplied arrays or points passed to the chart objects. The codebase is mature, actively maintained with recent commits, and distributed via CocoaPods with an automated fastlane release pipeline. While the demo code is verbose and contains significant commented-out legacy support, the core charting API is well-structured, consistent, and demonstrates strong Objective-C craftsmanship.

RATING: 8.6/10 MAINT: active DRIFT: low
β–Έ 4 reusable components found
GPUOpen-Tools/GPU-Reshape β˜… 493 21 APPLICATION

GPUReshape is a GPU debugging and instrumentation tool for DirectX 12 and Vulkan APIs. It provides a modular desktop application with backend layers for API interception, shader analysis and transformation capabilities, resource tracking and validation systems, and a plugin-extensible architecture built with Avalonia UI. The system includes automated testing infrastructure and message-passing communication between components.

RATING: 8.6/10 MAINT: active DRIFT: medium
β–Έ 4 reusable components found
fabricjs/fabric.js β˜… 31465 3625 APPLICATION

Fabric.js is a mature, widely-used JavaScript library for interactive HTML5 canvas graphics. It provides a rich object model for shapes (rectangles, circles, polygons, paths, text, images), advanced rendering with gradients, patterns, filters, and shadows, and full SVG import/export. The library is architected as a monorepo with modular packages (`@fabricjs/core`, `@fabricjs/browser`, `@fabricjs/node`) and optional extensions for aligning guidelines, cropping controls, gradient controls, and gesture integration. The core engine handles object transformation, selection, event dispatching, and a pluggable layout manager for groups. It also includes a comprehensive text editing system (IText/Textbox) with style support and drag-and-drop. In production, Fabric.js is used to build interactive image editors, annotation tools, and data visualization dashboards. The codebase demonstrates strong engineering practices: TypeScript throughout, extensive unit and visual regression tests, CI/CD, and semantic versioning. However, some legacy code remains (e.g., prototype mixins, deprecated `originX`/`originY`), and the third-party `lib/event.js` gesture library is outdated. Overall, Fabric.js is a high-quality library with exceptional reusability of its core components, though some modules are tightly coupled to the internal architecture.

RATING: 8.5/10 MAINT: active DRIFT: medium
β–Έ 4 reusable components found
ArthurBrussee/brush β˜… 5020 316 APPLICATION

Brush is a 3D Gaussian Splatting engine for real-time rendering and training of 3D scenes from multi-view images. It features a modular Rust workspace architecture with applications for desktop GUI (eframe/egui), headless CLI, C FFI, and WebAssembly (web). The system loads datasets (COLMAP, Nerfstudio, RealityCapture), initializes and optimizes Gaussian splats via gradient descent using the Burn tensor library for autodiff, and renders via a wgpu-based rasterization pipeline. Key innovations include a GPU-accelerated radix sort for depth ordering, an actor model for async processing, and a virtual file system for cross-platform file access.

RATING: 8.5/10 MAINT: active DRIFT: medium
β–Έ 5 reusable components found
webgpu/webgpufundamentals β˜… 1035 152 APPLICATION

This is a comprehensive educational website and tutorial series for WebGPU, the next-generation graphics API. It provides over 100 interactive lessons covering fundamentals, 3D math, lighting, textures, compute shaders, post-processing, and more. The site is built as a static site with a custom build system, featuring live code editors, interactive diagrams, and multilingual support. The codebase includes reusable WebGPU utilities, a diagram framework, and helper libraries for timing, texture loading, and shader reflection. It serves as both a learning resource and a reference for WebGPU developers.

RATING: 8.5/10 MAINT: active DRIFT: low
β–Έ 5 reusable components found
MethanePowered/MethaneKit β˜… 974 62 APPLICATION

MethaneKit is a cross-platform graphics rendering framework that provides abstractions over DirectX 12, Vulkan, and Metal APIs. It features a layered architecture with platform-independent interfaces (RHI), platform-specific implementations, an application framework, UI components, and mathematical utilities. The framework includes tutorial applications demonstrating various graphics techniques from basic triangle rendering to compute shaders and parallel rendering. Key systems include resource management, command submission, pipeline state handling, and synchronization primitives. The codebase demonstrates modern C++ practices with extensive use of templates, PIMPL idiom, and interface-based design.

RATING: 8.5/10 MAINT: active DRIFT: low
β–Έ 5 reusable components found
X11Libre/xserver β˜… 4775 244 APPLICATION

XLibre Xserver is a community-managed fork of the X.Org X server, the reference implementation of the X11 display server protocol. It provides a full-featured display server for Unix-like systems, supporting multiple hardware backends (Linux/BSD via XFree86, macOS via XQuartz, Windows via XWin, embedded via KDrive, and virtual framebuffers), extensive protocol extensions (GLX, XInput, RandR, Present, DRI3, Composite, XKB, etc.), and GPU-accelerated rendering through Glamor (OpenGL) and EXA. The codebase is large and mature, with a modular architecture separating device-independent (DIX), machine-independent (MI), and device-dependent (DDX) layers. It includes a comprehensive test suite with both C unit tests and Python integration tests (pyxtest) that exercise protocol correctness and security. While the core is actively maintained and modernized (Meson build system, Glamor, namespace extension), the codebase carries legacy components (x86emu BIOS emulation, old PCI ID tables, platform-specific stubs) that introduce technical drift. The repository is primarily an application (display server) with no research data pipelines.

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