> For the complete documentation index, see [llms.txt](https://docs.eyepop.ai/developer-documentation/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.eyepop.ai/developer-documentation/platform/pop.md).

# Pops

The reusable pipeline every EyePop analysis runs through

A Pop is a reusable vision pipeline. It combines one or more models and [abilities](/developer-documentation/platform/abilities.md) — models, prompts, and logic — into a workflow, and every image, video, livestream, or camera feed EyePop analyzes runs through one. Because a Pop is built by composing components, it is sometimes called a **composable Pop**; same thing.

### Why Pops exist

Most real-world visual AI problems need more than one model. Reading a license plate means detecting a vehicle, locating the plate, cropping it, running OCR, and returning structured results. A Pop combines those steps into a single reusable workflow, so the intermediate crops never round-trip to your code.

### Anatomy of a Pop

A Pop holds a list of components. The simplest Pop runs a single ability. An inference component identifies the ability it runs and any optional thresholds or output category; other component types handle operations such as forwarding, tracking, and turning segmentation masks into shapes.

Components at the top level run in parallel on the full frame. Sequencing is expressed by *forwarding* a component's output to the components that come next — which is what turns a list into a pipeline.

The reference is split across three pages: [Pop Object](/developer-documentation/platform/pop/pop-object.md) for the pipeline's own shape, [Components](/developer-documentation/platform/pop/pop-components.md) for every component type and attribute, and [Forwarding](/developer-documentation/platform/pop/pop-forwarding.md) for how they chain. [Examples](/developer-documentation/platform/pop/pop-examples.md) shows the common pipelines end to end.

### Chaining components

A component can forward its output to further components. A crop forward passes each detected region downstream; a full forward passes the whole image. For example, a Pop can find people and then run 2D body points on each person crop.

The same shape covers the common pipelines: vehicle → plate → OCR, worker → PPE → violation, product → classification → inventory, and detect → crop → VLM.

### Running a Pop

Use the Python SDK or Node SDK to attach a Pop to a worker session and hand it a [source](/developer-documentation/platform/sources-and-options.md). The [Quickstart](/developer-documentation/quickstart.md) shows the minimal flow in both languages; their complete guides are available from this site's navigation.

### Inputs and outputs

A Pop accepts a [source](/developer-documentation/platform/sources-and-options.md): [Source Types](/developer-documentation/platform/sources-and-options/sources.md) covers every kind it takes, and [Source Options](/developer-documentation/platform/sources-and-options/options.md) the settings that shape how each one is processed. It returns structured JSON — bounding boxes, labels, counts, OCR text, tracking IDs, classifications, extracted fields, and VLM responses, depending on the abilities it runs.

### Where a Pop runs

The same Pop definition runs unchanged in the [cloud](/developer-documentation/deploying/cloud.md) or [on-premise](/developer-documentation/deploying/on-premise.md). A persistent [Deployment](/developer-documentation/deploying/cloud/deployment.md) keeps one Pop continuously active with models pre-loaded, for low-latency and real-time workloads.

### Best practices

* Start with the simplest workflow that solves the problem.
* Use detection to narrow the scope before running more expensive analysis.
* Hide intermediate stages the caller did not ask to see, rather than filtering them out in your own code.
* Test with representative production data.
* Reuse Pops across applications rather than duplicating workflows.

### Next steps

* [Pop Object](/developer-documentation/platform/pop/pop-object.md) — the shape of a Pop and how its top-level components run
* [Components](/developer-documentation/platform/pop/pop-components.md) — every component type and its attributes
* [Forwarding](/developer-documentation/platform/pop/pop-forwarding.md) — chaining components, and what each one receives
* [Examples](/developer-documentation/platform/pop/pop-examples.md) — worked pipelines from one ability to multi-stage chains
* [Models](/developer-documentation/platform/models.md) — the pretrained and custom models to name in an inference component
* [Sources and Options](/developer-documentation/platform/sources-and-options.md) — what you can submit to a Pop
