Concept

Point light — where it appears

A source small enough to be a single centre, which casts a sharp shadow and is the second projection in a lit scene. The curve on a solid that casts its shadow's edge is decided by where it stands, so that curve slides across the surface as the light is carried about.

Named by 27 essays across 4 fields — each of them below, with the objects they name alongside it.

horizonshadows meet at x = -58, off the frameon the horizon, as it must be

A shadow is a second projection

The construction that puts a shadow on the ground is the construction that puts the scene on the picture plane, with the lamp where the eye was. Shadow drawing is taught as a separate set of recipes and it is one operation with the centre moved, which is why the same code draws both.

light · Shadow
3 m · 47 px6 m · 24 px12 m · 12 pxnear ÷ far = 4.000 against a depth ratio of 4.000exposure 33.3 ms · 6 m/s across the frameeach streak is straight; the set of them is not one kernel

A frame is an interval

An exposure is not an instant, so a frame is an integral of projections and every moving point draws a streak. The streak is straight, because the image of a straight path is straight — and its length goes as one over the depth, so two objects at 3 m and 6 m blur by lengths in the ratio 2.000. No single kernel describes the frame.

sensor · Exposure
the lamp is above the top of the ball — an ellipsecorrect from 22 cm, at 160 mm wideaxis ratio 0.4993 · discriminant -9.68e-1

The shadow of a ball is a conic

A cone cut by a plane is a conic section — which is the definition of the phrase, not an analogy — and the shadow of a ball is exactly that cut. So the shadow closes or runs to the horizon depending on where the lamp is, and the condition is not what anyone guesses: it is that the lamp is above the top of the ball. The ball's distance appears nowhere in it.

light · Sphereshadow
the shadow lines meet below the horizon — a lamp in the roomhorizoncorrect from 25 cm, at 160 mm wide3 posts · foot 351 px below the horizon

The lamp, out of the picture

Two posts and their shadows put the light's position in a photograph, exactly, with nothing given but the drawn lines and the camera's own horizon. Two posts. One gives a residual of zero and an answer that is a whole one-parameter family — the sharpest counter-example there is to the idea that a small residual means a right answer, met again in a new field.

light · Lightrecovery
the outline, its shadow, and the outline recovered from itcorrect from 20 cm, at 160 mm widerecovered to 4e-16 m

A shadow can be un-cast

A shadow looks like a lossy record — a flattened smear with the shape half thrown away. It is nothing of the kind. The map from the occluder's plane to the floor is a plane projectivity, so it has an inverse, and the outline comes back out of its own shadow exactly. What breaks it is not the light and not the shape: it is the floor not being flat.

light · Shadowinverse
three side intersections, collinear to 3e-13 pxcentrethree sides paired, three pointscollinear to 3e-13 px

Two triangles and the line nobody drew

Desargues' theorem is the reason a hand-drawn shadow construction closes. An object and its shadow are two figures in perspective from the lamp; the theorem says their corresponding sides meet, pairwise, on one line — which is the ground line. So the closure a draughtsman treats as confirmation that the work is accurate is a theorem they cannot violate.

foundations · Desargues
00.50011020304050distance from the camera to the wall (m)relative to the value at 1 mthe patch, growing as d²the light per unit area, falling as 1/d²their product — what the picture records2500× the footprint at the far endproduct flat to 2e-16

A wall does not get darker as it goes away

The inverse square law is about a point source. A surface is not a point source, and the picture of a wall is exactly as bright at twenty metres as at two — the patch one pixel covers grows as the square of the distance and the light per unit area falls as the square of the distance, and a picture records the product. Which is why aerial perspective has to be the air.

light · Radiance
0204051015distance from the source to the ball, in radiifraction of the ball's surface that is lit (%)one half — the source at infinity25.0% at 2 radiicurve: the closed form · dots: quadratureagreeing to 5e-4

A lamp lights less than half a ball

Everyone knows a sphere is half lit. It is half lit by a source at infinity and by nothing else: a lamp two radii away lights a quarter of it, and the boundary it draws is a circle offset toward the light rather than a great circle. The offset is R²/D, which means a photograph of a lit ball carries the distance to whatever lit it.

light · Terminator
5710142028400.31310distance along the floor from below the eye (m, log scale)pixels one shadow-map texel spans on screen (log scale)1 pxlamp beside the eyelamp 30 m overheadlamp 40 m ahead, facing backmeasured against the closed form: 4e-91024-texel map · eye 1.7 m · 50° field

A shadow map's texels land by two distances and two cosines

A renderer finds its shadows by taking a second picture from the lamp and storing a depth in every texel. Each texel reaches the screen through the surface it falls on, and how many pixels it covers there is a closed form — two focal lengths, two distances and two cosines. From a lamp beside the eye every texel lands at 0.79 px; from a lamp 40 m ahead facing back, the same map lands texels of 8.69 px on the floor 5 m out.

pipeline · Shadowmap
the cornercorrect from 19 cm, at 160 mm wide46° across

