# Particle types

Import these public contracts with `type` from `@pibbl/core/particles`.

## `Particles2DProps`

Exactly one 2D effect or system plus shared interaction and parameter props.

## `Particles2DStyle`

Declared Canvas box, layout-item, cursor, opacity, transform, and filter style.

## `PibblFlowField2D`

A component-owned field handle with a readonly revision signal and batched
velocity sampling into caller-owned numerical buffers.

## `PibblFlowFieldOptions2D`

Mount-only bounds and grid resolution, an optional obstacle source, and a
buoyancy acceleration coefficient (default `-300`).

## `PibblFlowObstacleBatch2D`

A revision, a borrowed `Float64Array` of packed `boxes`, and optional borrowed
`ellipses` and `polygons` arrays. Each box occupies ten
entries: center x/y, half width/height, rotation in radians, linear velocity x/y,
angular velocity in radians/second, and center of mass x/y. All quantities use
field-local logical coordinates. Ellipses use the same layout, with radii instead
of half extents. Each polygon record contains vertex count (at least three),
linear velocity x/y, angular velocity, center of mass x/y, then vertex x/y pairs.
Extents must be positive. Increment revision
whenever geometry or motion changes; unchanged revisions reuse the solid grid.

## `PibblFlowObstacleSource2D`

A `read()` method returning the latest committed obstacle batch. A read must not
advance its upstream simulation. The field copies relevant data into its own
storage and does not retain the batch buffer or assume shared WASM memory.

## `PibblFlowSourceOptions2D`

Signal-valued position, positive radius, optional acceleration, nonnegative
heat injection rate, and enabled state. Sources drive flow independently of
particle emission.

## `PibblParticleAppearance`

Optional size, rotation, color, and opacity values sampled over normalized lifetime.

## `PibblParticleBounds2D`

A conservative local two-dimensional minimum and maximum used for coarse culling.

## `PibblParticleBurstAcceptedEvent`

Reports the requested and accepted counts for an admitted manual burst.

## `PibblParticleBurstOverrides`

Overrides count, local position, seed salt, or parameters for one manual birth request.

## `PibblParticleBurstRejectedEvent`

Reports a capacity, pause, stop, or disposal rejection and its accepted count.

## `PibblParticleChoice`

An immutable weighted-selection descriptor created by `particleChoice`.

## `PibblParticleCommonProps`

Shared parameter, event, error, pointer, and keyboard props for particle components.

## `PibblParticleCurve`

An immutable scalar or two-dimensional curve over normalized lifetime.

## `PibblParticleCurveOptions`

Optional Pibbl easing applied within curve or gradient key intervals.

## `PibblParticleCurveValue`

The scalar or two-dimensional value accepted by `particleCurve`.

## `PibblParticleDiagnostic`

The closed definition, capability, asset, binding, capacity, execution, and disposal diagnostic union.

## `PibblParticleDrainStartEvent`

Marks the committed transition that closes new emission while existing particles finish.

## `PibblParticleEffect2D`

A nominal immutable two-dimensional definition carrying emitter and parameter inference.

## `PibblParticleEffect2DInput`

The debug name, parameter definitions, and nonempty 2D emitter input.

## `PibblParticleEmission`

Rate, scheduled burst, or manual emission configuration.

## `PibblParticleEmitter2D`

A fixed-capacity Canvas emitter with shape, initial state, motion, appearance, renderer, and bounds.

## `PibblParticleExecution`

The readonly selected backend state published by a particle system.

## `PibblParticleFinishEvent`

Marks a drained finite population reaching its completed empty frame.

## `PibblParticleGradient`

An immutable color curve created by `particleGradient`.

## `PibblParticleInitial2D`

Lifetime, velocity, size, rotation, color, and opacity sampled at 2D birth.

## `PibblParticleIntegerRange`

An inclusive safe-integer descriptor created by `particleInteger`.

## `PibblParticleMotion2D`

The closed two-dimensional acceleration, drag, drift, radial, orbit, sway, and angular module union.

## `PibblParticleOverflow`

Either deterministic `"reject-newest"` or `"recycle-oldest"` capacity behavior.

## `PibblParticleParameterDefinition`

A typed number, vector, or color default with spawn, simulation, or render timing.

## `PibblParticleParameterDefinitions`

The named parameter-definition record accepted by an effect.

## `PibblParticleParameterReference`

An immutable named reference created by `particleParameter`.

## `PibblParticleParameterTiming`

The `"spawn"`, `"simulation"`, or `"render"` parameter adoption category.

## `PibblParticleParameterValue`

The number, color string, or two-dimensional vector value union.

## `PibblParticleParameterValues`

A readonly named parameter-value record.

## `PibblParticleRange`

A continuous minimum/maximum descriptor created by `particleRange`.

## `PibblParticleRenderer2D`

The circle, rectangle, path, or sprite Canvas renderer union and its blend intent.

## `PibblParticleScalar`

A fixed number or compiled range, integer, choice, or parameter descriptor.

## `PibblParticleShape2D`

The point, line, rectangle, circle, or ring birth-shape union.

## `PibblParticleStartEvent`

Marks a committed system start.

## `PibblParticleSystem`

Stable controls plus readonly status and execution signals for one owned population.

## `PibblParticleSystemEvent`

The start, burst acceptance/rejection, drain, and finish event union.

## `PibblParticleSystemOptions`

Autoplay, seed, debug name, event, and error options for `useParticleSystem`.

## `PibblParticleSystemStatus`

The idle, scheduled, running, paused, draining, finished, or disposed lifecycle state.

## `PibblParticleValueFor`

Maps one parameter definition to its accepted runtime value type.

## `PibblParticleValuesOf`

Maps a named parameter-definition record to its inferred value record.

## `PibblParticleVector2`

A two-component scalar tuple or compatible named parameter reference.

## API details from source

<span id="api-PibblParticleAppearance"></span>

### PibblParticleAppearance

Size, rotation, color, and opacity changes over a particle's lifetime.

```ts
interface PibblParticleAppearance
```

