Lucas Ortengren

Projects

AniSOAP

Cersonsky Group, UW–Madison · 2023 – Present

AniSOAP is a Python package that extends the popular SOAP (Smooth Overlap of Atomic Positions) featurization to non-spherical particles, representing them as ellipsoids rather than spheres. This makes it possible to build machine learning models of coarse-grained molecular systems where orientation matters, such as liquid crystals, molecular crystals, and glasses.

I'm one of five co-authors of its implementation paper published in the Journal of Open Source Software in 2025. Performance-critical routines are written in Rust and called from Python; intermediate representations use the metatensor TensorMap format.

Source · Documentation · Paper

Geometrically-Informed Machine Learning on Molecular Crystals

Cersonsky Group, UW–Madison · 2024 – Present

An ongoing investigation into structural patterns in molecular crystals using AniSOAP. The dataset consists of 2,707 molecular crystals containing 3,242 distinct molecules, with DFT-calculated lattice and ground-state energies. The goal is to identify global structural trends that could inform the engineering of novel molecular crystals — for pharmaceuticals, semiconductors, and other functional materials.

An initial approach fitting an ellipsoid to each benzene-like ring captured too much intramolecular structure: PCA showed dominant dependence on benzene ring count, and HDBSCAN classified more than half the points as noise. Current work shifts to representing each whole molecule by its moment-of-inertia tensor (or a minimal bounding ellipsoid) to better surface global structural patterns.

I presented this work at two undergraduate research poster sessions.

Computing Heesch Numbers of Polykites

Madison Experimental Mathematics Lab, UW–Madison · Fall 2023

A team project on Heesch's problem: the question of which shapes can be surrounded by a (strictly) finite number of concentric rings of copies of themselves.

Working in a team of four, we built a Python program that reduces the Heesch number problem to Boolean satisfiability, following an approach Craig Kaplan introduced for polyominoes, polyiamonds, and polyhexes. We then ran our solver against Joseph Myers' enumeration of non-tiling polykites and determined the Heesch number of every n-kite up through n = 9. The largest Heesch number we observed was 2, achieved by several 7- and 8-kites.

I co-authored the final paper and helped design the research poster, which we presented to an audience of about 100 UW faculty and students.

Source