ESTELA
UCF Physics · Physics-education research with Dr. Zhongzhou Chen
If every student in a large intro course takes the same exam, the answers travel. The usual
fix is to write several versions, but then you have to show the versions are equally hard, or a
student's score depends on which one they drew. Dr. Chen's group works on isomorphic
problems: problems with the same physics, the same reasoning steps and the same difficulty, and
only a different surface story. A cart on a track, a crate on a floor and a sled on snow can be
one problem in three costumes. The group writes banks of these for introductory mechanics with
help from generative AI
(Liu et al., 2026).
The exam builder
A bank is only useful if an instructor can turn it into an exam, so I built the tool that
does that. It's a desktop app (Rust and Tauri 2) that lets an instructor browse the banks by
course and topic, preview problems with rendered equations, and add banks to a cart. From one
cart it generates up to ten versions of the exam. Each version draws a different isomorphic
problem from every bank in the cart, and multiple-choice options are reshuffled per version.
Answer keys come out alongside each version.
Exports go to LaTeX on the exam document class, to Word with native equations
through a bundled copy of Pandoc, to an HTML preview, or to a single ZIP with every version, key
and figure. Instructors can download banks from inside the app, and CI builds installers for
Windows, macOS and Linux, so nobody has to install LaTeX or Python to use it. It's now in use by
instructors outside UCF.
Download ·
source
Grading and generation at scale
I built a pipeline on the Azure OpenAI batch API that drafts candidate problems and checks
them against instructor criteria, and presented batch-processing for automated grading at UCF's
downtown campus in June 2026.
Checking what the model writes
The group's next step is a multi-agent pipeline that writes isomorphic variants on its own.
I ran its first pilot runs and found that some generated problems shipped with answer keys that
contradicted their own questions, and that the language-model reviewer meant to catch exactly that
was letting them through. Where a problem's answer can be worked out mechanically, a second model
is the wrong tool for checking it, so I replaced the reviewer's verdict with a deterministic
check. The code derives the correct answer from the problem itself and rejects any draft that
disagrees; the model is only asked to repair what the check has already flagged, and anything it
can't fix is withheld from the bank.
Alongside that I wrote the literature review behind the paper's related-work section, and
mined every equation out of the mechanics banks into a single library of the relations the
course actually uses, so future generators can be handed them directly. A paper is in
preparation.
Narvi
A side project for the same audience. Narvi lets an educator who doesn't code build a
PhET-style interactive demo by describing it in plain language. The agent asks one question at a
time, proposes a plan, generates a live demo in a sandboxed preview, and revises it until it's
right, then hands back a single HTML file to publish or email. It's built on LangGraph with a
human in the loop at every stage.
Source
See also photonic lanterns and
CELERIS.