A wire with a corner in its shadow

A bent wire has no corner anywhere on it, and its shadow has one. The lamps that do it are not a coincidence — they are a surface in the room, two-dimensional, made of the wire's own tangent lines, and a lamp being carried across the room passes through it.

light · Curveshadow
88.9° between the two circlescorrect from 23 cm, at 160 mm widelamp 2.6 m · shadow circle at 80.0°

The edge of a shadow is drawn on the object

The outline of a cast shadow is the image of a curve, and the curve is on the caster. It is not painted there: it slides when the lamp moves, it is not the outline the camera sees, and the two coincide only in the arrangement where no shadow is visible at all.

light · Silhouette
the whole picture, one density9530²the frustum fitted to the floor7322²the best projective warp of its rows897²the best warp of its rows, any shape840²one texel per pixel of the floor385²the same, with a wall at every point502²facing lamp, floor to 60 m, no texel over a pixel · log scale÷113 by one warp

One warped shadow map, and what it cannot reach

The lamp facing the eye needed a shadow map 9,530 texels square — 90.8 million texels — for none of them to land on the near floor larger than a pixel. Fitted to the floor and warped by one projective parameter, the same map needs 805 thousand; nothing can do better than one texel per pixel of the eye's picture, 148 thousand. What stays out of reach is not the cosine of a surface, which a warp absorbs, but two surfaces that want different densities along one ray from the lamp.

pipeline · Shadowmap
1 holetilt 0°closes at 71.3°

A hole is not preserved

The shadow of a connected object is connected — always, at every lamp position, and for a reason with no geometry in it. A hole survives in neither direction: a ring's shadow closes up at a computable tilt, and an object with no hole in it casts a shadow that has one.

light · Shadowtopology
correct from 20 cm, at 160 mm wideresidual 2e-15 m · 1/sin up to 1.22

A shadow across a second object

A straight edge held in front of a lamp defines one plane, and the shadow's boundary is wherever that plane meets something. That turns a picture of a shadow into a measurement: a camera ray and a known plane meet in one point, and the object the shadow is falling on comes back out.

light · Curvedreceiver
the frustum fitted to the floor53.61 millionits rows re-spaced, one parameter805 thousandits rows re-spaced, any shape706 thousanda true perspective, one parameter752 thousanda full projective warp154 thousandone texel per pixel of the floor148 thousandlamp 40 m ahead, facing back, floor to 60 m, no texel over a pixel · log scale÷4.6 over any row warp

One homography makes a shadow map the eye's picture

A shadow map for a lamp facing the eye needed 706 thousand texels however its rows were re-spaced, nearly five times the one texel per pixel no map can beat. Warp the whole map by a projective transformation, not only its rows, and it needs 154 thousand — within five per cent of the bound — and every texel, carried into the eye's picture, lands at one pixel. The reason is exact: the eye's picture of a floor and the lamp's picture of the same floor are one homography apart.

pipeline · Shadowmap
the other focuscorrect from 19 cm, at 160 mm widecontact 2e-16 m from the focus

The ball stands at a focus

A ball on a floor casts an ellipse, and the point where the ball touches the floor is a focus of it — not near a focus, on one, to two parts in ten thousand million million. That is Dandelin's theorem arriving somewhere nobody puts it, and it is the only thing about the lamp that the shadow gives away.

light · Sphereshadow
horizoncorrect from 19 cm, at 160 mm wide2 centres · 2.12 px

How many lamps a drawing has

The shadow field recovers a lamp by intersecting drawn lines. Two lamps make that a partition rather than an intersection — and two centres fit any bundle better than one, on a one-lamp drawing as readily as on a two-lamp one, so a count is a decision that needs a noise level before it exists. A criterion built on a penalty instead of a noise level returns four.

light · Twolamps
00.2500.5000.7501-1-0.50000.500how far apart the lamps are, log₁₀ metreshow often the drawing is read as two lampshalf the drawings1 px of clicking, 12 drawings each, separated across the viewbelow the crossing the second lamp is not in the picture

The distance at which two lamps part

Two lamps five centimetres apart are one lamp, and the drawing is right to say so. The separation at which they become two is proportional to how carelessly the picture was clicked — 3.6 centimetres at half a pixel, 7.2 at one, 28 at four — with no floor anywhere, so nothing but care stands between a reader and any separation at all.

light · Twolamps
two lamps: what one centre leaves, floor by floora flat floor138.33 pxa dished floor138.33 pxa dished floor, k = 0.02138.33 pxa dished floor, k = 0.06138.33 pxa dished floor, k = 0.12138.33 pxa ridged floor138.33 pxa ridged floor, k = 0.02138.33 pxa ridged floor, k = 0.06138.33 pxa ridged floor, k = 0.12138.33 pxa floor with a step138.33 pxa floor with a step, k = 0.02138.33 pxa floor with a step, k = 0.06138.33 pxa floor with a step, k = 0.12138.33 pxtwo lamps, four floors, four curvaturesspread over all thirteen: 2.8e-14 px

