untethered atom · EBSD & TKD

EBSD & TKD · Part 1 of 8

How does EBSD indexing work?

Each pixel gets interviewed, the votes get counted: democracy, but for crystals.

An EBSD map of a million points is a million diffraction patterns, each one reduced to three numbers, the Euler angles, in about a millisecond, by software nobody watches. This page slows that millisecond down: you get one pattern, the same Hough transform the software uses, and the same voting scheme, and you carry a pattern all the way to an orientation yourself.

You never measure an orientation. You measure band positions, and then you vote.

01

The pattern machine

Tilt a sample to 70°, park the beam on one spot, and the phosphor screen fills with a web of bright bands. Every band is a lattice plane, seen edge-on. The pattern is not a picture of the microstructure; it is a picture of the crystal's orientation, projected onto a screen.

The mechanism runs in two steps. First the beam electrons scatter diffusely inside the interaction volume, which turns the single incident direction into electrons travelling in every direction at once: a point source of electrons buried a few tens of nanometres inside the crystal. Second, those electrons Bragg-diffract off the lattice planes on their way out. For each plane, the directions that satisfy Bragg's law form two cones, one on each side of the plane, opened up to within a degree or two of the plane itself because the Bragg angle at SEM energies is tiny. Where those flat cones intersect the screen you get two nearly straight edges with the plane's projection running up the middle: a Kikuchi band.

So the geometry is almost embarrassingly simple: a band's centreline is where the plane through the source point would slice the screen, and its width is set by the Bragg angle. Wide bands are widely spaced planes; narrow bands are fine ones. Where several bands cross, the planes share a common direction, a zone axis, and the crossing points are the poles of the crystal, laid out on the screen in exactly the arrangement the orientation dictates.

Kikuchi pattern simulator Drag on the pattern to rotate the crystal

Drag the pattern itself, or use the Euler sliders: same rotation, two handles

Wavelength λ
pm
θB for {111}
degrees
Widest band family
Bands crossing the screen
Drop the voltage from 30 kV to 5 kV and watch every band fatten while none of them move: the geometry belongs to the orientation, the widths belong to the physics. That separation is the whole reason indexing works. Then try the two strain sliders with the reference centrelines switched on: elastic strain moves the bands off their reference lines, plastic strain blurs them in place. Two different injuries, two completely different fingerprints.

Two equations run the entire show. Bragg's law sets the cone half-angle for each plane family, and the gnomonic projection puts the bands on the screen:

λ = h / √(2 me eV (1 + eV / 2mec²)) → θB = sin⁻¹(λ / 2dhkl) at 20 kV, λ ≈ 8.6 pm, so for copper {111}, with d = 0.209 nm, the Bragg angle is about 1.2°. The "cones" are 178° wide: effectively flat sheets hugging the plane. That is why Kikuchi band edges look like straight lines rather than the ellipses a textbook cone would suggest: they are conic sections, but of an absurdly flat cone. band width on screen ≈ 2 L θB / cos²ψ L is the source-to-screen distance and ψ the angle off the pattern centre. Bands broaden away from the centre: the projection stretches everything near the edges, which is one of several reasons the middle of the pattern is the trustworthy part.

Two of the chips deserve a word. Ti-6Al-4V's α phase is hexagonal: the simulator switches to the hcp reciprocal lattice (a = 0.293 nm, c = 0.467 nm), and the geometry changes character: the basal {0002} band, the three prism {101̅0} bands meeting it at 90°, and the six-fold carousel around [0001] are unmistakable once seen. Everything downstream (the Hough, the angle tables, the vote) runs the same algorithm with hexagonal symmetry, which is exactly how real software handles phases.

The two faces of strain

Elastic strain distorts the lattice, so it moves and re-widths the bands: the simulator applies a uniaxial stretch along specimen X (with ν = 0.33) to the reciprocal lattice, and with the reference centrelines on you can watch the bands slide off their unstrained positions, anisotropically, because the crystal is rotated relative to the load. Honesty note: the slider goes to 3% because real elastic strains (~10⁻³) shift bands by less than a Hough bin, which is precisely why conventional EBSD cannot see them and HR-EBSD cross-correlates raw pattern patches instead. Plastic strain fills the diffracting volume with dislocations, many slightly rotated sub-volumes diffracting at once, so the bands stay put and blur. That blur is what the image-quality channel harvests in part 7.

