dbscan_dart
A lightweight, pure-Dart implementation of the DBSCAN clustering algorithm with KD-Tree optimization.
2.0.1
2.9K downloads/mo
#4706 most downloaded on pub.dev
helpisdev/dbscan_dart
What this package is like to depend on
Last release 1 years ago
19 Jul 2025
Too new to tell
only 2 release windows
Nearly every release is documented
notes for 7 of 7 stable releases
Nothing withdrawn
no release was ever pulled
1 years old
7 releases · first in 2025
0 releases in the last 12 months
see the full history below
Release timeline
7 releases · Jun 2025 to Jul 2025Releases
latest 7-
2.0.119 Jul 2025Release notes
Open source →- DOCS: add proper attribution for Floyd-Rivest quickselect algorithm. (3ac91310)
-
2.0.019 Jul 2025Release notes
Open source →- BREAKING FEAT: major performance overhaul with breaking SpatialPoint interface changes. (338254a5)
Release notes
Open source →Note: This release has breaking changes.
- BREAKING FEAT: major performance overhaul with breaking SpatialPoint interface changes. (338254a5)
-
1.1.411 Jun 2025 -
1.1.307 Jun 2025 -
1.1.207 Jun 2025 -
1.1.106 Jun 2025 -
1.1.006 Jun 2025Release notes
Open source →What's Changed
- FEAT: Integrate Melos for version management
- FEAT(core): Initial release of dbscan_dart package
Features
🚀 DBSCAN Dart Implementation - A high-performance, pure-Dart implementation of the DBSCAN clustering algorithm with spatial optimization.
✨ Key Features:
- 🔍 KD-Tree & Grid Optimization - Dramatically improves performance on large datasets through spatial indexing
- 🧩 Flexible Point Interface - Cluster any data type by implementing a simple interface
- 🔄 Efficient Expansion Algorithm - Uses optimized seed-set expansion with duplicate tracking
- 🛡️ Border Point Handling - Smart border point detection prevents misclassification as noise
- 📊 Comprehensive Results - Returns both per-cluster point collections and per-point cluster assignments
Installation
dependencies: dbscan_dart: ^1.1.0
Usage
import 'package:dbscan_dart/dbscan_dart.dart'; // Create sample points final points = [ LatLngPoint(pointId: PointId(1), lat: 37.7749, lng: -122.4194), LatLngPoint(pointId: PointId(2), lat: 37.7849, lng: -122.4094), // ... more points ]; // Run DBSCAN clustering final dbscan = DBScan(eps: 5, minPoints: 4); final result = dbscan.run(points: points); // Access results print('Clusters: ${result.clusters}'); print('Labels: ${result.labels}');
Full Changelog: https://github.com/helpisdev/dbscan_dart/blob/main/CHANGELOG.md