Lecture 14 • Autumn 2026

Real Space, Reciprocal Space
and Miller Indices

How do we name a point, a direction or a plane in a crystal? Why does the hexagonal system need four indices? And what is the “reciprocal” lattice in which every family of planes becomes a single point, a vector \(\mathbf g_{hkl}\) whose length is \(1/d_{hkl}\)?

2/3, 7/4, 3/5
3/2, 4/7, 5/3
× 42
(63 24 70)
InterceptsReciprocalsClear fractionsMiller indices
A plane cutting the axes at 2/3, 7/4 and 3/5
Real Space

The Direct (or Real) Space Lattice

A lattice is an infinite array of points in space in which every lattice point has the same environment. Because the array is periodic, every point can be reached from the origin by a vector.

\[\mathbf t = u_1\mathbf a_1 + u_2\mathbf a_2 + u_3\mathbf a_3, \qquad u_1,\,u_2,\,u_3 \in \mathbb{Z}\ \text{(integers)}\]

Here \(\mathbf a_1\), \(\mathbf a_2\) and \(\mathbf a_3\) are non-collinear vectors pointing in three different directions. They are called the basis vectors. If the point P sits at \((u_1, u_2, u_3)\), the point Q at \((2u_1, 2u_2, 2u_3)\) is reached by \(2\mathbf t\), which also lies on the lattice.

Written compactly, with the implied summation (Einstein) convention, a repeated index is summed over:

\[\mathbf t = \sum_{i=1}^{3} u_i\,\mathbf a_i \;\equiv\; u_i\,\mathbf a_i\]
Centred cells too. Even for a lattice whose conventional cell is centred, every lattice point can be written as \(\mathbf t = u_1\mathbf a_1 + u_2\mathbf a_2 + u_3\mathbf a_3\) with integer \(u_i\). The only condition is that the \(\mathbf a_i\) are taken along the edges of a primitive cell of that lattice. Switch the builder to Centred rectangular to see why.

There is an infinite number of possible choices of basis vectors. In practice, we choose them to make use of the symmetry of the lattice. Try the different basis choices in the builder: every primitive choice reaches every point with integer coefficients; a non-primitive choice leaves some points needing fractions.

Interactive

Lattice Vector Builder

u1
u2
3D Interactive

Walking to a Lattice Point in 3D

A triclinic lattice (no two edges equal, no right angles). Choose \(u_1, u_2, u_3\) and watch \(\mathbf t\) assemble tip-to-tail: \(u_1\) steps along \(\mathbf a_1\), then \(u_2\) along \(\mathbf a_2\), then \(u_3\) along \(\mathbf a_3\).

drag to rotate
u11
u21
u31
Translation vector
u1a1 u2a2 u3a3 t
Crystallographic Computations

Essentially, Vector Algebra

Once every lattice point is a vector, the everyday questions of crystallography (which way does it point? how far apart? at what angle?) become questions about vectors.

Direction \([uvw]\)

The direction of \(\mathbf t\) is written \([uvw]\): the smallest integers proportional to the components of \(\mathbf t\). These are the Miller indices for directions.

\(\mathbf t=\mathbf a_1+2\mathbf a_2+3\mathbf a_3 \Rightarrow [123]\)
\(\mathbf t=-0.3\mathbf a_1+0.4\mathbf a_2+0.5\mathbf a_3 \Rightarrow [\bar 3 45]\)

Distance

The distance between the points \(\mathbf t_1\) and \(\mathbf t_2\):

\[d(\mathbf t_1,\mathbf t_2)=|\mathbf t_2-\mathbf t_1| = \sqrt{(\mathbf t_2-\mathbf t_1)\cdot(\mathbf t_2-\mathbf t_1)}\]

True in both Cartesian and non-Cartesian frames of reference.

Angle

From \(\mathbf t_1\cdot\mathbf t_2 = |\mathbf t_1||\mathbf t_2|\cos\gamma\), with \(\gamma\) the angle between the vectors:

\[\gamma=\cos^{-1}\!\left(\frac{\mathbf t_1\cdot\mathbf t_2}{|\mathbf t_1|\,|\mathbf t_2|}\right)\]
Interactive

Direction-Index Reducer

Type the components of \(\mathbf t\) along \(\mathbf a_1, \mathbf a_2, \mathbf a_3\). Decimals and fractions (e.g. -0.3, 1/2) are fine.

