Project
IonTrace
University of Sydney · Jan 2026 – Jun 2026
IonTrace is a browser-based tool I built as a research intern at the University of Sydney for working with atom probe tomography (APT) data, from raw files to an explorable 3D reconstruction, with AI-assisted parameter suggestions along the way.
- Role
- Research intern and IonTrace developer
- Tools
- Next.js, TypeScript, Python, Xe plasma FIB-SEM
- Software
- Research

Problem
APT datasets arrive in several file formats and can hold hundreds of thousands of ions. Researchers need one tool that can load them, run the reconstruction and let them explore the result without the 3D view slowing down.
Approach
Alongside the software, I worked through the full APT workflow: SEM-based sample preparation on a Xe plasma FIB-SEM, and fabricating specimens from metal powders by 3D printing and hardening.
IonTrace guides the user through five steps: upload, reconstruction, ranging, exploration and analysis. A Next.js/TypeScript front end sits on a Python backend that parses the multiple APT file formats and runs the reconstruction pipeline.
AI assistance is built into several steps. Reconstruction suggests values for its parameters from similar datasets, with an overall confidence score and High or Medium labels on each value. Ranging can generate mass-range intervals automatically with Auto-Range, and the Analysis metrics (cluster count, average spacing, interface width) carry the same confidence labels. An in-app research assistant sits alongside the workflow.
To keep the viewport responsive on very large datasets, I implemented a display-budget system that dynamically down-samples the point cloud. The user chooses how many points to render, and the interface shows the atoms currently visible, a level-of-detail setting and an estimated frame rate.
In the Exploration step you can toggle ion species, adjust point size and switch between points, density, clusters and iso-surface render modes.
Results
A working tool that loads, reconstructs and explores APT datasets, and stays responsive on datasets with hundreds of thousands of ions. The screenshots on this page use a sample dataset.
Gallery







