Changes in version 0.2.0 (2026-06-24) - Thin (sub-pixel-width) polygons no longer flicker in and out across zoom levels (#13). A polygon that collapses on a tile's integer pixel grid is now replaced by a one-pixel square at its centroid instead of being dropped, so narrow features stay continuously visible. Ring winding is also normalized to the MVT specification (exterior rings positive area, interior rings negative), zero-area degenerate rings are dropped rather than emitted as invalid polygons, and quantization-induced spikes (out-and-back needle vertices) are removed. - freestile_h3() is a new function for dynamic hexagonal binning. It aggregates points into H3 hexagons at zoom-appropriate resolutions via DuckDB's H3 community extension and writes a multi-layer .pmtiles archive where low zooms show coarse hexes, intermediate zooms show progressively finer hexes, and zooms at or above base_zoom show the raw points. Aggregation rules are user-defined SQL expressions (e.g. c(n = "COUNT(*)", avg_pop = "AVG(pop)")). Opt-in fade = TRUE produces overlapping zoom windows so adjacent hex resolutions can cross-fade visually. - view_h3_tiles() is a companion viewer that auto-styles a freestile_h3() archive in mapgl, detecting clean-break vs cross-fade mode from the PMTiles metadata. - Hexagons that cross the antimeridian are split at +/-180 degrees rather than rendering as world-spanning slivers. - See vignette("h3-hexagonal-binning") for a walkthrough. Changes in version 0.1.7 (2026-05-12) - Updated the CRAN Rust build path to use a dependency graph compatible with rustc/cargo 1.77.2. Changes in version 0.1.0 Initial release. Tile generation - freestile() creates PMTiles archives from sf data frames with zero external dependencies (no tippecanoe, no Java, no Go). - Supports MapLibre Tiles (MLT) and Mapbox Vector Tiles (MVT) output formats. - Multi-layer output via named lists or freestile_layer() per-layer zoom control. Geometry types - POINT, MULTIPOINT, LINESTRING, MULTILINESTRING, POLYGON, MULTIPOLYGON. - Automatic CRS transformation to WGS84. - Z/M dimension handling (dropped automatically). Performance features - Parallel tile encoding with rayon (across tiles and within tiles). - Tile-pixel grid snapping for zoom-adaptive simplification without slivers. - Buffered tile assignment and clipping for seamless tile boundaries. Feature management - drop_rate exponential feature thinning with Morton-curve spatial ordering for points and area-based ordering for polygons/lines. - base_zoom control for ensuring all features present at higher zooms. - cluster_distance point clustering with point_count attribute. - coalesce line merging and polygon grouping. MLT encoder - Spec-compliant MapLibre Tile encoder with varint, delta, RLE, and dictionary encoding. - Validated against mlt-core 0.1.2 reference decoder.