| layout | splash | ||||||
|---|---|---|---|---|---|---|---|
| title | Packages & Tools | ||||||
| author_profile | true | ||||||
| classes | wide | ||||||
| header |
|
Browser-first research tools for crystal & magnetic structure refinement, RMC analysis, neutron diffuse scattering, phonon dynamics, and experiment planning, several with AI agents that work through the tools' own analyses (how the agents are built). These projects emphasize local data privacy, interactive visualization, and deployable workflows that can run directly from GitHub Pages when the science allows it.
Crystal and magnetic structure refinement that runs entirely in the browser.
A public-beta workbench for powder, single-crystal, and pair-distribution-function refinement with X-ray or neutron data, on one engine.
- Problem: Refinement means choosing among several specialist packages, each with its own formats and conventions — a steep start before a first fit.
- Approach: A tested TypeScript core (1,700+ tests), cross-checked against GSAS-II and PDFfit2, behind a guided workflow from data import to refined nuclear and magnetic structures.
- Value: Nothing to install and data stays local. Fits report correlations and uncertainties, not just an agreement factor.
- AI agent: An in-app Agent (Claude or a local model) works the fit through the page's own controls; you approve each change and can undo it, and the engine, not the model, computes every refined value. The same core is open to other agents as MCP tools.
Quick looks at 3D neutron scattering volumes, in the browser.
A no-install viewer for Mantid MDHistoWorkspace and 3D NXdata files, with reciprocal-space slices, line cuts, symmetry averaging, and artifact masking — then one click hands the cleaned volume to NEBULA3D.
- Problem: A first look at a 3D single-crystal volume usually means opening Mantid or writing one-off scripts.
- Approach: Slices drawn in true reciprocal geometry from the UB matrix, and symmetry averaging applied exactly on the bin grid for any Laue class, with a check that the operations fit the cell.
- Value: Opens a 401³ volume in about 2 s with data kept local, compares two temperatures side by side, and exports a symmetrized, masked volume straight into NEBULA3D's 3D-ΔPDF pipeline.
Neutron Elastic Background Utility for Local Analysis and 3D-ΔPDF.
A Python toolkit and browser app that cleans 3D neutron or X-ray diffuse-scattering volumes and computes 3D-ΔPDF maps.
- Problem: Weak diffuse signal is often buried under powder rings, Bragg peaks, and background before any 3D-ΔPDF interpretation can begin.
- Approach: One reproducible pipeline — powder-ring subtraction, Bragg-peak removal and backfill, background flattening, and the ΔPDF transform — with visual checks at each step, symmetry averaging so the ΔPDF keeps the declared symmetry, and UB refinement from Bragg-peak positions.
- Value: The same pipeline runs natively or entirely in the browser via Pyodide, so every cleanup decision is inspectable and repeatable; 570+ Python and 300+ web tests.
- AI agent: NEBULA Pilot, on a local or cloud model, grades each stage from unit-tested metrics, tunes the pipeline within hard limits, and writes a measured analysis report.
A no-install browser dashboard for RMCProfile: open a local run folder to review fits, structures, and atomic displacements without uploading data.
- Problem: Judging an RMC refinement means reading plots, logs, structures, and fit metrics that live in separate files and tools.
- Approach: Reads a run folder in place and brings fits, density maps, displacement analysis, and 3D structures into one view.
- Value: Live monitoring while a run writes, and figure export.
- AI agent (beta): An AI Copilot that answers questions about the run by calling the Workbench's own analyses and checking each result; on two local models, 5 and 4 of 6 answers were fully right.
A browser app that infers harmonic phonon band structures, animated modes, simulated neutron spectra, and DOS from RMCProfile ensembles.
- Problem: RMC models capture measured local disorder, but turning them into lattice dynamics usually takes separate scripts and a computing backend.
- Approach: Derives phonons from the ensemble's displacement correlations and runs the heavy linear algebra on the user's GPU via WebGPU.
- Value: Interactive dispersion curves, mode animation, and simulated INS with phonopy-style export — no scientific stack to install.
Neutron Experiment Planner: plan diffraction measurements from a crystal structure, in the browser.
A no-install planner for SNS diffraction experiments: reflections and structure factors from a CIF, powder patterns of NOMAD and POWGEN banks, TOPAZ and CORELLI measurement plans, and MDNorm binning.
- Problem: Planning a beamtime means working out, instrument by instrument, which reflections a setting records and what the data will resolve.
- Approach: Instrument geometry from Mantid's instrument definitions and measured peak widths, with every formula and data source documented; geometry and relative Bragg intensities only.
- AI agent (in development): The same calculations as 26 MCP tools for AI agents, including hand-offs that write inputs for MATERIA, NEBULA3D, and the NeXus Viewer.
An early, exploratory prototype — a research direction I am actively learning in, not a finished tool.
A closed-loop experiment: an LLM agent proposes candidate materials, screens them with physics-grounded surrogate models, and iterates on the results — on local models by default.
- Question: Can an LLM agent using real domain tools help decide which materials to try next — measurably, not anecdotally?
- Approach: A proposer and an independent critic drive deterministic tools (CHGNet relaxation, convex-hull stability, band-gap models), with every candidate logged.
- Honest status: An early prototype. Compared against non-LLM baselines under the same cap on relaxations, not matched on total compute — results are exploratory.



