Skip to content

vizopt

vizopt is a mathematical optimization library for data visualization. It provides a general framework for defining and solving layout optimization problems — such as bubble layouts and label placement — using JAX for automatic differentiation and JIT compilation.

Features

  • General optimization framework — define multi-objective loss functions from composable terms
  • Gradient descent via Adam — efficient JAX-based optimization with JIT compilation
  • Bubble layout — circular node layouts with hierarchical inclusion constraints
  • NetworkX integration — works directly with NetworkX graphs
  • Pydantic validation — optional input validation for problem templates

Examples

See the examples gallery for worked examples.

Quick Example

Installation

pip install vizopt

Requires Python 3.13+.