# `BB.TUI.State.Viz`
[🔗](https://github.com/mcass19/bb_tui/blob/v0.3.0/lib/bb/tui/state/viz.ex#L1)

Visualization-tab state: the orbit camera and render mode for the 3D robot view.

`camera` is `nil` until first used; `BB.TUI.State.viz_camera/1` falls back to
`BB.TUI.Viz.RobotScene.default_camera/0` so a fresh state still renders.

`render_mode` is the `ExRatatui.Widgets.Viewport3D` mode. `:auto` (the default)
renders crisp pixel graphics on terminals that speak a graphics protocol
(Kitty — Ghostty/WezTerm/Kitty; Sixel — WezTerm) and falls back to `:braille`
over `CellSession`/SSH and unsupported terminals. The explicit pixel protocols
(`:kitty`, `:sixel`, `:iterm2`) and cell-blit modes (`:half_block`, `:braille`,
`:ascii`) can also be selected by cycling with `m`.

# `render_mode`

```elixir
@type render_mode() ::
  :auto | :kitty | :sixel | :iterm2 | :half_block | :braille | :ascii
```

# `t`

```elixir
@type t() :: %BB.TUI.State.Viz{
  camera: ExRatatui.ThreeD.Camera.t() | nil,
  render_mode: render_mode()
}
```

---

*Consult [api-reference.md](api-reference.md) for complete listing*
