The Cassius Project

Automated Reasoning for Web Page Layout

The Cassius Project develops tools that understand how web pages render. Leveraging modern equation solvers, the Cassius Project hopes to develop a new class of verification, synthesis and debugging tools for web pages.


VizAssert checks that your website satisfies accessibility, usability, and design properties, no matter the user's device size, font size preferences, or browser.

(define-test (interactive-onscreen b)
  (=> (is-interactive b) (onscreen b))
This assertion checks that interactive elements, like links, buttons, and form elements, are onscreen.

VizAssert provides mathematical guarantees that, if your assertion passes, no possible set of device size or user preferences could violate the assertion. When that can't be done, VizAssert provides a counterexample and points out the element that violates the assertion. VizAssert works on most small web pages 50–200 elements in size.

The Cassius Framework

The Cassius Framework is a mathematical formalization of web page layout, mostly implementing CSS 2.1. CSS is huge, so Cassius supports only a subset:

The Cassius Framework matches the behavior of existing web browsers and passes the official conformance tests. It is the core of the tools developed by the Cassius Project. The theoretical foundations of the Cassius Framework are described in our OOPSLA'16 paper.

Cassius Project News

  1. VizAssert has been (conditionally) accepted to PLDI’18. Come talk to us in Philly!
  2. Cassius has been accepted to OOPSLA'16. Read our paper to find out how Cassius works.
  3. Pavel Panchekha, the main author of Cassius, won the Adobe Research Fellowship for his work on Cassius.

The Cassius Developers

The Cassius Project comes from the Programming Languages and Software Engineering group at the University of Washington. It is developed by Pavel Panchekha, Adam Timothy Geller, Shoaib Kamil, Michael Ernst, Zachary Tatlock, Emina Torlak.