grassfire2 computes straight skeletons using a kinetic-triangulation approach.
It is a modern rearchitecture of grassfire, focused on maintainability, extensibility and performance.
from grassfire2 import compute_segments
rings = [[
[0.0, 0.0], [20.0, 0.0], [20.0, 10.0], [10.0, 10.0], [10.0, 20.0], [0.0, 20.0]
]]
segments = compute_segments(rings)
print(segments)uv sync --group dev --group test
uv run pytest tests/ -v --color=yes
uv run python -O benchmarks/benchmark.py