Draco: Formalizing Visualization Design Knowledge as Constraints

Draco is a formal framework for representing design knowledge about effective visualization design as a collection of constraints. This knowledge can be applied with standard constraint solvers to recommend charts or explore the design space of visualization.

You can use Draco to find effective visualization designs in Vega-Lite. Draco's constraints are implemented in based on Answer Set Programming (ASP) and solved with the Clingo constraint solver. Draco can learn weights for the recommendation system directly from the results of graphical perception experiments.

Code Knowledge Base Online Editor JavaScript Module


Formalizing Visualization Design Knowledge as Constraints: Actionable and Extensible Models in Draco, InfoVis Best Paper, 2018

Draco: Representing, Applying & Learning Visualization Design Guidelines, Blog Post


You can learn about the Draco knowledge base in the Draco code. Documentation about the APIs is coming soon.


Draco is being developed at the Interactive Data Lab at the University of Washington. The main contributors are: Dominik Moritz, Chenglong Wang, Greg L. Nelson, Halden Lin, Adam M. Smith, Bill Howe, and Jeffrey Heer.