Helical Diffraction Simulator (Photo 51)

Build a helix from pitch, radius, rise and strand count, and watch its X-ray diffraction pattern — the X of Photo 51 — emerge from Bessel-function layer lines.

  • diffraction
  • Fourier optics
  • Bessel functions
  • DNA
  • reciprocal space
  • physics

Simulated diffraction film

Hover the film to read reciprocal-space coordinates and d-spacing.

Real-space helix (the object)

Blue and orange trace the two strands; point size encodes depth.

What the pattern says

X arm angle
56.7°
steeper ⇒ smaller radius / longer pitch
Layer spacing ΔZ
0.0294 1/Å
pitch 34.0 Å
Meridional d
3.40 Å
base-pair rise
Highest visible n
10
of n_max = 10
First max of n = 1
0.0292 1/Å
⇒ r ≈ 10.02 Å
Extinct layer lines
4
strand interference
Disorder damping at n=5
0.653
Debye–Waller weight
Photo 51 similarity
100%

Layer-line profile: J_1(2πRr)²

first max 0.02900.050.10.150.20.250.300.020.040.060.080.10.120.140.160.180.2Radial frequency R (1/Å)Intensity

The first maximum of Jn occurs at 2πRr = 1.841, so its radial position measures the helix radius directly. Layer-line weight here = 0.576.

Measure the helix
Put the app in blind mode, ask a partner to set the geometry, then recover it from the film alone: the layer-line spacing ΔZ gives the pitch (P = 1/ΔZ), the first maximum of layer line n = 1 gives the radius (r = 1.841/2πR), the meridional spot gives the base rise, and a missing layer line reveals the two strands and their groove asymmetry. Compare your estimates with the true values afterwards.
How this differs from the original R script
The R prototype drew four cosmetic diagonal "arms" and mis-aligned the density grid (rep(..., each=) versus rep(..., times=)), leaving the lower half of the image a flat grey. Here the X emerges on its own from the Bessel maxima of successive layer lines — nothing about the cross is drawn by hand.