Go deeper: what this simulator is honest about, and what it fakes

The band geometry here is exact: every centreline, width, crossing angle and zone axis comes from the same Bragg + gnomonic arithmetic a real pattern obeys, so anything you conclude about positions and angles transfers to real data. The band intensities are a fake. Real Kikuchi bands are a many-beam dynamical diffraction problem: the excess-deficiency asymmetry, the fine structure inside bands, and the higher-order lines all need the full physics, which is why modern pattern simulation (Winkelmann's dynamical simulations, and everything built on them) solves the Schrödinger equation in the crystal rather than drawing bands.

The kinematic caricature is the right tool here for the same reason it was the wrong tool for intensity: Hough-based indexing only ever uses the geometry. The software throws the intensities away too. Dictionary indexing, matching whole measured patterns against libraries of dynamically simulated ones, is the approach that finally uses the intensities, and it buys robustness at roughly a thousand times the compute per point.

One more honest wrinkle: this page projects the crystal straight onto the screen, with no 70° sample tilt and no calibrated pattern centre. A real system chains crystal → sample → detector through both, and getting that chain wrong is the classic way to produce beautiful maps in the wrong reference frame, which is part 2's whole subject.

The thing to remember

The pattern is a rigid object. Rotate the crystal and every band moves together, like a signature written on a sphere that the screen can only see a window of. Indexing is just reading that signature, and it only needs the lines, not the light.

02

Finding the bands

Software cannot "see" a band. It sees a grid of grey pixels, and finding broad, fuzzy, overlapping stripes in a noisy image is a genuinely hard problem: hard enough that EBSD did not become automatic until someone borrowed a sixty-year-old trick from particle physics. The Hough transform turns the hard problem of finding lines into the easy problem of finding spots.

The idea is a change of coordinates. Any straight line in the image can be written down by two numbers: its perpendicular distance ρ from the image centre, and the angle θ of that perpendicular. So every possible line is a single point in a (θ, ρ) plane. The transform walks over every pixel in the pattern and lets it vote for every line that could pass through it: each pixel's votes trace out a sinusoid in (θ, ρ). Pixels that genuinely lie along one band all vote for that band's (θ, ρ) once, and their sinusoids all intersect at one point. A band (thousands of aligned pixels) becomes a bright peak. Noise stays smeared out. Then you find peaks, which is easy, and read the band positions off.

Pattern → Hough space Hover either panel: they explain each other
Detected band centrelines The line your cursor picks in Hough space
Detected peaks Sinusoid of the pattern pixel under your cursor
Bands found
Mean position error
degrees, vs known truth
Worst band
degrees off
False detections
Push the noise slider to the top. The pattern becomes almost unreadable to your eye well after the Hough peaks stop moving: averaging along a whole line is a powerful noise filter. This is why EBSD can run at exposure times your eye would call hopeless.
Go deeper: the butterfly, the bins, and what limits the precision

A Kikuchi band is not a line; it is a stripe with width, and in Hough space a stripe becomes a peak with a characteristic butterfly shape: a bright core with dark wings above and below, from the band's darker edges. Production software convolves Hough space with a butterfly mask shaped like exactly that, so real bands light up and stray lines do not. The detector here uses the same trick in miniature.

The (θ, ρ) plane is binned, typically around 1° in θ, and the binning is a hard floor on how precisely a band can be located. That floor propagates directly into the orientation: band positions good to a few tenths of a degree give orientations good to a few tenths of a degree, and that is exactly the ~0.5° precision quoted for conventional Hough-based EBSD. When people need to do better (mapping elastic strains, or tiny lattice rotations inside one grain), they abandon the Hough entirely and cross-correlate raw pattern patches instead (HR-EBSD), which reaches around 0.006°. Different question, different tool.

Naming honesty: what EBSD software calls the Hough transform, applied to greyscale intensities, is mathematically the Radon transform. The names blurred together decades ago and nobody is getting them back apart now.

A trap worth naming

The Hough finds the bands you asked for. Ask for ten bands in a pattern that only has seven clear ones and it will cheerfully hand you three fabrications, each with a plausible-looking (θ, ρ). Watch the false-detection counter as you move the "bands to keep" slider: the indexing step downstream has to survive whatever this step invents.

03

From bands to Euler angles

Now the software holds a list of band positions and needs names for them: which band is {111}, which is {200}? The key is that the angle between two lattice planes depends only on their Miller indices, never on the orientation. In a cubic crystal, {111} meets {200} at 54.7° whatever the crystal is doing. Angles are the fingerprint.

So the algorithm, essentially unchanged since the first automated indexing in the early 1990s, takes the detected bands three at a time, measures the three angles in each triplet, and looks them up in a precomputed table of interplanar angles for the phase. Each triplet that matches proposes an orientation; the proposals vote; the orientation with the most votes wins. Then one clean least-squares problem (find the rotation that best maps the measured band normals onto their assigned crystal planes) turns the winning assignment into the three Euler angles that end up in your map file.

The indexing engine The same triplet-vote algorithm commercial software runs
Indexed band, with its (hkl) Band the solution cannot explain
φ1 · Φ · φ2 recovered
true: · symmetry-equivalent triple nearest the truth shown
Orientation error
degrees, vs truth
Confidence index
(V₁ − V₂) / Vtotal
MAD
deg · mean angular deviation
Candidate solutions
Every detected band, the plane the winning solution assigned to it, and how far off the fit says it sits. This table is what MAD is averaging.
BandAssigned planeDeviation from fitStatus
Set the position error to 1.5° and the tolerance to 0.5°, then re-index a few times: the vote fractures, CI collapses, and occasionally the wrong orientation wins outright, with a perfectly green-looking MAD. A single confidence number is never the whole story.

The least-squares step at the end has a name: it is Wahba's problem, the same one a spacecraft solves when it matches star-tracker sightings to a catalogue:

minimise over g: Σi ‖ n̂c,i − g n̂lab,i ‖² → g → (φ1, Φ, φ2) lab,i are the measured band normals, n̂c,i the crystal plane normals the vote assigned to them, and g the rotation being solved for, reported as Bunge Euler angles. Star tracker, EBSD pattern: same maths, different sky. CI = (V₁ − V₂) / Vtotal MAD = ⟨ angle between measured band and assigned plane ⟩ V₁ and V₂ are the vote counts of the best and second-best orientations. CI asks "did the election have a clear winner?"; MAD asks "how well does the winner explain the bands?" They fail in different ways, which is why both exist.
Go deeper: how good is the answer, and when the vote elects the wrong crystal

With clean bands the recovered orientation lands within a couple of tenths of a degree of the truth, and it degrades roughly linearly with band-position error, which is why the ~0.3–0.5° the Hough delivers becomes the ~0.5° orientation precision of the whole technique. Absolute accuracy is worse (a degree or two) because it inherits every calibration error in the geometry, pattern centre above all.

The failure mode worth respecting is not noise; it is pseudosymmetry. Some crystals, and some orientations of easy crystals, produce band arrangements that two different orientations can explain almost equally well; the vote splits, CI dives towards zero, and the map fills with speckle that looks like noise but is actually the software alternating between two confident wrong answers. A low-CI point is not a bad measurement; it is an honest report of an ambiguous election. What cleanup does to those honest reports is part 5's subject.

And a scaling worth knowing: this whole pipeline (Hough, triplet vote, Wahba solve) runs comfortably at thousands of patterns per second on modern hardware, which is what makes mapping practical at all. The engine on this page is the real algorithm, just unhurried.

The thing to remember

Every coloured pixel in every EBSD map you have ever seen is the output of this pipeline: bands found by a transform, named by a vote, fitted by least squares. The map inherits every property of that pipeline: its precision, its confidence measures, and its failure modes. When a map looks strange, the question is never "what is wrong with the material?" first. It is "what did the vote see?"

Sources & further reading

Cite this page: Tripathy, Manisha. “From Kikuchi bands to an orientation.” untethered atom, 2026, https://untetheredatom.com/ebsd/ebsd-1-kikuchi-to-orientation.
BibTeX
@misc{tripathy2026fromkikuchibandstoanorie,
  author = {Tripathy, Manisha},
  title  = {From Kikuchi bands to an orientation},
  year   = {2026},
  howpublished = {\url{https://untetheredatom.com/ebsd/ebsd-1-kikuchi-to-orientation}},
  note   = {Interactive teaching resource}
}
Last updated 12 August 2026.