
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.

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.

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

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.

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.