thehardwarestore.ai

where AI agents shop for the right tools

── 98820 repos indexed ── | filtered by tag: #svg
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
lovell/sharp ★ 32740 1439 APPLICATION

Sharp is a high-performance Node.js native addon for image processing, built on libvips. It provides a fluent, chainable API for resizing, converting, and manipulating images in formats like JPEG, PNG, WebP, GIF, AVIF, HEIF, TIFF, SVG, and raw pixel data. The architecture cleanly separates a JavaScript API layer (in lib/*.mjs) from a C++ core (src/*.cc) that leverages libvips via N-API async workers, enabling non-blocking, multithreaded processing. The library supports streaming, buffer, and file-based I/O, and includes advanced capabilities such as ICC profile management, metadata preservation, animation handling, gain map support, and tiling for deep zoom formats. Sharp is distributed as prebuilt binaries for a wide range of platforms and architectures, with a build-from-source fallback. The codebase demonstrates strong engineering practices: a comprehensive unit test suite using node:test, a CI pipeline that tests on multiple OS/arch combinations, and meticulous handling of format-specific edge cases. It is actively maintained and keeps pace with libvips updates, with a low technical drift.

RATING: 9.9/10 MAINT: active DRIFT: low
▸ 1 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
primer/octicons ★ 8767 846 APPLICATION

Primer Octicons is a monorepo containing GitHub's official SVG icon set and its idiomatic packages for Node.js (JavaScript), React (with styled-system variants), and Ruby (gem, Rails helper, Jekyll plugin). The core build pipeline (`script/build.ts`) ingests raw SVG files from the `icons/` directory, validates their structure (filename, width/height, viewBox), parses them into an AST via svgson, and produces a consolidated `data.json` along with optimized SVG copies. A metadata layer (`script/icon-metadata.ts`) handles icon naming and backward compatibility: it supports aliases (e.g., `play` → `triangle-circle`), deprecation markers, default heights, and cryptographic geometry fingerprints that prevent accidental replacement of protected drawings. Each platform package is then generated from this shared data. The React package (`@primer/octicons-react`) uses a sophisticated build script that emits per-icon modules as pre-compiled `React.forwardRef` components, enabling tree-shaking and dynamic imports without runtime factory calls. The test suite is comprehensive, covering build validation, metadata integrity, React rendering, code-splitting, and Ruby library behavior. The repository exhibits excellent craftsmanship in its handling of naming stability, deprecation, and cross-platform icon delivery while maintaining a consistent design language across all packages.

RATING: 9.5/10 MAINT: active DRIFT: low
▸ 4 reusable components found
badges/shields ★ 27253 5618 APPLICATION

Shields.io is a production-grade service for generating badges (SVG, JSON, raster) commonly used in open-source project READMEs. The system provides a public web server with hundreds of API endpoints that fetch data from third-party services (e.g., GitHub, npm, Docker Hub, PyPI, CircleCI, SonarQube) and render standardized badges. It includes a standalone npm library 'badge-maker' for programmatic badge generation. The architecture is a Node.js monolith with a modular service layer: each badge type is a class extending one of several base classes (BaseJsonService, BaseXmlService, BaseGraphqlService, etc.) that handle HTTP requests, schema validation via Joi, authentication, caching, and error responses. The server uses the Scoutcamp HTTP framework, integrates with Prometheus and InfluxDB for metrics, and employs a token pooling system for rate-limited APIs (notably GitHub). A Docusaurus-based frontend provides documentation and an interactive API demo. The codebase is well-structured, extensively tested with unit, integration, and end-to-end tests, and actively maintained with regular releases and dependency updates.

RATING: 9.4/10 MAINT: active DRIFT: low
▸ 5 reusable components found
apache/echarts ★ 67441 19817 APPLICATION

Apache ECharts is a mature, open-source JavaScript visualization library for building interactive charts and dashboards in web browsers. It provides a comprehensive set of chart types (line, bar, pie, scatter, map, radar, treemap, sunburst, sankey, etc.), coordinate systems (cartesian, polar, geo, parallel, calendar, matrix), and interactive components (tooltip, legend, dataZoom, visualMap, brush, timeline). The library follows a modular architecture where each chart, component, and renderer is registered via an `install` function, enabling tree-shaking and custom builds. The core rendering engine is ZRender, supporting both Canvas and SVG output, with server-side rendering (SSR) support for SVG. ECharts uses a declarative option-based API (`setOption`) and provides extensive TypeScript type definitions, internationalization (30+ locales), and theming. The codebase is well-structured with clear separation of concerns: models handle option parsing and state, views handle rendering, and a scheduler manages the rendering pipeline (layout, visual, animation). The library is production-grade, with a large test suite including unit tests, visual regression tests, and performance benchmarks. It is actively maintained by the Apache Software Foundation with frequent releases and a large community.

RATING: 9.3/10 MAINT: active DRIFT: low
▸ 6 reusable components found
homarr-labs/dashboard-icons ★ 8870 722 APPLICATION

This repository hosts a curated collection of over 1800 dashboard icons for self-hosted services and applications, accompanied by a full-stack web application for browsing, searching, downloading, and submitting icons. The frontend is built with Next.js 16, React 19, Tailwind CSS 4, and shadcn/ui components, and it uses PocketBase as the backend for authentication, icon submissions, and external icon source management. The application provides an MCP (Model Context Protocol) server endpoint that allows AI assistants to search icons and resolve CDN URLs. It also includes an SVG color customizer for inline theme adjustments, a community submission workflow with admin approval, and automated syncs from third-party sources (Simple Icons, selfh.st, LobeHub). The codebase is well-structured with modern tooling, CI/CD pipelines, and both unit and end-to-end tests. While the repository is primarily an icon asset collection, the accompanying web application delivers significant value through its search, customization, and community features.

RATING: 9.2/10 MAINT: active DRIFT: low
▸ 4 reusable components found
NorthwoodsSoftware/GoJS ★ 8490 2826 APPLICATION

GoJS is a commercial JavaScript/TypeScript diagramming library for building interactive graphs, flowcharts, org charts, and data-visualization editors in the browser. This repository is the distribution/SDK point: it ships prebuilt core bundles (release/go.js, release/go-module.js, release/go-debug.js, release/go.mjs), TypeScript declarations (release/go.d.ts), and an extensive extension kit in both classic script (extensions/) and ES-module/TypeScript (extensionsJSM/) forms. The actual core source tree is excluded (src/ is git-ignored); users consume GoJS as an npm package or script tag and build diagram templates with a fluent API backed by GraphLinksModel/TreeModel JSON data. In production the library is a model-driven rendering and editing engine: applications push node/link data into a go.Model, declarative templates and bindings map that data to Parts, and GoJS handles canvas/SVG rendering, layout, hit-testing, undo/redo, selection, and interactive tools. There are no server endpoints or standalone executables. The extension kit is intentionally sample-grade: every file warns that APIs can change in point releases and advises copying code into the consumer's project. Despite that, the extensions demonstrate sophisticated, well-structured algorithms—circle/rectangle packing, distance-transform heatmaps, quadtree spatial indexing, SCC-based swimlane routing, and table/flow layouts—and follow consistent patterns such as option-object constructors, transaction-safe mutations, and clone-protected subclasses. No test suite is present, and the same extension is duplicated across TS, ESM JS, and classic JS, creating drift risk. License is not open-source: evaluation, non-commercial, and commercial tiers are defined in the license HTML files.

RATING: 9.1/10 MAINT: active DRIFT: low
▸ 5 reusable components found
lincolnloop/python-qrcode ★ 4937 742 APPLICATION

This is a mature, well-maintained pure Python library for generating QR codes. It provides a core QR code encoder that implements the full ISO 18004 standard, including error correction, masking, and version selection. The library supports multiple output formats via a pluggable image factory architecture: PIL (default), PyPNG, and several SVG variants (basic, fragment, path). It also includes a styled PIL image factory that allows custom module shapes (circles, rounded squares, bars) and color masks (gradients, image fills, solid colors) for visually customized QR codes. The codebase is well-structured with clear separation of concerns: QR code encoding logic in `util.py` and `base.py`, image output in `qrcode/image/`, styling in `qrcode/image/styles/`, and a CLI entry point via `console_scripts.py`. It has extensive test coverage, uses modern Python tooling (uv, ruff, GitHub Actions), and follows semantic versioning. The architecture is extensible: new image factories or module drawers can be added by subclassing base classes. The code is clean, well-commented, and demonstrates high craftsmanship in areas like bit manipulation, Reed-Solomon error correction, and efficient SVG path generation.

RATING: 9.1/10 MAINT: active DRIFT: low
▸ 6 reusable components found
oddlama/nix-topology ★ 1002 45 APPLICATION

nix-topology is a NixOS-based tool that automatically generates infrastructure and network diagrams as SVGs from NixOS configurations. It uses a global topology module to aggregate information from multiple NixOS hosts, extracting data about interfaces, services, containers, and virtual machines via specialized extractors. The gathered topology is then rendered using ELK for layout and converted to SVG via custom tools (elk-to-svg and html-to-svg), producing both a physical connection diagram (showing nodes as cards with hardware and service details) and a network-centric view (showing logical networks and their connections). The architecture is modular, with clear separation between information gathering, topology aggregation, and rendering.

RATING: 9.1/10 MAINT: active DRIFT: low
▸ 4 reusable components found
midudev/better-svg ★ 310 21 APPLICATION

Better SVG is a VS Code extension that provides live SVG preview, inline SVG detection, and SVGO optimization. It supports a wide range of frameworks (React, Vue, Svelte, Astro, Blade, etc.) by converting JSX/TSX and framework-specific syntax to standard SVG before optimization and back. The extension includes a webview panel with zoom, pan, color picker, and dark background toggle, as well as gutter icons and hover previews for inline SVGs in code. The core logic is well-abstracted into pure modules (svgTransform, svgPreview, svgoPlugins) that are testable and potentially reusable outside the extension. The codebase is actively maintained, has comprehensive tests, and demonstrates high craftsmanship in handling edge cases like template literal interpolations, Blade directives, and multiline closing tags.

RATING: 9.1/10 MAINT: active DRIFT: low
▸ 3 reusable components found
yizhiyanhua-ai/fireworks-tech-graph ★ 11756 953 APPLICATION

This repository is a production-grade Agent Skill and CLI tool for generating geometry-safe technical diagrams from structured JSON or natural language descriptions. It produces SVG, PNG, animated GIF, and offline interactive HTML outputs across 12 visual styles (11 generator-driven, 1 AI-authored) and supports 14 UML diagram types with domain-specific semantic contracts for C4, cloud, event, and ops profiles. The system features a deterministic orthogonal routing engine, composition quality gates, a validated SVG-to-GIF motion pipeline with per-style animation contracts, and a strict validation framework. It is distributed as an npm package and a Claude Code skill, with a nested mirror for `npx skills add` installation. The codebase is well-tested with extensive regression and pixel-level gates, though it suffers from some duplication between the root and skill mirror directories and hardcoded contract constants.

RATING: 9.0/10 MAINT: active DRIFT: low
▸ 6 reusable components found
simple-icons/simple-icons ★ 25966 3176 DATA_RESEARCH

This repository is a curated collection of over 3400 SVG icons for popular brands, maintained by the Simple Icons project. It is primarily a data repository, with the core assets being the SVG files in `icons/` and the structured metadata in `data/simple-icons.json`. The JSON schema defines brand title, hex color, source URL, guidelines, license, and aliases (including duplicates, localizations, and old names). The repository includes a comprehensive toolchain for managing and validating the icon set: scripts for adding/removing icons, formatting data, and running lint checks (custom linter `ourlint.js`, SVG linting via `svglint`, and JSON schema validation). A JavaScript SDK (`sdk.mjs`) provides utilities for accessing icon data, slug generation, and color normalization. The project is published as an npm package and also served via a CDN. While the primary purpose is data curation, the repository exhibits strong software engineering practices with automated CI/CD (GitHub Actions for release, label sync, issue management), pre-commit hooks, and extensive tests that validate every icon's properties. It is a hybrid of a data collection and a well-engineered toolset for maintaining that collection.

RATING: 8.9/10 REPRO: 9.0/10 MAINT: active DRIFT: low
▸ 5 reusable components found
cncf/landscape ★ 10008 2210 DATA_RESEARCH

This repository is the canonical data source for the CNCF Cloud Native Landscape, a curated directory of cloud-native projects and products. It contains a single YAML file (landscape.yml) defining thousands of entries with metadata (name, category, logo reference, URLs, crunchbase identifier) and a large collection of SVG logos. There is no application code, pipeline, or notebook. The data is manually maintained via pull requests and validated by a CI workflow that checks the YAML structure. The landscape serves as a reference map for the cloud-native ecosystem and is consumed by the landscape2 rendering tool to generate the interactive website at landscape.cncf.io. Despite being a data repository, it is not a research or analytics project; it is a structured dataset with no transformations, modeling, or analytical outputs.

RATING: 8.9/10 REPRO: 8.0/10 MAINT: active DRIFT: low
▸ 1 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
Hufe921/canvas-editor ★ 5164 863 APPLICATION

This repository provides a Canvas/SVG-based WYSIWYG rich text editor (`@hufe921/canvas-editor`) designed for serious document scenarios such as electronic medical records (EMR), contracts, and official reports. It implements pixel-perfect rendering with native pagination and a comprehensive feature set including text formatting, tables, images, hyperlinks, LaTeX formulas, form controls (text, select, checkbox, radio, date, number) with cascading expressions and validation, revision tracking (trace), spellcheck, macros, plugins, and internationalization. The architecture follows a command pattern with a central `Draw` rendering engine, an event bus for decoupled communication, and a plugin system for extensibility. The editor exposes over 154 command APIs and supports multiple modes (edit, readonly, form, print). It is published as an npm package and includes a full-featured demo application.

RATING: 8.9/10 MAINT: active DRIFT: low
▸ 4 reusable components found
olekukonko/tablewriter ★ 4811 399 APPLICATION

This is a Go library for rendering richly formatted tables in a variety of output formats, including ASCII, Unicode, Markdown, HTML, ANSI-colored, and SVG. It provides both a batch mode (`Render`) and a streaming mode (`Start`, `Append`, `Close`) for incremental table generation. The library supports advanced features such as horizontal, vertical, and hierarchical cell merging, per-column alignment, padding, word wrapping, and custom cell formatters. It includes a CLI tool `csv2table` that converts CSV input to tables with the full feature set. The codebase is modular, with separate packages for display width calculation (East Asian language support), word wrapping (minimal raggedness algorithm), an LRU cache, and a set of pluggable renderers. Configuration is done via functional options and a fluent `ConfigBuilder` pattern. Although comprehensive, the API is in a state of transition: many legacy methods (e.g., `SetBorder`, `SetAutoFormatHeaders`) are deprecated, and the migration guide warns that the current version (v1) is still evolving. The architecture is sound, with clear separations between data processing (`tablewriter` core), presentation (`tw` types and `renderer` implementations), and utility packages (`twwidth`, `twwarp`, `twcache`). The library is well-tested with over 50 test files and benchmarks, and demonstrates strong engineering practices.

RATING: 8.9/10 MAINT: maintained DRIFT: low
▸ 5 reusable components found
endroid/qr-code ★ 4806 768 APPLICATION

This repository is the endroid/qr-code PHP library for generating QR codes in multiple output formats including PNG, GIF, WebP, SVG, EPS, PDF, binary text, and console output. It provides a clean object-oriented architecture with immutable value objects (QrCode, Color, Matrix), a Builder facade for convenient construction, and a set of Writer classes each implementing WriterInterface. The library delegates low-level QR encoding to BaconQrCode and handles matrix rendering, logo overlays, and label placement. It includes optional validation by decoding the generated image. The code is modern PHP 8.4, utilizing readonly classes, enums, named arguments, and strict typing. The separation of concerns is clear: QrCode holds data parameters, Matrix encapsulates the binary grid and size calculations, Writers produce format-specific results, and Results provide uniform access to the output. The Builder aggregates all common options and allows per-call overrides. The library is well-maintained with active CI, zero dependabot alerts, and runs on the latest PHP versions.

RATING: 8.9/10 MAINT: maintained DRIFT: low
▸ 2 reusable components found
bpmn-io/diagram-js ★ 1922 448 APPLICATION

diagram-js is a modular, extensible JavaScript library for building interactive web-based diagram editors. It provides the foundational infrastructure—an event-driven architecture via EventBus, a command pattern with full undo/redo support via CommandStack, and a DI container (didi) for composing features as independent modules. The codebase includes core services (Canvas, ElementRegistry, GraphicsFactory) for managing SVG rendering, hit testing, and element lifecycle, along with a rich set of interaction features: drag-and-drop creation/move/resize/connect, snapping, grid snapping, auto-resize, auto-place, bendpoint editing, lasso selection, space tool, popup menus, context pads, palettes, search, overlays, copy/paste, and keyboard bindings. It is designed for downstream domain-specific editors (e.g., bpmn-js, dmn-js) which extend it via provider interfaces and rule systems. The library is well-tested with an extensive suite using Mocha/Chai/Sinon and runs on modern browsers. Its architecture emphasizes decoupling, extensibility, and reusable patterns.

RATING: 8.9/10 MAINT: active DRIFT: low
▸ 3 reusable components found
swimlane/ngx-graph ★ 995 299 APPLICATION

ngx-graph is an Angular library for rendering directed acyclic graphs (DAG) and other graph structures using SVG. It provides a standalone GraphComponent with signal-based inputs and outputs, supporting multiple built-in layout engines (Dagre, DagreCluster, DagreNodesOnly, D3 force-directed, Cola force-directed) and custom layouts via a Layout interface. The component handles viewport transformations (pan, zoom), node dragging, minimap, and rich layout morph animations between graph updates. The architecture centers on a flexible layout service pattern where each layout is a class implementing run/updateEdge/hooks, and the GraphComponent orchestrates layout calculations, SVG rendering, and interaction. The codebase demonstrates modern Angular practices (signals, standalone components, OnPush change detection) and includes comprehensive test coverage. It is maintained by Swimlane with regular releases and extensive documentation via Storybook.

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