# Introduction
URL: https://remocn.dev/docs/filters/getting-started/introduction

Pixel-level treatments you hold over a whole scene, built on the experimental html-in-canvas browser API

## How it works

A filter wraps a scene and re-reads its pixels every frame. Put your scene inside one and it comes out as tape footage, as a CRT display, as halftone print, for as long as the scene runs.

## Installation

```bash
npx shadcn@latest add @remocn/vhs-filter
```

```tsx title="scene.tsx"
import { VhsFilter } from "@/components/remocn/vhs-filter";

export const Scene = () => (
  <VhsFilter>
    <YourScene />
  </VhsFilter>
);
```

> **Filters are not transitions**
>
> A transition covers a cut: it has a progress, runs between two scenes and is over in a dozen frames. A filter has no progress and no second scene. It is a look, and it lasts exactly as long as the scene it wraps, which is what `length: sustained` means in the docs metadata. Reach for a filter when the effect is the scene's material.

## All filters

Every tile is the same frame, run through a different filter.