## ADDED Requirements

### Requirement: Independent camera per viewport tile
Each viewport tile SHALL own an independent `ViewportCamera` instance. Camera operations (orbit, pan, dolly, zoom, frame) in one tile SHALL NOT affect any other tile's camera.

#### Scenario: Orbit in one tile, other tiles unchanged
- **WHEN** the user Alt+LMB drags to orbit in tile A
- **THEN** tile A's camera rotates, while tiles B, C, D remain at their previous camera positions

#### Scenario: Frame selection in one tile
- **WHEN** the user presses F in a tile
- **THEN** that tile's camera frames the current selection, other tiles are unaffected

### Requirement: Per-tile camera selector dropdown
Each tile SHALL have a compact camera selector (icon + dropdown) showing "Free Camera" and all USD camera prims on the stage. Selecting a USD camera in one tile SHALL NOT affect other tiles.

#### Scenario: Tile A uses Free Camera, Tile B uses a USD camera prim
- **WHEN** the user selects a USD camera prim in tile B's camera dropdown
- **THEN** tile B switches to USD camera mode and renders from that camera's view, while tile A continues in free camera mode

#### Scenario: Both tiles use the same USD camera
- **WHEN** the user selects the same USD camera prim in both tile A and tile B
- **THEN** both tiles render from that camera's view but can navigate independently when one tile goes into free camera mode

### Requirement: Camera list refreshes on dropdown open
Each tile SHALL refresh its camera prim list from the stage whenever its camera dropdown is opened.

#### Scenario: New camera added, then dropdown opened
- **WHEN** the user adds a new UsdGeomCamera prim to the stage and opens a tile's camera dropdown
- **THEN** the dropdown includes the newly added camera prim