The Cassius Project

Tools for Reasoning about Web Page Layouts

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.

Project News

  1. Our paper on Troika, the proof assistant version of VizAssert, has been accepted to OOPSLA’19! Come talk to us in Athens!
  2. Pavel talked about Cassius at the University of Utah Research Colloquium.
  3. Pavel gave a summary of the Cassius project at MSR.
  4. Pavel gave an overview of the Cassius project at RacketCon 2018.
  5. Adam has published a description of his minimizer for web pages, which he built to help debug Cassius.
  6. Pavel gave the talk on VizAssert at PLDI 2018.
  7. Pavel gave a talk on the broader Cassius project at PNW PLSE 2018.
  8. VizAssert has been accepted to PLDI’18. Come talk to us in Philly!
  9. Cassius has been accepted to OOPSLA'16. Read our paper to find out how Cassius works.
  10. Pavel Panchekha, the main author of Cassius, won the Adobe Research Fellowship for his work on Cassius.

The 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, and Emina Torlak.