# Interface: TaperParams

[**lifecycle-kit**](https://jonbogaty.com/lifecycle-kit/api/readme/index.md)

***

[lifecycle-kit](https://jonbogaty.com/lifecycle-kit/api/readme/index.md) / [forms](https://jonbogaty.com/lifecycle-kit/api/forms/readme/index.md) / TaperParams


# Interface: TaperParams {#interface-taperparams}


Defined in: [forms/rules/taper.ts:26](https://github.com/jbcom/lifecycle-kit/blob/074e4e7b8038d3e2de9eb44c4b5b5aee0ef02b48/src/forms/rules/taper.ts#L26)

A body outline that narrows (or widens) along its axis.

Unlike the other five rules, `taper` does not take a unit `Path` to
transform — it IS the primitive body-outline generator. `repeat` places
copies of something; `taper` is usually the something. An ant's thorax, a
jellyfish bell's profile and a fern frond's midrib are all one tapering
outline with different width curves.

The outline is built as two symmetric half-width curves — top and bottom —
joined into one closed subpath, which is the standard way to turn a 1D
width function into a filled 2D silhouette. Using `quadratic` control
points (rather than sampling into a polyline) keeps the outline exact and
resolution-independent, matching the header's argument in `path.ts`.


## Properties {#properties}



### bulgeAt {#bulgeat}


> `readonly` **bulgeAt**: `number`

Defined in: [forms/rules/taper.ts:38](https://github.com/jbcom/lifecycle-kit/blob/074e4e7b8038d3e2de9eb44c4b5b5aee0ef02b48/src/forms/rules/taper.ts#L38)

Where along the curve the width bulges before narrowing, 0..1 as a
fraction of `length`. 0.5 is a symmetric bulge (a grub, a bell); moving
it toward 0 or 1 makes the widest point read as a head or a base — an
ant's abdomen is fat near the thorax and this is the parameter that
says so, continuously, rather than as a separate "abdomen" shape.

***


### from {#from}


> `readonly` **from**: `number`

Defined in: [forms/rules/taper.ts:28](https://github.com/jbcom/lifecycle-kit/blob/074e4e7b8038d3e2de9eb44c4b5b5aee0ef02b48/src/forms/rules/taper.ts#L28)

Half-width at the start of the axis (x = 0), in form-space units.

***


### index? {#index}


> `readonly` `optional` **index?**: `number`

Defined in: [forms/rules/taper.ts:43](https://github.com/jbcom/lifecycle-kit/blob/074e4e7b8038d3e2de9eb44c4b5b5aee0ef02b48/src/forms/rules/taper.ts#L43)

***


### length {#length}


> `readonly` **length**: `number`

Defined in: [forms/rules/taper.ts:40](https://github.com/jbcom/lifecycle-kit/blob/074e4e7b8038d3e2de9eb44c4b5b5aee0ef02b48/src/forms/rules/taper.ts#L40)

Length of the body along its axis.

***


### part? {#part}


> `readonly` `optional` **part?**: `string`

Defined in: [forms/rules/taper.ts:42](https://github.com/jbcom/lifecycle-kit/blob/074e4e7b8038d3e2de9eb44c4b5b5aee0ef02b48/src/forms/rules/taper.ts#L42)

Which anatomical part this outline belongs to, for depth banding.

***


### to {#to}


> `readonly` **to**: `number`

Defined in: [forms/rules/taper.ts:30](https://github.com/jbcom/lifecycle-kit/blob/074e4e7b8038d3e2de9eb44c4b5b5aee0ef02b48/src/forms/rules/taper.ts#L30)

Half-width at the end of the axis (x = length).