A floor cannot fake a second lamp

Cast the same two lamps onto four floors at four curvatures and ask how well one centre explains the drawing. Every one of the thirteen answers is 138.3277 pixels — the same to fifteen digits, because a floor decides where along a ray the shadow's tip landed, and a line through a point and another point that has slid along it is the same line.

light · Curvedreceiver
how clearly each line belongs to one pencil2 lamps, 5 posts251.5 px100% assigned right3 lamps, 5 posts12.1 px73% assigned right4 lamps, 5 posts38.6 px40% assigned right0.5 px of clicking, lamps spread over 2 mthe counting of unknowns cannot see this

The drawing does not run out of lines

Every post supplies a line to every lamp, so a drawing of five posts offers ten lines to two lamps and twenty to four — the unknowns and the constraints grow together and two posts fix any number of lights. What runs out is the partition, whose margin falls from 251 pixels to six as the share of lines assigned correctly falls from all to just over half.

light · Lightrecovery
horizonwhere the rays meet — the reversed imagecorrect from 19 cm, at 160 mm widethe lamp has no image · rays meet to 2e-13 px

A lamp behind the camera

A light behind the photographer has no image — the projection refuses it — and the shadows it casts are in front of them, drawn as ordinary shadows. The construction that recovers a lamp from those shadows works anyway, meeting to a ten-thousandth of a pixel at the point the reversed divide puts it, and the taught reading of where the answer lies gets the case exactly backwards.

light · Lightrecovery
lamp 1lamp 2two lamps, close together, in plan1 dark region

Counting shadows is not counting lamps

Two lamps close together cast one connected dark patch and the drawn lines say two. One lamp behind two cards casts two patches and the lines say one, exactly. And the arrangement where the patch count is right — two lamps far apart — has no fully dark region at all, so the same floor answers one, two or zero depending on which darkness is being counted.

light · Shadow
under the lampa scatter, in planground conditioning 2.1e-1

The arrangement the count cannot see

Five posts laid out five different ways give the same leverage to a sixth and the same separation limit to a quarter, and the sixth arrangement — posts strung out along their own shadows, built to be exactly degenerate — is no worse than the rest. The degeneracy belongs to the family the count does not use, and its conditioning there is exactly zero.

light · Pointcount
lamp, 1.36 mcorrect from 20 cm, at 160 mm wide2 pieces · 1.6 m back

Where a shadow splits in two

A gantry's shadow is two pieces at a lamp height of 1.36 m, and the crossing to one piece happens at a tangency running the whole length of the beam rather than at a point — the same plane that meets a ball at an aspect of 1.00 to 1 meets the beam at 1736 to 1, and a grid finds the true crossing height to a fitted exponent of 1.00 as it is refined. A ring tipped 70° keeps its hole for a completely unrelated reason, closing only at 71.34°, which is the warning that a shadow's topology changes at a tangency names two different accidents rather than one.

light · Shadowtopology
correct from 22 cm, at 160 mm wide181 cast crossings

A dent breaks the terminator

A ball's lit boundary is one closed curve, 313.2 cm around; press a dimple into its top and, at 45° of elevation, the walk that traces it finds 181 crossings where a point still faces the light but is occluded by the body's own rim — a second curve, 23.1 cm long, that a convex surface can never produce. The two curves meet where the dent's own deepest point goes dark, at 50.952°, with the ray's clearance reaching zero at a stationary point rather than merely a small one.

light · Terminator
the true profileexact marksrms 4.9e-15 m

A shadow edge read as a profile

A lamp, a stick and a camera recover a stepped object's profile to 4.9e-15 m rms when the marks are exact, and to 10.4 mm once they are read to two tenths of a pixel — the same linear law a fitted exponent of 1.001 confirms. What actually sets that number is the angle between the sweeping light plane and the camera's own ray — the amplification is least, 17.0 times a pixel, broadside at 6°, and grows without bound toward -36.1°, where the plane contains the camera's own eye and the recovery keeps none of its marks at all.

light · Scan
one lamp, one floor — the rays reach the same markscorrect from 19 cm, at 160 mm widethe true pair

The lamp and the floor cannot both be recovered

Every member of a one-parameter family of lamp-and-floor pairs draws the identical photograph to a fraction of a thousandth of a pixel — one member swings the lamp 90 cm and tilts the floor 4.3° and the picture does not move at all. A tape measure or a post of known height each pin the true member uniquely, and so does a wall known in advance to be square to the floor, whose angle to the recovered floor peaks at exactly 90° at μ = 1.000 and nowhere else; a receiver merely known to be parallel drifts thirteen times more weakly.

light · Shadowinverse

Named alongside it

The objects these essays reach for when they reach for this one.

Shadow projectionLight recoveryResidualcentre of projectionConditioningForeshorteningIdentifiabilityConicContour generatorDemonstrationSampling gridshadow vanishing point

All concepts