t = a1 + a2 + a3
    Direction [345]
    drag to rotate
    3D Interactive

    Distance & Angle in Any Cell

    In a non-Cartesian cell the dot product must remember that the basis vectors are neither unit length nor perpendicular. Expanding \(\mathbf t_1\cdot\mathbf t_2 = x_i y_j\,(\mathbf a_i\cdot\mathbf a_j)\) collects the nine products \(\mathbf a_i\cdot\mathbf a_j\) into the metric tensor \(G\), so \(\mathbf t_1\cdot\mathbf t_2 = \mathbf x^{\mathsf T} G\,\mathbf y\). The red boxes show the answer you would get by wrongly treating the axes as perpendicular, Cartesian-style.

    drag to rotate
    t1
    t2
    Metric tensor G (Ų)
    Naming Planes

    Miller Indices for Planes

    A lattice plane may be formed by any three non-collinear lattice points. How do we identify it? The recipe below works through the plane that cuts the axes at \(2/3\), \(7/4\) and \(3/5\).

    1
    Find the intercepts of the plane with the basis vectors, in units of the lengths of those basis vectors.
    Here: \(2/3\) along \(\mathbf a_1\), \(7/4\) along \(\mathbf a_2\), \(3/5\) along \(\mathbf a_3\).
    2
    Take the inverses of all the intercepts.
    \(\Rightarrow (3/2,\ 4/7,\ 5/3)\)
    3
    Clear the fractions: multiply by the smallest integer that makes all three integers and relatively prime.
    Multiplying by 42 gives \((63,\ 24,\ 70)\). The only common factor of 63, 24 and 70 is 1, so they are relatively prime.
    4
    Write the three numbers without commas in round brackets.
    \(\Rightarrow (63\ 24\ 70)\). Spaces are used only because the indices have two digits; \((1\,2\,3)\) is normally written \((123)\).

    Such large indices are very uncommon in practice. What matters is the principle.

    Why they are powerful: the system of Miller indices is valid for all Bravais lattices, whether or not the basis vectors form a Cartesian coordinate system. Toggle the oblique cell in the machine below: the plane shears with the cell, but its indices do not change.
    drag to rotateIntercepts: 2/3, 7/4, 3/5
    Interactive

    Miller Index Machine

    Enter the intercepts along \(\mathbf a_1, \mathbf a_2, \mathbf a_3\) (fractions, negatives or inf for a plane parallel to that axis).

    drag to rotate
    Symmetry-Equivalent Sets

    Families of Directions and Planes

    In a cube, [100], [010], [001] and their negatives \([\bar100]\), \([0\bar10]\), \([00\bar1]\) are symmetrically equivalent. The whole set is a family, written with angle brackets: \(\langle100\rangle\).

    [uvw]
    one specific direction
    ⟨uvw⟩
    family of equivalent directions
    (hkl)
    one specific plane (set of parallel planes)
    {hkl}
    family of equivalent planes

    For a cube, the members of a family are obtained from all permutations of the indices, including negative signs. So \(\langle110\rangle\) for a cube stands for [110], [101], [011], \([\bar110]\), \([1\bar10]\), \([\bar1\bar10]\), \([\bar101]\), \([10\bar1]\), \([0\bar11]\), \([01\bar1]\), \([\bar10\bar1]\), \([0\bar1\bar1]\): twelve directions.

    Similarly, in a cubic cell the planes (100), (010) and (001) (with their negatives) are symmetrically equivalent, and form the family \(\{100\}\).

    The “permute everything” rule is a property of cubic symmetry. Switch the explorer to tetragonal or orthorhombic and watch the family break up.

    QWhat would be the family of directions \(\langle110\rangle\) for a tetragonal unit cell?
    In a tetragonal cell \(c \ne a = b\), so the \(c\) axis cannot be swapped with \(a\) or \(b\). Only [110], \([\bar110]\), \([1\bar10]\) and \([\bar1\bar10]\) remain equivalent: 4 members. Directions like [101] and [011] now form a separate family, \(\langle101\rangle\) (8 members).
    QWhat would be the family of planes \(\{100\}\) for a tetragonal unit cell?
    (100), (010), \((\bar100)\) and \((0\bar10)\) only: 4 members. (001) and \((00\bar1)\) are not equivalent to them, because \(c \ne a = b\); they form their own family \(\{001\}\).
    3D Interactive

    Family Explorer

    drag to rotate
    Revisiting Miller Indices

    (hkl) Names a Family of Parallel Planes

    Consider a cube with basis vectors \(\mathbf a_1, \mathbf a_2, \mathbf a_3\). Click each coloured plane (or its button) and work out its Miller indices.

    drag to rotate · click a plane
    (010) is not a single plane but a family of planes that are parallel and equidistant from each other (the purple, green, yellow and red planes above). The spacing between successive planes of the set is written \(d_{hkl}\). On one side of the origin the family is \((010)\); on the other side the signs change appropriately, e.g. \((0\bar10)\).

    Symmetry-equivalent families, once more

    In the cube, the green face is (010). The yellow and purple faces are (100) and (001). These are symmetrically equivalent, so the family can be written \(\{100\}\) or equally \(\{010\}\).

    For a cube, the members are obtained by permuting the indices and their signs: \(\{100\}\) = (100), (010), (001), \((\bar100)\), \((0\bar10)\), \((00\bar1)\).

    For a tetragonal lattice (\(c \ne a = b\)), \(\{100\}\) has only (100), (010), \((\bar100)\) and \((0\bar10)\). (001) and \((00\bar1)\) are not symmetrically equivalent to the others. You can check this in the Family Explorer above.

    Plane equations

    Two parallel planes, one \((hkl)\)

    A plane \((hkl)\) cuts the axes at \(1/h, 1/k, 1/l\), so its equation is \(hx+ky+lz=1\). The parallel plane through the origin is \(hx+ky+lz=0\). Both have Miller indices \((hkl)\), and the spacing between these nearest parallel neighbours is \(d_{hkl}\): equivalently, the distance of the plane with intercepts \(1/h, 1/k, 1/l\) from the origin.

    drag to rotate
    Miller Indices (again!)

    One Plane, Two Families

    The grey plane cuts \(\mathbf a_2\) at \(\tfrac12\): intercepts \((\infty, \tfrac12, \infty)\) give Miller indices \((020)\). The next \((020)\) plane in the \(+\mathbf a_2\) direction is… the green \((010)\) plane! The same plane can belong to two sets of planes with different Miller indices.

    drag to rotate
    n2
    Planes shown
    also a plane of the base family only in \((nh\ nk\ nl)\)
    QWhat is the interplanar spacing for planes with Miller indices (010)?
    \(d_{010} = a_2 = a\), since the cell is cubic (\(a_1=a_2=a_3\) and \(\alpha=\beta=\gamma=90^\circ\)).
    QAnd for (020)?
    \(d_{020} = a_2/2 = a/2\).
    Miller–Bravais Indices

    Directions and Planes in the Hexagonal System

    With three axes, directions and planes that are obviously equivalent by the 6-fold symmetry get indices that are not permutations of each other. A fourth basal axis fixes this.

    drag to rotate · click a face
    Indexing in the Hexagonal System

    Three Indices ↔ Four Indices

    The 3-index system is the Miller indices system; the 4-index system is the Miller–Bravais indices system. Because the three basal axes satisfy \(\mathbf a_1+\mathbf a_2+\mathbf a_3=\mathbf 0\), one of the four indices is always redundant: \(t = -(u+v)\).

    Directions

    3 → 4: \([u'v'w'] \to [uvtw]\)
    \[u=\tfrac13(2u'-v'),\quad v=\tfrac13(2v'-u'),\quad t=-(u+v),\quad w=w'\]
    4 → 3: \([uvtw] \to [u'v'w']\)
    \[u'=2u+v = u-t,\quad v'=2v+u = v-t,\quad w'=w\]

    Afterwards, multiply or divide by a common factor to get the smallest integers.

    Planes

    3 → 4: \((u'v'w') \to (uvtw)\)
    \[u=u',\quad v=v',\quad t=-(u+v),\quad w=w'\]
    4 → 3: \((uvtw) \to (u'v'w')\)
    \[u'=u,\quad v'=v,\quad w'=w\]

    Simply drop the third index \(t\). (For planes the four indices are often written \((hkil)\) with \(i=-(h+k)\).)

    3D Interactive

    Hexagonal Index Converter

      Miller–Bravais
      a1 a2 a3 c
      drag to rotate
      Part 2

      Reciprocal Space

      Miller indices \((hkl)\) are obtained by taking reciprocals of intercepts along the real-lattice basis vectors. What if \(h\), \(k\) and \(l\) were themselves the components of a vector, in a different basis?

      We will cover
      • Reciprocal basis vectors \(\mathbf a_i^*\) defined by \(\mathbf a_i\cdot\mathbf a_j^*=\delta_{ij}\)
      • Why \(\mathbf g = h\mathbf a_1^*+k\mathbf a_2^*+l\mathbf a_3^*\) is normal to the plane (hkl)
      • Families of parallel planes and the spacing \(d_{hkl}=1/|\mathbf g_{hkl}|\)
      • A plane in real space is a point in reciprocal space; \(d_{hkl}\) for every crystal system
      A Second Basis

      Defining the Reciprocal Basis

      If the real lattice is described by the basis \(\mathbf a_i\) (meaning \(\mathbf a_1, \mathbf a_2, \mathbf a_3\); bold letters are vectors, with a magnitude and a direction), consider another basis \(\mathbf a_j^*\) chosen so that

      \[\mathbf a_i\cdot\mathbf a_j^* = \delta_{ij} = \begin{cases}1 & i=j\\ 0 & i\neq j\end{cases}\qquad\text{(eq. 1)}\]

      \(\delta_{ij}\) is the Kronecker delta.

      In matrix form, the nine dot products make the identity matrix:

      \[\begin{pmatrix}\mathbf a_1\\ \mathbf a_2\\ \mathbf a_3\end{pmatrix}\begin{pmatrix}\mathbf a_1^* & \mathbf a_2^* & \mathbf a_3^*\end{pmatrix} = \begin{pmatrix}\mathbf a_1\!\cdot\!\mathbf a_1^* & \mathbf a_1\!\cdot\!\mathbf a_2^* & \mathbf a_1\!\cdot\!\mathbf a_3^*\\ \mathbf a_2\!\cdot\!\mathbf a_1^* & \mathbf a_2\!\cdot\!\mathbf a_2^* & \mathbf a_2\!\cdot\!\mathbf a_3^*\\ \mathbf a_3\!\cdot\!\mathbf a_1^* & \mathbf a_3\!\cdot\!\mathbf a_2^* & \mathbf a_3\!\cdot\!\mathbf a_3^*\end{pmatrix}=\begin{pmatrix}1&0&0\\0&1&0\\0&0&1\end{pmatrix}\]
      The zeros tell us that \(\mathbf a_1^* \perp \mathbf a_2, \mathbf a_3\); \(\;\mathbf a_2^* \perp \mathbf a_3, \mathbf a_1\); \(\;\mathbf a_3^* \perp \mathbf a_1, \mathbf a_2\).
      Animation

      Each tile is one dot product \(\mathbf a_i\cdot\mathbf a_j^*\): rows \(i\), columns \(j\).

      Derivation

      Constructing \(\mathbf a_i^*\)

      1
      Since \(\mathbf a_1^*\) must be perpendicular to both \(\mathbf a_2\) and \(\mathbf a_3\), it must lie along their cross product. Let \[\mathbf a_1^* = K(\mathbf a_2\times\mathbf a_3),\quad \mathbf a_2^* = L(\mathbf a_3\times\mathbf a_1),\quad \mathbf a_3^* = M(\mathbf a_1\times\mathbf a_2)\] where \(K\), \(L\), \(M\) are proportionality factors.
      2
      Apply the diagonal of eq. 1: \[\mathbf a_1\cdot\mathbf a_1^* = K\,\mathbf a_1\cdot(\mathbf a_2\times\mathbf a_3)=1 \;\Rightarrow\; K=\frac{1}{\mathbf a_1\cdot(\mathbf a_2\times\mathbf a_3)}=\frac1V\] and in the same way \(L = 1/\big(\mathbf a_2\cdot(\mathbf a_3\times\mathbf a_1)\big) = 1/V\), \(M = 1/\big(\mathbf a_3\cdot(\mathbf a_1\times\mathbf a_2)\big)=1/V\).
      3
      \(V\) is the volume of the unit cell formed by the \(\mathbf a_i\): the scalar triple product, the same whichever cyclic order is used.
      4
      So eq. 1 is satisfied by the reciprocal basis vectors \[\mathbf a_1^*=\frac{\mathbf a_2\times\mathbf a_3}{V},\qquad \mathbf a_2^*=\frac{\mathbf a_3\times\mathbf a_1}{V},\qquad \mathbf a_3^*=\frac{\mathbf a_1\times\mathbf a_2}{V}\]
      5
      Dimensions: if the \(\mathbf a_i\) have dimension \([L]\), then \(\mathbf a_i^*\) has dimension \([L^2]/[L^3]=[L^{-1}]\). Hence the name reciprocal. A longer real axis gives a shorter reciprocal axis.
      Schematic

      \(\mathbf a_1^*\) stands on the face spanned by \(\mathbf a_2\) and \(\mathbf a_3\)

      a2 a3 a1 a1* a₂ × a₃ face

      \(\mathbf a_1^*\) is normal to the face containing \(\mathbf a_2\) and \(\mathbf a_3\); it is generally not parallel to \(\mathbf a_1\) unless the cell has right angles.

      3D Interactive

      Reciprocal Basis Builder

      Deform the real cell (dark arrows) and watch the reciprocal basis (teal arrows) respond. Pick one \(\mathbf a_i^*\) to see the face it is perpendicular to. Lengths are drawn so that 1 unit of \(\mathbf a\) ↔ 1 unit\(^{-1}\) of \(\mathbf a^*\).

      drag to rotate
      a
      b
      c
      α
      β
      γ
      Computed \(\mathbf a_i\cdot\mathbf a_j^*\)
      The Key Result

      Lattice Planes and Reciprocal Space

      Take any lattice point written in the reciprocal frame of reference, and any vector \(\mathbf r\) of real space that is perpendicular to it. The condition \(\mathbf r\cdot\mathbf g=0\) turns out to be the equation of a lattice plane.

      Derivation

      From \(\mathbf r\cdot\mathbf g = 0\) to \((hkl)\)

      1
      A reciprocal lattice vector: \[\mathbf g = g_i^*\,\mathbf a_i^*\] (reminder: \(\mathbf a_i^*\) stands for all three of \(\mathbf a_1^*, \mathbf a_2^*, \mathbf a_3^*\), and \(g_i^*\) for the corresponding components \(g_1, g_2, g_3\)).
      2
      A real-space vector \(\mathbf r = r_i\,\mathbf a_i\) chosen so that \(\mathbf r\cdot\mathbf g = 0\), i.e. \(\mathbf r\perp\mathbf g\): \[\mathbf r\cdot\mathbf g = r_i\mathbf a_i\cdot g_j^*\mathbf a_j^* = r_i\,g_j^*\,(\mathbf a_i\cdot\mathbf a_j^*) = 0\]
      3
      By eq. 1, \(\mathbf a_i\cdot\mathbf a_j^*=\delta_{ij}\), so only the \(i=j\) terms survive: \[\mathbf r\cdot\mathbf g = r_i g_j^*\delta_{ij} = r_i g_i^* = r_1g_1^*+r_2g_2^*+r_3g_3^* = 0\]
      4
      Rename \(g_1, g_2, g_3\) as \(h, k, l\), and \(r_1, r_2, r_3\) as \(x, y, z\): \[\mathbf g = h\mathbf a_1^*+k\mathbf a_2^*+l\mathbf a_3^*,\qquad hx+ky+lz=0\]
      5
      From coordinate geometry, a plane with intercepts \(s_1, s_2, s_3\) on the axes is \[\frac{x}{s_1}+\frac{y}{s_2}+\frac{z}{s_3}=1,\quad\text{or}\quad \frac{x}{s_1}+\frac{y}{s_2}+\frac{z}{s_3}=0 \text{ if it passes through the origin.}\]
      6
      Comparing with \(hx+ky+lz=0\): \(h, k, l\) are the reciprocals of the intercepts \(s_1, s_2, s_3\) along the real basis vectors (remember \(x, y, z\) are \(r_1, r_2, r_3\), components along the real \(\mathbf a_i\)). They are the Miller indices of the plane!
      7
      Result: the reciprocal lattice vector \(\mathbf g\) with components \((h, k, l)\) is perpendicular to the plane with Miller indices \((hkl)\).
      3D Interactive

      Normal Finder

      h
      k
      l
      drag to rotate

      The grey arrow is the lattice direction \([hkl] = h\mathbf a_1+k\mathbf a_2+l\mathbf a_3\). It is tempting to assume that \([hkl]\) is perpendicular to \((hkl)\), but that holds only in cubic cells. The true normal is \(\mathbf g_{hkl}\).

      Revisiting Reciprocal Space

      Every \(\mathbf r \perp \mathbf g\) Lies in One Plane

      Describe a vector \(\mathbf r\) in the real frame and a vector \(\mathbf g\) in the reciprocal frame:

      \[\mathbf r = x\mathbf a_1+y\mathbf a_2+z\mathbf a_3,\qquad \mathbf g = h\mathbf a_1^*+k\mathbf a_2^*+l\mathbf a_3^*\]

      with \(h, k, l\) mutually prime integers, and \(\mathbf r\perp\mathbf g\). Then \(\mathbf r\cdot\mathbf g = 0 \Rightarrow hx+ky+lz=0\), because \(\mathbf a_i\cdot\mathbf a_j^*=\delta_{ij}\).

      So, for a fixed \(\mathbf g\), the set of all \(\mathbf r\) with real \(x, y, z\) satisfying \(\mathbf r\cdot\mathbf g=0\) forms a plane, the plane \(hx+ky+lz=0\). The family of planes parallel to it has Miller indices \((hkl)\).

      Therefore \(\mathbf g = h\mathbf a_1^*+k\mathbf a_2^*+l\mathbf a_3^*\) is normal to the planes with Miller indices \((hkl)\).
      REAL FRAME RECIPROCAL FRAME a₂a₃a₁ r a₂*a₃*a₁* g OO
      3D Animation

      Sweeping Out the Plane

      Random real-space vectors \(\mathbf r\) (purple) are generated subject only to \(\mathbf r\cdot\mathbf g=0\). Each leaves a dot at its tip. The dots fill a plane perpendicular to \(\mathbf g\) (red), in a triclinic cell.

      drag to rotate
      Interplanar Spacing

      \(d_{hkl} = 1/|\mathbf g_{hkl}|\)

      The interplanar spacing \(d_{hkl}\) is the perpendicular distance from the origin to the plane with intercepts \(1/h, 1/k, 1/l\) on the real basis vectors. Project any vector from the origin to that plane onto the unit normal.

      Derivation

      Projecting \(\mathbf t\) on \(\hat{\mathbf n}\)

      1
      \(\mathbf g = g_i^*\mathbf a_i^*\) is normal to the plane whose Miller indices are \(g_i^* = (hkl)\). The unit normal is \[\hat{\mathbf n} = \frac{\mathbf g_{hkl}}{|\mathbf g_{hkl}|}\]
      2
      Let \(\mathbf t\) connect the origin with any point in the plane. Its component along \(\hat{\mathbf n}\) is the perpendicular distance: \[d_{hkl} = \mathbf t\cdot\hat{\mathbf n} = \mathbf t\cdot\frac{\mathbf g_{hkl}}{|\mathbf g_{hkl}|}\]
      3
      For simplicity, choose \(\mathbf t\) pointing to the intercept on the \(\mathbf a_1\) axis: \(\mathbf t = \mathbf a_1/h\).
      4
      \[d_{hkl} = \frac{\mathbf a_1}{h}\cdot\frac{h\mathbf a_1^*+k\mathbf a_2^*+l\mathbf a_3^*}{|\mathbf g_{hkl}|} = \frac{\mathbf a_1}{h}\cdot\frac{h\mathbf a_1^*}{|\mathbf g_{hkl}|} = \frac{1}{|\mathbf g_{hkl}|}\] since \(\mathbf a_1\cdot\mathbf a_2^* = \mathbf a_1\cdot\mathbf a_3^* = 0\) and \(\mathbf a_1\cdot\mathbf a_1^*=1\).
      5
      \[|\mathbf g_{hkl}| = \frac{1}{d_{hkl}}\] The length of the reciprocal lattice vector is the inverse of the interplanar spacing.
      QWhat will be the d-spacing if the Miller indices are \((nh\ nk\ nl)\)?
      \(\mathbf g_{hkl} = h\mathbf a_1^*+k\mathbf a_2^*+l\mathbf a_3^*\) and \(\mathbf g_{nh\,nk\,nl} = nh\mathbf a_1^*+nk\mathbf a_2^*+nl\mathbf a_3^* = n\,\mathbf g_{hkl}\). So \[d_{nh\,nk\,nl} = \frac{1}{|\mathbf g_{nh\,nk\,nl}|} = \frac{1}{n|\mathbf g_{hkl}|} = \frac{d_{hkl}}{n}\] Use the slider \(n\) in the 3D view to see this.
      3D Interactive

      Measuring \(d_{hkl}\)

      h
      k
      l
      n1
      drag to rotate
      Real ↔ Reciprocal

      A Plane in Real Space Is a Point in Reciprocal Space

      A whole family of lattice planes \((hkl)\) collapses to one reciprocal lattice point \(hkl\): the tip of \(\mathbf g_{hkl}\). And \(\mathbf a_1^*\perp\mathbf a_2,\mathbf a_3\); \(\mathbf a_2^*\perp\mathbf a_3,\mathbf a_1\); \(\mathbf a_3^*\perp\mathbf a_1,\mathbf a_2\), whether or not the basis vectors are orthogonal. Here in 2D, looking down \(\mathbf a_3\).

      Real lattice (a = 4 Å)lines = planes (hk0) seen edge-on
      Reciprocal latticeclick any point

      After Fig. 7, Chapter 2 (Geometry of Crystals) of Elements of X-Ray Diffraction by Cullity and Stock, which shows crystal lattices and the corresponding reciprocal lattices for a cubic and a hexagonal system (there, \(\mathbf b_1, \mathbf b_2, \mathbf b_3\) denote the reciprocal basis vectors).

      Working Formulas

      Interplanar Spacings for Different Crystal Systems

      Evaluating \(1/d_{hkl}^2 = |\mathbf g_{hkl}|^2 = \mathbf g\cdot\mathbf g\) for each cell geometry gives these expressions. Click a row to load it into the calculator.

      Crystal systemInterplanar spacing
      Cubic\[d_{hkl}=\frac{1}{\sqrt{\dfrac{h^2}{a^2}+\dfrac{k^2}{a^2}+\dfrac{l^2}{a^2}}}=\frac{a}{\sqrt{h^2+k^2+l^2}}\]
      Tetragonal\[d_{hkl}=\frac{1}{\sqrt{\dfrac{h^2}{a^2}+\dfrac{k^2}{a^2}+\dfrac{l^2}{c^2}}}\]
      Orthorhombic\[d_{hkl}=\frac{1}{\sqrt{\dfrac{h^2}{a^2}+\dfrac{k^2}{b^2}+\dfrac{l^2}{c^2}}}\]
      General form
      valid for all crystal systems with cell edges \(a, b, c\) and angles \(\alpha, \beta, \gamma\)
      \[\frac{1}{d_{hkl}^2}=\frac{1}{V^2}\Big[h^2b^2c^2\sin^2\alpha+k^2a^2c^2\sin^2\beta+l^2a^2b^2\sin^2\gamma+2hkabc^2(\cos\alpha\cos\beta-\cos\gamma)\] \[\qquad+\,2kla^2bc(\cos\beta\cos\gamma-\cos\alpha)+2hlab^2c(\cos\gamma\cos\alpha-\cos\beta)\Big]\]
      where \(V\) is the unit-cell volume:
      \[V=(\mathbf a\times\mathbf b)\cdot\mathbf c = abc\sqrt{1-\cos^2\alpha-\cos^2\beta-\cos^2\gamma+2\cos\alpha\cos\beta\cos\gamma}\]
      Interactive

      d-Spacing Calculator

      Choose a system; only the independent lattice parameters are editable. \(d\) is computed from the general formula and cross-checked as \(1/|\mathbf g|\).

      (hkl)
      Where the planes would diffract (Cu Kα, λ = 1.5406 Å)

      Each stick is one set of equivalent planes placed at \(2\theta = 2\sin^{-1}(\lambda/2d)\) (Bragg's law, coming up in the diffraction lectures). Height = number of symmetry-equivalent \((hkl)\) with that spacing, not a diffracted intensity; systematic absences are ignored. Hover a stick, click to select it.

      Practice Assessment

      Did It Sink In? - 14

      Test your mastery of lattice vectors, Miller and Miller–Bravais indices, families of directions and planes, the reciprocal basis, and interplanar spacings.

      Take the Quiz