# `GEPA.Visualization`
[🔗](https://github.com/nshkrdotcom/gepa_ex/blob/v0.3.0/lib/gepa/visualization.ex#L1)

Candidate-lineage visualization helpers.

This module ports upstream GEPA's candidate tree utilities to Elixir. It can
generate either Graphviz DOT or a self-contained HTML page from raw data,
`GEPA.State`, or `GEPA.Result`.

# `candidate_tree_dot`

```elixir
@spec candidate_tree_dot(GEPA.State.t() | GEPA.Result.t()) :: String.t()
```

Generate Graphviz DOT from a `GEPA.State` or `GEPA.Result`.

# `candidate_tree_dot_from_data`

```elixir
@spec candidate_tree_dot_from_data([map()], list() | map(), [number()], map()) ::
  String.t()
```

Generate Graphviz DOT from raw optimization data.

# `candidate_tree_html`

```elixir
@spec candidate_tree_html(GEPA.State.t() | GEPA.Result.t()) :: String.t()
```

Generate a self-contained HTML visualization from a `GEPA.State` or `GEPA.Result`.

# `candidate_tree_html_from_data`

```elixir
@spec candidate_tree_html_from_data([map()], list() | map(), [number()], map()) ::
  String.t()
```

Generate a self-contained HTML page from raw optimization data.

---

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