Project Cover

DSL for Interactive Formulas and Visualizations

Role

Research Engineer

Team

Zain Khan, Andrew Head, Jeff Tao, Marti Hearst

Duration

Jan 2025 - Present

Overview

Since spring 2025, I have been working on a project called Formulize as a member of the Human-Computer Interactions research group at Penn. I worked closely with my partner Zain Khan, as well as Professor and advisor Andrew Head, PhD student advisor Jeff Tao, and Professor Marti Hearst.

Formulize aims to develop a DSL (Domain-Specific Language) that enhances the accessibility and comprehension of mathematical formulas in scientific communication. The research focuses on introducing language constructs to enable interactivity, such as dynamic computations and interactive variables (scrubbable, editable, etc.), while adding export features for seamless integration into web pages and web applications. It also seeks to expand the expressive potential of formulas with graphical displays for visualizing dependencies and linking formulas to alternative representations.

The tool leverages TypeScript for interactivity, LaTeX for formula formatting, and MathML to ensure compatibility across diverse platforms. Overall, this tool aims to make complex scientific notation more engaging, intuitive, and broadly accessible, transforming how learners and professionals engage with mathematical concepts.

During the summer of 2025, I was the sole engineer behind all features on the rendering side, from the formulas to the visualizations to the playground interface. Feel free to click on the button below to go to the Formulize Playground to play with the tool yourself.

Project Cover

Formulize contains built-in capabilities for creating interactive formulas and visualization linkages for 2D and 3D plot visualizations. This means changes to variable values propagate across both the rendered formula and its visualization.

Project Cover

Formulize is inclusive of the different forms in which values and variables are displayed in mathematics, such as vectors and matrices.

Project Cover

Formulize is powerful. It allows users to specify complex variable names and allows computation to be propagated and solved across all formula renderings. Additionally, it is possible for users to create custom visualizations to link to formulas.

Project Cover

Lastly, Formulize enables users to link manually written JavaScript code to formulas to enable step-by-step computation of a formula (expressed in code form) to be reflected in the interactive formula display.