Skip to content

Releases

PolylineKit 0.1.0-alpha.3

Pre-release

Choose a tag to compare

@bgtnt bgtnt released this 11 Oct 08:41

Published on NuGet.org: PolylineKit.Core and the optional Clipper adapter.

Both signed public archives preserve all original payload entries. Four fresh NuGet.org-only consumers passed on .NET 8 and .NET 10; both repository signatures and gallery READMEs were verified after indexing.

PolylineKit 0.1.0-alpha.3 delivers cheaper polygon-role preparation without public API, assembly-name or runtime dependency changes. Core remains dependency-free; the optional adapter still uses Clipper2.

Well-conditioned rings use a guarded compensated orientation sum; tiny, cancelling or uncertain inputs retain the previous route. The intersection engine is unchanged. The contour demo now has real browser regressions and fixes the inclusive 0.7% budget conversion.

Preparation measurements remain pinned to a7cad8a, not these new binaries. The Helsinki assessment still describes the actual alpha.2 package and retains its failed three-way gate; it is not an alpha.3 accuracy or speed claim.

Both original packages were verified from clean source 23c0b3280424569356d64362266c519c839b4790 with four outside-checkout consumers on .NET 8 and .NET 10. Packages are uploaded unchanged, with verification.json and SHA256SUMS. See the release notes for delivery checks and numerical limits.

PolylineKit 0.1.0-alpha.2

Pre-release

Choose a tag to compare

@bgtnt bgtnt released this 10 Oct 20:38

PolylineKit 0.1.0-alpha.2

This update makes polygon input and the package quick start easier to use. Core
returns area, intersection, IoU and coverage as numbers on planar double
coordinates, with no third-party runtime dependencies.

Changes

  • PreparedRegion.FromPolygon(exterior, holes) and FromPolygons(polygons)
    orient copied rings according to explicit shell and hole roles. For valid
    simple polygon boundaries, a hole keeps its meaning regardless of the supplied
    ring direction. FromRings remains the raw-winding input API.
  • Package READMEs include installation, IoU and polygon-with-hole examples, and
    guidance on choosing Core, Clipper2 or NetTopologySuite. Package metadata adds
    IoU and overlap search tags; verification checks the embedded README and nuspec.
  • A tested NetTopologySuite conversion example
    accepts valid Polygon/MultiPolygon inputs, including holes and disconnected
    parts. It is an example, not a new runtime dependency or adapter package.

This is an additive release. Existing methods, fill-rule defaults and assembly
identities are preserved: Core ships PolylineKit.Winding.dll; the optional
Clipper adapter ships PolylineKit.dll. Duplicate WindingArea.FilledArea and
IntersectionArea conveniences remain callable but are hidden from IntelliSense.
Both packages target .NET Standard 2.0 and .NET 10. The adapter depends on Core and
Clipper2 2.0.0. No area algorithm or performance optimization changes in alpha.2.

Install from NuGet.org

Both packages are published on NuGet.org:
Core and the
optional Clipper adapter.

dotnet add MyApp/MyApp.csproj package PolylineKit.Core --version 0.1.0-alpha.2 --source https://api.nuget.org/v3/index.json

The optional adapter restores its matching Core package and Clipper2 2.0.0.
The GitHub assets below remain available as the verified original packages for
local feeds. Alpha.1 remains listed and unchanged on NuGet.org.

Verification

These are the original verified packages from
5e9dcc1a5bcb34b5b2d8ae60105d328aec66a80c,
uploaded without rebuilding. SHA256SUMS covers the two packages and
verification.json, which records the clean source identity, package/DLL hashes
and four external PackageReference-only consumers on .NET 8 and .NET 10.
All four tested shell/hole direction combinations return area 84.

The publication workflow
published these original files without rebuilding. After indexing, all ten
original ZIP entries per served NuGet package were verified byte-for-byte;
NuGet added only .signature.p7s. Both cryptographic repository-signature checks
passed, confirming the current owner wowbagger. Four further isolated consumers
restored solely from NuGet.org and passed on .NET 8 and .NET 10, checking selected
target assets, dependency sets, runtime DLL hashes and the source identity above.
Every shell/hole direction case again returned 84. Both public gallery READMEs
match the packaged text. Main CI on Windows and Linux
also passed; delivery-documentation commits do not replace the original binaries.

Assembly debug records retain source-machine build paths, as in alpha.1. PDBs
and local per-consumer restore records are excluded from the release assets.

Five-mode checks passed: 183,604 with the portable assembly and 183,532 in each
modern mode. The NTS example passed 62 conversion contracts, 12 analytic invalid
walk controls and 45,028 GIS metric comparisons. The correctness report
records the observed differences and invalid-input behavior. Windows and Linux CI
passed on the subsequent delivery-metadata commit; this does not replace the
package source or binaries. No tolerance was loosened and no new timing claim
is made. Historical benchmark evidence remains in the alpha.1 release.

Limits

These remain alpha APIs. Polygon-role factories require valid simple boundaries
for polygon topology semantics; they do not validate or repair geometry or infer
nesting. NonZero unions overlapping polygon parts; EvenOdd uses parity and can
cancel their overlap. Zero-signed-area rings retain their supplied direction.
Raw self-intersecting walks remain supported under explicit fill rules.

Coordinates are planar. Exact predicates do not make crossing positions or final
double areas exact. There is no projection, geodesic area or Core output
geometry. See the region contract
and performance evidence
for scope and tradeoffs.

PolylineKit 0.1.0-alpha.1

Pre-release

Choose a tag to compare

@bgtnt bgtnt released this 10 Oct 17:40

