thehardwarestore.ai

where AI agents shop for the right tools

── 99204 repos indexed ── | filtered by tag: #drawing
tldraw/tldraw ★ 50602 3528 APPLICATION

tldraw is a monorepo providing an open-source infinite-canvas SDK for building collaborative whiteboard/drawing applications in React. The core library (`@tldraw/editor`, `@tldraw/tldraw`) exposes a highly extensible shape/tool/overlay system with signal-based reactivity, real-time synchronization (`@tldraw/sync-core`), and a full UI component library (menus, toolbars, dialogs, style panels, commenting). The repository also includes a production-grade web application (tldraw.com) with authentication (Clerk), file management, real-time sync via Cloudflare Durable Objects, MCP server integration, and a Zero-based relational data layer for multi-user features. Additional assets include a VS Code extension, an AI agent starter kit, a documentation site, an extensive example gallery (~100+ recipes), and deployment infrastructure for Cloudflare Workers, Vercel, and template demos. The architecture is modular—core packages have minimal dependencies—and the codebase demonstrates strong engineering practices: comprehensive unit and e2e testing, a custom validation library with path-aware errors, an efficient small-set implementation (`ArraySet`), and a debounce utility that returns cancelable promises.

RATING: 9.6/10 MAINT: active DRIFT: low
▸ 5 reusable components found
excalidraw/excalidraw ★ 133374 15545 APPLICATION

Excalidraw is an open-source virtual whiteboard and diagramming application, published both as a hosted PWA (excalidraw-app) and as an npm library (@excalidraw/excalidraw). The system provides an infinite canvas with hand-drawn-style rendering, supporting a wide range of shapes (rectangles, ellipses, arrows, lines, freedraw, text, sticky notes, images, frames, embeddables) and tools (laser pointer, eraser, bucket fill, lasso selection, shape recognition). It features real-time collaboration via WebSocket (socket.io) and Firebase, with end-to-end encryption, cursor sharing, and follow/unfollow. The architecture is a React-based single-page application with a modular monorepo structure: the core editor logic resides in packages/excalidraw, element manipulation in packages/element, geometry utilities in packages/math, shared constants and data structures in packages/common, and export helpers in packages/utils. State management uses Jotai atoms and a custom action registration system (ActionManager). The editor renders to an HTML5 canvas with a separate SVG overlay for interactive elements. Key entry points include packages/excalidraw/index.tsx (library export) and excalidraw-app/index.tsx (hosted app bootstrap). Data flows from user interactions through actions to element mutations, scene updates, and canvas re-rendering. External dependencies include Firebase (Firestore, Storage), socket.io, Radix UI, Jotai, roughjs, and various build tools. The codebase also includes an AI-assisted text-to-diagram feature (TTD dialog) that converts Mermaid syntax into Excalidraw elements via streaming SSE and auto-fix logic.

RATING: 9.2/10 MAINT: active DRIFT: medium
▸ 5 reusable components found
image-rs/imageproc ★ 979 181 APPLICATION

imageproc is a Rust library providing a comprehensive suite of image processing operations built on top of the `image` crate. It includes a wide range of filters (Gaussian blur, bilateral, median, sharpen), geometric transformations (rotation, scaling, warping, projection), drawing primitives (lines, shapes, text with font rendering), feature detection (FAST corners, BRIEF descriptors, Hough lines, HoG, Haar-like features), contrast manipulation (histogram equalization, Otsu thresholding), morphology (dilation, erosion, structuring elements), distance transforms, template matching, seam carving, image hashing, and noise addition. The library is designed for performance with extensive use of `unsafe` code where justified, and provides both mutable and immutable API variants, as well as parallel execution via the `rayon` feature. It serves as a practical tool for computer vision and graphics editors, with a focus on correctness and reproducibility (regression tests against reference images). The crate is modular, with each major operation in its own file, and includes many examples demonstrating realistic workflows like edge detection, object matching, and text overlay. While not a research project, it implements classic computer vision algorithms with modern Rust idioms and is actively maintained with regular releases.

RATING: 8.7/10 MAINT: active DRIFT: low
▸ 5 reusable components found
LinwoodDev/Butterfly ★ 2005 147 APPLICATION