Related API: [PibblParticleAppearance](/reference/types/particles/#pibblparticleappearance).

#### See also

[PibblParticleCurve](/reference/types/particles/#pibblparticlecurve)

[PibblParticleGradient](/reference/types/particles/#pibblparticlegradient)

[PibblParticleEmitter2D](/reference/types/particles/#pibblparticleemitter2d)

[View source — packages/core/src/features/particles/lib/types.ts:504](/source/packages/core/src/features/particles/lib/types-ts/#L504)

#### Properties and methods

<span id="api-PibblParticleAppearance-size"></span>
<details>
<summary>size (optional)</summary>


```ts
readonly size?: PibblParticleCurve<number | readonly [number, number]> | undefined
```

Related API: [PibblParticleCurve](/reference/types/particles/#pibblparticlecurve).

Scalar or two-component size curve evaluated over normalized particle lifetime. See
PibblParticleCurve.

[View source — packages/core/src/features/particles/lib/types.ts:509](/source/packages/core/src/features/particles/lib/types-ts/#L509)

</details>

<span id="api-PibblParticleAppearance-rotationDegrees"></span>
<details>
<summary>rotationDegrees (optional)</summary>


```ts
readonly rotationDegrees?: PibblParticleCurve<number> | undefined
```

Related API: [PibblParticleCurve](/reference/types/particles/#pibblparticlecurve).

Rotation curve in degrees evaluated over normalized particle lifetime. See
PibblParticleCurve.

[View source — packages/core/src/features/particles/lib/types.ts:514](/source/packages/core/src/features/particles/lib/types-ts/#L514)

</details>

<span id="api-PibblParticleAppearance-color"></span>
<details>
<summary>color (optional)</summary>


```ts
readonly color?: PibblParticleGradient | undefined
```

Related API: [PibblParticleGradient](/reference/types/particles/#pibblparticlegradient).

Color gradient evaluated over normalized particle lifetime. See PibblParticleGradient.

[View source — packages/core/src/features/particles/lib/types.ts:518](/source/packages/core/src/features/particles/lib/types-ts/#L518)

</details>

<span id="api-PibblParticleAppearance-opacity"></span>
<details>
<summary>opacity (optional)</summary>


```ts
readonly opacity?: PibblParticleCurve<number> | undefined
```

Related API: [opacity](/reference/types/filters/#opacity), [PibblParticleCurve](/reference/types/particles/#pibblparticlecurve).

Opacity curve evaluated over normalized particle lifetime. See PibblParticleCurve.

[View source — packages/core/src/features/particles/lib/types.ts:520](/source/packages/core/src/features/particles/lib/types-ts/#L520)

</details>

<span id="api-PibblParticleBounds2D"></span>

### PibblParticleBounds2D

Conservative minimum and maximum particle extents used for emitter culling.

```ts
interface PibblParticleBounds2D
```

Related API: [PibblParticleBounds2D](/reference/types/particles/#pibblparticlebounds2d).

#### See also

[PibblParticleEmitter2D](/reference/types/particles/#pibblparticleemitter2d)

[View source — packages/core/src/features/particles/lib/types.ts:571](/source/packages/core/src/features/particles/lib/types-ts/#L571)

#### Properties and methods

<span id="api-PibblParticleBounds2D-min"></span>
<details>
<summary>min</summary>


```ts
readonly min: readonly [number, number]
```

Lower bound of the coordinate or sampling interval. See PibblParticleBounds2D.

[View source — packages/core/src/features/particles/lib/types.ts:573](/source/packages/core/src/features/particles/lib/types-ts/#L573)

</details>

<span id="api-PibblParticleBounds2D-max"></span>
<details>
<summary>max</summary>


```ts
readonly max: readonly [number, number]
```

Upper bound of the coordinate or sampling interval. See PibblParticleBounds2D.

[View source — packages/core/src/features/particles/lib/types.ts:575](/source/packages/core/src/features/particles/lib/types-ts/#L575)

</details>

<span id="api-PibblParticleBurstAcceptedEvent"></span>

### PibblParticleBurstAcceptedEvent

Reports the requested and accepted particle counts for an emitter burst.

```ts
interface PibblParticleBurstAcceptedEvent
```

Related API: [PibblParticleBurstAcceptedEvent](/reference/types/particles/#pibblparticleburstacceptedevent).

#### See also

[PibblParticleSystemEvent](/reference/types/particles/#pibblparticlesystemevent)

[View source — packages/core/src/features/particles/lib/types.ts:716](/source/packages/core/src/features/particles/lib/types-ts/#L716)

#### Properties and methods

<span id="api-PibblParticleBurstAcceptedEvent-type"></span>
<details>
<summary>type</summary>


```ts
readonly type: "burst-accepted"
```

The literal "burst-accepted" identifying this variant. See
PibblParticleBurstAcceptedEvent.

[View source — packages/core/src/features/particles/lib/types.ts:721](/source/packages/core/src/features/particles/lib/types-ts/#L721)

</details>

<span id="api-PibblParticleBurstAcceptedEvent-emitter"></span>
<details>
<summary>emitter</summary>


```ts
readonly emitter: string
```

Name of the emitter associated with this notification. See
PibblParticleBurstAcceptedEvent.

[View source — packages/core/src/features/particles/lib/types.ts:726](/source/packages/core/src/features/particles/lib/types-ts/#L726)

</details>

<span id="api-PibblParticleBurstAcceptedEvent-requested"></span>
<details>
<summary>requested</summary>


```ts
readonly requested: number
```

Number of particles requested by the burst. See PibblParticleBurstAcceptedEvent.

[View source — packages/core/src/features/particles/lib/types.ts:728](/source/packages/core/src/features/particles/lib/types-ts/#L728)

</details>

<span id="api-PibblParticleBurstAcceptedEvent-accepted"></span>
<details>
<summary>accepted</summary>


```ts
readonly accepted: number
```

Number of particles admitted by the burst. See PibblParticleBurstAcceptedEvent.

[View source — packages/core/src/features/particles/lib/types.ts:730](/source/packages/core/src/features/particles/lib/types-ts/#L730)

</details>

<span id="api-PibblParticleBurstOverrides"></span>

### PibblParticleBurstOverrides

Per-burst count, position, seed, and parameter overrides.

```ts
interface PibblParticleBurstOverrides
```

Related API: [PibblParticleBurstOverrides](/reference/types/particles/#pibblparticleburstoverrides).

#### See also

[PibblParticleSystem](/reference/types/particles/#pibblparticlesystem)

[View source — packages/core/src/features/particles/lib/types.ts:914](/source/packages/core/src/features/particles/lib/types-ts/#L914)

#### Properties and methods

<span id="api-PibblParticleBurstOverrides-count"></span>
<details>
<summary>count (optional)</summary>


```ts
readonly count?: number | undefined
```

Number of particles or sources requested by this configuration. See
PibblParticleBurstOverrides.

[View source — packages/core/src/features/particles/lib/types.ts:919](/source/packages/core/src/features/particles/lib/types-ts/#L919)

</details>

<span id="api-PibblParticleBurstOverrides-position"></span>
<details>
<summary>position (optional)</summary>


```ts
readonly position?: readonly [number, number] | undefined
```

Position of the geometry, source, or selected resize handle. See
PibblParticleBurstOverrides.

[View source — packages/core/src/features/particles/lib/types.ts:924](/source/packages/core/src/features/particles/lib/types-ts/#L924)

</details>

<span id="api-PibblParticleBurstOverrides-seedSalt"></span>
<details>
<summary>seedSalt (optional)</summary>


```ts
readonly seedSalt?: number | undefined
```

Additional seed input distinguishing this burst from otherwise identical requests. See
PibblParticleBurstOverrides.

[View source — packages/core/src/features/particles/lib/types.ts:929](/source/packages/core/src/features/particles/lib/types-ts/#L929)

</details>

<span id="api-PibblParticleBurstOverrides-parameters"></span>
<details>
<summary>parameters (optional)</summary>


```ts
readonly parameters?: Readonly<Record<string, string | number | readonly number[]>> | undefined
```

Named parameter definitions or values for this effect instance. See
PibblParticleBurstOverrides.

[View source — packages/core/src/features/particles/lib/types.ts:934](/source/packages/core/src/features/particles/lib/types-ts/#L934)

</details>

<span id="api-PibblParticleBurstRejectedEvent"></span>

### PibblParticleBurstRejectedEvent

Reports a burst rejection and whether capacity or system state prevented admission.

```ts
interface PibblParticleBurstRejectedEvent
```

Related API: [PibblParticleBurstRejectedEvent](/reference/types/particles/#pibblparticleburstrejectedevent).

#### See also

[PibblParticleSystemEvent](/reference/types/particles/#pibblparticlesystemevent)

[View source — packages/core/src/features/particles/lib/types.ts:738](/source/packages/core/src/features/particles/lib/types-ts/#L738)

#### Properties and methods

<span id="api-PibblParticleBurstRejectedEvent-type"></span>
<details>
<summary>type</summary>


```ts
readonly type: "burst-rejected"
```

The literal "burst-rejected" identifying this variant. See
PibblParticleBurstRejectedEvent.

[View source — packages/core/src/features/particles/lib/types.ts:743](/source/packages/core/src/features/particles/lib/types-ts/#L743)

</details>

<span id="api-PibblParticleBurstRejectedEvent-emitter"></span>
<details>
<summary>emitter</summary>


```ts
readonly emitter: string
```

Name of the emitter associated with this notification. See
PibblParticleBurstRejectedEvent.

[View source — packages/core/src/features/particles/lib/types.ts:748](/source/packages/core/src/features/particles/lib/types-ts/#L748)

</details>

<span id="api-PibblParticleBurstRejectedEvent-requested"></span>
<details>
<summary>requested</summary>


```ts
readonly requested: number
```

Number of particles requested by the burst. See PibblParticleBurstRejectedEvent.

[View source — packages/core/src/features/particles/lib/types.ts:750](/source/packages/core/src/features/particles/lib/types-ts/#L750)

</details>

<span id="api-PibblParticleBurstRejectedEvent-accepted"></span>
<details>
<summary>accepted</summary>


```ts
readonly accepted: number
```

Number of particles admitted by the burst. See PibblParticleBurstRejectedEvent.

[View source — packages/core/src/features/particles/lib/types.ts:752](/source/packages/core/src/features/particles/lib/types-ts/#L752)

</details>

<span id="api-PibblParticleBurstRejectedEvent-reason"></span>
<details>
<summary>reason</summary>


```ts
readonly reason: "capacity" | "disposed" | "paused" | "stopped"
```

Reason the operation could not produce its ordinary result. See
PibblParticleBurstRejectedEvent.

[View source — packages/core/src/features/particles/lib/types.ts:757](/source/packages/core/src/features/particles/lib/types-ts/#L757)

</details>

<span id="api-PibblParticleChoice"></span>

### PibblParticleChoice

A weighted collection of candidate values for particle sampling.

```ts
interface PibblParticleChoice<T>
```

Related API: [PibblParticleChoice](/reference/types/particles/#pibblparticlechoice).

#### See also

[PibblParticleInitial2D](/reference/types/particles/#pibblparticleinitial2d)

[PibblParticleScalar](/reference/types/particles/#pibblparticlescalar)

[particleChoice](/reference/functions/particle-descriptors/)

[View source — packages/core/src/features/particles/lib/types.ts:170](/source/packages/core/src/features/particles/lib/types-ts/#L170)

#### Properties and methods

<span id="api-PibblParticleChoice-type"></span>
<details>
<summary>type</summary>


```ts
readonly type: "choice"
```

The literal "choice" identifying this variant. See PibblParticleChoice.

[View source — packages/core/src/features/particles/lib/types.ts:172](/source/packages/core/src/features/particles/lib/types-ts/#L172)

</details>

<span id="api-PibblParticleChoice-choices"></span>
<details>
<summary>choices</summary>


```ts
readonly choices: readonly Readonly<{ value: T; weight: number; }>[]
```

Weighted candidate values sampled by the effect. See PibblParticleChoice.

[View source — packages/core/src/features/particles/lib/types.ts:174](/source/packages/core/src/features/particles/lib/types-ts/#L174)

</details>

<span id="api-PibblParticleCommonProps"></span>

### PibblParticleCommonProps

Shared parameter, interaction, focus, and lifecycle inputs for particle components.

```ts
interface PibblParticleCommonProps<Parameters extends PibblParticleParameterValues> extends PibblEventHandlers, PibblEventParticipationOptions
```

Related API: [PibblParticleCommonProps](/reference/types/particles/#pibblparticlecommonprops), [PibblParticleParameterValues](/reference/types/particles/#pibblparticleparametervalues), [PibblEventHandlers](/reference/types/events/#pibbleventhandlers), [PibblEventParticipationOptions](/reference/types/events/#pibbleventparticipationoptions).

#### See also

[PibblParticleParameterValues](/reference/types/particles/#pibblparticleparametervalues)

[PibblEventHandlers](/reference/types/events/#pibbleventhandlers)

[PibblEventParticipationOptions](/reference/types/events/#pibbleventparticipationoptions)

[LayoutBox](/reference/types/layout/#layoutbox)

[PibblParticleSystemEvent](/reference/types/particles/#pibblparticlesystemevent)

[View source — packages/core/src/features/particles/lib/types.ts:1016](/source/packages/core/src/features/particles/lib/types-ts/#L1016)

#### Properties and methods

<span id="api-PibblParticleCommonProps-parameters"></span>
<details>
<summary>parameters (optional)</summary>


```ts
readonly parameters?: Readonly<Partial<Parameters>> | undefined
```

Named parameter definitions or values for this effect instance. See
PibblParticleCommonProps.

[View source — packages/core/src/features/particles/lib/types.ts:1022](/source/packages/core/src/features/particles/lib/types-ts/#L1022)

</details>

<span id="api-PibblParticleCommonProps-keyboardFocusable"></span>
<details>
<summary>keyboardFocusable (optional)</summary>


```ts
readonly keyboardFocusable?: boolean | undefined
```

Whether the target may receive keyboard focus. See PibblParticleCommonProps.

[View source — packages/core/src/features/particles/lib/types.ts:1024](/source/packages/core/src/features/particles/lib/types-ts/#L1024)

</details>

<span id="api-PibblParticleCommonProps-keyboardNavigationBounds"></span>
<details>
<summary>keyboardNavigationBounds (optional)</summary>


```ts
readonly keyboardNavigationBounds?: Readonly<LayoutBox> | undefined
```

Related API: [LayoutBox](/reference/types/layout/#layoutbox).

Logical rectangle used for directional keyboard navigation. See LayoutBox.

[View source — packages/core/src/features/particles/lib/types.ts:1026](/source/packages/core/src/features/particles/lib/types-ts/#L1026)

</details>

<span id="api-PibblParticleCommonProps-onEvent"></span>
<details>
<summary>onEvent (optional)</summary>


```ts
readonly onEvent?: ((event: PibblParticleSystemEvent) => void) | undefined
```

Related API: [PibblParticleSystemEvent](/reference/types/particles/#pibblparticlesystemevent).

Receives lifecycle and milestone notifications. See PibblParticleSystemEvent.

##### Parameters

- **`event`** — Particle playback or emission event. See [PibblParticleSystemEvent](/reference/types/particles/#pibblparticlesystemevent).

[View source — packages/core/src/features/particles/lib/types.ts:1031](/source/packages/core/src/features/particles/lib/types-ts/#L1031)

</details>

<span id="api-PibblParticleCommonProps-onError"></span>
<details>
<summary>onError (optional)</summary>


```ts
readonly onError?: ((error: unknown) => void) | undefined
```

Receives failures reported by the owning runtime resource. See PibblParticleCommonProps
.

##### Parameters

- **`error`** — Failure reported by the particle system.

[View source — packages/core/src/features/particles/lib/types.ts:1037](/source/packages/core/src/features/particles/lib/types-ts/#L1037)

</details>

<span id="api-PibblParticleCommonProps-pointerEvents"></span>
<details>
<summary>pointerEvents (optional)</summary>


```ts
readonly pointerEvents?: PibblPointerEvents | undefined
```

Related API: [PibblPointerEvents](/reference/types/events/#pibblpointerevents).

Whether this content participates in pointer targeting. See PibblPointerEvents.

[View source — packages/core/src/lib/events/types.ts:126](/source/packages/core/src/lib/events/types-ts/#L126)

</details>

<span id="api-PibblParticleCurve"></span>

### PibblParticleCurve

Keyframes describing a numeric or two-component value over particle lifetime.

```ts
interface PibblParticleCurve<T extends PibblParticleCurveValue>
```

Related API: [PibblParticleCurve](/reference/types/particles/#pibblparticlecurve), [PibblParticleCurveValue](/reference/types/particles/#pibblparticlecurvevalue).

#### See also

[PibblParticleCurveValue](/reference/types/particles/#pibblparticlecurvevalue)

[PibblParticleCurveOptions](/reference/types/particles/#pibblparticlecurveoptions)

[PibblParticleAppearance](/reference/types/particles/#pibblparticleappearance)

[particleCurve](/reference/functions/particle-descriptors/)

[View source — packages/core/src/features/particles/lib/types.ts:258](/source/packages/core/src/features/particles/lib/types-ts/#L258)

#### Properties and methods

<span id="api-PibblParticleCurve-type"></span>
<details>
<summary>type</summary>


```ts
readonly type: "curve"
```

The literal "curve" identifying this variant. See PibblParticleCurve.

[View source — packages/core/src/features/particles/lib/types.ts:260](/source/packages/core/src/features/particles/lib/types-ts/#L260)

</details>

<span id="api-PibblParticleCurve-keys"></span>
<details>
<summary>keys</summary>


```ts
readonly keys: readonly (readonly [time: number, value: T])[]
```

Ordered keyframes at normalized lifetime positions. See PibblParticleCurve.

[View source — packages/core/src/features/particles/lib/types.ts:262](/source/packages/core/src/features/particles/lib/types-ts/#L262)

</details>

<span id="api-PibblParticleCurve-options"></span>
<details>
<summary>options (optional)</summary>


```ts
readonly options?: PibblParticleCurveOptions | undefined
```

Related API: [PibblParticleCurveOptions](/reference/types/particles/#pibblparticlecurveoptions).

Interpolation options applied between keyframes. See PibblParticleCurveOptions.

[View source — packages/core/src/features/particles/lib/types.ts:264](/source/packages/core/src/features/particles/lib/types-ts/#L264)

</details>

<span id="api-PibblParticleCurveOptions"></span>

### PibblParticleCurveOptions

Easing used to interpolate between particle keyframes.

```ts
interface PibblParticleCurveOptions
```

Related API: [PibblParticleCurveOptions](/reference/types/particles/#pibblparticlecurveoptions).

#### See also

[PibblParticleCurve](/reference/types/particles/#pibblparticlecurve)

[PibblParticleGradient](/reference/types/particles/#pibblparticlegradient)

[particleCurve](/reference/functions/particle-descriptors/)

[PibblEasing](/reference/types/canvas-runtime/#pibbleasing)

[View source — packages/core/src/features/particles/lib/types.ts:245](/source/packages/core/src/features/particles/lib/types-ts/#L245)

#### Properties and methods

<span id="api-PibblParticleCurveOptions-easing"></span>
<details>
<summary>easing (optional)</summary>


```ts
readonly easing?: PibblEasing | undefined
```

Related API: [easing](/reference/functions/easing/), [PibblEasing](/reference/types/canvas-runtime/#pibbleasing).

Maps normalized progress before interpolation. See PibblParticleCurveOptions.

[View source — packages/core/src/features/particles/lib/types.ts:247](/source/packages/core/src/features/particles/lib/types-ts/#L247)

</details>

<span id="api-PibblParticleCurveValue"></span>

### PibblParticleCurveValue

A scalar or two-component value supported by particle curves.

```ts
type PibblParticleCurveValue = number | readonly [number, number]
```

Related API: [PibblParticleCurveValue](/reference/types/particles/#pibblparticlecurvevalue).

#### See also

[PibblParticleCurve](/reference/types/particles/#pibblparticlecurve)

[particleCurve](/reference/functions/particle-descriptors/)

[View source — packages/core/src/features/particles/lib/types.ts:235](/source/packages/core/src/features/particles/lib/types-ts/#L235)

<span id="api-PibblParticleDiagnostic"></span>

### PibblParticleDiagnostic

Structured validation, capability, asset, execution, or ownership failure from a particle system.

<details>
<summary>Full type declaration</summary>

```ts
type PibblParticleDiagnostic = | Readonly<{
      /**
       * The literal "definition-invalid" identifying this variant. See
       * {@link PibblParticleDiagnostic}.
       */
      type: "definition-invalid";
      /** Human-readable diagnostic explanation. See {@link PibblParticleDiagnostic}. */
      message: string;
      /**
       * Particle effect associated with this input or diagnostic. See
       * {@link PibblParticleDiagnostic}.
       */
      effect?: string;
      /** Name of the emitter associated with this notification. See {@link PibblParticleDiagnostic}. */
      emitter?: string;
      /** Name of the affected input property. See {@link PibblParticleDiagnostic}. */
      property?: string;
    }>
  | Readonly<{
      /**
       * The literal "capability-unsupported" identifying this variant. See
       * {@link PibblParticleDiagnostic}.
       */
      type: "capability-unsupported";
      /** Human-readable diagnostic explanation. See {@link PibblParticleDiagnostic}. */
      message: string;
      /** Name of the unsupported runtime capability. See {@link PibblParticleDiagnostic}. */
      capability: string;
      /**
       * Particle effect associated with this input or diagnostic. See
       * {@link PibblParticleDiagnostic}.
       */
      effect?: string;
      /** Name of the emitter associated with this notification. See {@link PibblParticleDiagnostic}. */
      emitter?: string;
    }>
  | Readonly<{
      /**
       * Selects `"asset-invalid"` , `"binding-conflict"` , `"backend-mismatch"` for type. See
       * {@link PibblParticleDiagnostic}.
       */
      type: "asset-invalid" | "binding-conflict" | "backend-mismatch";
      /** Human-readable diagnostic explanation. See {@link PibblParticleDiagnostic}. */
      message: string;
      /**
       * Particle effect associated with this input or diagnostic. See
       * {@link PibblParticleDiagnostic}.
       */
      effect?: string;
      /** Name of the emitter associated with this notification. See {@link PibblParticleDiagnostic}. */
      emitter?: string;
    }>
  | Readonly<{
      /**
       * Selects `"capacity-rejected"` , `"execution-failed"` , `"disposed"` for type. See
       * {@link PibblParticleDiagnostic}.
       */
      type: "capacity-rejected" | "execution-failed" | "disposed";
      /** Human-readable diagnostic explanation. See {@link PibblParticleDiagnostic}. */
      message: string;
      /**
       * Particle effect associated with this input or diagnostic. See
       * {@link PibblParticleDiagnostic}.
       */
      effect?: string;
      /** Name of the emitter associated with this notification. See {@link PibblParticleDiagnostic}. */
      emitter?: string;
    }>
```

</details>

Related API: [PibblParticleDiagnostic](/reference/types/particles/#pibblparticlediagnostic).

#### See also

[PibblParticleSystemOptions](/reference/types/particles/#pibblparticlesystemoptions)

[PibblParticleEffect2DInput](/reference/types/particles/#pibblparticleeffect2dinput)

[View source — packages/core/src/features/particles/lib/types.ts:803](/source/packages/core/src/features/particles/lib/types-ts/#L803)

#### Properties and methods

<span id="api-PibblParticleDiagnostic-type"></span>
<details>
<summary>type</summary>


```ts
type: "asset-invalid" | "backend-mismatch" | "binding-conflict" | "capability-unsupported" | "capacity-rejected" | "definition-invalid" | "disposed" | "execution-failed"
```

The literal "definition-invalid" identifying this variant. See
PibblParticleDiagnostic.
The literal "capability-unsupported" identifying this variant. See
PibblParticleDiagnostic.
Selects `"asset-invalid"` , `"binding-conflict"` , `"backend-mismatch"` for type. See
PibblParticleDiagnostic.
Selects `"capacity-rejected"` , `"execution-failed"` , `"disposed"` for type. See
PibblParticleDiagnostic.

[View source — packages/core/src/features/particles/lib/types.ts:809](/source/packages/core/src/features/particles/lib/types-ts/#L809)

</details>

<span id="api-PibblParticleDiagnostic-message"></span>
<details>
<summary>message</summary>


```ts
message: string
```

Human-readable diagnostic explanation. See PibblParticleDiagnostic.

[View source — packages/core/src/features/particles/lib/types.ts:811](/source/packages/core/src/features/particles/lib/types-ts/#L811)

</details>

<span id="api-PibblParticleDiagnostic-effect"></span>
<details>
<summary>effect (optional)</summary>


```ts
effect?: string | undefined
```

Particle effect associated with this input or diagnostic. See
PibblParticleDiagnostic.

[View source — packages/core/src/features/particles/lib/types.ts:816](/source/packages/core/src/features/particles/lib/types-ts/#L816)

</details>

<span id="api-PibblParticleDiagnostic-emitter"></span>
<details>
<summary>emitter (optional)</summary>


```ts
emitter?: string | undefined
```

Name of the emitter associated with this notification. See PibblParticleDiagnostic.

[View source — packages/core/src/features/particles/lib/types.ts:818](/source/packages/core/src/features/particles/lib/types-ts/#L818)

</details>

<span id="api-PibblParticleDrainStartEvent"></span>

### PibblParticleDrainStartEvent

Notifies that emission has stopped while existing particles finish their lifetimes.

```ts
interface PibblParticleDrainStartEvent
```

Related API: [PibblParticleDrainStartEvent](/reference/types/particles/#pibblparticledrainstartevent).

#### See also

[PibblParticleSystemEvent](/reference/types/particles/#pibblparticlesystemevent)

[View source — packages/core/src/features/particles/lib/types.ts:765](/source/packages/core/src/features/particles/lib/types-ts/#L765)

#### Properties and methods

<span id="api-PibblParticleDrainStartEvent-type"></span>
<details>
<summary>type</summary>


```ts
readonly type: "drain-start"
```

The literal "drain-start" identifying this variant. See PibblParticleDrainStartEvent.

[View source — packages/core/src/features/particles/lib/types.ts:767](/source/packages/core/src/features/particles/lib/types-ts/#L767)

</details>

<span id="api-PibblParticleEffect2D"></span>

### PibblParticleEffect2D

A validated, branded 2D effect carrying its emitter-name and parameter types.

```ts
interface PibblParticleEffect2D<EmitterName extends string = string, Parameters extends PibblParticleParameterValues = PibblParticleParameterValues>
```

Related API: [PibblParticleEffect2D](/reference/types/particles/#pibblparticleeffect2d), [PibblParticleParameterValues](/reference/types/particles/#pibblparticleparametervalues).

#### See also

[PibblParticleParameterValues](/reference/types/particles/#pibblparticleparametervalues)

[Particles2DProps](/reference/types/particles/#particles2dprops)

[defineParticleEffect2D](/reference/functions/define-particle-effect-2d/)

[useParticleSystem](/reference/hooks/use-particle-system/)

[View source — packages/core/src/features/particles/lib/types.ts:665](/source/packages/core/src/features/particles/lib/types-ts/#L665)

#### Properties and methods

<span id="api-PibblParticleEffect2D-dimension"></span>
<details>
<summary>dimension</summary>


```ts
readonly dimension: 2
```

The literal 2 identifying this variant. See PibblParticleEffect2D.

[View source — packages/core/src/features/particles/lib/types.ts:670](/source/packages/core/src/features/particles/lib/types-ts/#L670)

</details>

<span id="api-PibblParticleEffect2DInput"></span>

### PibblParticleEffect2DInput

Authored parameters and nonempty emitter definitions used to create a 2D effect.

```ts
interface PibblParticleEffect2DInput
```

Related API: [PibblParticleEffect2DInput](/reference/types/particles/#pibblparticleeffect2dinput).

#### See also

[PibblParticleParameterDefinitions](/reference/types/particles/#pibblparticleparameterdefinitions)

[PibblParticleEmitter2D](/reference/types/particles/#pibblparticleemitter2d)

[PibblParticleDiagnostic](/reference/types/particles/#pibblparticlediagnostic)

[defineParticleEffect2D](/reference/functions/define-particle-effect-2d/)

[View source — packages/core/src/features/particles/lib/types.ts:643](/source/packages/core/src/features/particles/lib/types-ts/#L643)

#### Properties and methods

<span id="api-PibblParticleEffect2DInput-debugName"></span>
<details>
<summary>debugName (optional)</summary>


```ts
readonly debugName?: string | undefined
```

Optional label used in diagnostics. See PibblParticleEffect2DInput.

[View source — packages/core/src/features/particles/lib/types.ts:645](/source/packages/core/src/features/particles/lib/types-ts/#L645)

</details>

<span id="api-PibblParticleEffect2DInput-parameters"></span>
<details>
<summary>parameters (optional)</summary>


```ts
readonly parameters?: Readonly<Record<string, PibblParticleParameterDefinition>> | undefined
```

Related API: [PibblParticleParameterDefinition](/reference/types/particles/#pibblparticleparameterdefinition).

Named parameter definitions or values for this effect instance. See
PibblParticleParameterDefinitions.

[View source — packages/core/src/features/particles/lib/types.ts:650](/source/packages/core/src/features/particles/lib/types-ts/#L650)

</details>

<span id="api-PibblParticleEffect2DInput-emitters"></span>
<details>
<summary>emitters</summary>


```ts
readonly emitters: readonly [PibblParticleEmitter2D, ...PibblParticleEmitter2D[]]
```

Related API: [PibblParticleEmitter2D](/reference/types/particles/#pibblparticleemitter2d).

Named emitters forming the reusable effect. See PibblParticleEmitter2D.

[View source — packages/core/src/features/particles/lib/types.ts:652](/source/packages/core/src/features/particles/lib/types-ts/#L652)

</details>

<span id="api-PibblParticleEmission"></span>

### PibblParticleEmission

A timed rate, scheduled burst, or manually triggered particle emission rule.

<details>
<summary>Full type declaration</summary>

```ts
type PibblParticleEmission = | Readonly<{
      /** The literal "rate" identifying this variant. See {@link PibblParticleEmission}. */
      type: "rate";
      /** Continuous emission rate in particles per second. See {@link PibblParticleEmission}. */
      particlesPerSecond: number;
      /** Delay before the emission rule becomes active. See {@link PibblParticleEmission}. */
      startMilliseconds?: number;
      /** Duration for which the emission rule remains active. See {@link PibblParticleEmission}. */
      durationMilliseconds?: number;
      /**
       * Probability that an eligible emission is accepted by this rule. See
       * {@link PibblParticleEmission}.
       */
      probability?: number;
      /** Whether the browser reported an auto-repeated key press. See {@link PibblParticleEmission}. */
      repeat?: Readonly<{
        /** Interval between repeated emissions. See {@link PibblParticleEmission}. */
        everyMilliseconds: number;
        /**
         * Number of particles or sources requested by this configuration. See
         * {@link PibblParticleEmission}.
         */
        count: number;
      }>;
    }>
  | Readonly<{
      /** The literal "burst" identifying this variant. See {@link PibblParticleEmission}. */
      type: "burst";
      /** Logical time at which a scheduled burst occurs. See {@link PibblParticleEmission}. */
      atMilliseconds: number;
      /**
       * Number of particles or sources requested by this configuration. See
       * {@link PibblParticleIntegerRange}.
       */
      count: number | PibblParticleIntegerRange;
      /**
       * Probability that an eligible emission is accepted by this rule. See
       * {@link PibblParticleEmission}.
       */
      probability?: number;
      /** Whether the browser reported an auto-repeated key press. See {@link PibblParticleEmission}. */
      repeat?: Readonly<{
        /** Interval between repeated emissions. See {@link PibblParticleEmission}. */
        everyMilliseconds: number;
        /**
         * Number of particles or sources requested by this configuration. See
         * {@link PibblParticleEmission}.
         */
        count: number;
      }>;
    }>
  | Readonly<{
      /** The literal "manual" identifying this variant. See {@link PibblParticleEmission}. */
      type: "manual";
      /**
       * Number of particles or sources requested by this configuration. See
       * {@link PibblParticleIntegerRange}.
       */
      count?: number | PibblParticleIntegerRange;
    }>
```

</details>

Related API: [PibblParticleEmission](/reference/types/particles/#pibblparticleemission), [repeat](/reference/functions/repeat/), [PibblParticleIntegerRange](/reference/types/particles/#pibblparticleintegerrange).

#### See also

[PibblParticleIntegerRange](/reference/types/particles/#pibblparticleintegerrange)

[PibblParticleEmitter2D](/reference/types/particles/#pibblparticleemitter2d)

[View source — packages/core/src/features/particles/lib/types.ts:289](/source/packages/core/src/features/particles/lib/types-ts/#L289)

#### Properties and methods

<span id="api-PibblParticleEmission-type"></span>
<details>
<summary>type</summary>


```ts
type: "burst" | "manual" | "rate"
```

The literal "rate" identifying this variant. See PibblParticleEmission.
The literal "burst" identifying this variant. See PibblParticleEmission.
The literal "manual" identifying this variant. See PibblParticleEmission.

[View source — packages/core/src/features/particles/lib/types.ts:292](/source/packages/core/src/features/particles/lib/types-ts/#L292)

</details>

<span id="api-PibblParticleEmitter2D"></span>

### PibblParticleEmitter2D

Capacity, emission, spawn geometry, motion, appearance, and rendering of one named emitter.

```ts
interface PibblParticleEmitter2D
```

Related API: [PibblParticleEmitter2D](/reference/types/particles/#pibblparticleemitter2d).

#### See also

[PibblParticleOverflow](/reference/types/particles/#pibblparticleoverflow)

[PibblParticleEmission](/reference/types/particles/#pibblparticleemission)

[PibblParticleShape2D](/reference/types/particles/#pibblparticleshape2d)

[PibblParticleInitial2D](/reference/types/particles/#pibblparticleinitial2d)

[PibblParticleMotion2D](/reference/types/particles/#pibblparticlemotion2d)

[PibblParticleAppearance](/reference/types/particles/#pibblparticleappearance)

[PibblParticleRenderer2D](/reference/types/particles/#pibblparticlerenderer2d)

[PibblParticleBounds2D](/reference/types/particles/#pibblparticlebounds2d)

[PibblParticleEffect2DInput](/reference/types/particles/#pibblparticleeffect2dinput)

[View source — packages/core/src/features/particles/lib/types.ts:598](/source/packages/core/src/features/particles/lib/types-ts/#L598)

#### Properties and methods

<span id="api-PibblParticleEmitter2D-name"></span>
<details>
<summary>name</summary>


```ts
readonly name: string
```

Name identifying this backend, emitter, or parameter. See PibblParticleEmitter2D.

[View source — packages/core/src/features/particles/lib/types.ts:600](/source/packages/core/src/features/particles/lib/types-ts/#L600)

</details>

<span id="api-PibblParticleEmitter2D-capacity"></span>
<details>
<summary>capacity</summary>


```ts
readonly capacity: number
```

Maximum number of particles retained by this emitter. See PibblParticleEmitter2D.

[View source — packages/core/src/features/particles/lib/types.ts:602](/source/packages/core/src/features/particles/lib/types-ts/#L602)

</details>

<span id="api-PibblParticleEmitter2D-overflow"></span>
<details>
<summary>overflow (optional)</summary>


```ts
readonly overflow?: PibblParticleOverflow | undefined
```

Related API: [PibblParticleOverflow](/reference/types/particles/#pibblparticleoverflow).

Rejects newly emitted particles or recycles the oldest particles when capacity is exhausted.
See PibblParticleOverflow.

[View source — packages/core/src/features/particles/lib/types.ts:607](/source/packages/core/src/features/particles/lib/types-ts/#L607)

</details>

<span id="api-PibblParticleEmitter2D-space"></span>
<details>
<summary>space (optional)</summary>


```ts
readonly space?: "local" | undefined
```

The literal "local" identifying this variant. See PibblParticleEmitter2D.

[View source — packages/core/src/features/particles/lib/types.ts:609](/source/packages/core/src/features/particles/lib/types-ts/#L609)

</details>

<span id="api-PibblParticleEmitter2D-emission"></span>
<details>
<summary>emission</summary>


```ts
readonly emission: readonly PibblParticleEmission[]
```

Related API: [PibblParticleEmission](/reference/types/particles/#pibblparticleemission).

Timed and manual emission rules for the emitter. See PibblParticleEmission.

[View source — packages/core/src/features/particles/lib/types.ts:611](/source/packages/core/src/features/particles/lib/types-ts/#L611)

</details>

<span id="api-PibblParticleEmitter2D-shape"></span>
<details>
<summary>shape</summary>


```ts
readonly shape: PibblParticleShape2D
```

Related API: [PibblParticleShape2D](/reference/types/particles/#pibblparticleshape2d).

Immutable collision geometry or particle spawn shape. See PibblParticleShape2D.

[View source — packages/core/src/features/particles/lib/types.ts:613](/source/packages/core/src/features/particles/lib/types-ts/#L613)

</details>

<span id="api-PibblParticleEmitter2D-initial"></span>
<details>
<summary>initial</summary>


```ts
readonly initial: PibblParticleInitial2D
```

Related API: [PibblParticleInitial2D](/reference/types/particles/#pibblparticleinitial2d).

Distributions and parameters sampled when a particle is born. See PibblParticleInitial2D
.

[View source — packages/core/src/features/particles/lib/types.ts:618](/source/packages/core/src/features/particles/lib/types-ts/#L618)

</details>

<span id="api-PibblParticleEmitter2D-motion"></span>
<details>
<summary>motion (optional)</summary>


```ts
readonly motion?: readonly PibblParticleMotion2D[] | undefined
```

Related API: [PibblParticleMotion2D](/reference/types/particles/#pibblparticlemotion2d).

Motion rules applied over particle lifetime. See PibblParticleMotion2D.

[View source — packages/core/src/features/particles/lib/types.ts:620](/source/packages/core/src/features/particles/lib/types-ts/#L620)

</details>

<span id="api-PibblParticleEmitter2D-appearance"></span>
<details>
<summary>appearance (optional)</summary>


```ts
readonly appearance?: PibblParticleAppearance | undefined
```

Related API: [PibblParticleAppearance](/reference/types/particles/#pibblparticleappearance).

Lifetime-dependent visual properties of the particles. See PibblParticleAppearance.

[View source — packages/core/src/features/particles/lib/types.ts:622](/source/packages/core/src/features/particles/lib/types-ts/#L622)

</details>

<span id="api-PibblParticleEmitter2D-renderer"></span>
<details>
<summary>renderer</summary>


```ts
readonly renderer: PibblParticleRenderer2D
```

Related API: [PibblParticleRenderer2D](/reference/types/particles/#pibblparticlerenderer2d).

Canvas mark or sprite configuration used to paint this emitter's particles. See
PibblParticleRenderer2D.

[View source — packages/core/src/features/particles/lib/types.ts:627](/source/packages/core/src/features/particles/lib/types-ts/#L627)

</details>

<span id="api-PibblParticleEmitter2D-bounds"></span>
<details>
<summary>bounds (optional)</summary>


```ts
readonly bounds?: PibblParticleBounds2D | undefined
```

Related API: [PibblParticleBounds2D](/reference/types/particles/#pibblparticlebounds2d).

Conservative emitter bounds used for culling; required when they cannot be derived. See
PibblParticleBounds2D.

[View source — packages/core/src/features/particles/lib/types.ts:632](/source/packages/core/src/features/particles/lib/types-ts/#L632)

</details>

<span id="api-PibblParticleExecution"></span>

### PibblParticleExecution

The selected particle execution path, or unbound before a renderer is attached.

```ts
type PibblParticleExecution = | "unbound"
  | "stateless-canvas"
  | "flow-canvas"
```

Related API: [PibblParticleExecution](/reference/types/particles/#pibblparticleexecution).

#### See also

[PibblParticleSystem](/reference/types/particles/#pibblparticlesystem)

[View source — packages/core/src/features/particles/lib/types.ts:696](/source/packages/core/src/features/particles/lib/types-ts/#L696)

<span id="api-PibblParticleFinishEvent"></span>

### PibblParticleFinishEvent

Notifies that a particle system has finished its active run.

```ts
interface PibblParticleFinishEvent
```

Related API: [PibblParticleFinishEvent](/reference/types/particles/#pibblparticlefinishevent).

#### See also

[PibblParticleSystemEvent](/reference/types/particles/#pibblparticlesystemevent)

[View source — packages/core/src/features/particles/lib/types.ts:775](/source/packages/core/src/features/particles/lib/types-ts/#L775)

#### Properties and methods

<span id="api-PibblParticleFinishEvent-type"></span>
<details>
<summary>type</summary>


```ts
readonly type: "finish"
```

The literal "finish" identifying this variant. See PibblParticleFinishEvent.

[View source — packages/core/src/features/particles/lib/types.ts:777](/source/packages/core/src/features/particles/lib/types-ts/#L777)

</details>

<span id="api-PibblParticleGradient"></span>

### PibblParticleGradient

Color keyframes interpolated across normalized particle lifetime.

```ts
interface PibblParticleGradient
```

Related API: [PibblParticleGradient](/reference/types/particles/#pibblparticlegradient).

#### See also

[PibblParticleCurveOptions](/reference/types/particles/#pibblparticlecurveoptions)

[PibblParticleAppearance](/reference/types/particles/#pibblparticleappearance)

[particleGradient](/reference/functions/particle-descriptors/)

[View source — packages/core/src/features/particles/lib/types.ts:274](/source/packages/core/src/features/particles/lib/types-ts/#L274)

#### Properties and methods

<span id="api-PibblParticleGradient-type"></span>
<details>
<summary>type</summary>


```ts
readonly type: "gradient"
```

The literal "gradient" identifying this variant. See PibblParticleGradient.

[View source — packages/core/src/features/particles/lib/types.ts:276](/source/packages/core/src/features/particles/lib/types-ts/#L276)

</details>

<span id="api-PibblParticleGradient-keys"></span>
<details>
<summary>keys</summary>


```ts
readonly keys: readonly (readonly [time: number, color: string])[]
```

Ordered keyframes at normalized lifetime positions. See PibblParticleGradient.

[View source — packages/core/src/features/particles/lib/types.ts:278](/source/packages/core/src/features/particles/lib/types-ts/#L278)

</details>

<span id="api-PibblParticleGradient-options"></span>
<details>
<summary>options (optional)</summary>


```ts
readonly options?: PibblParticleCurveOptions | undefined
```

Related API: [PibblParticleCurveOptions](/reference/types/particles/#pibblparticlecurveoptions).

Interpolation options applied between keyframes. See PibblParticleCurveOptions.

[View source — packages/core/src/features/particles/lib/types.ts:280](/source/packages/core/src/features/particles/lib/types-ts/#L280)

</details>

<span id="api-PibblParticleInitial2D"></span>

### PibblParticleInitial2D

Particle birth values for lifetime, velocity, size, rotation, color, and opacity.

```ts
interface PibblParticleInitial2D
```

Related API: [PibblParticleInitial2D](/reference/types/particles/#pibblparticleinitial2d).

#### See also

[PibblParticleScalar](/reference/types/particles/#pibblparticlescalar)

[PibblParticleVector2](/reference/types/particles/#pibblparticlevector2)

[PibblParticleChoice](/reference/types/particles/#pibblparticlechoice)

[PibblParticleParameterReference](/reference/types/particles/#pibblparticleparameterreference)

[PibblParticleEmitter2D](/reference/types/particles/#pibblparticleemitter2d)

[View source — packages/core/src/features/particles/lib/types.ts:416](/source/packages/core/src/features/particles/lib/types-ts/#L416)

#### Properties and methods

<span id="api-PibblParticleInitial2D-lifetimeMilliseconds"></span>
<details>
<summary>lifetimeMilliseconds</summary>


```ts
readonly lifetimeMilliseconds: PibblParticleScalar
```

Related API: [PibblParticleScalar](/reference/types/particles/#pibblparticlescalar).

Particle lifetime sampled at birth, in milliseconds. See PibblParticleScalar.

[View source — packages/core/src/features/particles/lib/types.ts:418](/source/packages/core/src/features/particles/lib/types-ts/#L418)

</details>

<span id="api-PibblParticleInitial2D-velocity"></span>
<details>
<summary>velocity (optional)</summary>


```ts
readonly velocity?: PibblParticleVector2 | undefined
```

Related API: [PibblParticleVector2](/reference/types/particles/#pibblparticlevector2).

Linear velocity used by the particle motion rule. See PibblParticleVector2.

[View source — packages/core/src/features/particles/lib/types.ts:420](/source/packages/core/src/features/particles/lib/types-ts/#L420)

</details>

<span id="api-PibblParticleInitial2D-size"></span>
<details>
<summary>size (optional)</summary>


```ts
readonly size?: number | PibblParticleChoice<number> | PibblParticleIntegerRange | PibblParticleParameterReference<string> | PibblParticleRange | readonly [PibblParticleScalar, PibblParticleScalar] | undefined
```

Related API: [PibblParticleChoice](/reference/types/particles/#pibblparticlechoice), [PibblParticleIntegerRange](/reference/types/particles/#pibblparticleintegerrange), [PibblParticleParameterReference](/reference/types/particles/#pibblparticleparameterreference), [PibblParticleRange](/reference/types/particles/#pibblparticlerange), [PibblParticleScalar](/reference/types/particles/#pibblparticlescalar).

Scalar or two-component size sampled at particle birth. See PibblParticleScalar,
PibblParticleVector2.

[View source — packages/core/src/features/particles/lib/types.ts:425](/source/packages/core/src/features/particles/lib/types-ts/#L425)

</details>

<span id="api-PibblParticleInitial2D-rotationDegrees"></span>
<details>
<summary>rotationDegrees (optional)</summary>


```ts
readonly rotationDegrees?: PibblParticleScalar | undefined
```

Related API: [PibblParticleScalar](/reference/types/particles/#pibblparticlescalar).

Rotation in degrees sampled at particle birth. See PibblParticleScalar.

[View source — packages/core/src/features/particles/lib/types.ts:427](/source/packages/core/src/features/particles/lib/types-ts/#L427)

</details>

<span id="api-PibblParticleInitial2D-angularVelocityDegreesPerSecond"></span>
<details>
<summary>angularVelocityDegreesPerSecond (optional)</summary>


```ts
readonly angularVelocityDegreesPerSecond?: PibblParticleScalar | undefined
```

Related API: [PibblParticleScalar](/reference/types/particles/#pibblparticlescalar).

Angular velocity in degrees per second. See PibblParticleScalar.

[View source — packages/core/src/features/particles/lib/types.ts:429](/source/packages/core/src/features/particles/lib/types-ts/#L429)

</details>

<span id="api-PibblParticleInitial2D-color"></span>
<details>
<summary>color (optional)</summary>


```ts
readonly color?: string | PibblParticleChoice<string> | PibblParticleParameterReference<string> | undefined
```

Related API: [PibblParticleChoice](/reference/types/particles/#pibblparticlechoice), [PibblParticleParameterReference](/reference/types/particles/#pibblparticleparameterreference).

Color sampled at particle birth. See PibblParticleChoice,
PibblParticleParameterReference.

[View source — packages/core/src/features/particles/lib/types.ts:434](/source/packages/core/src/features/particles/lib/types-ts/#L434)

</details>

<span id="api-PibblParticleInitial2D-opacity"></span>
<details>
<summary>opacity (optional)</summary>


```ts
readonly opacity?: PibblParticleScalar | undefined
```

Related API: [opacity](/reference/types/filters/#opacity), [PibblParticleScalar](/reference/types/particles/#pibblparticlescalar).

Opacity sampled at particle birth. See PibblParticleScalar.

[View source — packages/core/src/features/particles/lib/types.ts:437](/source/packages/core/src/features/particles/lib/types-ts/#L437)

</details>

<span id="api-PibblParticleIntegerRange"></span>

### PibblParticleIntegerRange

An integer-valued random sampling interval.

```ts
interface PibblParticleIntegerRange
```

Related API: [PibblParticleIntegerRange](/reference/types/particles/#pibblparticleintegerrange).

#### See also

[PibblParticleEmission](/reference/types/particles/#pibblparticleemission)

[PibblParticleScalar](/reference/types/particles/#pibblparticlescalar)

[particleInteger](/reference/functions/particle-descriptors/)

[View source — packages/core/src/features/particles/lib/types.ts:154](/source/packages/core/src/features/particles/lib/types-ts/#L154)

#### Properties and methods

<span id="api-PibblParticleIntegerRange-type"></span>
<details>
<summary>type</summary>


```ts
readonly type: "integer"
```

The literal "integer" identifying this variant. See PibblParticleIntegerRange.

[View source — packages/core/src/features/particles/lib/types.ts:156](/source/packages/core/src/features/particles/lib/types-ts/#L156)

</details>

<span id="api-PibblParticleIntegerRange-min"></span>
<details>
<summary>min</summary>


```ts
readonly min: number
```

Lower bound of the coordinate or sampling interval. See PibblParticleIntegerRange.

[View source — packages/core/src/features/particles/lib/types.ts:158](/source/packages/core/src/features/particles/lib/types-ts/#L158)

</details>

<span id="api-PibblParticleIntegerRange-max"></span>
<details>
<summary>max</summary>


```ts
readonly max: number
```

Upper bound of the coordinate or sampling interval. See PibblParticleIntegerRange.

[View source — packages/core/src/features/particles/lib/types.ts:160](/source/packages/core/src/features/particles/lib/types-ts/#L160)

</details>

<span id="api-PibblParticleMotion2D"></span>

### PibblParticleMotion2D

An analytic 2D motion rule such as gravity, drag, drift, orbit, or sway.

<details>
<summary>Full type declaration</summary>

```ts
type PibblParticleMotion2D = | Readonly<{
      /** Selects `"acceleration"`, `"gravity"` for type. See {@link PibblParticleMotion2D}. */
      type: "acceleration" | "gravity";
      /** Value associated with this sample, input, or result. See {@link PibblParticleVector2}. */
      value: PibblParticleVector2;
    }>
  | Readonly<{
      /** The literal "drag" identifying this variant. See {@link PibblParticleMotion2D}. */
      type: "drag";
      /** Magnitude of the filter or motion adjustment. See {@link PibblParticleScalar}. */
      amount: PibblParticleScalar;
    }>
  | Readonly<{
      /** The literal "drift" identifying this variant. See {@link PibblParticleMotion2D}. */
      type: "drift";
      /** Linear velocity used by the particle motion rule. See {@link PibblParticleVector2}. */
      velocity: PibblParticleVector2;
    }>
  | Readonly<{
      /** The literal "radialAcceleration" identifying this variant. See {@link PibblParticleMotion2D}. */
      type: "radialAcceleration";
      /** Center of radial acceleration or orbital motion. See {@link PibblParticleMotion2D}. */
      center: readonly [number, number];
      /** Magnitude of the filter or motion adjustment. See {@link PibblParticleScalar}. */
      amount: PibblParticleScalar;
    }>
  | Readonly<{
      /** The literal "orbit" identifying this variant. See {@link PibblParticleMotion2D}. */
      type: "orbit";
      /** Center of radial acceleration or orbital motion. See {@link PibblParticleMotion2D}. */
      center: readonly [number, number];
      /** Angular motion rate in degrees per second. See {@link PibblParticleScalar}. */
      degreesPerSecond: PibblParticleScalar;
    }>
  | Readonly<{
      /** The literal "sway" identifying this variant. See {@link PibblParticleMotion2D}. */
      type: "sway";
      /** Maximum excursion of the oscillating motion. See {@link PibblParticleScalar}. */
      amplitude: PibblParticleScalar;
      /** Rate at which the pattern or motion repeats. See {@link PibblParticleScalar}. */
      frequency: PibblParticleScalar | readonly [number, number];
    }>
  | Readonly<{
      /** The literal "angularVelocity" identifying this variant. See {@link PibblParticleMotion2D}. */
      type: "angularVelocity";
      /** Angular motion rate in degrees per second. See {@link PibblParticleScalar}. */
      degreesPerSecond: PibblParticleScalar;
    }>
```

</details>

Related API: [PibblParticleMotion2D](/reference/types/particles/#pibblparticlemotion2d), [PibblParticleVector2](/reference/types/particles/#pibblparticlevector2), [PibblParticleScalar](/reference/types/particles/#pibblparticlescalar), [degrees](/reference/functions/degrees/).

#### See also

[PibblParticleVector2](/reference/types/particles/#pibblparticlevector2)

[PibblParticleScalar](/reference/types/particles/#pibblparticlescalar)

[PibblParticleEmitter2D](/reference/types/particles/#pibblparticleemitter2d)

[View source — packages/core/src/features/particles/lib/types.ts:447](/source/packages/core/src/features/particles/lib/types-ts/#L447)

#### Properties and methods

<span id="api-PibblParticleMotion2D-type"></span>
<details>
<summary>type</summary>


```ts
type: "acceleration" | "angularVelocity" | "drag" | "drift" | "gravity" | "orbit" | "radialAcceleration" | "sway"
```

Selects `"acceleration"`, `"gravity"` for type. See PibblParticleMotion2D.
The literal "drag" identifying this variant. See PibblParticleMotion2D.
The literal "drift" identifying this variant. See PibblParticleMotion2D.
The literal "radialAcceleration" identifying this variant. See PibblParticleMotion2D.
The literal "orbit" identifying this variant. See PibblParticleMotion2D.
The literal "sway" identifying this variant. See PibblParticleMotion2D.
The literal "angularVelocity" identifying this variant. See PibblParticleMotion2D.

[View source — packages/core/src/features/particles/lib/types.ts:450](/source/packages/core/src/features/particles/lib/types-ts/#L450)

</details>

<span id="api-PibblParticleOverflow"></span>

### PibblParticleOverflow

Whether a full emitter rejects new particles or recycles its oldest particles.

```ts
type PibblParticleOverflow = "reject-newest" | "recycle-oldest"
```

Related API: [PibblParticleOverflow](/reference/types/particles/#pibblparticleoverflow).

#### See also

[PibblParticleEmitter2D](/reference/types/particles/#pibblparticleemitter2d)

[View source — packages/core/src/features/particles/lib/types.ts:583](/source/packages/core/src/features/particles/lib/types-ts/#L583)

<span id="api-PibblParticleParameterDefinition"></span>

### PibblParticleParameterDefinition

A typed default value and sampling phase for a named particle parameter.

<details>
<summary>Full type declaration</summary>

```ts
type PibblParticleParameterDefinition = | Readonly<{
      /** The literal "number" identifying this variant. See {@link PibblParticleParameterDefinition}. */
      type: "number";
      /**
       * Value used when no parameter override is supplied. See
       * {@link PibblParticleParameterDefinition}.
       */
      default: number;
      /** Phase at which the parameter value is sampled. See {@link PibblParticleParameterTiming}. */
      timing: PibblParticleParameterTiming;
    }>
  | Readonly<{
      /** The literal "vector2" identifying this variant. See {@link PibblParticleParameterDefinition}. */
      type: "vector2";
      /**
       * Value used when no parameter override is supplied. See
       * {@link PibblParticleParameterDefinition}.
       */
      default: readonly [number, number];
      /** Phase at which the parameter value is sampled. See {@link PibblParticleParameterTiming}. */
      timing: PibblParticleParameterTiming;
    }>
  | Readonly<{
      /** The literal "color" identifying this variant. See {@link PibblParticleParameterDefinition}. */
      type: "color";
      /**
       * Value used when no parameter override is supplied. See
       * {@link PibblParticleParameterDefinition}.
       */
      default: string;
      /** Phase at which the parameter value is sampled. See {@link PibblParticleParameterTiming}. */
      timing: PibblParticleParameterTiming;
    }>
```

</details>

Related API: [PibblParticleParameterDefinition](/reference/types/particles/#pibblparticleparameterdefinition), [PibblParticleParameterTiming](/reference/types/particles/#pibblparticleparametertiming).

#### See also

[PibblParticleParameterTiming](/reference/types/particles/#pibblparticleparametertiming)

[PibblParticleParameterDefinitions](/reference/types/particles/#pibblparticleparameterdefinitions)

[PibblParticleValueFor](/reference/types/particles/#pibblparticlevaluefor)

[View source — packages/core/src/features/particles/lib/types.ts:34](/source/packages/core/src/features/particles/lib/types-ts/#L34)

#### Properties and methods

<span id="api-PibblParticleParameterDefinition-type"></span>
<details>
<summary>type</summary>


```ts
type: "color" | "number" | "vector2"
```

The literal "number" identifying this variant. See PibblParticleParameterDefinition.
The literal "vector2" identifying this variant. See PibblParticleParameterDefinition.
The literal "color" identifying this variant. See PibblParticleParameterDefinition.

[View source — packages/core/src/features/particles/lib/types.ts:37](/source/packages/core/src/features/particles/lib/types-ts/#L37)

</details>

<span id="api-PibblParticleParameterDefinition-default"></span>
<details>
<summary>default</summary>


```ts
default: string | number | readonly [number, number]
```

Value used when no parameter override is supplied. See
PibblParticleParameterDefinition.

[View source — packages/core/src/features/particles/lib/types.ts:42](/source/packages/core/src/features/particles/lib/types-ts/#L42)

</details>

<span id="api-PibblParticleParameterDefinition-timing"></span>
<details>
<summary>timing</summary>


```ts
timing: PibblParticleParameterTiming
```

Related API: [PibblParticleParameterTiming](/reference/types/particles/#pibblparticleparametertiming).

Phase at which the parameter value is sampled. See PibblParticleParameterTiming.

[View source — packages/core/src/features/particles/lib/types.ts:44](/source/packages/core/src/features/particles/lib/types-ts/#L44)

</details>

<span id="api-PibblParticleParameterDefinitions"></span>

### PibblParticleParameterDefinitions

Named parameter declarations belonging to a particle effect.

```ts
type PibblParticleParameterDefinitions = Readonly<
  Record<string, PibblParticleParameterDefinition>
>
```

Related API: [PibblParticleParameterDefinitions](/reference/types/particles/#pibblparticleparameterdefinitions), [PibblParticleParameterDefinition](/reference/types/particles/#pibblparticleparameterdefinition).

#### See also

[PibblParticleParameterDefinition](/reference/types/particles/#pibblparticleparameterdefinition)

[PibblParticleEffect2DInput](/reference/types/particles/#pibblparticleeffect2dinput)

[PibblParticleValuesOf](/reference/types/particles/#pibblparticlevaluesof)

[View source — packages/core/src/features/particles/lib/types.ts:76](/source/packages/core/src/features/particles/lib/types-ts/#L76)

<span id="api-PibblParticleParameterReference"></span>

### PibblParticleParameterReference

A symbolic reference resolved against the owning effect's parameter definitions.

```ts
interface PibblParticleParameterReference<Name extends string>
```

Related API: [PibblParticleParameterReference](/reference/types/particles/#pibblparticleparameterreference).

#### See also

[PibblParticleInitial2D](/reference/types/particles/#pibblparticleinitial2d)

[PibblParticleScalar](/reference/types/particles/#pibblparticlescalar)

[PibblParticleVector2](/reference/types/particles/#pibblparticlevector2)

[View source — packages/core/src/features/particles/lib/types.ts:189](/source/packages/core/src/features/particles/lib/types-ts/#L189)

#### Properties and methods

<span id="api-PibblParticleParameterReference-type"></span>
<details>
<summary>type</summary>


```ts
readonly type: "parameter"
```

The literal "parameter" identifying this variant. See PibblParticleParameterReference.

[View source — packages/core/src/features/particles/lib/types.ts:193](/source/packages/core/src/features/particles/lib/types-ts/#L193)

</details>

<span id="api-PibblParticleParameterReference-name"></span>
<details>
<summary>name</summary>


```ts
readonly name: Name
```

Name identifying this backend, emitter, or parameter. See
PibblParticleParameterReference.

[View source — packages/core/src/features/particles/lib/types.ts:198](/source/packages/core/src/features/particles/lib/types-ts/#L198)

</details>

<span id="api-PibblParticleParameterTiming"></span>

### PibblParticleParameterTiming

Whether a parameter is sampled at spawn, simulation, or rendering time.

```ts
type PibblParticleParameterTiming = "spawn" | "simulation" | "render"
```

Related API: [PibblParticleParameterTiming](/reference/types/particles/#pibblparticleparametertiming).

#### See also

[PibblParticleParameterDefinition](/reference/types/particles/#pibblparticleparameterdefinition)

[View source — packages/core/src/features/particles/lib/types.ts:25](/source/packages/core/src/features/particles/lib/types-ts/#L25)

<span id="api-PibblParticleParameterValue"></span>

### PibblParticleParameterValue

A numeric, color, or two-component particle parameter value.

```ts
type PibblParticleParameterValue = | number
  | string
  | readonly [number, number]
```

Related API: [PibblParticleParameterValue](/reference/types/particles/#pibblparticleparametervalue).

#### See also

[PibblParticleParameterValues](/reference/types/particles/#pibblparticleparametervalues)

[View source — packages/core/src/features/particles/lib/types.ts:116](/source/packages/core/src/features/particles/lib/types-ts/#L116)

<span id="api-PibblParticleParameterValues"></span>

### PibblParticleParameterValues

Values keyed by a particle effect's parameter names.

```ts
type PibblParticleParameterValues = Readonly<
  Record<string, PibblParticleParameterValue>
>
```

Related API: [PibblParticleParameterValues](/reference/types/particles/#pibblparticleparametervalues), [PibblParticleParameterValue](/reference/types/particles/#pibblparticleparametervalue).

#### See also

[PibblParticleParameterValue](/reference/types/particles/#pibblparticleparametervalue)

[PibblParticleCommonProps](/reference/types/particles/#pibblparticlecommonprops)

[PibblParticleEffect2D](/reference/types/particles/#pibblparticleeffect2d)

[View source — packages/core/src/features/particles/lib/types.ts:128](/source/packages/core/src/features/particles/lib/types-ts/#L128)

<span id="api-PibblParticleRange"></span>

### PibblParticleRange

A continuous numeric interval for particle sampling.

```ts
interface PibblParticleRange
```

Related API: [PibblParticleRange](/reference/types/particles/#pibblparticlerange).

#### See also

[PibblParticleScalar](/reference/types/particles/#pibblparticlescalar)

[particleRange](/reference/functions/particle-descriptors/)

[View source — packages/core/src/features/particles/lib/types.ts:138](/source/packages/core/src/features/particles/lib/types-ts/#L138)

#### Properties and methods

<span id="api-PibblParticleRange-type"></span>
<details>
<summary>type</summary>


```ts
readonly type: "between"
```

The literal "between" identifying this variant. See PibblParticleRange.

[View source — packages/core/src/features/particles/lib/types.ts:140](/source/packages/core/src/features/particles/lib/types-ts/#L140)

</details>

<span id="api-PibblParticleRange-min"></span>
<details>
<summary>min</summary>


```ts
readonly min: number
```

Lower bound of the coordinate or sampling interval. See PibblParticleRange.

[View source — packages/core/src/features/particles/lib/types.ts:142](/source/packages/core/src/features/particles/lib/types-ts/#L142)

</details>

<span id="api-PibblParticleRange-max"></span>
<details>
<summary>max</summary>


```ts
readonly max: number
```

Upper bound of the coordinate or sampling interval. See PibblParticleRange.

[View source — packages/core/src/features/particles/lib/types.ts:144](/source/packages/core/src/features/particles/lib/types-ts/#L144)

</details>

<span id="api-PibblParticleRenderer2D"></span>

### PibblParticleRenderer2D

Canvas rendering configuration for circles, rectangles, paths, or sprites.

<details>
<summary>Full type declaration</summary>

```ts
type PibblParticleRenderer2D = | Readonly<{
      /** The literal "circle" identifying this variant. See {@link PibblParticleRenderer2D}. */
      type: "circle";
      /** Selects `"source-over"`, `"additive"` for blend. See {@link PibblParticleRenderer2D}. */
      blend?: "source-over" | "additive";
    }>
  | Readonly<{
      /** The literal "rectangle" identifying this variant. See {@link PibblParticleRenderer2D}. */
      type: "rectangle";
      /** Width-to-height ratio of the particle rectangle. See {@link PibblParticleRenderer2D}. */
      aspectRatio?: number;
      /** Selects `"source-over"`, `"additive"` for blend. See {@link PibblParticleRenderer2D}. */
      blend?: "source-over" | "additive";
    }>
  | Readonly<{
      /** The literal "path" identifying this variant. See {@link PibblParticleRenderer2D}. */
      type: "path";
      /** Path geometry used by this operation. See {@link PathGeometry}. */
      path: Path2D | PathGeometry;
      /** Selects `"source-over"`, `"additive"` for blend. See {@link PibblParticleRenderer2D}. */
      blend?: "source-over" | "additive";
    }>
  | Readonly<{
      /** The literal "sprite" identifying this variant. See {@link PibblParticleRenderer2D}. */
      type: "sprite";
      /** Image used to paint each sprite particle. See {@link PibblParticleRenderer2D}. */
      source: CanvasImageSource;
      /**
       * Logical point to which the content or result is anchored. See
       * {@link PibblParticleRenderer2D}.
       */
      anchor?: readonly [number, number];
      /** Selects `"source-over"`, `"additive"` for blend. See {@link PibblParticleRenderer2D}. */
      blend?: "source-over" | "additive";
    }>
```

</details>

Related API: [PibblParticleRenderer2D](/reference/types/particles/#pibblparticlerenderer2d), [Path](/reference/components/path/), [PathGeometry](/reference/functions/path-geometry/), [Image](/reference/components/image/).

#### See also

[PathGeometry](/reference/functions/path-geometry/)

[PibblParticleEmitter2D](/reference/types/particles/#pibblparticleemitter2d)

[View source — packages/core/src/features/particles/lib/types.ts:529](/source/packages/core/src/features/particles/lib/types-ts/#L529)

#### Properties and methods

<span id="api-PibblParticleRenderer2D-type"></span>
<details>
<summary>type</summary>


```ts
type: "circle" | "path" | "rectangle" | "sprite"
```

The literal "circle" identifying this variant. See PibblParticleRenderer2D.
The literal "rectangle" identifying this variant. See PibblParticleRenderer2D.
The literal "path" identifying this variant. See PibblParticleRenderer2D.
The literal "sprite" identifying this variant. See PibblParticleRenderer2D.

[View source — packages/core/src/features/particles/lib/types.ts:532](/source/packages/core/src/features/particles/lib/types-ts/#L532)

</details>

<span id="api-PibblParticleRenderer2D-blend"></span>
<details>
<summary>blend (optional)</summary>


```ts
blend?: "additive" | "source-over" | undefined
```

Selects `"source-over"`, `"additive"` for blend. See PibblParticleRenderer2D.

[View source — packages/core/src/features/particles/lib/types.ts:534](/source/packages/core/src/features/particles/lib/types-ts/#L534)

</details>

<span id="api-PibblParticleScalar"></span>

### PibblParticleScalar

A literal, random distribution, weighted choice, or parameter reference yielding a number.

```ts
type PibblParticleScalar = | number
  | PibblParticleRange
  | PibblParticleIntegerRange
  | PibblParticleChoice<number>
  | PibblParticleParameterReference<string>
```

Related API: [PibblParticleScalar](/reference/types/particles/#pibblparticlescalar), [PibblParticleRange](/reference/types/particles/#pibblparticlerange), [PibblParticleIntegerRange](/reference/types/particles/#pibblparticleintegerrange), [PibblParticleChoice](/reference/types/particles/#pibblparticlechoice), [PibblParticleParameterReference](/reference/types/particles/#pibblparticleparameterreference).

#### See also

[PibblParticleRange](/reference/types/particles/#pibblparticlerange)

[PibblParticleIntegerRange](/reference/types/particles/#pibblparticleintegerrange)

[PibblParticleChoice](/reference/types/particles/#pibblparticlechoice)

[PibblParticleParameterReference](/reference/types/particles/#pibblparticleparameterreference)

[PibblParticleInitial2D](/reference/types/particles/#pibblparticleinitial2d)

[View source — packages/core/src/features/particles/lib/types.ts:210](/source/packages/core/src/features/particles/lib/types-ts/#L210)

<span id="api-PibblParticleShape2D"></span>

### PibblParticleShape2D

The point, line, rectangle, circle, or ring used to sample particle birth positions.

<details>
<summary>Full type declaration</summary>

```ts
type PibblParticleShape2D = | Readonly<{
      /** The literal "point" identifying this variant. See {@link PibblParticleShape2D}. */
      type: "point";
      /**
       * Position of the geometry, source, or selected resize handle. See
       * {@link PibblParticleShape2D}.
       */
      position?: readonly [number, number];
    }>
  | Readonly<{
      /** The literal "line" identifying this variant. See {@link PibblParticleShape2D}. */
      type: "line";
      /** Starting endpoint or value. See {@link PibblParticleShape2D}. */
      from: readonly [number, number];
      /** Destination endpoint or value. See {@link PibblParticleShape2D}. */
      to: readonly [number, number];
    }>
  | Readonly<{
      /** The literal "rectangle" identifying this variant. See {@link PibblParticleShape2D}. */
      type: "rectangle";
      /**
       * Horizontal extent in the units of the containing geometry or surface. See
       * {@link PibblParticleShape2D}.
       */
      width: number;
      /**
       * Vertical extent in the units of the containing geometry or surface. See
       * {@link PibblParticleShape2D}.
       */
      height: number;
      /** Selects `"interior"`, `"edge"` for sample. See {@link PibblParticleShape2D}. */
      sample: "interior" | "edge";
    }>
  | Readonly<{
      /** The literal "circle" identifying this variant. See {@link PibblParticleShape2D}. */
      type: "circle";
      /** Radius in the coordinate system of this geometry or effect. See {@link PibblParticleShape2D}. */
      radius: number;
      /** Selects `"interior"`, `"circumference"` for sample. See {@link PibblParticleShape2D}. */
      sample: "interior" | "circumference";
    }>
  | Readonly<{
      /** The literal "ring" identifying this variant. See {@link PibblParticleShape2D}. */
      type: "ring";
      /** Radius of the inner boundary. See {@link PibblParticleShape2D}. */
      innerRadius: number;
      /** Radius of the outer boundary. See {@link PibblParticleShape2D}. */
      outerRadius: number;
    }>
```

</details>

Related API: [PibblParticleShape2D](/reference/types/particles/#pibblparticleshape2d), [extent](/reference/functions/utc-domains/).

#### See also

[PibblParticleEmitter2D](/reference/types/particles/#pibblparticleemitter2d)

[View source — packages/core/src/features/particles/lib/types.ts:356](/source/packages/core/src/features/particles/lib/types-ts/#L356)

#### Properties and methods

<span id="api-PibblParticleShape2D-type"></span>
<details>
<summary>type</summary>


```ts
type: "circle" | "line" | "point" | "rectangle" | "ring"
```

The literal "point" identifying this variant. See PibblParticleShape2D.
The literal "line" identifying this variant. See PibblParticleShape2D.
The literal "rectangle" identifying this variant. See PibblParticleShape2D.
The literal "circle" identifying this variant. See PibblParticleShape2D.
The literal "ring" identifying this variant. See PibblParticleShape2D.

[View source — packages/core/src/features/particles/lib/types.ts:359](/source/packages/core/src/features/particles/lib/types-ts/#L359)

</details>

<span id="api-PibblParticleStartEvent"></span>

### PibblParticleStartEvent

Notifies that a particle system has started a run.

```ts
interface PibblParticleStartEvent
```

Related API: [PibblParticleStartEvent](/reference/types/particles/#pibblparticlestartevent).

#### See also

[PibblParticleSystemEvent](/reference/types/particles/#pibblparticlesystemevent)

[View source — packages/core/src/features/particles/lib/types.ts:706](/source/packages/core/src/features/particles/lib/types-ts/#L706)

#### Properties and methods

<span id="api-PibblParticleStartEvent-type"></span>
<details>
<summary>type</summary>


```ts
readonly type: "start"
```

The literal "start" identifying this variant. See PibblParticleStartEvent.

[View source — packages/core/src/features/particles/lib/types.ts:708](/source/packages/core/src/features/particles/lib/types-ts/#L708)

</details>

<span id="api-PibblParticleSystem"></span>

### PibblParticleSystem

Mount-owned playback and burst controls with reactive status and execution-path information.

```ts
interface PibblParticleSystem<EmitterName extends string = string, Parameters extends PibblParticleParameterValues = PibblParticleParameterValues>
```

Related API: [PibblParticleSystem](/reference/types/particles/#pibblparticlesystem), [PibblParticleParameterValues](/reference/types/particles/#pibblparticleparametervalues).

#### See also

[PibblParticleParameterValues](/reference/types/particles/#pibblparticleparametervalues)

[Signal](/reference/types/canvas-runtime/#signal)

[PibblParticleSystemStatus](/reference/types/particles/#pibblparticlesystemstatus)

[PibblParticleExecution](/reference/types/particles/#pibblparticleexecution)

[PibblParticleBurstOverrides](/reference/types/particles/#pibblparticleburstoverrides)

[Particles2DProps](/reference/types/particles/#particles2dprops)

[View source — packages/core/src/features/particles/lib/types.ts:949](/source/packages/core/src/features/particles/lib/types-ts/#L949)

#### Properties and methods

<span id="api-PibblParticleSystem-status"></span>
<details>
<summary>status</summary>


```ts
readonly status: Signal<PibblParticleSystemStatus>
```

Related API: [Signal](/reference/types/canvas-runtime/#signal), [PibblParticleSystemStatus](/reference/types/particles/#pibblparticlesystemstatus).

Reactive lifecycle state of this mounted particle system. See Signal,
PibblParticleSystemStatus.

[View source — packages/core/src/features/particles/lib/types.ts:961](/source/packages/core/src/features/particles/lib/types-ts/#L961)

</details>

<span id="api-PibblParticleSystem-execution"></span>
<details>
<summary>execution</summary>


```ts
readonly execution: Signal<PibblParticleExecution>
```

Related API: [Signal](/reference/types/canvas-runtime/#signal), [PibblParticleExecution](/reference/types/particles/#pibblparticleexecution).

Reactive execution path selected for the current renderer binding. See Signal,
PibblParticleExecution.

[View source — packages/core/src/features/particles/lib/types.ts:966](/source/packages/core/src/features/particles/lib/types-ts/#L966)

</details>

<span id="api-PibblParticleSystem-play"></span>
<details>
<summary>play</summary>


```ts
play: () => void
```

Queues a new particle-system run. See PibblParticleSystem.

[View source — packages/core/src/features/particles/lib/types.ts:968](/source/packages/core/src/features/particles/lib/types-ts/#L968)

</details>

<span id="api-PibblParticleSystem-pause"></span>
<details>
<summary>pause</summary>


```ts
pause: () => void
```

Queues suspension of particle-system advancement. See PibblParticleSystem.

[View source — packages/core/src/features/particles/lib/types.ts:970](/source/packages/core/src/features/particles/lib/types-ts/#L970)

</details>

<span id="api-PibblParticleSystem-resume"></span>
<details>
<summary>resume</summary>


```ts
resume: () => void
```

Queues resumption of a paused particle-system run. See PibblParticleSystem.

[View source — packages/core/src/features/particles/lib/types.ts:972](/source/packages/core/src/features/particles/lib/types-ts/#L972)

</details>

<span id="api-PibblParticleSystem-restart"></span>
<details>
<summary>restart</summary>


```ts
restart: (options?: Readonly<{ seed?: number; }>) => void
```

Queues a fresh run, optionally replacing its deterministic seed. See PibblParticleSystem
.

##### Parameters

- **`options`** — Optional seed override for the restarted simulation.

[View source — packages/core/src/features/particles/lib/types.ts:978](/source/packages/core/src/features/particles/lib/types-ts/#L978)

</details>

<span id="api-PibblParticleSystem-emit"></span>
<details>
<summary>emit</summary>


```ts
emit: (emitter: EmitterName, options?: PibblParticleBurstOverrides) => void
```

Related API: [PibblParticleBurstOverrides](/reference/types/particles/#pibblparticleburstoverrides).

Queues a manual burst for the named emitter with optional birth overrides. See
PibblParticleSystem.

##### Parameters

- **`emitter`** — Name of the effect emitter to burst.

- **`options`** — Optional per-burst emission overrides. See [PibblParticleBurstOverrides](/reference/types/particles/#pibblparticleburstoverrides).

[View source — packages/core/src/features/particles/lib/types.ts:993](/source/packages/core/src/features/particles/lib/types-ts/#L993)

</details>

<span id="api-PibblParticleSystem-stop"></span>
<details>
<summary>stop</summary>


```ts
stop: (options?: Readonly<{ mode?: "drain" | "clear"; }>) => void
```

Queues stopping; drain retains live particles until they finish, while clear removes them. See
PibblParticleSystem.

##### Parameters

- **`options`** — Whether to drain existing particles or clear them immediately.

[View source — packages/core/src/features/particles/lib/types.ts:999](/source/packages/core/src/features/particles/lib/types-ts/#L999)

</details>

<span id="api-PibblParticleSystemEvent"></span>

### PibblParticleSystemEvent

The lifecycle and burst-admission notifications emitted by a particle system.

```ts
type PibblParticleSystemEvent = | PibblParticleStartEvent
  | PibblParticleBurstAcceptedEvent
  | PibblParticleBurstRejectedEvent
  | PibblParticleDrainStartEvent
  | PibblParticleFinishEvent
```

Related API: [PibblParticleSystemEvent](/reference/types/particles/#pibblparticlesystemevent), [PibblParticleStartEvent](/reference/types/particles/#pibblparticlestartevent), [PibblParticleBurstAcceptedEvent](/reference/types/particles/#pibblparticleburstacceptedevent), [PibblParticleBurstRejectedEvent](/reference/types/particles/#pibblparticleburstrejectedevent), [PibblParticleDrainStartEvent](/reference/types/particles/#pibblparticledrainstartevent), [PibblParticleFinishEvent](/reference/types/particles/#pibblparticlefinishevent).

#### See also

[PibblParticleStartEvent](/reference/types/particles/#pibblparticlestartevent)

[PibblParticleBurstAcceptedEvent](/reference/types/particles/#pibblparticleburstacceptedevent)

[PibblParticleBurstRejectedEvent](/reference/types/particles/#pibblparticleburstrejectedevent)

[PibblParticleDrainStartEvent](/reference/types/particles/#pibblparticledrainstartevent)

[PibblParticleFinishEvent](/reference/types/particles/#pibblparticlefinishevent)

[PibblParticleCommonProps](/reference/types/particles/#pibblparticlecommonprops)

[View source — packages/core/src/features/particles/lib/types.ts:790](/source/packages/core/src/features/particles/lib/types-ts/#L790)

#### Properties and methods

<span id="api-PibblParticleSystemEvent-type"></span>
<details>
<summary>type</summary>


```ts
readonly type: "burst-accepted" | "burst-rejected" | "drain-start" | "finish" | "start"
```

The literal "burst-accepted" identifying this variant. See
PibblParticleBurstAcceptedEvent.
The literal "burst-rejected" identifying this variant. See
PibblParticleBurstRejectedEvent.
The literal "drain-start" identifying this variant. See PibblParticleDrainStartEvent.
The literal "finish" identifying this variant. See PibblParticleFinishEvent.
The literal "start" identifying this variant. See PibblParticleStartEvent.

[View source — packages/core/src/features/particles/lib/types.ts:721](/source/packages/core/src/features/particles/lib/types-ts/#L721)

</details>

<span id="api-PibblParticleSystemOptions"></span>

### PibblParticleSystemOptions

Autoplay, deterministic seed, flow binding, and lifecycle callbacks for a mounted system.

```ts
interface PibblParticleSystemOptions
```

Related API: [PibblParticleSystemOptions](/reference/types/particles/#pibblparticlesystemoptions).

#### See also

[PibblFlowField2D](/reference/types/particles/#pibblflowfield2d)

[PibblParticleSystemEvent](/reference/types/particles/#pibblparticlesystemevent)

[PibblParticleDiagnostic](/reference/types/particles/#pibblparticlediagnostic)

[useParticleSystem](/reference/hooks/use-particle-system/)

[View source — packages/core/src/features/particles/lib/types.ts:881](/source/packages/core/src/features/particles/lib/types-ts/#L881)

#### Properties and methods

<span id="api-PibblParticleSystemOptions-flow"></span>
<details>
<summary>flow (optional)</summary>


```ts
readonly flow?: PibblFlowField2D | undefined
```

Related API: [PibblFlowField2D](/reference/types/particles/#pibblflowfield2d).

Mount-owned field binding; advects emitter positions instead of analytic translation.

[View source — packages/core/src/features/particles/lib/types.ts:883](/source/packages/core/src/features/particles/lib/types-ts/#L883)

</details>

<span id="api-PibblParticleSystemOptions-autoplay"></span>
<details>
<summary>autoplay (optional)</summary>


```ts
readonly autoplay?: boolean | undefined
```

Whether playback is requested automatically when the owner mounts. See
PibblParticleSystemOptions.

[View source — packages/core/src/features/particles/lib/types.ts:888](/source/packages/core/src/features/particles/lib/types-ts/#L888)

</details>

<span id="api-PibblParticleSystemOptions-seed"></span>
<details>
<summary>seed (optional)</summary>


```ts
readonly seed?: number | undefined
```

Seed used for deterministic sampling or simulation initialization. See
PibblParticleSystemOptions.

[View source — packages/core/src/features/particles/lib/types.ts:893](/source/packages/core/src/features/particles/lib/types-ts/#L893)

</details>

<span id="api-PibblParticleSystemOptions-debugName"></span>
<details>
<summary>debugName (optional)</summary>


```ts
readonly debugName?: string | undefined
```

Optional label used in diagnostics. See PibblParticleSystemOptions.

[View source — packages/core/src/features/particles/lib/types.ts:895](/source/packages/core/src/features/particles/lib/types-ts/#L895)

</details>

<span id="api-PibblParticleSystemOptions-onEvent"></span>
<details>
<summary>onEvent (optional)</summary>


```ts
readonly onEvent?: ((event: PibblParticleSystemEvent) => void) | undefined
```

Related API: [PibblParticleSystemEvent](/reference/types/particles/#pibblparticlesystemevent).

Receives lifecycle and milestone notifications. See PibblParticleSystemEvent.

##### Parameters

- **`event`** — Particle playback or emission event. See [PibblParticleSystemEvent](/reference/types/particles/#pibblparticlesystemevent).

[View source — packages/core/src/features/particles/lib/types.ts:900](/source/packages/core/src/features/particles/lib/types-ts/#L900)

</details>

<span id="api-PibblParticleSystemOptions-onError"></span>
<details>
<summary>onError (optional)</summary>


```ts
readonly onError?: ((error: unknown) => void) | undefined
```

Receives failures reported by the owning runtime resource. See
PibblParticleSystemOptions.

##### Parameters

- **`error`** — Failure reported by the particle system.

[View source — packages/core/src/features/particles/lib/types.ts:906](/source/packages/core/src/features/particles/lib/types-ts/#L906)

</details>

<span id="api-PibblParticleSystemStatus"></span>

### PibblParticleSystemStatus

The lifecycle state of a mounted particle system, including draining and disposal.

```ts
type PibblParticleSystemStatus = | "idle"
  | "scheduled"
  | "running"
  | "paused"
  | "draining"
  | "finished"
  | "disposed"
```

Related API: [PibblParticleSystemStatus](/reference/types/particles/#pibblparticlesystemstatus).

#### See also

[PibblParticleSystem](/reference/types/particles/#pibblparticlesystem)

[View source — packages/core/src/features/particles/lib/types.ts:682](/source/packages/core/src/features/particles/lib/types-ts/#L682)

<span id="api-PibblParticleValueFor"></span>

### PibblParticleValueFor

Derives a parameter's value type from its declared particle parameter kind.

```ts
type PibblParticleValueFor<Definition extends PibblParticleParameterDefinition> = Definition["type"] extends "number"
  ? number
  : Definition["type"] extends "vector2"
    ? readonly [number, number]
    : Definition["type"] extends "color"
      ? string
      : never
```

Related API: [PibblParticleValueFor](/reference/types/particles/#pibblparticlevaluefor), [PibblParticleParameterDefinition](/reference/types/particles/#pibblparticleparameterdefinition).

#### See also

[PibblParticleParameterDefinition](/reference/types/particles/#pibblparticleparameterdefinition)

[PibblParticleValuesOf](/reference/types/particles/#pibblparticlevaluesof)

[View source — packages/core/src/features/particles/lib/types.ts:86](/source/packages/core/src/features/particles/lib/types-ts/#L86)

<span id="api-PibblParticleValuesOf"></span>

### PibblParticleValuesOf

Derives the named value record from an effect's parameter definitions.

```ts
type PibblParticleValuesOf<Definitions extends PibblParticleParameterDefinitions | undefined> = Definitions extends PibblParticleParameterDefinitions
  ? Readonly<{
      [Name in keyof Definitions]: PibblParticleValueFor<Definitions[Name]>;
    }>
  : Readonly<Record<never, never>>
```

Related API: [PibblParticleValuesOf](/reference/types/particles/#pibblparticlevaluesof), [PibblParticleParameterDefinitions](/reference/types/particles/#pibblparticleparameterdefinitions), [PibblParticleValueFor](/reference/types/particles/#pibblparticlevaluefor).

#### See also

[PibblParticleParameterDefinitions](/reference/types/particles/#pibblparticleparameterdefinitions)

[PibblParticleValueFor](/reference/types/particles/#pibblparticlevaluefor)

[defineParticleEffect2D](/reference/functions/define-particle-effect-2d/)

[View source — packages/core/src/features/particles/lib/types.ts:103](/source/packages/core/src/features/particles/lib/types-ts/#L103)

<span id="api-PibblParticleVector2"></span>

### PibblParticleVector2

Two independently sampled scalar values or a reference to a vector parameter.

```ts
type PibblParticleVector2 = | readonly [PibblParticleScalar, PibblParticleScalar]
  | PibblParticleParameterReference<string>
```

Related API: [PibblParticleVector2](/reference/types/particles/#pibblparticlevector2), [PibblParticleScalar](/reference/types/particles/#pibblparticlescalar), [PibblParticleParameterReference](/reference/types/particles/#pibblparticleparameterreference).

#### See also

[PibblParticleScalar](/reference/types/particles/#pibblparticlescalar)

[PibblParticleParameterReference](/reference/types/particles/#pibblparticleparameterreference)

[PibblParticleInitial2D](/reference/types/particles/#pibblparticleinitial2d)

[PibblParticleMotion2D](/reference/types/particles/#pibblparticlemotion2d)

[View source — packages/core/src/features/particles/lib/types.ts:225](/source/packages/core/src/features/particles/lib/types-ts/#L225)

<span id="api-Particles2DProps"></span>

### Particles2DProps

Authored inputs for Particles2D, including the declared data and presentation options.

<details>
<summary>Full type declaration</summary>

```ts
type Particles2DProps<EmitterName extends string = string, Parameters extends PibblParticleParameterValues = PibblParticleParameterValues> = PibblParticleCommonInputProps<Parameters> & {
  /**
   * Declared presentation and layout properties. See {@link PibblParticleStyleInput},
   * {@link Particles2DStyle}.
   */
  readonly style?: PibblParticleStyleInput<Particles2DStyle>;
} & (
    | {
        /**
         * Particle effect associated with this input or diagnostic. See {@link SignalValue},
         * {@link PibblParticleEffect2D}.
         */
        readonly effect: SignalValue<PibblParticleEffect2D<EmitterName, Parameters>>;
        /**
         * Not accepted in this variant; use the alternative fields instead. See
         * {@link Particles2DProps}.
         */
        readonly system?: never;
        /** Whether playback is requested automatically when the owner mounts. See {@link SignalValue}. */
        readonly autoplay?: SignalValue<boolean>;
        /** Seed used for deterministic sampling or simulation initialization. See {@link SignalValue}. */
        readonly seed?: SignalValue<number>;
      }
    | {
        /**
         * Not accepted in this variant; use the alternative fields instead. See
         * {@link Particles2DProps}.
         */
        readonly effect?: never;
        /**
         * Mounted particle controller supplying this component's simulation. See
         * {@link PibblParticleSystem}.
         */
        readonly system: PibblParticleSystem<EmitterName, Parameters>;
        /**
         * Not accepted in this variant; use the alternative fields instead. See
         * {@link Particles2DProps}.
         */
        readonly autoplay?: never;
        /**
         * Not accepted in this variant; use the alternative fields instead. See
         * {@link Particles2DProps}.
         */
        readonly seed?: never;
      }
  )
```

</details>

Related API: [Particles2DProps](/reference/types/particles/#particles2dprops), [PibblParticleParameterValues](/reference/types/particles/#pibblparticleparametervalues), [Particles2DStyle](/reference/types/particles/#particles2dstyle), [SignalValue](/reference/types/signal-inputs/#signalvalue), [PibblParticleEffect2D](/reference/types/particles/#pibblparticleeffect2d), [PibblParticleSystem](/reference/types/particles/#pibblparticlesystem).

#### See also

[PibblParticleParameterValues](/reference/types/particles/#pibblparticleparametervalues)

[Particles2DStyle](/reference/types/particles/#particles2dstyle)

[SignalValue](/reference/types/signal-inputs/#signalvalue)

[PibblParticleEffect2D](/reference/types/particles/#pibblparticleeffect2d)

[PibblParticleSystem](/reference/types/particles/#pibblparticlesystem)

[Particles2D](/reference/components/particles-2d/)

[View source — packages/core/src/features/particles/lib/types.ts:1081](/source/packages/core/src/features/particles/lib/types-ts/#L1081)

#### Properties and methods

<span id="api-Particles2DProps-pointerEvents"></span>
<details>
<summary>pointerEvents (optional)</summary>


```ts
readonly pointerEvents?: SignalValue<PibblPointerEvents | undefined>
```

Related API: [SignalValue](/reference/types/signal-inputs/#signalvalue), [PibblPointerEvents](/reference/types/events/#pibblpointerevents).

Whether this content participates in pointer targeting. See PibblPointerEvents.

[View source — packages/core/src/lib/events/types.ts:126](/source/packages/core/src/lib/events/types-ts/#L126)

</details>

<span id="api-Particles2DProps-parameters"></span>
<details>
<summary>parameters (optional)</summary>


```ts
readonly parameters?: SignalValue<Readonly<Partial<Parameters>> | undefined>
```

Related API: [SignalValue](/reference/types/signal-inputs/#signalvalue).

Named parameter definitions or values for this effect instance. See
PibblParticleCommonProps.

[View source — packages/core/src/features/particles/lib/types.ts:1022](/source/packages/core/src/features/particles/lib/types-ts/#L1022)

</details>

<span id="api-Particles2DProps-keyboardFocusable"></span>
<details>
<summary>keyboardFocusable (optional)</summary>


```ts
readonly keyboardFocusable?: SignalValue<boolean | undefined>
```

Related API: [SignalValue](/reference/types/signal-inputs/#signalvalue).

Whether the target may receive keyboard focus. See PibblParticleCommonProps.

[View source — packages/core/src/features/particles/lib/types.ts:1024](/source/packages/core/src/features/particles/lib/types-ts/#L1024)

</details>

<span id="api-Particles2DProps-keyboardNavigationBounds"></span>
<details>
<summary>keyboardNavigationBounds (optional)</summary>


```ts
readonly keyboardNavigationBounds?: SignalValue<Readonly<LayoutBox> | undefined>
```

Related API: [SignalValue](/reference/types/signal-inputs/#signalvalue), [LayoutBox](/reference/types/layout/#layoutbox).

Logical rectangle used for directional keyboard navigation. See LayoutBox.

[View source — packages/core/src/features/particles/lib/types.ts:1026](/source/packages/core/src/features/particles/lib/types-ts/#L1026)

</details>

<span id="api-Particles2DProps-onEvent"></span>
<details>
<summary>onEvent (optional)</summary>


```ts
readonly onEvent?: SignalValue<((event: PibblParticleSystemEvent) => void) | undefined>
```

Related API: [SignalValue](/reference/types/signal-inputs/#signalvalue), [PibblParticleSystemEvent](/reference/types/particles/#pibblparticlesystemevent).

Receives lifecycle and milestone notifications. See PibblParticleSystemEvent.

##### Parameters

- **`event`** — Particle playback or emission event. See [PibblParticleSystemEvent](/reference/types/particles/#pibblparticlesystemevent).

[View source — packages/core/src/features/particles/lib/types.ts:1031](/source/packages/core/src/features/particles/lib/types-ts/#L1031)

</details>

<span id="api-Particles2DProps-onError"></span>
<details>
<summary>onError (optional)</summary>


```ts
readonly onError?: SignalValue<((error: unknown) => void) | undefined>
```

Related API: [SignalValue](/reference/types/signal-inputs/#signalvalue).

Receives failures reported by the owning runtime resource. See PibblParticleCommonProps
.

##### Parameters

- **`error`** — Failure reported by the particle system.

[View source — packages/core/src/features/particles/lib/types.ts:1037](/source/packages/core/src/features/particles/lib/types-ts/#L1037)

</details>

<span id="api-Particles2DProps-style"></span>
<details>
<summary>style (optional)</summary>


```ts
readonly style?: PibblParticleStyleInput<Particles2DStyle> | undefined
```

Related API: [Particles2DStyle](/reference/types/particles/#particles2dstyle).

Declared presentation and layout properties. See PibblParticleStyleInput,
Particles2DStyle.

[View source — packages/core/src/features/particles/lib/types.ts:1089](/source/packages/core/src/features/particles/lib/types-ts/#L1089)

</details>

<span id="api-Particles2DProps-effect"></span>
<details>
<summary>effect (optional)</summary>


```ts
readonly effect?: SignalValue<PibblParticleEffect2D<EmitterName, Parameters>> | undefined
```

Related API: [SignalValue](/reference/types/signal-inputs/#signalvalue), [PibblParticleEffect2D](/reference/types/particles/#pibblparticleeffect2d).

Particle effect associated with this input or diagnostic. See SignalValue,
PibblParticleEffect2D.
Not accepted in this variant; use the alternative fields instead. See
Particles2DProps.

[View source — packages/core/src/features/particles/lib/types.ts:1096](/source/packages/core/src/features/particles/lib/types-ts/#L1096)

</details>

<span id="api-Particles2DProps-system"></span>
<details>
<summary>system (optional)</summary>


```ts
readonly system?: PibblParticleSystem<EmitterName, Parameters> | undefined
```

Related API: [PibblParticleSystem](/reference/types/particles/#pibblparticlesystem).

Not accepted in this variant; use the alternative fields instead. See
Particles2DProps.
Mounted particle controller supplying this component's simulation. See
PibblParticleSystem.

[View source — packages/core/src/features/particles/lib/types.ts:1101](/source/packages/core/src/features/particles/lib/types-ts/#L1101)

</details>

<span id="api-Particles2DProps-autoplay"></span>
<details>
<summary>autoplay (optional)</summary>


```ts
readonly autoplay?: SignalValue<boolean> | undefined
```

Related API: [SignalValue](/reference/types/signal-inputs/#signalvalue).

Whether playback is requested automatically when the owner mounts. See SignalValue.
Not accepted in this variant; use the alternative fields instead. See
Particles2DProps.

[View source — packages/core/src/features/particles/lib/types.ts:1103](/source/packages/core/src/features/particles/lib/types-ts/#L1103)

</details>

<span id="api-Particles2DProps-seed"></span>
<details>
<summary>seed (optional)</summary>


```ts
readonly seed?: SignalValue<number> | undefined
```

Related API: [SignalValue](/reference/types/signal-inputs/#signalvalue).

Seed used for deterministic sampling or simulation initialization. See SignalValue.
Not accepted in this variant; use the alternative fields instead. See
Particles2DProps.

[View source — packages/core/src/features/particles/lib/types.ts:1105](/source/packages/core/src/features/particles/lib/types-ts/#L1105)

</details>

<span id="api-Particles2DStyle"></span>

### Particles2DStyle

Supported geometry and presentation properties for Particles2D.

```ts
interface Particles2DStyle extends SystemStyle, BoxStyle, LayoutItemStyle, CursorStyle
```

Related API: [Particles2DStyle](/reference/types/particles/#particles2dstyle), [SystemStyle](/reference/types/styles/#systemstyle), [BoxStyle](/reference/types/layout/#boxstyle), [LayoutItemStyle](/reference/types/layout/#layoutitemstyle), [CursorStyle](/reference/types/styles/#cursorstyle).

#### See also

[SystemStyle](/reference/types/styles/#systemstyle)

[BoxStyle](/reference/types/layout/#boxstyle)

[LayoutItemStyle](/reference/types/layout/#layoutitemstyle)

[CursorStyle](/reference/types/styles/#cursorstyle)

[Particles2DProps](/reference/types/particles/#particles2dprops)

[View source — packages/core/src/features/particles/lib/types.ts:1065](/source/packages/core/src/features/particles/lib/types-ts/#L1065)

#### Properties and methods

<span id="api-Particles2DStyle-opacity"></span>
<details>
<summary>opacity (optional)</summary>


```ts
readonly opacity?: number | undefined
```

Related API: [opacity](/reference/types/filters/#opacity).

Opacity of the painted result. See Particles2DStyle.

[View source — packages/core/src/features/particles/lib/types.ts:1068](/source/packages/core/src/features/particles/lib/types-ts/#L1068)

</details>

<span id="api-Particles2DStyle-left"></span>
<details>
<summary>left (optional)</summary>


```ts
left?: number | `${number}%` | undefined
```

Left edge coordinate or inset. See Length.

[View source — packages/core/src/lib/style/positioning.ts:127](/source/packages/core/src/lib/style/positioning-ts/#L127)

</details>

<span id="api-Particles2DStyle-top"></span>
<details>
<summary>top (optional)</summary>


```ts
top?: number | `${number}%` | undefined
```

Top edge value or top envelope guide. See Length.

[View source — packages/core/src/lib/style/positioning.ts:129](/source/packages/core/src/lib/style/positioning-ts/#L129)

</details>

<span id="api-Particles2DStyle-width"></span>
<details>
<summary>width (optional)</summary>


```ts
width?: Length | undefined
```

Related API: [Length](/reference/types/layout/#length).

Horizontal extent in the units of the containing geometry or surface. See Length.

[View source — packages/core/src/lib/style/types.ts:81](/source/packages/core/src/lib/style/types-ts/#L81)

</details>

<span id="api-Particles2DStyle-height"></span>
<details>
<summary>height (optional)</summary>


```ts
height?: Length | undefined
```

Related API: [Length](/reference/types/layout/#length).

Vertical extent in the units of the containing geometry or surface. See Length.

[View source — packages/core/src/lib/style/types.ts:83](/source/packages/core/src/lib/style/types-ts/#L83)

</details>

<span id="api-Particles2DStyle-minWidth"></span>
<details>
<summary>minWidth (optional)</summary>


```ts
minWidth?: number | `${number}%` | undefined
```

Minimum permitted width. See Length.

[View source — packages/core/src/lib/style/types.ts:85](/source/packages/core/src/lib/style/types-ts/#L85)

</details>

<span id="api-Particles2DStyle-maxWidth"></span>
<details>
<summary>maxWidth (optional)</summary>


```ts
maxWidth?: number | `${number}%` | undefined
```

Maximum permitted width. See Length.

[View source — packages/core/src/lib/style/types.ts:87](/source/packages/core/src/lib/style/types-ts/#L87)

</details>

<span id="api-Particles2DStyle-minHeight"></span>
<details>
<summary>minHeight (optional)</summary>


```ts
minHeight?: number | `${number}%` | undefined
```

Minimum permitted height. See Length.

[View source — packages/core/src/lib/style/types.ts:89](/source/packages/core/src/lib/style/types-ts/#L89)

</details>

<span id="api-Particles2DStyle-maxHeight"></span>
<details>
<summary>maxHeight (optional)</summary>


```ts
maxHeight?: number | `${number}%` | undefined
```

Maximum permitted height. See Length.

[View source — packages/core/src/lib/style/types.ts:91](/source/packages/core/src/lib/style/types-ts/#L91)

</details>

<span id="api-Particles2DStyle-padding"></span>
<details>
<summary>padding (optional)</summary>


```ts
padding?: EdgeValues | undefined
```

Related API: [EdgeValues](/reference/types/layout/#edgevalues).

Insets between the border box and content box. See EdgeValues.

[View source — packages/core/src/lib/style/types.ts:93](/source/packages/core/src/lib/style/types-ts/#L93)

</details>

<span id="api-Particles2DStyle-overflow"></span>
<details>
<summary>overflow (optional)</summary>


```ts
overflow?: "clip" | "visible" | undefined
```

Selects `"visible"`, `"clip"` for overflow. See BoxStyle.

[View source — packages/core/src/lib/style/types.ts:95](/source/packages/core/src/lib/style/types-ts/#L95)

</details>

<span id="api-Particles2DStyle-alignSelf"></span>
<details>
<summary>alignSelf (optional)</summary>


```ts
alignSelf?: "auto" | "center" | "end" | "flex-end" | "flex-start" | "start" | "stretch" | undefined
```

This child's cross-axis or block-axis alignment override. See LayoutItemStyle.

[View source — packages/core/src/lib/style/types.ts:121](/source/packages/core/src/lib/style/types-ts/#L121)

</details>

<span id="api-Particles2DStyle-justifySelf"></span>
<details>
<summary>justifySelf (optional)</summary>


```ts
justifySelf?: "auto" | "center" | "end" | "start" | "stretch" | undefined
```

This child's inline-axis alignment override. See LayoutItemStyle.

[View source — packages/core/src/lib/style/types.ts:123](/source/packages/core/src/lib/style/types-ts/#L123)

</details>

<span id="api-Particles2DStyle-flexBasis"></span>
<details>
<summary>flexBasis (optional)</summary>


```ts
flexBasis?: Length | undefined
```

Related API: [Length](/reference/types/layout/#length).

Initial main-axis size before flex growth or shrinkage. See Length.

[View source — packages/core/src/lib/style/types.ts:125](/source/packages/core/src/lib/style/types-ts/#L125)

</details>

<span id="api-Particles2DStyle-flexGrow"></span>
<details>
<summary>flexGrow (optional)</summary>


```ts
flexGrow?: number | undefined
```

Relative share of positive free space assigned to this child. See LayoutItemStyle.

[View source — packages/core/src/lib/style/types.ts:127](/source/packages/core/src/lib/style/types-ts/#L127)

</details>

<span id="api-Particles2DStyle-flexShrink"></span>
<details>
<summary>flexShrink (optional)</summary>


```ts
flexShrink?: number | undefined
```

Relative factor used when reducing main-axis size. See LayoutItemStyle.

[View source — packages/core/src/lib/style/types.ts:129](/source/packages/core/src/lib/style/types-ts/#L129)

</details>

<span id="api-Particles2DStyle-gridColumnStart"></span>
<details>
<summary>gridColumnStart (optional)</summary>


```ts
gridColumnStart?: number | undefined
```

Explicit starting grid column. See LayoutItemStyle.

[View source — packages/core/src/lib/style/types.ts:131](/source/packages/core/src/lib/style/types-ts/#L131)

</details>

<span id="api-Particles2DStyle-gridColumnSpan"></span>
<details>
<summary>gridColumnSpan (optional)</summary>


```ts
gridColumnSpan?: number | undefined
```

Number of columns occupied by this child. See LayoutItemStyle.

[View source — packages/core/src/lib/style/types.ts:133](/source/packages/core/src/lib/style/types-ts/#L133)

</details>

<span id="api-Particles2DStyle-gridRowStart"></span>
<details>
<summary>gridRowStart (optional)</summary>


```ts
gridRowStart?: number | undefined
```

Explicit starting grid row. See LayoutItemStyle.

[View source — packages/core/src/lib/style/types.ts:135](/source/packages/core/src/lib/style/types-ts/#L135)

</details>

<span id="api-Particles2DStyle-gridRowSpan"></span>
<details>
<summary>gridRowSpan (optional)</summary>


```ts
gridRowSpan?: number | undefined
```

Number of rows occupied by this child. See LayoutItemStyle.

[View source — packages/core/src/lib/style/types.ts:137](/source/packages/core/src/lib/style/types-ts/#L137)

</details>

<span id="api-Particles2DStyle-cursor"></span>
<details>
<summary>cursor (optional)</summary>


```ts
cursor?: string | undefined
```

Cursor shown while this target owns pointer presentation. See CursorStyle.

[View source — packages/core/src/lib/style/types.ts:212](/source/packages/core/src/lib/style/types-ts/#L212)

</details>

<span id="api-Particles2DStyle-transition"></span>
<details>
<summary>transition (optional)</summary>


```ts
transition?: PibblTransitionBinding | undefined
```

Related API: [PibblTransitionBinding](/reference/hooks/use-visibility-transition/).

Visibility-transition binding applied to this primitive and its captured descendants. See SystemStyle.

[View source — packages/core/src/lib/types.ts:69](/source/packages/core/src/lib/types-ts/#L69)

</details>

<span id="api-Particles2DStyle-custom"></span>
<details>
<summary>custom (optional)</summary>


```ts
custom?: unknown
```

Application-defined style payload passed through the runtime. See SystemStyle.

[View source — packages/core/src/lib/types.ts:71](/source/packages/core/src/lib/types-ts/#L71)

</details>

<span id="api-Particles2DStyle-filter"></span>
<details>
<summary>filter (optional)</summary>


```ts
filter?: PibblFilter | readonly PibblFilter[] | undefined
```

Related API: [PibblFilter](/reference/types/filters/#pibblfilter).

Ordered pixel-only filters applied to the receiving primitive and its descendants. See
PibblFilter.

[View source — packages/core/src/lib/types.ts:76](/source/packages/core/src/lib/types-ts/#L76)

</details>

<span id="api-PibblFlowField2D"></span>

### PibblFlowField2D

A mount-owned flow field with revision tracking and batched velocity sampling.

```ts
interface PibblFlowField2D
```

Related API: [PibblFlowField2D](/reference/types/particles/#pibblflowfield2d).

#### See also

[Signal](/reference/types/canvas-runtime/#signal)

[useFlowField2D](/reference/hooks/use-flow-field/)

[useFlowSource2D](/reference/hooks/use-flow-field/)

[PibblParticleSystemOptions](/reference/types/particles/#pibblparticlesystemoptions)

[View source — packages/core/src/features/particles/lib/flow/hook.ts:93](/source/packages/core/src/features/particles/lib/flow/hook-ts/#L93)

#### Properties and methods

<span id="api-PibblFlowField2D-revision"></span>
<details>
<summary>revision</summary>


```ts
readonly revision: Signal<number>
```

Related API: [Signal](/reference/types/canvas-runtime/#signal).

Revision used to detect changes to the underlying state or geometry. See Signal.

[View source — packages/core/src/features/particles/lib/flow/hook.ts:96](/source/packages/core/src/features/particles/lib/flow/hook-ts/#L96)

</details>

<span id="api-PibblFlowField2D-sampleBatch"></span>
<details>
<summary>sampleBatch</summary>


```ts
sampleBatch: (positions: Float32Array, velocities: Float32Array, count: number) => void
```

Samples velocities for packed position pairs into caller-provided output storage. See
PibblFlowField2D.

##### Parameters

- **`positions`** — Packed input positions, with two floats per particle.

- **`velocities`** — Output buffer receiving sampled velocities, with two floats per particle.

- **`count`** — Number of position pairs to sample.

[View source — packages/core/src/features/particles/lib/flow/hook.ts:104](/source/packages/core/src/features/particles/lib/flow/hook-ts/#L104)

</details>

<span id="api-PibblFlowFieldOptions2D"></span>

### PibblFlowFieldOptions2D

Logical bounds, grid resolution, obstacle source, and buoyancy for a flow field.

```ts
interface PibblFlowFieldOptions2D
```

Related API: [PibblFlowFieldOptions2D](/reference/types/particles/#pibblflowfieldoptions2d).

#### See also

[PibblFlowObstacleSource2D](/reference/types/particles/#pibblflowobstaclesource2d)

[useFlowField2D](/reference/hooks/use-flow-field/)

[View source — packages/core/src/features/particles/lib/flow/hook.ts:61](/source/packages/core/src/features/particles/lib/flow/hook-ts/#L61)

#### Properties and methods

<span id="api-PibblFlowFieldOptions2D-bounds"></span>
<details>
<summary>bounds</summary>


```ts
readonly bounds: Readonly<{ width: number; height: number; }>
```

Logical region constraining the content or query. See PibblFlowFieldOptions2D.

[View source — packages/core/src/features/particles/lib/flow/hook.ts:63](/source/packages/core/src/features/particles/lib/flow/hook-ts/#L63)

</details>

<span id="api-PibblFlowFieldOptions2D-resolution"></span>
<details>
<summary>resolution</summary>


```ts
readonly resolution: readonly [columns: number, rows: number]
```

Dimensions of the simulation or raster grid. See PibblFlowFieldOptions2D.

[View source — packages/core/src/features/particles/lib/flow/hook.ts:76](/source/packages/core/src/features/particles/lib/flow/hook-ts/#L76)

</details>

<span id="api-PibblFlowFieldOptions2D-obstacles"></span>
<details>
<summary>obstacles (optional)</summary>


```ts
readonly obstacles?: PibblFlowObstacleSource2D | undefined
```

Related API: [PibblFlowObstacleSource2D](/reference/types/particles/#pibblflowobstaclesource2d).

Obstacle geometry used by the flow or water simulation. See PibblFlowObstacleSource2D.

[View source — packages/core/src/features/particles/lib/flow/hook.ts:80](/source/packages/core/src/features/particles/lib/flow/hook-ts/#L80)

</details>

<span id="api-PibblFlowFieldOptions2D-buoyancy"></span>
<details>
<summary>buoyancy (optional)</summary>


```ts
readonly buoyancy?: number | undefined
```

Strength of heat-driven upward motion in the flow field. See PibblFlowFieldOptions2D.

[View source — packages/core/src/features/particles/lib/flow/hook.ts:82](/source/packages/core/src/features/particles/lib/flow/hook-ts/#L82)

</details>

<span id="api-PibblFlowObstacleBatch2D"></span>

### PibblFlowObstacleBatch2D

Committed obstacle geometry and motion packed into borrowed numeric buffers.

```ts
interface PibblFlowObstacleBatch2D
```

Related API: [PibblFlowObstacleBatch2D](/reference/types/particles/#pibblflowobstaclebatch2d).

#### See also

[PibblFlowObstacleSource2D](/reference/types/particles/#pibblflowobstaclesource2d)

[View source — packages/core/src/features/particles/lib/flow/hook.ts:24](/source/packages/core/src/features/particles/lib/flow/hook-ts/#L24)

#### Properties and methods

<span id="api-PibblFlowObstacleBatch2D-revision"></span>
<details>
<summary>revision</summary>


```ts
readonly revision: number
```

Revision used to detect changes to the underlying state or geometry. See
PibblFlowObstacleBatch2D.

[View source — packages/core/src/features/particles/lib/flow/hook.ts:29](/source/packages/core/src/features/particles/lib/flow/hook-ts/#L29)

</details>

<span id="api-PibblFlowObstacleBatch2D-boxes"></span>
<details>
<summary>boxes</summary>


```ts
readonly boxes: Float64Array<ArrayBufferLike>
```

cx, cy, halfWidth, halfHeight, radians, vx, vy, omega, COM x/y.

[View source — packages/core/src/features/particles/lib/flow/hook.ts:31](/source/packages/core/src/features/particles/lib/flow/hook-ts/#L31)

</details>

<span id="api-PibblFlowObstacleBatch2D-ellipses"></span>
<details>
<summary>ellipses (optional)</summary>


```ts
readonly ellipses?: Float64Array<ArrayBufferLike> | undefined
```

Packed ellipse obstacle data consumed by the simulation. See PibblFlowObstacleBatch2D.

[View source — packages/core/src/features/particles/lib/flow/hook.ts:35](/source/packages/core/src/features/particles/lib/flow/hook-ts/#L35)

</details>

<span id="api-PibblFlowObstacleBatch2D-polygons"></span>
<details>
<summary>polygons (optional)</summary>


```ts
readonly polygons?: Float64Array<ArrayBufferLike> | undefined
```

Packed polygon obstacle data consumed by the simulation. See PibblFlowObstacleBatch2D.

[View source — packages/core/src/features/particles/lib/flow/hook.ts:39](/source/packages/core/src/features/particles/lib/flow/hook-ts/#L39)

</details>

<span id="api-PibblFlowObstacleSource2D"></span>

### PibblFlowObstacleSource2D

Supplies committed obstacle batches to a flow field without transferring buffer ownership.

```ts
interface PibblFlowObstacleSource2D
```

Related API: [PibblFlowObstacleSource2D](/reference/types/particles/#pibblflowobstaclesource2d).

#### See also

[PibblFlowObstacleBatch2D](/reference/types/particles/#pibblflowobstaclebatch2d)

[PibblFlowFieldOptions2D](/reference/types/particles/#pibblflowfieldoptions2d)

[View source — packages/core/src/features/particles/lib/flow/hook.ts:47](/source/packages/core/src/features/particles/lib/flow/hook-ts/#L47)

#### Properties and methods

<span id="api-PibblFlowObstacleSource2D-read"></span>
<details>
<summary>read</summary>


```ts
read: () => PibblFlowObstacleBatch2D
```

Related API: [PibblFlowObstacleBatch2D](/reference/types/particles/#pibblflowobstaclebatch2d).

Returns committed simulation state. Buffers are borrowed for this call only.

##### Returns

The current obstacle revision and packed obstacle geometry. See
[PibblFlowObstacleBatch2D](/reference/types/particles/#pibblflowobstaclebatch2d) .

[View source — packages/core/src/features/particles/lib/flow/hook.ts:53](/source/packages/core/src/features/particles/lib/flow/hook-ts/#L53)

</details>

<span id="api-PibblFlowSourceOptions2D"></span>

### PibblFlowSourceOptions2D

Reactive position, radius, acceleration, heat, and enablement of a flow source.

```ts
interface PibblFlowSourceOptions2D
```

Related API: [PibblFlowSourceOptions2D](/reference/types/particles/#pibblflowsourceoptions2d).

#### See also

[SignalValue](/reference/types/signal-inputs/#signalvalue)

[useFlowSource2D](/reference/hooks/use-flow-field/)

[View source — packages/core/src/features/particles/lib/flow/hook.ts:112](/source/packages/core/src/features/particles/lib/flow/hook-ts/#L112)

#### Properties and methods

<span id="api-PibblFlowSourceOptions2D-position"></span>
<details>
<summary>position</summary>


```ts
readonly position: SignalValue<readonly [number, number]>
```

Related API: [SignalValue](/reference/types/signal-inputs/#signalvalue).

Position of the geometry, source, or selected resize handle. See SignalValue.

[View source — packages/core/src/features/particles/lib/flow/hook.ts:114](/source/packages/core/src/features/particles/lib/flow/hook-ts/#L114)

</details>

<span id="api-PibblFlowSourceOptions2D-radius"></span>
<details>
<summary>radius</summary>


```ts
readonly radius: SignalValue<number>
```

Related API: [SignalValue](/reference/types/signal-inputs/#signalvalue).

Radius in the coordinate system of this geometry or effect. See SignalValue.

[View source — packages/core/src/features/particles/lib/flow/hook.ts:116](/source/packages/core/src/features/particles/lib/flow/hook-ts/#L116)

</details>

<span id="api-PibblFlowSourceOptions2D-acceleration"></span>
<details>
<summary>acceleration (optional)</summary>


```ts
readonly acceleration?: SignalValue<readonly [number, number]> | undefined
```

Related API: [SignalValue](/reference/types/signal-inputs/#signalvalue).

Acceleration injected by this flow source. See SignalValue.

[View source — packages/core/src/features/particles/lib/flow/hook.ts:118](/source/packages/core/src/features/particles/lib/flow/hook-ts/#L118)

</details>

<span id="api-PibblFlowSourceOptions2D-heat"></span>
<details>
<summary>heat (optional)</summary>


```ts
readonly heat?: SignalValue<number> | undefined
```

Related API: [SignalValue](/reference/types/signal-inputs/#signalvalue).

Heat injected by this flow source. See SignalValue.

[View source — packages/core/src/features/particles/lib/flow/hook.ts:120](/source/packages/core/src/features/particles/lib/flow/hook-ts/#L120)

</details>

<span id="api-PibblFlowSourceOptions2D-enabled"></span>
<details>
<summary>enabled (optional)</summary>


```ts
readonly enabled?: SignalValue<boolean> | undefined
```

Related API: [SignalValue](/reference/types/signal-inputs/#signalvalue).

Whether this operation or resource participates in updates. See SignalValue.

[View source — packages/core/src/features/particles/lib/flow/hook.ts:122](/source/packages/core/src/features/particles/lib/flow/hook-ts/#L122)

</details>

## Implementation guidance for agents

Read the [Canvas particles companion](/agents/topics/particles/) for ownership, adaptation, failure modes, and verification. [Agent start](/agents/) provides the version-selection workflow.

## Complete minimal examples

- [Mounted particle system](/minimal-examples/particles/system/): Mount a manual burst effect and trigger it with pointer input. [Plain source](/minimal/particles/system.tsx)
- [Flow-driven particles](/minimal-examples/particles/flow/): Advect mist through a mount-owned flow field and source. [Plain source](/minimal/particles/flow.tsx)
- [Particle effect configuration](/minimal-examples/particles/effect/): Compose a typed ember emitter from emission, motion, appearance, and bounds. [Plain source](/minimal/particles/effect.ts)
- [Particle lifecycle events](/minimal-examples/particles/events/): Handle the discriminated event and diagnostic records. [Plain source](/minimal/particles/events.ts)
- [Particle descriptors](/minimal-examples/particles/descriptors/): Define randomized spawn values and lifespan curves. [Plain source](/minimal/particles/descriptors.ts)
- [Effect parameters](/minimal-examples/particles/parameters/): Define typed spawn and render parameters and use them in an effect. [Plain source](/minimal/particles/parameters.ts)
## Documentation version

Documentation built with @pibbl/core 0.0.2, revision 272a94a. ALPHA — NOT FOR PRODUCTION USE.
