Structure Tensor Flow Abstract Vector Filter

Structure Tensor Flow measures local luminance gradients, smooths their tensor field, and follows the tangent direction along visible contours. One shared ribbon network is clipped into mutually exclusive Rasterizer swatch regions, so adjacent LightBurn layers cannot engrave the same area.

Photorealistic to Abstract

Overall Recognizability changes both the flow parameters and how strongly strokes must obey the original color boundaries. At Photorealistic, ribbons are clipped to their source swatch silhouettes and remain a close reconstruction. Moving toward Abstract progressively converts them into free-flow strokes: each stroke samples the swatch beneath its starting point, then carries that color along the tensor field beyond the original boundary. At fully Abstract, every eligible source-seeded ribbon is allowed to flow freely, producing a newly drawn interpretation that may be only loosely recognizable.

The slider also makes the Photorealistic end denser, broader, shorter, and more locally responsive. The Abstract end becomes thinner, longer, more broadly directed, and less constrained by the literal source shapes. Individual controls remain available for precise experiments.

How the flow field is calculated

Rasterizer converts the resized source to luminance, optionally blurs it, measures horizontal and vertical Sobel gradients, and forms a two-by-two structure tensor from the smoothed gradient products. The dominant tensor axis points across local edges; the filter follows its perpendicular tangent so ribbons travel along image contours.

Tensor Smoothing controls the neighborhood contributing to that direction. Source Blur suppresses very small brightness variations before the tensor is built. Flow Rotation turns the resulting tangent directions afterward.

Ribbon geometry

Line Spacing controls the seed-grid pitch for the generated streamlines. Every viable seed traces its full local path. At a true directional crossing, Rasterizer removes a small junction from both ribbons so they remain visibly separate rather than forming one broad merged shape. Nearly parallel contacts use deterministic painter order with a microscopic separation gap, retaining intuitive density and width behavior. Line Length, the minimum and maximum Ribbon Width controls, and Step Size shape the traced structures. Seed Jitter and Seed change the repeatable placement without using global randomness.

Coherence Cutoff can remove structures from areas without a clear direction. Coherence Influence instead retains those areas but shortens their ribbons relative to strongly directional regions.

Layer ownership and output

The shared flow field is generated once. Boundary-clipped ribbons retain their original swatch region; free-flow ribbons inherit the swatch beneath their starting point and can carry it across source boundaries. Crossing breaks prevent joined ribbon masses, then Rasterizer performs a final deterministic exclusivity pass so resulting LightBurn layers have no positive-area overlap.

Black is derived from actual source Black rather than synthesized as a solid canvas. At the Photorealistic end it remains within source Black regions; toward Abstract it can participate in the same source-sampled free-flow drawing as other swatches.

Performance and engraving

Dense spacing, long ribbons, small integration steps, and large processing dimensions can produce many paths and vector points. Rasterizer rejects an excessive seed grid with an instruction to increase Line Spacing or reduce the output dimensions.

A valid ribbon can still be too narrow for a particular spot size, material, focus, or setting. Inspect the SVG and LightBurn project, then engrave a small test before committing to a large piece.

Control reference

Ranges and defaults below come directly from the current filter implementation.

Overall recognizability

Default 0.5 · Range 0.0–1.0 · Step 0.01

Coordinates the Structure Tensor Flow treatment from 0 for Photorealistic to 1 for Abstract. The Photorealistic end uses denser, broader, shorter, locally responsive ribbons; the Abstract end uses fewer, thinner, longer ribbons guided by a more broadly averaged field.

Analogy: Moving between a detailed woven portrait and a sparse flowing line study.

Line spacing

Default 0.9 · Range 0.2–4.0 · Step 0.05

Sets the physical spacing between neighboring generated paths or flow seeds. Smaller values create denser geometry and larger files.

Analogy: Moving the ruled lines on graph paper closer together or farther apart.

Line length

Default 5.0 · Range 0.5–20.0 · Step 0.25

Sets the nominal physical length of each tensor-flow ribbon before local coherence adjusts it.

Analogy: Choosing between short brush marks and long strands of combed fiber.

Minimum ribbon width

Default 0.1 · Range 0.02–1.0 · Step 0.01

Sets the narrowest physical width a tensor-flow ribbon may use after its local tone and directional coherence are evaluated.

Analogy: Choosing the finest nib available to a variable-width drawing pen.

Maximum ribbon width

Default 0.35 · Range 0.02–2.0 · Step 0.01

Sets the widest physical width a tensor-flow ribbon may use. Values below the minimum are normalized so the smaller endpoint remains the minimum.

Analogy: Choosing the broadest nib available to a variable-width drawing pen.

Minimum color run

Default 0.3 · Range 0.0–5.0 · Step 0.05

Merges very short color fragments within the ribbon output into the touching color that shares the longest boundary. Zero disables this cleanup.

Analogy: Removing tiny thread-color changes from a woven pattern and continuing the neighboring thread instead.

Width tone influence

Default 0.65 · Range 0.0–1.0 · Step 0.05

Controls how strongly source brightness changes ribbon width within the selected minimum and maximum range.

Analogy: Letting the light and dark areas of a photograph control how firmly a brush is pressed.

Width coherence influence

Default 0.35 · Range 0.0–1.0 · Step 0.05

Controls how strongly tensor directional confidence changes ribbon width within the selected minimum and maximum range.

Analogy: Using broader strokes where nearby fibers agree on their direction and finer strokes where the flow is uncertain.

Step size

Default 0.15 · Range 0.03–0.5 · Step 0.01

Sets the integration step used while tracing each curved flow line. Smaller steps follow tight changes more faithfully but add vector points and processing work.

Analogy: Taking smaller steps while walking a curved trail so each turn is followed more precisely.

Source blur

Default 1.5 · Range 0.0–8.0 · Step 0.1

Smooths source luminance before gradients are measured, reducing pixel noise and very fine directional changes.

Analogy: Softening a photograph before tracing its major edges.

Tensor smoothing

Default 6.0 · Range 0.5–20.0 · Step 0.5

Controls how broadly nearby gradients are averaged into the local direction field. Larger values create broader, calmer directional sweeps.

Analogy: Using a wider comb to align nearby strands into one shared direction.

Coherence cutoff

Default 0.0 · Range 0.0–1.0 · Step 0.01

Suppresses ribbons where the structure tensor has no sufficiently dominant direction. Zero retains structures in flat areas; higher values increasingly keep only confidently directed areas.

Analogy: Erasing compass arrows where nearby evidence does not agree on a direction.

Coherence influence

Default 0.5 · Range 0.0–1.0 · Step 0.05

Controls how strongly directional confidence shortens ribbons. Zero keeps the nominal line length everywhere; one makes uncertain regions much shorter than strongly directed regions.

Analogy: Letting confident currents carry a leaf farther while weak currents move it only a short distance.

Flow rotation

Default 0.0 · Range -90.0–90.0 · Step 1.0

Rotates every sampled tensor tangent by the selected number of degrees without changing the detected source structure.

Analogy: Turning every stroke relative to the contour it originally followed.

Seed jitter

Default 0.15 · Range 0.0–0.45 · Step 0.01

Offsets streamline starting points by a repeatable fraction of their spacing so the pattern becomes less grid-like.

Analogy: Nudging evenly planted rows into a more organic arrangement.

Seed

Default 1 · Range 0–999999 · Step 1

Selects the random arrangement used by the preset; the same seed reproduces the same layout, while a different seed creates another variation.

Analogy: Like recording a shuffle number so the same deck order can be recreated later.

Related documentation