diff ref struct Rietveld refinement for the Mac · powder diffraction with X-rays, synchrotron and neutrons · started October 2026

Overview

Learn what the Rietveld programs in use do and how they do it, and build from that a Mac app for powder diffraction refinement that does all of it, and more, in the open.

FullProf, GSAS-II and the commercial programs refine crystal structures from laboratory X-ray, synchrotron and neutron powder patterns. Each one has strengths the others lack. This project first studies three of the most used (FullProf, GSAS-II and Jana2020) and records what they share and what is unique to each. It then designs and builds a native macOS app: a refinement core, a live cycle-by-cycle plot, interactive graphics, the complete space-group tables, a control-file builder and an editor made for the control and output files. This site holds the brief, that study, the design, the log, the release notes and the manuals.

34
requirements in the brief
9
programs on the long list (2 shortlisted)
445
log entries
81
decisions recorded
Site last built 2026-11-02 07:40

Latest in the log

All entries →

Findings, decisions with their reasons, and the work done. Newest first.

The programs on the long list

Background →

Nine candidates, five shortlisted on measured evidence (L008), three studied (L009).

FullProf SuiteJ. Rodríguez-Carvajal, ILL

Named in the brief. Fortran engine driven by a .pcr control file, with WinPLOTR for the live cycle-by-cycle plot, EdPCR for editing the control file, and a suite of satellite tools. Strong in magnetic structures and neutron data.

studied
free, closed source
Windows, Linux, macOS
X-ray, neutron (CW, TOF), magnetic
GSAS-IIB. Toby, R. Von Dreele, Argonne

Named in the brief (GSAS). Python with compiled kernels and a wxPython GUI; successor of GSAS/EXPGUI. Covers the whole path from 2D images to refinement, sequential and parametric refinement, and scripting.

studied
open source
Windows, Linux, macOS
X-ray, neutron (CW, TOF)
TOPASBruker (A. Coelho); TOPAS-Academic

Commercial. Fundamental-parameters peak shapes and a macro language for the input file; widely used for quantitative phase analysis and for restraints and rigid bodies.

excluded
commercial
Windows
X-ray, neutron
Jana2020V. Petříček, M. Dušek, L. Palatinus, Prague

Free. Modulated and composite structures, magnetic symmetry, powder and single crystal in one program.

excluded
free
Windows
X-ray, neutron, electron
HighScore PlusMalvern Panalytical

Commercial. Phase identification with the ICDD and COD databases and Rietveld refinement aimed at routine laboratory work.

excluded
commercial
Windows
X-ray (lab), neutron
MAUDL. Lutterotti, Trento

Free. Combined analysis: texture, residual stress and microstructure together with the crystal structure.

excluded
free
Java (any)
X-ray, neutron, electron, TOF
Profex / BGMNN. Döbelin; BGMN by J. Bergmann

Free. A GUI around BGMN, with peak shapes computed from the instrument geometry; aimed at quantitative phase analysis.

excluded
free
Windows, Linux, macOS
X-ray
RIETAN-FPF. Izumi

Free. Rietveld and whole-pattern fitting, maximum-entropy method with Dysnomia, linked with VESTA.

excluded
free
Windows, macOS
X-ray, neutron
SmartLab Studio II (PDXL)Rigaku

Commercial. The Rigaku instrument suite's analysis package, with Rietveld refinement.

excluded
commercial
Windows
X-ray (lab)

How this site works

Method →
01

The brief, kept whole

The founding request is on the Brief page verbatim and organised into numbered requirements, none left out. Every later page says which requirements it serves.

02

Background before design

The programs that inspire the app are studied from their manuals and papers, each claim with its source, on the Background pages.

03

Everything generated, everything logged

tools/build.py rebuilds the navigation, the brief, the long list, the log and the release notes from data/*.yml on each render. Decisions go in the log the day they are taken.

04

Two manuals

The manual follows the releases: how to use the app, and the core's theoretical basis, each equation pointing to the code that implements it.