> For the complete documentation index, see [llms.txt](https://help.intangible.ai/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://help.intangible.ai/compose/lenses.md).

# Lenses

The lens pack in Compose mode and how focal length choice shapes the shot the visualizer renders.

Each shot has its own lens. The Compose-mode lens dropdown carries a working set of focal lengths plus a Custom option, alongside the film and social aspect ratios. Pick deliberately; lens choice carries through to the visualizer's auto-prompt and changes how the rendered image reads.

![Lens dropdown open on the shot toolbar showing 14mm Ultra-Wide, 24mm Wide, 35mm Standard (selected), 50mm Normal, 70mm Portrait, 100mm Telephoto, 200mm Super Telephoto, and Custom](https://1179478100-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FSWrjIqlgVAblx6vHGJiM%2Fuploads%2Fgit-blob-5714339a8debe2c27f4d263f8d3e12da6a5c373e%2Flens-dropdown-01.png?alt=media)

## What it does

Cinematographers pick lenses on instinct. The choice is doing real work: 24mm pushes scale and includes the environment around the subject; 100mm flattens depth and isolates the subject; the 14mm Ultra-Wide distorts at the edges, which can be expressive or wrong depending on the brief. Intangible's lens dropdown gives you the same vocabulary you'd reach for on a real shoot, and the visualizer reads the choice into the \[Scene Context] block of the auto-prompt, so the rendered image gets the right "feel" without you describing it in text.

## How to use it

Each shot has its own lens setting. In Compose mode, click a shot to make it active. A toolbar appears on the shot's framing overlay, and the **Lens** control is the icon in it that reads "Lens" on hover, sitting beside the aspect-ratio control. Click it for the focal-length list. Selecting a camera in the viewport exposes the same **Lens** dropdown in the properties bar. The picker is a flat list labeled by both the category name and the focal length, with the active lens ticked.

The working set:

* **14mm Ultra-Wide** – strong perspective distortion at the edges, near fisheye; great for vehicle interiors, action that puts the camera inside something.
* **24mm Wide** – establishing shots, environments where the surrounding context matters.
* **35mm Standard** – default for most shots. Documentary-feeling, broadly cinematic, doesn't impose a strong look.
* **50mm Normal** – the photographic normal on full frame. Closest to how the eye reads a space, so it neither flatters nor distorts. Reach for it when the shot should feel observed rather than composed.
* **70mm Portrait** – compressed depth, isolated subject, soft background. Default reach for product hero shots and beauty framings.
* **100mm Telephoto** – longer compression and stronger subject isolation; pulls distant action in tight.
* **200mm Super Telephoto** – far compression, isolated subject. Good for sports-feeling action or framings at distance.

Below the presets sits **Custom**, which opens a panel for setting a focal length the presets don't cover. See [Custom lens](#custom-lens) below.

The lens selection is per-shot, so you can have a 24mm Wide establishing followed by a 100mm Telephoto reaction in the same scene without any global change.

## How the visualizer reads lens choice

```mermaid
flowchart LR
    A[Shot lens setting] --> B[Auto-prompt Scene Context]
    A --> C[3D viewport framing]
    B --> D[Diffusion model]
    C --> D
    D --> E[Render with appropriate optical character]
```

The auto-prompt's \[Scene Context] block mentions the focal length (e.g., *"24mm wide-angle establishing shot"*). The 3D viewport applies the equivalent perspective so what you see is what gets rendered. The model receives both: the geometric framing from the viewport and the descriptive language from the prompt.

{% hint style="info" %}
The wider you go, the more the visualizer leans into environmental detail. The longer you go, the more it leans into subject isolation and shallow-depth effects. If a render feels "too clean" or "too cluttered", lens choice is the first thing to revisit.
{% endhint %}

## Custom lens

The presets cover the focal lengths a shoot reaches for most. When the shot needs something between them, or needs the camera's clipping planes moved, pick **Custom** at the bottom of the lens dropdown. A cog icon on the Custom row opens the panel again once custom is active.

![The Custom Lens panel: dragging the lens slider to an arbitrary focal length, with the near and far clipping inputs and the helper visibility toggle below it](https://1179478100-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FSWrjIqlgVAblx6vHGJiM%2Fuploads%2Fgit-blob-c66341f3db333a88b6f68fdd1447b5e2629e1c77%2Fcustom-lens-panel-01.gif?alt=media)

The panel carries four controls:

* **Lens or FOV.** A toggle switches the slider between focal length in millimetres and vertical field of view in degrees. They're two views of the same value, so setting one updates the other. Use focal length when you're matching a real lens, FOV when you're matching a plate or a game engine.
* **Focal length.** The slider runs 14mm to 100mm. That's a soft range for comfortable dragging, not a hard limit; type a value outside it to go wider or longer.
* **Near and far clipping.** The planes that bound what the camera renders, defaulting to 0.1 and 10000. Pull **near** out when the camera sits inside geometry and you want the near wall to stop occluding the shot. Pull **far** in when distant geometry is cluttering a long lens.
* **Show Near & Far.** An eye toggle that draws the near and far planes in the viewport so you can see what the clipping values are actually doing.

{% hint style="info" %}
The near and far helper only draws when the camera helper is already visible, which means the camera is selected, hovered, or driving the active shot. Toggling **Show Near & Far** on a camera you can't currently see won't put anything on screen.
{% endhint %}

Custom values are stored on the camera, so a custom lens survives shot switches and reloads the same way a preset does.

## Choosing the right lens

A few common signals:

* The subject feels small and lost in the frame – go longer.
* The environment is doing too much of the storytelling – go longer (or move the camera closer).
* The shot needs to feel "in the action" – go wider, get closer.
* The subject feels distorted at the edges in an unwanted way – go longer.
* A product hero is being upstaged by the background – go to 70mm Portrait or 100mm Telephoto.

## Limits and known issues

* **Film-grade lens characteristics aren't simulated.** Anamorphic squeeze, lens flares, breathing – the visualizer doesn't model these per-lens. They show up if the model has been trained to produce them; ask for them in the prompt or via [style presets](/visualize/style-presets.md) if needed.
* **A custom focal length still reads to the model as a focal length, not as a specific lens.** The auto-prompt describes the number. It doesn't know you were matching a particular piece of glass.
* **Aspect ratio is separate from focal length.** Switching from 35mm to 100mm doesn't change the gate. See [Aspect ratios and film gates](/compose/aspect-ratios-and-film-gates.md).

## Related

* [Shots](/compose/shots.md)
* [Aspect ratios and film gates](/compose/aspect-ratios-and-film-gates.md)
* [Camera controls](/compose/camera-controls.md)
* [Shot details](/compose/shot-details.md)


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://help.intangible.ai/compose/lenses.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