PolylineKit 0.1.0-alpha.1

Alpha release for numerical filled areas, region intersection, IoU and coverage
on planar double coordinates, plus normalization, resampling and alignment.

  • PolylineKit.Core has no external runtime dependencies. It includes
    PreparedRegion and RegionArea for holes, disconnected components and empty
    regions, with explicit NonZero/EvenOdd fill semantics.
  • PolylineKit.Clipper is an optional adapter for quantized comparisons and
    resulting contours; it references Core and Clipper2 2.0.0.
  • Both packages include .NET Standard 2.0 and .NET 10 assets, XML documentation,
    README, MIT license and source commit metadata.

Install

Both packages are published on NuGet.org:
PolylineKit.Core
and the optional Clipper adapter.

dotnet add MyApp/MyApp.csproj package PolylineKit.Core --version 0.1.0-alpha.1 --source https://api.nuget.org/v3/index.json

For resolved output contours, install PolylineKit.Clipper instead; NuGet also
restores Core and Clipper2. The GitHub assets preserve the verified original
packages. NuGet.org adds a repository signature without changing their original
contents. See the current package guide
for installation and fresh-cache guidance.

Verification and evidence

NuGet publication used the verified package pair without rebuilding, through
this Trusted Publishing run.
Both public downloads passed signature verification and a byte-for-byte check of
all original package entries. Four isolated .NET 8/10 consumers restored only
from NuGet.org and passed the coverage, prepared-region and adapter contracts.

verification.json identifies the delivered source commit, package/DLL hashes
and four external PackageReference-only consumers on .NET 8 and .NET 10. They
check both single paths and a shell, hole, separate island and empty region
under both fill rules. SHA256SUMS covers the public assets.

Two archives preserve 5,640 original timing samples from distinct historical
measurement series, including unfavorable results:

  • polylinekit-prepared-region-evidence.zip: 2,700 paired samples; Python independently
    recalculates 180 summary cells, and frozen .NET summarizers reproduce both original
    summaries byte for byte. Includes full measured inputs, source snapshots, process
    windows, original report and six malformed-evidence controls.
  • polylinekit-alpha-evidence.zip: 2,940 earlier intersection/area samples, including
    the failed area-preservation gate and its later successful measurement.

Each archive contains its own standalone verifier and provenance. Verification
does not take timings, restore packages, build source or download data. Original
DLLs retain their disclosed build paths; personal text paths are redacted in
explicitly identified copies without changing numerical values. Sidecar metadata
records the state at archive generation, before publication.

Scope

These are alpha APIs. Exact geometric predicates do not make intersection
coordinates or final double areas exact. Inputs are planar; no projection,
geodesic area, topology repair or Core output contours are provided. Historical
benchmarks belong to their recorded revisions, not these newly packed binaries.
There is no universal speed or accuracy ranking against Clipper2 or NTS.

See the area contract,
multi-ring contract
and performance evidence.

PolylineKit 0.1.0-alpha.1

Pre-release

Choose a tag to compare

PolylineKit 0.1.0-alpha.1

Alpha release for numerical filled areas, region intersection, IoU and coverage
on planar double coordinates, plus normalization, resampling and alignment.

  • PolylineKit.Core has no external runtime dependencies. It includes
    PreparedRegion and RegionArea for holes, disconnected components and empty
    regions, with explicit NonZero/EvenOdd fill semantics.
  • PolylineKit.Clipper is an optional adapter for quantized comparisons and
    resulting contours; it references Core and Clipper2 2.0.0.
  • Both packages include .NET Standard 2.0 and .NET 10 assets, XML documentation,
    README, MIT license and source commit metadata.

Install

The packages are available as GitHub release assets. They are not yet published
on NuGet.org.
Download PolylineKit.Core.0.1.0-alpha.1.nupkg to an empty local
feed directory, then run:

dotnet add MyApp/MyApp.csproj package PolylineKit.Core --version 0.1.0-alpha.1 --source /absolute/path/to/feed

For the optional adapter, download both packages and configure the local feed
plus NuGet.org for Clipper2, as described in the
package guide.
Use these verified files rather than earlier locally built candidates.

Verification and evidence

verification.json identifies the delivered source commit, package/DLL hashes
and four external PackageReference-only consumers on .NET 8 and .NET 10. They
check both single paths and a shell, hole, separate island and empty region
under both fill rules. SHA256SUMS covers the public assets.

Two archives preserve 5,640 original timing samples from distinct historical
measurement series, including unfavorable results:

  • polylinekit-prepared-region-evidence.zip: 2,700 paired samples; Python independently
    recalculates 180 summary cells, and frozen .NET summarizers reproduce both original
    summaries byte for byte. Includes full measured inputs, source snapshots, process
    windows, original report and six malformed-evidence controls.
  • polylinekit-alpha-evidence.zip: 2,940 earlier intersection/area samples, including
    the failed area-preservation gate and its later successful measurement.

Each archive contains its own standalone verifier and provenance. Verification
does not take timings, restore packages, build source or download data. Original
DLLs retain their disclosed build paths; personal text paths are redacted in
explicitly identified copies without changing numerical values. Sidecar metadata
records the state at archive generation, before publication.

Scope

These are alpha APIs. Exact geometric predicates do not make intersection
coordinates or final double areas exact. Inputs are planar; no projection,
geodesic area, topology repair or Core output contours are provided. Historical
benchmarks belong to their recorded revisions, not these newly packed binaries.
There is no universal speed or accuracy ranking against Clipper2 or NTS.

See the area contract,
multi-ring contract
and performance evidence.