{"id":32789086,"url":"https://github.com/entropy-tamer/reynard-algorithms","last_synced_at":"2026-01-20T17:30:38.974Z","repository":{"id":319551479,"uuid":"1075215460","full_name":"entropy-tamer/reynard-algorithms","owner":"entropy-tamer","description":"Algorithm primitives and data structures for Reynard applications - comprehensive collection with automatic optimization","archived":false,"fork":false,"pushed_at":"2025-11-01T09:34:40.000Z","size":21551,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-11-01T10:04:43.692Z","etag":null,"topics":["a-star","algorithms","benchmarking","binary-heap","collision-detection","data-structures","game-development","geometry","memory-pooling","optimization","pathfinding","performance","priority-queue","reynard","solidjs","spatial-hashing","spatial-indexing","typescript","union-find"],"latest_commit_sha":null,"homepage":"https://github.com/entropy-tamer/reynard-algorithms","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/entropy-tamer.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-10-13T07:43:24.000Z","updated_at":"2025-11-01T09:34:43.000Z","dependencies_parsed_at":null,"dependency_job_id":"988156d0-65fa-458a-8c37-2953228d2b5b","html_url":"https://github.com/entropy-tamer/reynard-algorithms","commit_stats":null,"previous_names":["entropy-tamer/reynard-algorithms"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/entropy-tamer/reynard-algorithms","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/entropy-tamer%2Freynard-algorithms","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/entropy-tamer%2Freynard-algorithms/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/entropy-tamer%2Freynard-algorithms/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/entropy-tamer%2Freynard-algorithms/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/entropy-tamer","download_url":"https://codeload.github.com/entropy-tamer/reynard-algorithms/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/entropy-tamer%2Freynard-algorithms/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":282799913,"owners_count":26729199,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-11-05T02:00:05.946Z","response_time":58,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["a-star","algorithms","benchmarking","binary-heap","collision-detection","data-structures","game-development","geometry","memory-pooling","optimization","pathfinding","performance","priority-queue","reynard","solidjs","spatial-hashing","spatial-indexing","typescript","union-find"],"created_at":"2025-11-05T10:00:34.196Z","updated_at":"2026-01-20T17:30:38.912Z","avatar_url":"https://github.com/entropy-tamer.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# reynard-algorithms\n\n\u003e Algorithms, data structures, and computational utilities for spatial computing, collision detection, pathfinding, and procedural generation\n\nA comprehensive collection of reusable algorithmic building blocks with automatic optimization, memory pooling, and performance monitoring. Built with the PAW optimization framework for maximum efficiency.\n\n## Features\n\n- **🦊 Optimized Algorithms** - Automatic algorithm selection with memory pooling and performance monitoring\n- **🔧 PAW Optimization Framework** - Intelligent heuristic-based algorithm selection with performance monitoring\n- **⚡ Performance Utilities** - Comprehensive benchmarking, profiling, and monitoring tools\n\n### Data Structures\n\n- **🔗 Union-Find** - Efficient set operations, cycle detection, and connected components\n- **🌸 Bloom Filter** - Space-efficient probabilistic data structure for membership testing\n- **⚡ Priority Queue** - Binary heap implementation with O(log n) operations\n- **🔄 LRU Cache** - Least Recently Used cache with O(1) access operations\n- **📊 Fenwick Tree** - Binary Indexed Tree for efficient range sum queries\n- **📅 Interval Tree** - Efficient interval overlap queries and range operations\n- **🌳 Segment Tree** - Range query and update operations in O(log n) time\n- **🔤 Trie** - Prefix tree for efficient string operations and autocomplete\n\n### Spatial Structures\n\n- **🗺️ Spatial Hashing** - Efficient spatial partitioning and nearest neighbor queries\n- **🌲 Quadtree** - Recursive spatial partitioning for 2D spatial queries\n- **🌳 R-Tree** - Balanced tree structure for efficient spatial indexing\n- **🌲 K-d Tree** - Multi-dimensional space partitioning for nearest neighbor searches\n- **🧊 Octree** - 3D spatial partitioning for efficient 3D queries and ray tracing\n- **📦 BVH** - Bounding Volume Hierarchy for collision detection and ray tracing\n\n### Geometry Operations\n\n- **📐 Basic Geometry** - Complete 2D geometric calculations and transformations (Point, Vector, Line, Rectangle, Circle, Polygon)\n- **📏 Bresenham's Line** - Efficient line drawing algorithm for pixel-perfect graphics\n- **🔺 Delaunay Triangulation** - Optimal triangulation using Bowyer-Watson algorithm\n- **🛡️ Convex Hull** - Multiple algorithms (Graham Scan, Jarvis March, QuickHull)\n- **🏔️ Marching Squares** - Contour generation from scalar field data\n- **🌊 Simplex Noise** - High-quality procedural noise generation (2D, 3D, 4D)\n- **🎯 Poisson Disk Sampling** - High-quality point distribution algorithms\n- **🌊 Wave Function Collapse** - Constraint-based procedural generation\n- **🔷 Voronoi Diagram** - Space partitioning for nearest neighbor queries and coverage analysis\n- **✂️ Polygon Clipping** - Boolean operations on polygons (Sutherland-Hodgman, Weiler-Atherton)\n- **⚡ Line Segment Intersection** - Efficient intersection detection using Bentley-Ottmann algorithm\n- **📐 OBB** - Oriented Bounding Box for rotated object collision detection\n- **📏 Min Bounding Box** - Minimum area rectangle using rotating calipers algorithm\n\n### Collision Detection\n\n- **💥 AABB Collision Detection** - Advanced collision detection with spatial optimization\n- **🔀 SAT Collision** - Separating Axis Theorem for convex polygon collision detection\n- **🔄 Sweep and Prune** - Broad-phase collision detection for dynamic scenes\n\n### Pathfinding Algorithms\n\n- **⭐ A\\* Pathfinding** - Optimal pathfinding with multiple heuristics and caching\n- **⚡ JPS** - Jump Point Search for optimized grid-based pathfinding\n- **📐 Theta\\*** - Any-angle pathfinding for smooth path generation\n- **🌊 Flow Field** - Potential field pathfinding for crowd simulation\n- **🏗️ HPA\\*** - Hierarchical Pathfinding for large-scale pathfinding\n\n### Machine Learning - Dimensionality Reduction\n\n- **🗺️ Isomap** - Non-linear dimensionality reduction preserving geodesic distances\n- **📊 PCA** - Principal Component Analysis for linear dimensionality reduction\n- **📉 MDS** - Multidimensional Scaling for distance-preserving embeddings\n\n## Installation\n\n```bash\nnpm install @entropy-tamer/reynard-algorithms\n```\n\n## Quick Start\n\n```typescript\nimport { UnionFind, PriorityQueue, AABB } from \"@entropy-tamer/reynard-algorithms\";\n\n// Union-Find for connected components\nconst uf = new UnionFind(10);\nuf.union(0, 1);\nconsole.log(uf.connected(0, 1)); // true\n\n// Priority Queue for efficient ordering\nconst pq = new PriorityQueue\u003cnumber\u003e();\npq.push(3, 1);\npq.push(1, 3);\nconsole.log(pq.pop()); // 1 (highest priority)\n\n// AABB collision detection\nconst box1 = new AABB(0, 0, 10, 10);\nconst box2 = new AABB(5, 5, 15, 15);\nconsole.log(box1.intersects(box2)); // true\n```\n\n## Documentation\n\nFor detailed documentation, mathematical theory, and comprehensive examples, see the [Documentation](./docs/README.md) directory.\n\n### Key Documentation Sections\n\n- **[Mathematical Theory](./docs/mathematical-theory/)** - Mathematical foundations and proofs\n- **[Algorithm Guides](./docs/algorithms/)** - Detailed implementation guides\n- **[Examples](./docs/examples/)** - Usage examples and best practices\n- **[Performance Analysis](./docs/performance/)** - Benchmarks and optimization strategies\n\n## Performance\n\nAll algorithms include comprehensive performance monitoring and optimization:\n\n- **Memory Pooling** - Automatic memory management for high-frequency operations\n- **Benchmarking** - Built-in performance measurement tools\n- **Optimization** - PAW framework for automatic algorithm selection\n- **Monitoring** - Real-time performance tracking and analysis\n\n## Examples\n\nSee the [examples](./examples/) directory for complete usage examples:\n\n- **[Basic Usage](./examples/basic-usage.ts)** - Getting started with core algorithms\n- **[Game Engine Integration](./examples/game-engine-integration.ts)** - Using algorithms in game development\n\n## API Reference\n\n### Data Structures\n\n```typescript\n// Union-Find\nclass UnionFind {\n  constructor(size: number);\n  find(x: number): number;\n  union(x: number, y: number): boolean;\n  connected(x: number, y: number): boolean;\n}\n\n// Priority Queue\nclass PriorityQueue\u003cT\u003e {\n  push(item: T, priority: number): void;\n  pop(): T | undefined;\n  peek(): T | undefined;\n  size(): number;\n  isEmpty(): boolean;\n}\n\n// LRU Cache\nclass LRUCache\u003cK, V\u003e {\n  constructor(capacity: number);\n  get(key: K): V | undefined;\n  set(key: K, value: V): void;\n  has(key: K): boolean;\n  delete(key: K): boolean;\n}\n```\n\n### Geometry\n\n```typescript\n// Basic shapes\nclass Point {\n  x: number;\n  y: number;\n}\nclass Vector {\n  x: number;\n  y: number;\n}\nclass Rectangle {\n  x: number;\n  y: number;\n  width: number;\n  height: number;\n}\nclass Circle {\n  x: number;\n  y: number;\n  radius: number;\n}\n\n// Collision detection\nclass AABB {\n  constructor(x: number, y: number, width: number, height: number);\n  intersects(other: AABB): boolean;\n  contains(point: Point): boolean;\n}\n```\n\n### Pathfinding\n\n```typescript\n// A* Pathfinding\nclass AStar {\n  findPath(start: Point, goal: Point, grid: Grid): Point[];\n  setHeuristic(heuristic: HeuristicFunction): void;\n}\n\n// Flow Field\nclass FlowField {\n  generate(goal: Point, obstacles: Obstacle[]): void;\n  getDirection(position: Point): Vector;\n}\n```\n\n## Contributing\n\nContributions are welcome! Please see our [Contributing Guidelines](./CONTRIBUTING.md) for details.\n\n## License\n\nMIT License - see [LICENSE](./LICENSE) for details.\n\n## Related Packages\n\n- **[reynard-core](../core/)** - Core Reynard framework utilities\n- **[reynard-ui](../ui/)** - UI components and primitives\n- **[reynard-testing](../testing/)** - Testing utilities and helpers\n\n---\n\nFor more information, visit the [Reynard Documentation](https://github.com/entropy-tamer/reynard) or check out our [examples](./examples/).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fentropy-tamer%2Freynard-algorithms","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fentropy-tamer%2Freynard-algorithms","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fentropy-tamer%2Freynard-algorithms/lists"}