fillpattern
Pattern fills for ggplot2, hardened against the ways users write sizes
A side-by-side editorial comparison of aniread and hoopr — release velocity, themes, recent moves, and the top alternatives to consider.
aniread keeps finding that every tracker lies about coordinates in its own way.
aniread is the reader package of the animovement suite, importing output from pose-estimation and centroid trackers into aniframe objects. The 0.4.0 release standardised something every reader had been getting differently — source data using an image top-left origin is now reflected into a conventional bottom-left origin, across eleven readers. Since then the work has been Octron and BORIS specifics, and 0.5.0 extended the package past tracking data into behavioural events.
hoopR rebuilds its HTTP layer on httr2 to stop segfaulting on modern systems
hoopR is the sportsdataverse R package for basketball data, wrapping ESPN, NBA Stats, NBA G-League, NCAA and KenPom behind a single set of loaders. Version 3.0.0 replaces httr with httr2 across every one of those backends, drops httr from Imports, and routes all calls through shared internal retry and response helpers. The change is breaking, and it exists because the old stack segfaulted against libcurl 8.x and curl 7.0.0.
aniread is the reader package of the animovement suite, importing output from pose-estimation and centroid trackers into aniframe objects. The 0.4.0 release standardised something every reader had been getting differently — source data using an image top-left origin is now reflected into a conventional bottom-left origin, across eleven readers. Since then the work has been Octron and BORIS specifics, and 0.5.0 extended the package past tracking data into behavioural events.
Each release reads as a catalogue of the ways a source format is imprecise: Octron omitting frames where nothing was detected, BORIS exports whose image index puts a STOP before its START, idtracker.ai renaming its leading column, Windows UNC shares reporting a false negative on read permission. The fixes share a posture of reconstructing what the format left implicit rather than passing the gap through — reinstating missing frames as all-NA rows, recovering a frame interval from time and FPS. Format support now tracks aniframe's class work closely, with 0.5.0 requiring aniframe 0.6.0 for the anievent class it produces.
get_supported_sources() was added so downstream packages can discover formats programmatically instead of hard-coding them, which suggests the next additions are more sources behind that registry rather than changes to the reader API.
hoopR is the sportsdataverse R package for basketball data, wrapping ESPN, NBA Stats, NBA G-League, NCAA and KenPom behind a single set of loaders. Version 3.0.0 replaces httr with httr2 across every one of those backends, drops httr from Imports, and routes all calls through shared internal retry and response helpers. The change is breaking, and it exists because the old stack segfaulted against libcurl 8.x and curl 7.0.0.
The package's history is two distinct eras. Through 2021-2023 it grew by endpoint accretion — ESPN stat functions, G-League coverage, the NBA live and boxscore V3 families, on-court players in play-by-play — expanding what could be pulled. The recent work is consolidation instead: one HTTP pipeline, one messaging library, data served from the shared sportsdataverse-data releases rather than per-package repositories. The centre of gravity has moved from adding endpoints to making the plumbing survive its dependencies.
With the HTTP layer unified behind shared helpers, expect the sibling sportsdataverse packages to follow the same httr2 migration, and hoopR's own next releases to resume endpoint work now that requests run through one pipeline.
Other Analytics products tracked by Sparkpulse, ranked by recent ship velocity. Each card links to a full editorial trajectory and lets you pivot into a head-to-head comparison with either aniread or hoopr.
Pattern fills for ggplot2, hardened against the ways users write sizes
gcube's recent releases are all packaging metadata, not simulation code
The R port of Quinlan's Cubist gets reproducibility fixes, not new modelling
ggstats keeps widening what a coefficient or Likert plot can be
ecodive rebuilt itself into a broad diversity-metric library, breaking as it went
State-space data simulation for R, filled in one function at a time
See all aniread alternatives → · See all hoopr alternatives →
Latest ship moves from both products, interleaved chronologically. ⚡ = editorial spark.
They serve adjacent needs but don't currently overlap on shipped themes. aniread and hoopr are shipping at a similar cadence (velocity 0.0 vs 0.0, both within Sparkpulse's "active" band). See the at-a-glance table above for a side-by-side breakdown of velocity, recent sparks, and editorial themes.
Sparkpulse doesn't pick a winner — we score release velocity, not feature parity. aniread and hoopr are shipping at a similar cadence (velocity 0.0 vs 0.0, both within Sparkpulse's "active" band). For your specific use case, the alternatives sections above list other Analytics products to evaluate alongside.
Top aniread alternatives in Analytics are ranked by recent ship velocity. Browse the "aniread alternatives" section above for the current picks, or visit /alternatives/aniread for the full list with editorial commentary on each.
Top hoopr alternatives in Analytics are ranked by recent ship velocity. Browse the "hoopr alternatives" section above for the current picks, or visit /alternatives/hoopr for the full list with editorial commentary on each.