# Visualize v0.8.3 - Table of Contents

> Server-side SVG and canvas visualization for Phoenix LiveView, in the shape of D3.

## Pages

- [README](readme.md)

- Guides
  - [Getting started](getting_started.md)
  - [LiveView](liveview.md)
  - [Designing charts](designing_charts.md)
  - [Cheatsheet](cheatsheet.md)

- Reference
  - [Changelog](changelog.md)

## Modules

- [Visualize.Audit](Visualize.Audit.md): Cross-references what `spec/` declares against what `lib/` defines, and renders the
result as `API_SURFACE.md` through `Surfex.Golden`.
- [Visualize.Audit.Advisories](Visualize.Audit.Advisories.md): No dependency carries an advisory (spec/12 §3, #782, D-207).
- [Visualize.Audit.Atoms](Visualize.Audit.Atoms.md): No atom from untrusted input (spec/12 §3, #778, D-195).
- [Visualize.Audit.Citations](Visualize.Audit.Citations.md): Every citation of a specification section names a heading that exists (spec/12 §3, #648).
- [Visualize.Audit.CodeScan](Visualize.Audit.CodeScan.md): Every public function `lib/` defines, read from source without compiling it.
- [Visualize.Audit.Headings](Visualize.Audit.Headings.md): The heading discipline `spec/README.md` §5 asks for, checked mechanically: one `#` title,
a `**Status:**` line on line 3, and decimal numbering that is gap-free at every level
(`## 1.`, `### 1.1`, `#### 1.1.1`). A lost or duplicated heading breaks the citations
every other document and the golden's `Section` column rely on, and nobody notices by eye.
- [Visualize.Audit.SpecScan](Visualize.Audit.SpecScan.md): Every function the specification declares: each `` `Module.function/arity` `` in the first
cell of a table row under `spec/*.md`, with the numbered section it sits in.
- [Visualize.Audit.Spelling](Visualize.Audit.Spelling.md): American spelling in everything this library names and writes (spec/12 §3, #642, D-183).
- [Visualize.Color.Vision](Visualize.Color.Vision.md): Color-vision simulation: how a color reads to a person with one of the three
dichromacies (spec/08 §1.8, D-139).
- [Visualize.Data.FFT](Visualize.Data.FFT.md): The fast Fourier transform of a real or complex sequence (spec/08 §9, #375): a radix-2
Cooley–Tukey decimation in time over lists, `O(N log N)`, pure Elixir.
- [Visualize.Event](Visualize.Event.md): The one shape of every interaction the library delivers (spec/10 §19, D-170).
- [Visualize.Format.Auto](Visualize.Format.Auto.md): Tick formats derived from what a realized scale already knows: its domain and the tick
count (spec/05 §3.1, D-134).
- [Visualize.Generators](Visualize.Generators.md): A host's generators: styles and colors a design names and the frame computes at render
(spec/14 §3.13, D-177).
- [Visualize.Quantity](Visualize.Quantity.md): A fixed list of quantities, each with its facts — a base unit, a kind, bounds,
additivity and display families by unit system — and the display scaling they choose
(spec/05 §4.2–4.3, D-138, D-155).
- [Visualize.Render.Segments](Visualize.Render.Segments.md): A drawing as keyed segments, so that what a change did not touch is neither written
again nor sent again (spec/09 §1.4, #813, D-203).
- [Visualize.Specs.ForceSimulation](Visualize.Specs.ForceSimulation.md): The timer discipline of `Visualize.Layout.Force.Simulation` (spec/06 §8.5), as a model.
- [Visualize.Theme](Visualize.Theme.md): The colors, font and sizes a chart draws with (spec/08 §7).
- [Visualize.Unit](Visualize.Unit.md): Units named by their UCUM codes (spec/05 §4.1, D-138, D-155).
- [Visualize.Units](Visualize.Units.md): Lengths with their units (spec/08 §13, spec/14 §3.9, #651, D-174).

- Facade
  - [Visualize](Visualize.md): Server-side SVG visualization library for Elixir.

- Declarative chart
  - [Visualize.Chart](Visualize.Chart.md): A chart as a design map (spec/14).
  - [Visualize.Chart.Applied](Visualize.Chart.Applied.md): A design applied to its data (spec/14 §7.3, §14.10).
  - [Visualize.Chart.Build](Visualize.Chart.Build.md): The builder for the declarative layer (spec/14 §16, D-78).
  - [Visualize.Chart.Builder](Visualize.Chart.Builder.md): An embeddable editor of typed fragments (spec/14 §18, §19).
  - [Visualize.Chart.Builder.Axes](Visualize.Chart.Builder.Axes.md): Axes ticked where their scale is (spec/14 §18.16, #373): the *axes* section of a mark's
page and of a scale's — one row per position scale, a box per side the scale can stand
on, a grid box, and a link to each axis's own page.
  - [Visualize.Chart.Builder.BoardGrid](Visualize.Chart.Builder.BoardGrid.md): The board mode's grid (spec/14 §22.3, D-152): every cell of the board placed on the
12-column grid with its handles and its preview, or the board as it reflows below its
breakpoint.
  - [Visualize.Chart.Builder.Boards](Visualize.Chart.Builder.Boards.md): The board mode's editor (spec/14 §22, D-152): the pure writes of a board — a cell
placed, a field read from a control — and the inspector panel that makes them.
  - [Visualize.Chart.Builder.Bundle](Visualize.Chart.Builder.Bundle.md): A collection of entries that can cross from one store into another (spec/14 §19.7).
  - [Visualize.Chart.Builder.Chain](Visualize.Chart.Builder.Chain.md): A typed color as a chain: a base, then the transforms applied to it in order (spec/14
§19.10, D-178).
  - [Visualize.Chart.Builder.Document](Visualize.Chart.Builder.Document.md): The builder's import and export: the design's JSON form, in and out (spec/14 §18.12).
  - [Visualize.Chart.Builder.Editor](Visualize.Chart.Builder.Editor.md): The builder's fragment editor, generated from the schema (spec/14 §18.5-§18.7).
  - [Visualize.Chart.Builder.Fonts](Visualize.Chart.Builder.Fonts.md): The font picker (spec/14 §19.10): family, size, face and anchor of the node being
edited, together, the way a drawing tool keeps them beside the canvas.
  - [Visualize.Chart.Builder.Glyphs](Visualize.Chart.Builder.Glyphs.md): The pictures a drawn enum is chosen by (spec/14 §18.6).
  - [Visualize.Chart.Builder.Inspector](Visualize.Chart.Builder.Inspector.md): The builder's inspector: `Visualize.Chart.explain/1` rendered (spec/14 §18.9).
  - [Visualize.Chart.Builder.Layers](Visualize.Chart.Builder.Layers.md): The builder's stack panel: the layers in precedence order (spec/14 §18.8).
  - [Visualize.Chart.Builder.Library](Visualize.Chart.Builder.Library.md): The builder's library: the store's fragments as a tree (spec/14 §18.16).
  - [Visualize.Chart.Builder.Masks](Visualize.Chart.Builder.Masks.md): The context panel over a layer — its key and its free variables (spec/14 §19.5,
§19.10) — and the rows of its mask, which the layer's row lists (§18.8, #316).
  - [Visualize.Chart.Builder.Page](Visualize.Chart.Builder.Page.md): A root tab as one page of sections (spec/14 §18.15, #249).
  - [Visualize.Chart.Builder.Palette](Visualize.Chart.Builder.Palette.md): The builder's style palette: the styles the stack declares, how one is made, and the
theme's palette beneath them (spec/14 §18.14).
  - [Visualize.Chart.Builder.Params](Visualize.Chart.Builder.Params.md): The builder's parameters form: `Visualize.Chart.free_vars/1` rendered (spec/14 §18.11).
  - [Visualize.Chart.Builder.Picker](Visualize.Chart.Builder.Picker.md): The context panel as the picker for the selected field (spec/14 §19.10).
  - [Visualize.Chart.Builder.Place](Visualize.Chart.Builder.Place.md): Where a drop on the graph lands, and what a component means there (spec/14 §18.16).
  - [Visualize.Chart.Builder.Preview](Visualize.Chart.Builder.Preview.md): The builder's preview pane: the stacked design drawn, or its faults (spec/14 §18.4).
  - [Visualize.Chart.Builder.Scales](Visualize.Chart.Builder.Scales.md): The scales a design's bound channels need and the frame lacks (spec/14 §18.16, #370).
  - [Visualize.Chart.Builder.Sources](Visualize.Chart.Builder.Sources.md): The data page (spec/14 §19.10, #372): what the *sources* root shows — one row per source
of the composed design, its name, its columns with their types, and its generator while
designing (a `Visualize.Signals` signal under the source's name) or the host's rows.
  - [Visualize.Chart.Builder.Stack](Visualize.Chart.Builder.Stack.md): The builder's stack as a list of use sites, and the pure operations over it
(spec/14 §19.3, §19.6, §19.9).
  - [Visualize.Chart.Builder.Steps](Visualize.Chart.Builder.Steps.md): What a new chart still needs (spec/14 §18.4, #374): data, a mark, axes — the builder's
steps, never the validator's faults, so none blocks Save or Deploy nor badges a root.
`steps/1` reads the design; the preview draws them beneath the chart, each a button
that does or opens the step.
  - [Visualize.Chart.Builder.Store](Visualize.Chart.Builder.Store.md): The library of saved fragments a host may give `Visualize.Chart.Builder` (spec/14 §19.7).
  - [Visualize.Chart.Builder.StyleForm](Visualize.Chart.Builder.StyleForm.md): A style's form in its parts (spec/14 §18.7, D-178).
  - [Visualize.Chart.Builder.StyleStack](Visualize.Chart.Builder.StyleStack.md): The stack of styles at one site (spec/14 §18.18).
  - [Visualize.Chart.Builder.Styles](Visualize.Chart.Builder.Styles.md): The builder's stylesheet, and the element that carries it (spec/14 §18.13).
  - [Visualize.Chart.Builder.ThemeRamps](Visualize.Chart.Builder.ThemeRamps.md): The theme editor's ramps and roles, checked as they are edited (spec/14 §20.4, §20.5,
D-139).
  - [Visualize.Chart.Builder.ThemeSheet](Visualize.Chart.Builder.ThemeSheet.md): The theme mode's preview sheet (spec/14 §20.3, D-139): fixed sample charts drawn
through the theme being edited, and the designs a person adds from the store.
  - [Visualize.Chart.Builder.Themes](Visualize.Chart.Builder.Themes.md): The theme mode's editor (spec/14 §20, D-139): the theme a chart holds, as a node the
builder writes and as the `%Visualize.Theme{}` it draws as, and the panel that edits it.
  - [Visualize.Chart.Builder.Variables](Visualize.Chart.Builder.Variables.md): The variable panel (spec/14 §19.10): the composition's variables as chips, and what a
person does with them.
  - [Visualize.Chart.Compiled](Visualize.Chart.Compiled.md): A design compiled for rendering per tick (spec/14 §12, D-66).
  - [Visualize.Chart.Composite](Visualize.Chart.Composite.md): A fragment whose content is a list of use sites, and how it becomes a design
(spec/14 §19.6, D-103).
  - [Visualize.Chart.Fact](Visualize.Chart.Fact.md): A fact of a feed's schema in a design (spec/14 §7.4, D-136).
  - [Visualize.Chart.Fragment](Visualize.Chart.Fragment.md): What a fragment is about, and the ids it refers to (spec/14 §19.2, §19.8).
  - [Visualize.Chart.Frame](Visualize.Chart.Frame.md): The realized frame of a chart: its scales, built once, and the static furniture —
grid, axes, legend and labels — rendered from them (spec/14 §4, D-60).
  - [Visualize.Chart.Limits](Visualize.Chart.Limits.md): Sanity limits on a document read from elsewhere (spec/14 §9.2, D-137).
  - [Visualize.Chart.Mark](Visualize.Chart.Mark.md): The marks of a design drawn through the frame's scales (spec/14 §5, D-61).
  - [Visualize.Chart.Mark.Bend](Visualize.Chart.Mark.Bend.md): The polar transform (spec/14 §5.2, #391): a mark laid out in `(angle, r)` — every `x` an
angle in radians clockwise from 12 o'clock, every `y` a radius from the center — bent
around the arc.
  - [Visualize.Chart.Migration](Visualize.Chart.Migration.md): Schema versions and the migrations between them (spec/14 §9).
  - [Visualize.Chart.Presets](Visualize.Chart.Presets.md): The ten LiveView components as stored designs (spec/14 §15, D-64).
  - [Visualize.Chart.Refs](Visualize.Chart.Refs.md): Reference resolution as one rule (spec/14 §19.6, D-103): every library id at a
reference site of a flat design is resolved through a store, so that what leaves
`Visualize.Chart.flatten/2` carries no ids and what the frame draws needs no store.
  - [Visualize.Chart.Schema](Visualize.Chart.Schema.md): The design schema as data (spec/14 §14.2).
  - [Visualize.Chart.Style](Visualize.Chart.Style.md): Style resolution for the declarative layer (spec/14 §3.4, D-63): one style node, two
outputs by the mode of the render target.
  - [Visualize.Chart.Summary](Visualize.Chart.Summary.md): A chart's text alternative (spec/14 §21, D-142): what a screen reader says for a chart,
generated from the design and the data it was applied to.
  - [Visualize.Chart.Text](Visualize.Chart.Text.md): A text as one string with interpolation (spec/14 §7.1): `"Uptime for #{var(:host)}"`.
  - [Visualize.Chart.Theme](Visualize.Chart.Theme.md): A theme as a document: stored, shipped and read back as a value (spec/14 §9.3, D-139).
  - [Visualize.Chart.Transform](Visualize.Chart.Transform.md): The data pipeline of a mark (spec/14 §5.4, D-62): filtering, binning, stacking,
aggregation, the layouts of `Visualize.Layout` and the geo algorithms as `%{op: …}`
steps over rows.
  - [Visualize.Chart.Use](Visualize.Chart.Use.md): A fragment used at a position (spec/14 §19.3, D-101).
  - [Visualize.Chart.Validator](Visualize.Chart.Validator.md): Validates a design map against the schema (spec/14 §10).
  - [Visualize.Chart.Var](Visualize.Chart.Var.md): A variable in a design (spec/14 §7.1).

- Boards
  - [Visualize.Board](Visualize.Board.md): A dashboard as data: designs laid out on a 12-column grid, sharing a time window,
variables and a sync group, but never geometry (spec/15, D-141).
  - [Visualize.Board.Binding](Visualize.Board.Binding.md): Which feed fills each of a board's slots: the connector's value, never the board's
(spec/15 §4.2, D-141).
  - [Visualize.Board.Budget](Visualize.Board.Budget.md): Each bound slot's budget, derived from what its cell draws at its size, and each feed's,
the largest of its slots' (spec/15 §8.2, #864, D-226).
  - [Visualize.Board.Cell](Visualize.Board.Cell.md): One cell of a live board, as a process (spec/15 §8.3, D-146).
  - [Visualize.Board.Export](Visualize.Board.Export.md): A whole board as one picture: an SVG document, a PNG, or printed pages (spec/15 §12,
D-150).
  - [Visualize.Board.Rows](Visualize.Board.Rows.md): A cell's rows placed by their window field, with a break in every gap (spec/15 §8.5,
D-146, D-154).
  - [Visualize.Board.Server](Visualize.Board.Server.md): A live board: one process that owns the board's shared state and its feeds, and one
process per cell under it (spec/15 §8, D-146).
  - [Visualize.Board.Snapshot](Visualize.Board.Snapshot.md): A board frozen at one instant: the board, its window and its now, every cell's
component and the data it was drawn from, and the theme, as one value (spec/15 §12.2,
D-150).
  - [Visualize.Board.State](Visualize.Board.State.md): A cell's state, decided and drawn (spec/15 §8.4, D-146).
  - [Visualize.Board.Supervisor](Visualize.Board.Supervisor.md): Where a host's boards live: a `DynamicSupervisor` the host adds to its own tree
(spec/15 §8.1, D-146).
  - [Visualize.Board.View](Visualize.Board.View.md): What a cell shows, as its process sends it to the board's subscribers (spec/15 §8.3,
D-146): `{:visualize_board, board, {:cell, name, view}}`.

- Scales
  - [Visualize.Scale](Visualize.Scale.md): Scale functions that map from a data domain to a visual range.
  - [Visualize.Scale.Band](Visualize.Scale.Band.md): A discrete scale that divides the range into uniform bands.
  - [Visualize.Scale.Behaviour](Visualize.Scale.Behaviour.md): The protocol every scale module implements (spec/03 §1.3).
  - [Visualize.Scale.Color](Visualize.Scale.Color.md): Color scales for encoding data with colors.
  - [Visualize.Scale.Linear](Visualize.Scale.Linear.md): A continuous linear scale that maps a numeric domain to a numeric range.
  - [Visualize.Scale.Log](Visualize.Scale.Log.md): A logarithmic scale for data with exponential distributions.
  - [Visualize.Scale.Ordinal](Visualize.Scale.Ordinal.md): A discrete scale that maps categorical values to a discrete range.
  - [Visualize.Scale.Power](Visualize.Scale.Power.md): Power scale for non-linear transformations.
  - [Visualize.Scale.Quantile](Visualize.Scale.Quantile.md): Quantile scale for mapping sorted data to discrete buckets.
  - [Visualize.Scale.Quantize](Visualize.Scale.Quantize.md): Quantize scale for mapping continuous values to discrete buckets.
  - [Visualize.Scale.Radial](Visualize.Scale.Radial.md): An angle scale: a cyclic domain — bearing, hour of day, day of year — to radians
(spec/03 §14, D-30).
  - [Visualize.Scale.Symlog](Visualize.Scale.Symlog.md): Symmetric log scale for data spanning orders of magnitude including zero.
  - [Visualize.Scale.Threshold](Visualize.Scale.Threshold.md): Threshold scale for mapping continuous values to discrete outputs.
  - [Visualize.Scale.Time](Visualize.Scale.Time.md): A scale for temporal data (DateTime, Date, NaiveDateTime).

- Shapes
  - [Visualize.Shape](Visualize.Shape.md): Shape generators for creating SVG paths from data.
  - [Visualize.Shape.Arc](Visualize.Shape.Arc.md): Arc generator for creating circular or annular sectors.
  - [Visualize.Shape.Area](Visualize.Shape.Area.md): Area generator for creating filled areas between two lines.
  - [Visualize.Shape.Band](Visualize.Shape.Band.md): Band generator: a state timeline of one rectangle per datum (spec/04 §11, D-26).
  - [Visualize.Shape.Curve](Visualize.Shape.Curve.md): Curve interpolators for line and area generators.
  - [Visualize.Shape.Line](Visualize.Shape.Line.md): Line generator for creating SVG paths from data points.
  - [Visualize.Shape.LineNx](Visualize.Shape.LineNx.md): Nx-accelerated line generator for high-performance path generation.
  - [Visualize.Shape.Needle](Visualize.Shape.Needle.md): Needle generator: one filled pointer per datum from the hub to its angle, as long as
its length — a gauge's indicator, a compass needle (spec/04 §16, #392).
  - [Visualize.Shape.PercentileBand](Visualize.Shape.PercentileBand.md): Percentile-band generator: a median line with an inner and an outer band around it
(spec/04 §14, D-28).
  - [Visualize.Shape.Pie](Visualize.Shape.Pie.md): Pie layout generator that computes angles for pie and donut charts.
  - [Visualize.Shape.Rose](Visualize.Shape.Rose.md): Rose generator: one `Visualize.Shape.Arc` sector per datum, centered on its angle and
as long as its value (spec/04 §15, D-31).
  - [Visualize.Shape.Rule](Visualize.Shape.Rule.md): Rule generator: a vertical line at a domain x value, with an optional label
(spec/04 §12, D-27).
  - [Visualize.Shape.Stack](Visualize.Shape.Stack.md): Stack generator for creating stacked bar and area charts.
  - [Visualize.Shape.Symbol](Visualize.Shape.Symbol.md): Symbol generator for categorical point marks.
  - [Visualize.Shape.XBand](Visualize.Shape.XBand.md): X-band generator: a shaded region between two domain x values, with an optional label
(spec/04 §13, D-27).

- Axes and formatting
  - [Visualize.Axis](Visualize.Axis.md): Axis generator for creating reference marks and labels.
  - [Visualize.Format](Visualize.Format.md): Number and time formatting utilities for chart labels.

- Layouts
  - [Visualize.Layout.Chord](Visualize.Layout.Chord.md): Chord diagram layout for visualizing relationships between groups.
  - [Visualize.Layout.Cluster](Visualize.Layout.Cluster.md): Cluster layout algorithm for dendrogram visualizations.
  - [Visualize.Layout.Force](Visualize.Layout.Force.md): Force-directed graph layout.
  - [Visualize.Layout.Force.Forces](Visualize.Layout.Force.Forces.md): Force functions for the force simulation.
  - [Visualize.Layout.Force.Simulation](Visualize.Layout.Force.Simulation.md): Force-directed graph layout simulation using velocity Verlet integration.
  - [Visualize.Layout.Hexbin](Visualize.Layout.Hexbin.md): Hexagonal binning of points in the plane (spec/06 §9, #348): d3-hexbin's lattice of
flat-topped hexagons, the columns `2 r sin(π/3)` apart and the rows `1.5 r`, every odd
row offset by half a column. The lattice is in the coordinates of the points, so a chart
bins pixels.
  - [Visualize.Layout.Hierarchy](Visualize.Layout.Hierarchy.md): Hierarchical data structure for tree-based visualizations.
  - [Visualize.Layout.Pack](Visualize.Layout.Pack.md): Circle packing layout for hierarchical data.
  - [Visualize.Layout.Partition](Visualize.Layout.Partition.md): Partition layout for adjacency diagrams.
  - [Visualize.Layout.Sankey](Visualize.Layout.Sankey.md): Sankey diagram layout for visualizing flow between nodes.
  - [Visualize.Layout.Tree](Visualize.Layout.Tree.md): Tree layout algorithm for hierarchical node-link diagrams.
  - [Visualize.Layout.Treemap](Visualize.Layout.Treemap.md): Treemap layout for hierarchical data as nested rectangles.

- Geo
  - [Visualize.Contour](Visualize.Contour.md): Contour generation using the marching squares algorithm.
  - [Visualize.Contour.Density](Visualize.Contour.Density.md): Kernel density estimation for contour generation from point data.
  - [Visualize.Geo.Circle](Visualize.Geo.Circle.md): A circle on the sphere as a GeoJSON `Polygon`: d3-geo's `geoCircle` (spec/07 §2.5, D-131).
  - [Visualize.Geo.Delaunay](Visualize.Geo.Delaunay.md): Delaunay triangulation for a set of points.
  - [Visualize.Geo.Path](Visualize.Geo.Path.md): Renders GeoJSON geometries as SVG path strings.
  - [Visualize.Geo.Projection](Visualize.Geo.Projection.md): Geographic projections for mapping spherical coordinates to a plane.
  - [Visualize.Geo.Projection.Azimuthal](Visualize.Geo.Projection.Azimuthal.md): Azimuthal projections: orthographic, stereographic, gnomonic, Lambert azimuthal equal-area and azimuthal equidistant.
  - [Visualize.Geo.Projection.Compromise](Visualize.Geo.Projection.Compromise.md): Compromise and polyconic world projections: Natural Earth, Equal Earth, Robinson, Winkel tripel, Aitoff and Van der Grinten.
  - [Visualize.Geo.Projection.Conic](Visualize.Geo.Projection.Conic.md): Conic and pseudoconic projections: Albers, Lambert conformal conic, conic equal-area, conic equidistant, American polyconic and Bonne.
  - [Visualize.Geo.Projection.Cylindrical](Visualize.Geo.Projection.Cylindrical.md): Cylindrical projections: Mercator, transverse Mercator, equirectangular, Lambert cylindrical equal-area, Miller and Gall-Peters.
  - [Visualize.Geo.Projection.Pseudocylindrical](Visualize.Geo.Projection.Pseudocylindrical.md): Pseudocylindrical projections: Mollweide, sinusoidal, Eckert I-VI, Hammer, Kavrayskiy VII, Wagner IV and VI, Fahey, Collignon and loximuthal.
  - [Visualize.Geo.Tiles](Visualize.Geo.Tiles.md): The arithmetic of a Web-Mercator basemap (spec/07 §8, #475): the zoom level whose
256-pixel tiles match a Mercator projection, the tiles covering a plot, where each
goes in plot pixels, and its URL.
  - [Visualize.Geo.Voronoi](Visualize.Geo.Voronoi.md): Voronoi diagram for spatial partitioning.
  - [Visualize.Polygon](Visualize.Polygon.md): Utilities for working with polygons.

- Utilities
  - [Visualize.Color](Visualize.Color.md): Color manipulation utilities for parsing, converting, and manipulating colors.
  - [Visualize.Data](Visualize.Data.md): Data transformation and statistical utilities.
  - [Visualize.Data.Table](Visualize.Data.Table.md): Tabular data as the row list the generators consume.
  - [Visualize.Ease](Visualize.Ease.md): Easing functions for smooth animations and transitions.
  - [Visualize.Interpolate](Visualize.Interpolate.md): Interpolation functions for smooth transitions between values.
  - [Visualize.Random](Visualize.Random.md): Random number generators for various probability distributions.

- Feeds
  - [Visualize.Data.Delivery](Visualize.Data.Delivery.md): One answer of a feed: its rows, and the facts of this answer (spec/08 §10.4, D-136).
  - [Visualize.Data.Schema](Visualize.Data.Schema.md): A feed's schema: what each of its fields means (spec/08 §10.1, D-136).
  - [Visualize.Data.Schema.Cache](Visualize.Data.Schema.Cache.md): Schemas by `{feed, version}`, as a value (spec/08 §10.3, D-136).
  - [Visualize.Feed](Visualize.Feed.md): The feed behaviour: what fills a chart's source slot, asked for rows (spec/08 §11,
D-140).
  - [Visualize.Feed.Combine](Visualize.Feed.Combine.md): One feed over several, routed by window: live data and its history in one slot
(spec/08 §11.5, D-140, D-159).
  - [Visualize.Feed.Conformance](Visualize.Feed.Conformance.md): The feed conformance kit: the contract of spec/08 §10–§11 as checks every provider runs
(spec/08 §12, D-145).
  - [Visualize.Feed.Monitor](Visualize.Feed.Monitor.md): The loop over a set of feeds, as a value (spec/08 §11.4, D-140).
  - [Visualize.Feed.Signals](Visualize.Feed.Signals.md): A signal (`Visualize.Signals`) as a feed: generated, pulled (spec/08 §11.6, D-140).
  - [Visualize.Feed.Telemetry](Visualize.Feed.Telemetry.md): An in-process `:telemetry` provider: a collector over `Telemetry.Metrics` definitions,
one push feed per metric (spec/08 §11.6, D-140).
  - [Visualize.Feed.Window](Visualize.Feed.Window.md): Windows over a feed's window field (spec/08 §11.2, D-140, D-154).
  - [Visualize.Signals](Visualize.Signals.md): Generated sources (spec/08 §8): a chart under design has feeds that move without a host
supplying any.
  - [Visualize.VirtualSource](Visualize.VirtualSource.md): A virtual source: a source computed from other sources by a function, rows in and rows
out (spec/08 §10.5, #643, D-194).
  - [Visualize.VirtualSource.Engine](Visualize.VirtualSource.Engine.md): Virtual sources where feeds run (spec/15 §14, D-194): a **value** the board process holds
beside its feed monitor and calls from its own callbacks, as it holds the monitor
(spec/08 §11.4, D-140).
  - [Visualize.VirtualSource.Sandbox](Visualize.VirtualSource.Sandbox.md): The sandbox a virtual source's function runs in (spec/08 §10.5, D-194).
  - [Visualize.VirtualSource.Sandbox.Allowlist](Visualize.VirtualSource.Sandbox.Allowlist.md): What a stored virtual-source function may call (spec/08 §10.5.2, D-194): the allowlist
#643 decided on 2026-10-15, as **explicit** `{function, arity}` lists — never "a module
minus a few".
  - [Visualize.VirtualSource.Sandbox.Cache](Visualize.VirtualSource.Sandbox.Cache.md): Compiled functions by source (spec/08 §10.5.3, D-194): a **value**, held by whatever owns
the functions — a board's engine, the builder — not a process or a table, as the schema
cache is (spec/08 §10.3).
  - [Visualize.VirtualSource.Sandbox.Compiled](Visualize.VirtualSource.Sandbox.Compiled.md): A stored function checked and compiled once (spec/08 §10.5.3, D-194): `hash`, the
SHA-256 of its source; `fun`, the closure; `arity`; and `warnings`, the compiler's,
each `{line, message}`, printed nowhere.

  - [Visualize.VirtualSources](Visualize.VirtualSources.md): A host's virtual-source functions (spec/08 §10.5.8, D-194), written as Elixir in the
host's own module and tested with ExUnit, as generators are (spec/14 §3.13, D-177)

- IR and rendering
  - [Visualize.Backend](Visualize.Backend.md): Behaviour defining the interface for rendering backends.
  - [Visualize.Backend.Canvas](Visualize.Backend.Canvas.md): Canvas 2D API rendering backend.
  - [Visualize.Backend.Canvas.Arc](Visualize.Backend.Canvas.Arc.md): Converts an SVG arc command to a Canvas `ellipse` call.
  - [Visualize.Backend.CanvasBinary](Visualize.Backend.CanvasBinary.md): Binary encoding for Canvas 2D rendering commands.
  - [Visualize.Backend.CanvasBinary.Decoder](Visualize.Backend.CanvasBinary.Decoder.md): A decoder for the canvas binary format of spec/09 §4 and §5, written against the record
layouts the specification states — not against the encoder — so that
`decode(encode(x))` is a genuine round trip (D-36).
  - [Visualize.Backend.CanvasBinary.Opcodes](Visualize.Backend.CanvasBinary.Opcodes.md): Command bytes of the canvas binary format, shared by every encoder module.
  - [Visualize.Backend.CanvasBinary.PathEncoder](Visualize.Backend.CanvasBinary.PathEncoder.md): Encodes the path records of the canvas binary format — the point list (`path`,
`path32`) and the full command stream (`path_cubic`, `path_cubic32`) in either
coordinate width, and the f32 cubic run (`cubic_run`) (spec/09 §4.3, §4.5) — and the
number coercion the SVG and IR encoders share.

  - [Visualize.Backend.CanvasBinary.SVG](Visualize.Backend.CanvasBinary.SVG.md): Encodes `Visualize.SVG.Element` trees into the canvas binary format: element geometry,
presentation attributes, `transform` strings, `d` path strings and `points` lists, and the
`clip-path`, `mask` and `filter` references and `mix-blend-mode` an element draws with,
and the gradients and hatches its `url(#…)` fill and stroke name (spec/09 §4.7).

  - [Visualize.Backend.CanvasIncremental](Visualize.Backend.CanvasIncremental.md): Incremental rendering support for canvas binary format.
  - [Visualize.Backend.Hybrid](Visualize.Backend.Hybrid.md): Hybrid SVG/Canvas backend for optimized rendering.
  - [Visualize.Backend.SVG](Visualize.Backend.SVG.md): SVG rendering backend.
  - [Visualize.Benchmark](Visualize.Benchmark.md): Performance benchmarking utilities for comparing rendering backends.
  - [Visualize.IR.Element](Visualize.IR.Element.md): Backend-agnostic element representation for building scene graphs.
  - [Visualize.IR.Motion](Visualize.IR.Motion.md): What every backend writes of an element's motion (spec/02 §2.1, spec/14 §3.10, D-176).
  - [Visualize.IR.Paint](Visualize.IR.Paint.md): A paint that is not one color: the value of an element's `:fill` or `:stroke` when it is
a gradient (spec/02 §2.1, #652, D-175).
  - [Visualize.IR.Path](Visualize.IR.Path.md): Backend-agnostic path command representation.
  - [Visualize.IR.Transform](Visualize.IR.Transform.md): Backend-agnostic transformation representation.
  - [Visualize.Incremental](Visualize.Incremental.md): High-level API for incremental canvas rendering with scroll optimization.
  - [Visualize.Render](Visualize.Render.md): Main entry point for rendering visualizations.

- SVG elements
  - [Visualize.SVG](Visualize.SVG.md): Main SVG module providing a fluent API for building SVG documents.
  - [Visualize.SVG.Element](Visualize.SVG.Element.md): Represents an SVG element as an Elixir data structure.
  - [Visualize.SVG.Path](Visualize.SVG.Path.md): SVG path command builder.
  - [Visualize.SVG.Renderer](Visualize.SVG.Renderer.md): Renders SVG elements to strings or iolists.

- LiveView
  - [Visualize.Components](Visualize.Components.md): Phoenix LiveView function components for the common chart types (spec/10 §2).
  - [Visualize.Components.Board](Visualize.Components.Board.md): A live board in LiveView (spec/15 §9, D-146): the grid, its cells, and the hooks that
make them interactive, over a running `Visualize.Board.Server`.
  - [Visualize.Components.Board.Cell](Visualize.Components.Board.Cell.md): One cell of `Visualize.Components.Board` (spec/15 §9.1): placed on the grid, one tab
stop carrying `data-vis-cell`, its chart wrapped in `CrosshairHook`, `BrushHook` and
`KeyboardHook`, and its state drawn over or instead of the chart. Updated by
`Visualize.Components.Board.forward/2` with a `Visualize.Board.View`; never blank, a
cell with no view yet shows `:loading`.
  - [Visualize.Components.Chart](Visualize.Components.Chart.md): A chart whose marks declare events, in LiveView (spec/10 §19, D-170).
  - [Visualize.Components.Tree](Visualize.Components.Tree.md): Phoenix LiveView function components for hierarchies (spec/10 §3): a node-link tree,
a treemap and a sunburst.
  - [Visualize.Hooks](Visualize.Hooks.md): Phoenix LiveView JavaScript hooks for interactive visualizations.
  - [Visualize.Hooks.Board](Visualize.Hooks.Board.md): Phoenix LiveView hook for a live board's container (spec/10 §18, spec/15 §9, D-146).
  - [Visualize.Hooks.Brush](Visualize.Hooks.Brush.md): Phoenix LiveView hook for brush selection interactions.
  - [Visualize.Hooks.Builder](Visualize.Hooks.Builder.md): Phoenix LiveView hook for the chart builder's two browser gestures (spec/10 §16).
  - [Visualize.Hooks.Canvas](Visualize.Hooks.Canvas.md): Phoenix LiveView hook that replays Canvas 2D commands on a `<canvas>`.
  - [Visualize.Hooks.CanvasBinary](Visualize.Hooks.CanvasBinary.md): Phoenix LiveView hook that replays the canvas binary format on a `<canvas>`.
  - [Visualize.Hooks.CanvasIncremental](Visualize.Hooks.CanvasIncremental.md): Phoenix LiveView hook for scroll-and-copy incremental canvas rendering.
  - [Visualize.Hooks.Crosshair](Visualize.Hooks.Crosshair.md): Phoenix LiveView hook that snaps a rule and per-series markers to the nearest x of
the data (spec/10 §13).
  - [Visualize.Hooks.Keyboard](Visualize.Hooks.Keyboard.md): Phoenix LiveView hook that reaches a chart's points from the keyboard (spec/10 §17,
spec/14 §21.5, D-142).
  - [Visualize.Hooks.Legend](Visualize.Hooks.Legend.md): Phoenix LiveView hook that hides and shows a series from its legend entry (spec/10 §14).
  - [Visualize.Hooks.Motion](Visualize.Hooks.Motion.md): The frame loop the canvas hooks move a style's motion in (spec/10 §4.5, spec/14 §3.10,
D-176).
  - [Visualize.Hooks.Resize](Visualize.Hooks.Resize.md): Phoenix LiveView hook that reports a container's size to the LiveView (spec/10 §10).
  - [Visualize.Hooks.Sync](Visualize.Hooks.Sync.md): The bus a sync group's tooltips and crosshairs share hover over, and its brushes the brushed
window (spec/10 §4.3, §6.4, D-116, D-117).
  - [Visualize.Hooks.Tooltip](Visualize.Hooks.Tooltip.md): Phoenix LiveView hook that shows a datum's fields under the pointer (spec/10 §12).
  - [Visualize.Hooks.Zoom](Visualize.Hooks.Zoom.md): Phoenix LiveView hook for zoom and pan interactions.

## Mix Tasks

- [mix vis.advisories](Mix.Tasks.Vis.Advisories.md): Fails when `mix hex.audit` reports a security advisory or a retired package in the
library's `mix.lock` or in `examples/mix.lock` that `audit/advisories_allowlist.exs` does
not allow, or when an allowlist entry is malformed or stale (`Visualize.Audit.Advisories`,
D-207). Both projects need their dependencies fetched.
- [mix vis.atoms](Mix.Tasks.Vis.Atoms.md): Fails when `lib/` calls `String.to_atom`, `:erlang.binary_to_atom`, `List.to_atom` or
`:erlang.list_to_atom`, or interpolates an atom literal, outside the allowlist of
`audit/atoms_allowlist.exs`, or when an allowlist entry no longer matches what it says
(`Visualize.Audit.Atoms`, D-195).
- [mix vis.citations](Mix.Tasks.Vis.Citations.md): Fails when a citation of a specification section in `spec/`, `lib/`, `test/` or `specs/`
names a heading its document does not have: `spec/NN §id`, `spec/NN-slug.md §id`, a
specification document's `[NN-slug](NN-slug.md) §id`, and every id of a list or range
that continues one. spec/13's `D-N` headings are ids; a heading in a code fence is not.
- [mix vis.headings](Mix.Tasks.Vis.Headings.md): Fails when any document under `spec/` breaks the heading discipline: more or fewer than one
`#` title, no `**Status:**` line on line 3, an unnumbered heading, a number that does not
match its level, a gap or duplicate in the decimal numbering, table rows without a header
and separator row, or a table row whose first cell is blank.
- [mix vis.spelling](Mix.Tasks.Vis.Spelling.md): Fails when a British spelling appears in `lib/`, `test/`, `specs/`, `spec/`, `guides/`,
`README.md`, the CHANGELOG's unreleased entries or the examples app, outside the
allowlist of `Visualize.Audit.Spelling` (Elixir's behaviour, quoted third-party text,
released CHANGELOG entries and lines marked `spelling: allow`).
- [mix vis.surface](Mix.Tasks.Vis.Surface.md): Cross-references every function `spec/` declares against every public function `lib/`
defines, and renders the result to `API_SURFACE.md`.