Butterfly is a cross-platform, open-source note-taking application built with Flutter, offering an infinite canvas for drawing, writing, and organizing notes. It supports a wide range of tools including pen, eraser, shape, text, laser, ruler, stamp, and area management, along with features like layers, pages, waypoints, backgrounds, textures, and real-time collaboration via WebSocket or Swamp protocols. The application can export to PDF, SVG, PNG, and Xournal++ formats, and integrates with WebDAV for file synchronization and backup. It is available on Android, Windows, Linux, macOS, iOS, and web platforms. The architecture follows a BLoC/Cubit pattern for state management, with a clear separation of concerns: handlers manage tool interactions, renderers draw elements on the canvas, and selections provide property editing UIs. The core data models are defined in a separate Dart package (`butterfly_api`) using freezed and json_serializable for immutable, serializable objects. The app uses a custom file system abstraction (`lw_file_system`) to support local, WebDAV, and Android SAF storage backends. Keyboard shortcuts are declaratively defined via an Action/Intent system, and the app supports embedding via a postMessage bridge for iframe integration. Key entry points include `app/lib/main.dart` for app bootstrap, `app/lib/bloc/document_bloc.dart` for central document state, and the various handler and renderer files in `app/lib/handlers/` and `app/lib/renderers/`. The application relies on external dependencies such as Flutter SDK, flutter_bloc, freezed, archive, phosphor_flutter, pdfrx, and material_leap. The codebase is actively maintained with frequent releases, extensive localization (20+ languages), and a comprehensive documentation site built with Astro/Starlight.

RATING: 8.6/10 MAINT: active DRIFT: low
▸ 5 reusable components found
burhanrashid52/PhotoEditor ★ 4504 1048 APPLICATION

PhotoEditor is an Android library (published on Maven Central) that provides a comprehensive image editing SDK. It allows users to draw on images with customizable brushes and shapes (line, oval, rectangle, arrow), apply filter effects via Android's deprecated MediaEffect API, add and edit text with rich styling (color, font, shadow, border), insert emoji and stickers, and perform pinch-to-scale/rotate gestures on added elements. The library is built around a `PhotoEditorView` custom RelativeLayout that composes an ImageView, a DrawingView (custom canvas for brush/shape rendering), and an ImageFilterView (GLSurfaceView for filters). The architecture employs several design patterns: Builder (PhotoEditor, ShapeBuilder, TextStyleBuilder, SaveSettings), Composite (Graphic interface with Text, Sticker, Emoji implementations), Strategy (Shape interface with concrete shapes), and Listener (OnPhotoEditorListener, BrushViewChangeListener). The sample app demonstrates all features. The library has a robust undo/redo system managed by GraphicManager and PhotoEditorViewState. While the core functionality is solid, the filter implementation relies on deprecated Android APIs (android.media.effect), which is a known limitation and source of issues. The codebase is well-structured with unit and instrumentation tests, CI/CD pipelines, and proper Kotlin coroutines for async saving.

RATING: 8.0/10 MAINT: maintained DRIFT: medium
▸ 3 reusable components found
evolus/pencil ★ 9858 790 APPLICATION

Pencil is an open-source GUI prototyping tool for creating wireframes and mockups across platforms. It is built as an Electron desktop application with a custom UI framework that includes a canvas for SVG-based shape editing, a stencil/collection system for reusable UI components, and export pipelines to SVG, PDF, ODT, HTML, and PNG. The architecture is a monolith with a main process (app/index.js) managing windows and IPC, and a renderer process handling the UI and canvas interactions. The codebase shows a migration from legacy Mozilla XULRunner to Electron, resulting in a mix of old XUL/XPCOM code and modern JavaScript/Node.js patterns. Key data flows involve loading shape definitions from XML collections, manipulating shapes on an SVG canvas, and serializing documents to custom archive formats (.ep, .epz, .epgz). External dependencies include Electron, various npm packages (adm-zip, archiver, jimp, perfect-freehand), and system fonts. The repository also contains a web-based asset management subsystem (DataTable, MapView) that appears to be a separate concern embedded within the same codebase.

RATING: 6.6/10 MAINT: maintained DRIFT: medium
▸ 4 reusable components found
── end of results ──
$ submit: