---
url: /api/effects/trails/functions/trails.md
---
# trails()

```ts
function trails(params?: {
  erosion?: number;
  fadeout?: number;
  tailColor?: [number, number, number, number];
  tailColorFalloff?: number;
}): CompositeEffectPass<{
  get uErosion(): number;
  get uFadeout(): number;
  get uTailColor(): [number, number, number, number];
  get uTailColorFalloff(): number;
}>;
```

Creates a trails / persistence effect.

This effect uses double buffering (ping-pong FBO) to accumulate colors over time,
creating a trailing effect behind moving objects.

[Example: Trails (builtin)](/examples/post-processing-builtin/trails/)

## Parameters

### params?

Configuration for the trails effect.

#### erosion?

`number`

Intensity of the erosion effect that makes the trails shorter.

**Default**

```ts
0;
```

#### fadeout?

`number`

Intensity of the trails fadeout. Higher values make the trails fade out faster.

**Default**

```ts
0.25;
```

#### tailColor?

\[`number`, `number`, `number`, `number`]

Color of the tail of the trails as \[r, g, b, a], each component between 0 and 1.

**Default**

```ts
[1, 1, 1, 1];
```

#### tailColorFalloff?

`number`

How quickly the original color fades to the tail color.

**Default**

```ts
0;
```

## Returns

[`CompositeEffectPass`](../../../passes/compositeEffectPass/type-aliases/CompositeEffectPass.md)<{
get `uErosion`(): `number`;
get `uFadeout`(): `number`;
get `uTailColor`(): \[`number`, `number`, `number`, `number`];
get `uTailColorFalloff`(): `number`;
}>
