Skip to content
CAI
Software that uses CAICheck a score

plokhotnyuk/rtree2d

55.6

Adequate · 20 September 2026

1.3k

lines of production code

Scala

primary language

1

measurement over time

CAI band scale
CAI lens gauges

What this system is

RTree2D is a high-performance, multi-platform spatial indexing library for Scala that supports JVM, JavaScript, and Native environments. It provides core capabilities for Euclidean and spherical geometry, including range searches, nearest-neighbor queries, and distance calculations. The system is designed for rigorous performance evaluation, featuring comprehensive benchmarking suites that compare its implementation against other R-tree libraries.

Features

Add Scala Native support

The library now supports Scala Native, enabling users to compile and run the R-tree implementation on native platforms. This change introduces platform-specific comparator implementations for X and Y axes, ensuring correct spatial sorting and query performance in native environments.

rtree2d-core/native · high confidence

Benchmark suite now includes Archery and David Moten's RTree2D alongside JTS and RTree2D

The benchmark suite has been expanded to include performance comparisons against two additional R-tree implementations: Archery and David Moten's RTree2D. These new benchmarks, along with the existing JTS and RTree2D implementations, allow users to evaluate the relative performance of different libraries across various operations such as nearest neighbor searches, range queries, and updates. The benchmarks support configurable parameters including dataset size, node capacity, overlap, and geometry type (plane or spherical), and can be run with or without data shuffling to assess performance under different conditions.

rtree2d-benchmark · high confidence

Support for spherical geometry and distance calculations

The core library now supports indexing and querying data using spherical coordinates (latitude and longitude) in addition to the existing Euclidean plane support. This introduces a new \Spherical\ companion object with factory methods to create entries based on lat/lon coordinates, including handling of circular areas that cross the anti-meridian. A new \DistanceCalculator\ type class and specific implementation using the haversine formula allow for accurate nearest-neighbor searches on a sphere with a specified radius.

rtree2d-core/shared/src/main · high confidence

Removals

RTree core implementation deleted

The main RTree implementation file (RTree.scala) in the core module has been removed. This deletion eliminates the previous in-memory immutable R-tree structure, its STR packing logic, and the associated search methods (searchAll, search) that operated on the old coordinate parameter names (x1, y1, x2, y2).

core/src/main · high confidence

Removal of legacy RTree JMH benchmark suite

The legacy JMH benchmark implementation for the RTree data structure, including the \RTreeBenchmark\ class and its associated unit tests, has been removed from the benchmark module. This change eliminates the old performance measurement infrastructure that previously tested RTree construction, entry iteration, and search operations, likely to make way for newer benchmarking approaches or to clean up obsolete code.

benchmark · high confidence

Behavioural changes

Library rebranded to RTree2D with updated artifact coordinates and API

The library has been rebranded from 'sizmek' to 'plokhotnyuk' (RTree2D), requiring users to update their dependency coordinates from \com.sizmek.rtree2d:core\ to \com.github.plokhotnyuk.rtree2d:rtree2d-core\ and change imports from \com.sizmek.rtree2d.core.\\ to \com.github.plokhotnyuk.rtree2d.core.\\. The API has evolved to support nearest-neighbor queries (\nearestOption\, \nearestK\) and spherical Earth distance calculations alongside existing range searches, with new example code demonstrating usage for both Euclidean and spherical geometries. Additionally, the project version has been bumped to 0.11.16-SNAPSHOT.

(repo-wide) · high confidence

Platform-specific comparator implementations for RTree sorting

The RTree core library now uses distinct comparator implementations for the JVM and JavaScript platforms to handle floating-point comparisons. On the JVM, comparators use \floatToRawIntBits\ to ensure consistent ordering regardless of NaN values, while the JavaScript platform uses \floatToIntBits\. This change ensures correct sorting behavior for RTree nodes based on their X and Y coordinates across both supported runtimes.

rtree2d-core/js, rtree2d-core/jvm · high confidence

Test coverage

Added comprehensive test suite for RTree2D core geometry and operations; Removed legacy RTree test suite and property-based checkers.

Dependencies

Migrate to Maven Central and add Scala Native support

The project has moved its publication repository from Bintray to Maven Central, updating the organization to com.github.plokhotnyuk and adjusting developer contact details accordingly. Additionally, Scala Native support has been added for the core library, introducing a new \rtree2d-coreNative\ module alongside the existing JVM and JS platforms, with specific linker and build configurations for the native target.

(dependencies) · high confidence

Upgrade build infrastructure and add benchmark charting tool

The build system has been significantly upgraded: Sbt is updated from 1.1.4 to 1.13.0, and key plugins including sbt-scalajs (1.22.0), sbt-scala-native (0.5.12), sbt-scoverage (2.4.4), and sbt-mima-plugin (1.2.0) are updated to their latest versions. The build also introduces a new \Bencharts\ utility in \project/Bencharts.scala\ that generates PNG charts from JMH benchmark results using JFreeChart, featuring logarithmic axes and error bars. Additionally, the \sbt-updates\ plugin (0.7.0) is added to help track dependency updates.

project · high confidence

Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.

How this codebase got here

Baseline

  • First survey — no prior run to compare against. CAI 56.

Lenses

  • Code Health 98
  • Architecture 69
  • Maturity 46
  • Readiness 53
  • Security 73

Changes since last survey

  • 300 commits — 299 feature/other, 1 fixes

By area

  • project/plugins.sbt — 196 commits
  • (root) — 55 commits
  • project/build.properties — 45 commits
  • (repo) — 1 commit
  • .github/workflows — 1 commit
  • docs/overlap-10 — 1 commit
  • rtree2d-core/shared — 1 commit

Notable commits

  • fix: Fix scalac warnings
  • change: Add support of Scala Native for Scala 3 + update plugins and dependencies
  • change: Add version scheme to published pom.xml files
  • change: Reduce size of ScalaDoc artifact for Scala 3
  • change: Remove duplicated settings for Scala.js
  • change: Restore MiMa checks for Scala Native
  • change: Setting version to 0.11.11
  • change: Setting version to 0.11.12
  • change: Setting version to 0.11.12-SNAPSHOT
  • change: Setting version to 0.11.13
  • change: Setting version to 0.11.13-SNAPSHOT
  • change: Setting version to 0.11.14
  • change: Setting version to 0.11.14-SNAPSHOT
  • change: Setting version to 0.11.15
  • change: Setting version to 0.11.15-SNAPSHOT
  • change: Setting version to 0.11.16-SNAPSHOT
  • change: Tune JVM options
  • change: Turn on method optimization for Scala 2
  • change: Update Scala 2.12.x to 2.12.7
  • change: Update Scala 3.x to 3.2.0
  • …and 280 more

Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.

Survey your own repository

plokhotnyuk/rtree2d was measured the same way every project in this corpus was: the same rubric, at a pinned commit, with the result published in full. Point a surveyor at a repository you know and see whether you agree with it.

About this page

  • The score is its most recent published measurement, taken on 20 September 2026 at a pinned commit. It is not a live figure and does not change until the project is measured again.
  • Measured at commit b304833df6434f128125294ca5d4e6b48a78ff68 — the exact code this score is about.
  • Scored under rubric-2026.09.15 — the same rubric and the same method as every other entry in this index.
  • Measured by watchdog.canine.dev using codehealth-analyzer preprod-b51f968c9b10.