# BlurFunction class

Namespace: [Grasshopper2.Types.Functions.Standard](https://developer.rhino3d.com/api/gh2/namespace/grasshopper2.types.functions.standard.md) · Assembly: [Grasshopper2](https://developer.rhino3d.com/api/gh2/assembly/grasshopper2.md)

```cs
[IoId("00000000-b1c0-4a10-9f21-0a1b2c3d4e5f")]
public sealed class BlurFunction : FunctionWithCaching
```

A polyline (strictly increasing x) that is progressively blurred by repeated averaging of vertex y-values with their neighbours. In the joint limit of infinitely dense sampling and infinitely many averaging passes this is the one-dimensional heat equation on the vertex-x domain, so the blurred curve is the diffusion of the polyline towards its steady state.

The amount of blur is controlled by a second [Function](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.functions.function.md) evaluated in x (default: a constant), clamped to 0 (no blur, the original polyline) .. 1 (full blur). The endpoint y-values are pinned (Dirichlet), so the full-blur steady state is the straight chord between the first and last vertex.

Evaluation is a closed-form eigenmode sum: the polyline is expanded once into a sine series and each mode decays as e^(-(nπ)²·τ), where τ is the dimensionless diffusion time mapped from the blur amount. No dense point cloud is ever materialised.

## Constructors

- [BlurFunction](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.functions.standard.blurfunction/ctor.md): (3 overloads) Create a default blur function: a small tent polyline with no blur.

## Properties

- [Blur](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.functions.standard.blurfunction/blur.md): Gets the blur-controlling function.
- [MaximumX](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.functions.standard.blurfunction/maximumx.md): Gets the highest vertex x-coordinate.
- [MinimumX](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.functions.standard.blurfunction/minimumx.md): Gets the lowest vertex x-coordinate.
- [Samples](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.functions.standard.blurfunction/samples.md): Gets the polyline vertices, sorted left to right.
- [Ui](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.functions.standard.blurfunction/ui.md)

## Methods

- [DomainEstimate](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.functions.standard.blurfunction/domainestimate.md)
- [EmitDerivative](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.functions.standard.blurfunction/emitderivative.md)
- [Holes](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.functions.standard.blurfunction/holes.md): Returns a collection of domains for which this function is not defined. This method may return null or an empty array, implying no undefined domains. This method may also return domains outside of the specified interval.
- [Store](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.functions.standard.blurfunction/store.md)
- [Y](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.functions.standard.blurfunction/y.md)

## Inherited Members

- From [FunctionWithCaching](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.functions.functionwithcaching.md): [Derivative](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.functions.functionwithcaching/derivative.md), [Integral](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.functions.functionwithcaching/integral.md), [Nomen](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.functions.functionwithcaching/nomen.md), [Notation](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.functions.functionwithcaching/notation.md), [EmitIntegral](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.functions.functionwithcaching/emitintegral.md)
- From [Function](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.functions.function.md): [Asymptotes](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.functions.function/asymptotes.md), [AutoCoDomain](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.functions.function/autocodomain.md), [Integrate](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.functions.function/integrate.md), [Poles](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.functions.function/poles.md), [YYYY](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.functions.function/yyyy.md)
