A reflection caustic is the bright curve that a curved mirror draws out of reflected light. You have seen one as the sharp arc inside a coffee cup, and you can make one with any smooth reflector that is not flat. The caustics overview introduces the idea alongside refraction, and this page follows the reflection half of that story in full. We start from the way a single ray bounces, build the mathematical object that a whole family of bounces traces out, apply it to the two mirrors used in the interactive explorers, and finish with the classic result that the ideal coffee-cup curve is a nephroid.
The only background you need is the equal-angle reflection rule and a little vector arithmetic. If you can add vectors and take a dot product, you can follow every step below.
The Reflection Law as a Direction Update
Start with one ray. It travels toward a surface in some direction, meets the surface at a point, and leaves in a new direction. The equal-angle rule says the incoming and outgoing rays make the same angle with the surface normal, the imaginary arrow that sticks straight out of the surface. Reflection is therefore a rule for replacing a direction: give it an incoming direction and a normal, and it returns the outgoing direction.
In vector form the rule is short. For an incoming unit direction and a unit surface normal ,
where is the outgoing unit direction. Read the terms one at a time. The dot product measures how much of the incoming direction points along the normal, and it ranges from to . Multiplying that number by and by builds a vector that exactly cancels the normal-facing part of , then reverses it, because subtracting twice a component is the same as flipping its sign. The sideways part of the direction, the component perpendicular to the normal, passes through untouched.
That is why the rule reproduces the equal-angle behavior. Split the incoming direction into a piece along the normal and a piece across it. Reflection flips the along-normal piece and keeps the across-normal piece, and flipping one component is the same as mirroring the whole arrow across a line drawn along the surface. The formula does the flip in one step, without any angles or trigonometry.
Two properties matter for the rest of the article. First, only the normal at the hit point enters the rule, so each point of a surface acts on its own. Second, the sign of the normal is irrelevant, because replacing with leaves the formula unchanged. That freedom lets us pick whichever direction is convenient for the geometry.
A flat mirror shares one normal everywhere. Every ray gets the same flip, so evenly spaced rays stay evenly spaced and the family never concentrates. Curvature is the ingredient that makes a caustic possible. On a curved surface the normal changes from point to point, and neighboring reflected rays no longer stay parallel. Some of them turn toward each other, cross, and pile light into a bright line.
Where Neighboring Reflected Rays Fold Together
One ray by itself tells you nothing about brightness. The pattern lives in the family: emit a dense fan of rays, and watch where they end up. On a curved mirror we can index the family by the point where each ray touches the surface. Let be that hit point as a function of a single parameter , and let be the reflected direction there. Each ray is then the line
for distance measured from the surface. Different values of give different rays. If two neighboring rays, at and , cross at some point, then two close parts of the light bundle have squeezed through the same spot. As shrinks toward zero, the crossing points move toward a single smooth curve that all the rays graze.
That curve is the envelope of the ray family, and it is the caustic. To find it, we ask for the point on the ray at where the ray becomes tangent to the envelope. Moving along the family changes both the hit point and the direction, so the condition is that the change from to and the change in direction stay parallel to the ray itself. In two dimensions that is a determinant condition, where :
The primes mean derivatives with respect to . Splitting the determinant and solving for the distance along the ray gives the envelope point directly:
The point is the caustic. Every ray in the family touches this curve at exactly one point and continues on either side of it, so the curve is a fold rather than a wall. Where the fold bends sharply, the rays pile up even more densely, which is why a caustic reads as a line with bright soft edges rather than a hard boundary.
The explorers do not solve the determinant condition symbolically. They trace a finite number of rays and mark the crossing of each adjacent pair, which is the same idea with a finite . Each dot is a straight-line approximation to one point on the fold. Increase the ray count and the dots crowd together along the same curve, so the dotted outline converges to the envelope. When two adjacent rays happen to be parallel, their crossing is pushed to infinity and the code simply skips that pair.
The Parabolic Mirror Explorer
The first explorer uses a mirror whose shape is easy to write down and whose normals are easy to differentiate, which keeps the focus on the ray geometry rather than on the algebra of the surface.
Place the vertex of the parabola at the origin and let the mirror be
where the single number is the curvature parameter. Larger bends the mirror more sharply. The tangent direction is the derivative , and a vector perpendicular to the tangent is , since their dot product is zero. After normalizing to unit length, the normal is
With the source at a point , the incoming direction toward the mirror point is . Feeding and into the reflection formula produces for every sampled .
In the explorer the parabola arcs over the source like a bridge, with the vertex at the top of the canvas and the source hanging below it on the concave side. The blue lines are the incoming rays from the orange dot to their hit points, and the red lines are the rays after reflection. Each purple dot marks where two neighboring red rays cross. In this explorer rays are sampled at evenly spaced values of across the mirror, and the crossing points are clipped to the region in front of the mirror so the estimate stays visible.
A worked ray makes the numbers concrete. Take and a mirror point at , so the height is . The tangent slope is , and the unit normal is . Put the source at , on the mirror’s axis units from the vertex on the source’s side. The incoming direction is then proportional to , which normalizes to . The dot product with the normal is , so the ray arrives almost exactly along the normal. Subtracting twice the normal component sends it back as , a direction that carries it back across the axis. The ray from the neighboring sample tilts a little differently, and the two meet at a point that becomes a purple dot.
The explorer makes three relationships visible.
The curvature slider controls how fast the normals turn from one sample to the next. At the default the crossing points form a narrow, pointed arc whose tip sits between the mirror and the source, with the two arms spreading past the source. Raise to and the tip climbs from about a third of the way down the canvas to just below the mirror, while the arc widens dramatically; the purple dots now stretch across hundreds of pixels instead of a few dozen. Lower toward and the mirror becomes nearly flat, the reflected rays stay close to parallel, and the crossings move beyond the edge of the scene, leaving the canvas almost empty.
The source position controls where the fold sits. Dragging the source down, farther from the mirror, lifts the tip toward the mirror and widens the arc, which is the same trend as raising the curvature but reached from the other side. Dragging it up, closer to the mirror, drops the tip and narrows the fold until the crossings drift off the bottom of the canvas.
Dragging the source sideways breaks the symmetry. Move the dot to the right and the whole fold shifts to the left, leaning away from the source and stretching into a longer, more open curve. With an off-center source the two arms no longer match, and the pointed tip is no longer on the mirror’s axis. The mirror still folds the rays, but the fold is lopsided.
The Coffee-Cup Curve and the Nephroid
The second explorer swaps the parabola for a circle, which is the shape of the wall inside a cylindrical cup.
Here the source is a point inside the cup, and rays leave it in every direction rather than arriving from a fixed set of surface points. The circular wall’s normal at a hit point points straight along the radius, so the reflection geometry is unusually clean. The explorer samples directions around the source, finds the first intersection of each ray with the circle, reflects it, and traces a second bounce as well, although only the first-bounce reflections feed the purple crossing dots. A small nudge past each hit point avoids re-detecting the same intersection on the next segment.
Near the center of the cup the reflected family folds into a tidy, roughly symmetric curve. Drag the source toward the wall and the curve drifts to the opposite side and skews, exactly as the off-center parabola did. Drag it up or down and the changing angle of incidence reshapes the fold. The bright curve persists for every source position inside the cup, because the circle’s normals keep sorting the reflected directions. The fold is not the cup showing an image of the light; it is the cup rearranging the ray family.
The Ideal Curve Is a Nephroid
The cleanest version of the cup problem replaces the point source with a beam of parallel rays, as if the light came from the sun or a very distant lamp. Put the circle at the origin with radius and let the incoming direction be . A ray that reflects at the point
meets a unit radial normal . The dot product is , so the reflection formula gives
The family of reflected rays is . Now apply the envelope condition from earlier. The derivatives are and . The two determinants have simple values:
Solving gives , so the envelope point is
Working out the two coordinates:
The coordinate simplifies because , so the two terms combine into . The coordinate simplifies with the double-angle identity . Both collapse into a familiar form:
This is the nephroid, the kidney-shaped curve that a parallel beam reflects inside a circle. Its two cusps sit at , inside the circle at half the radius, and the curve grazes the circle itself at the two points . A real beam lights only part of the wall, so the bright arc you see in a cup is the portion of the nephroid produced by that lit section rather than the whole closed curve. Real cups are also not perfect circles and real light is not perfectly parallel, which is why the observed curve is a slightly distorted nephroid. Move the source from infinity onto the rim of the circle and the same construction produces a cardioid, the nephroid’s close relative.
A Worked Point on the Nephroid
Pick a reflection point at on a circle of radius and follow the four steps.
- The hit point is .
- The incoming direction is , and the radial normal is , so .
- The reflected direction is . The envelope distance is .
- The caustic point is .
Checking against the nephroid formula, and , so and . Both routes agree. The reflected ray at grazes the caustic at , exactly as the envelope condition promised.
Edge Cases and Limits
Several situations make the fold behave in ways the picture does not show at first glance.
When the source moves inside the focal point of a mirror, the reflected rays diverge instead of converging and the caustic turns virtual: the rays only appear to come from a fold behind the surface, so there is no forward crossing point to mark. For a parabola the focus sits a distance from the vertex. At the gentlest setting, , that focus is about pixels from the vertex, and a source placed closer than that produces no forward crossings at all.
An empty canvas can also mean something less dramatic. Both explorers clip crossing points to the visible region, and a real fold can simply lie beyond the frame. With a nearly flat mirror and the source far enough away, the crossing points sit hundreds of pixels below the bottom edge. Raising the curvature or moving the source farther from the mirror is usually enough to pull the fold back into view.
Parallel adjacent rays are the next edge case. When two neighboring reflected directions line up exactly, their crossing lies at infinity and the pair contributes no dot. This happens at the outer ends of the parabola’s sampled range, where the normals turn fastest and the reflected rays rotate through a direction that another ray also takes. The crossing pair simply drops out of the estimate, leaving a small gap in the dotted curve.
Off-center sources remove the symmetry that makes the fold easy to read. With the source on the axis, the caustic has a single pointed tip and two matching arms. Move the source sideways and the tip rotates away from the axis, one arm grows longer than the other, and the fold can sweep far to one side. The same thing happens in a real cup when you hold the light off to one side: the bright curve slides toward the opposite wall and stretches.
Grazing incidence is the last limit to keep in mind. Near the rim of the cup or the far ends of the parabola, a ray can strike the surface almost tangentially. The reflected direction is then extremely sensitive to the normal, so a tiny error in the surface shape swings the outgoing ray by a large angle. This is a physical effect, not only a numerical one, and it is why the outer parts of a caustic can look fuzzier than the middle.
Sampling and Normals in Practice
If you want to reproduce these pictures, two choices do most of the work.
The first is how you sample the ray family. The parabolic explorer samples evenly spaced points along the mirror, which is the right choice when the normal varies with surface position, because every part of the surface gets equal weight. The cup explorer instead samples evenly spaced directions around the source, which is the right choice for a point source that radiates in all directions. Matching the sampling to the source of variation keeps the dots evenly spaced along the caustic instead of clumping where the parameter changes slowly.
The second is the ray count. With too few rays the purple dots are sparse and the fold reads as a broken line. With more rays the dots crowd onto the envelope and the curve smooths out, at the cost of more computation and heavier overdraw. The explorers use rays for the mirror and for the cup, which is enough to make the shape legible without burying it in dots. Doubling the count mainly thickens the existing curve rather than revealing new structure.
Normal accuracy matters more than ray count near grazing angles. Both explorers compute the normal analytically, one from the parabola’s derivative and one from the circle’s radius, rather than estimating it from nearby samples. A finite-difference normal quietly amplifies small errors exactly where the outgoing direction is most sensitive, which is where the caustic is sharpest. Using the exact normal keeps that error out of the picture.
Finally, keep in mind what the geometric model leaves out. Counting ray crossings shows where light concentrates, not how bright it becomes. A physically accurate image would weight each ray by a Fresnel term that depends on the angle, by the distance it has traveled, and by how the surface absorbs light. Those factors change the balance of brightness across the caustic, but they do not move the fold itself, which is set by geometry alone.
Summary
A reflection caustic begins with one local rule. The equal-angle reflection law turns an incoming direction into an outgoing one using only the surface normal at the hit point, written compactly as . A curved surface gives each point a slightly different normal, so neighboring reflected rays turn toward each other. Where they cross, light piles up, and in the limit of infinitely many rays those crossings trace the envelope, the caustic.
The two interactive mirrors show the same mechanism at different scales. The parabolic mirror makes the normal and the reflected ray easy to compute, and it exposes how curvature, source height, and source offset each reshape the fold. The circular cup adds the cleanest exact result: for parallel incoming rays the caustic is the nephroid, with cusps at half the cup’s radius, derived in a few lines from the envelope condition. A point source inside the cup produces a distorted version of the same fold, which is what you see in a real coffee cup.
The caustics overview covers the refraction side of the same story, where Snell’s law replaces the reflection rule and a wavy water surface turns sunlight into the shifting networks on a pool floor.