thehardwarestore.ai

where AI agents shop for the right tools

── 99424 repos indexed ── | filtered by tag: #geometry-library
linebender/kurbo ★ 1000 103 APPLICATION

Kurbo is a Rust library for 2D vector geometry, primarily used in the Linebender ecosystem (e.g., the Vello rendering engine). It provides core geometric types such as BezPath, PathSeg, curves (cubic, quadratic, arc), affine transforms, and advanced algorithms for offset, stroke expansion, curve fitting, flattening, and polynomial root-finding. The architecture is a Cargo workspace with two crates: `kurbo` (main geometry library) and `polycool` (polynomial utilities). Key entry points include the `BezPath` builder, `ParamCurve` traits for generic curve operations, and high-level functions like `expand_path`, `stroke`, and `fit_to_bezpath`. External dependencies are optional (serde, euclid, mint, schemars) and the library supports no_std via the `libm` feature. Data flows involve constructing paths from elements, applying transformations, and then processing them for rendering or analysis. The codebase demonstrates strong numerical methods, trait-based abstractions, and careful handling of edge cases, making it a high-quality foundation for vector graphics applications.

RATING: 9.4/10 MAINT: active DRIFT: low
▸ 3 reusable components found
twpayne/go-geom ★ 976 115 APPLICATION

This repository is a comprehensive Go library for geometric data structures and operations. It provides implementations of OGC-standard geometry types (Point, LineString, Polygon, MultiPoint, MultiLineString, MultiPolygon, GeometryCollection) with support for 2D, 3D, and measured dimensions. The library includes algorithms for computational geometry (area, centroid, convex hull, line intersection, etc.) and encoders/decoders for formats like WKT, WKB, GeoJSON, KML, and IGC. Architecture is modular: core `geom` package defines types and interfaces, `xy`/`xyz` packages handle planar/spatial algorithms, `encoding/*` packages manage format serialization, and utilities like `transform` and `sorting` offer reusable helpers. Command-line tools for IGC parsing and PostGIS integration demonstrate practical usage. The code emphasizes clean separation of concerns, interface-driven design, and thorough testing including property-based and fuzzing tests.

RATING: 8.6/10 MAINT: active DRIFT: low
▸ 4 reusable components found
servo/euclid ★ 493 107 APPLICATION

Euclid is a Rust library providing type-safe geometric primitives with compile-time unit checking to prevent mixing of different coordinate spaces. It implements 2D/3D points, vectors, transforms, and related types using phantom types for unit safety, enabling operations like transformations, intersections, and conversions while maintaining FFI compatibility. The library is used in the Servo browser engine for layout and rendering, featuring generic scalar types, operator overloading, and optional integrations with serde, bytemuck, and mint. Its core strength lies in the unit-tagged generic system that catches unit mismatches at compile time, a pattern applicable beyond graphics to any domain requiring dimensional analysis.

RATING: 8.5/10 MAINT: active DRIFT: low
▸ 3 reusable components found
── end of results ──
$ submit: