vibespatial.constructive.stroke

Classes

StrokeOperation

Enum where members are also (and must be) strings

StrokePrimitive

Enum where members are also (and must be) strings

StrokeKernelStage

StrokeKernelPlan

BufferKernelResult

Result of a buffer kernel invocation.

OffsetCurveKernelResult

StrokeBenchmark

Functions

plan_stroke_kernel(→ StrokeKernelPlan)

fusion_plan_for_stroke(operation)

point_buffer_owned(→ BufferKernelResult)

offset_curve_owned(→ OffsetCurveKernelResult)

evaluate_geopandas_buffer(values, distance, *, ...[, ...])

evaluate_geopandas_offset_curve(values, distance, *, ...)

benchmark_point_buffer(→ StrokeBenchmark)

benchmark_offset_curve(→ StrokeBenchmark)

Module Contents

class vibespatial.constructive.stroke.StrokeOperation

Enum where members are also (and must be) strings

BUFFER = 'buffer'
OFFSET_CURVE = 'offset_curve'
class vibespatial.constructive.stroke.StrokePrimitive

Enum where members are also (and must be) strings

EXPAND_DISTANCES = 'expand_distances'
EMIT_EDGE_FRAMES = 'emit_edge_frames'
CLASSIFY_VERTICES = 'classify_vertices'
EMIT_ARCS = 'emit_arcs'
PREFIX_SUM = 'prefix_sum'
SCATTER = 'scatter'
EMIT_GEOMETRY = 'emit_geometry'
class vibespatial.constructive.stroke.StrokeKernelStage
name: str
primitive: StrokePrimitive
purpose: str
inputs: tuple[str, Ellipsis]
outputs: tuple[str, Ellipsis]
cccl_mapping: tuple[str, Ellipsis]
disposition: vibespatial.runtime.fusion.IntermediateDisposition
geometry_producing: bool = False
class vibespatial.constructive.stroke.StrokeKernelPlan
operation: StrokeOperation
stages: tuple[StrokeKernelStage, Ellipsis]
fusion_steps: tuple[vibespatial.runtime.fusion.PipelineStep, Ellipsis]
reason: str
class vibespatial.constructive.stroke.BufferKernelResult(*, geometries: numpy.ndarray | None = None, row_count: int, fast_rows: numpy.ndarray, fallback_rows: numpy.ndarray, owned_result: vibespatial.geometry.owned.OwnedGeometryArray | None = None)

Result of a buffer kernel invocation.

When owned_result is set, geometries is materialized lazily on first access so that callers that stay on the device-resident path never pay for a D->H transfer.

row_count
fast_rows
fallback_rows
owned_result = None
property geometries: numpy.ndarray
class vibespatial.constructive.stroke.OffsetCurveKernelResult
geometries: numpy.ndarray
row_count: int
fast_rows: numpy.ndarray
fallback_rows: numpy.ndarray
class vibespatial.constructive.stroke.StrokeBenchmark
dataset: str
rows: int
fast_rows: int
fallback_rows: int
owned_elapsed_seconds: float
shapely_elapsed_seconds: float
property speedup_vs_shapely: float
vibespatial.constructive.stroke.plan_stroke_kernel(operation: StrokeOperation | str) StrokeKernelPlan
vibespatial.constructive.stroke.fusion_plan_for_stroke(operation: StrokeOperation | str)
vibespatial.constructive.stroke.point_buffer_owned(values: collections.abc.Sequence[object | None] | numpy.ndarray, distance, *, quad_segs: int = 16) BufferKernelResult
vibespatial.constructive.stroke.offset_curve_owned(values: collections.abc.Sequence[object | None] | numpy.ndarray, distance, *, quad_segs: int = 8, join_style: str = 'round', mitre_limit: float = 5.0) OffsetCurveKernelResult
vibespatial.constructive.stroke.evaluate_geopandas_buffer(values, distance, *, quad_segs: int, cap_style, join_style, mitre_limit: float, single_sided: bool, prebuilt_owned=None)
vibespatial.constructive.stroke.evaluate_geopandas_offset_curve(values, distance, *, quad_segs: int, join_style, mitre_limit: float)
vibespatial.constructive.stroke.benchmark_point_buffer(values, *, distance: float, quad_segs: int = 16, dataset: str = 'point-buffer') StrokeBenchmark
vibespatial.constructive.stroke.benchmark_offset_curve(values, *, distance: float, join_style: str = 'mitre', dataset: str = 'offset-curve') StrokeBenchmark