The eye that moves

A scroll through two slits ranges in a straight line

Draw a scroll twice, through a slit leaning 10° forward along the track and one leaning 10° back, and every point appears in both drawings on the same row, separated by 9.169 px for every metre of its depth — at four metres and at fifty-two. Depth is proportional to that separation rather than reciprocal to it, so a pixel of error costs 10.9 cm at every distance, averaging leaves no bias, and there is no range past which the depth runs off to infinity. The price is paid in roll: a 100 m scroll ranges nothing past 283.6 m.

Worth reading first: A scroll is a camera that moves · Depth is a reciprocal.

A map along, and a picture across set out what a reader holding a ruler can recover from a handscroll, and it ended on a flat negative. Spacing along the journey: exactly, up to one scale. Heights within a column: on the usual perspective terms. Depth: not available at all. A scroll draws each column from one position of a travelling eye, looking straight across the track, and nothing relates one column to another in depth.

That conclusion is right for the scroll drawn so far. It rests on one detail of that scroll that is not forced: the slit through which each column is drawn looks straight across the track, perpendicular to the direction of travel. Tilt the slit — let it look a little ahead, or a little behind — and the scroll is still a scroll, still orthographic along the roll and perspective across it. Draw the same scene twice, once through a slit leaning forward and once through one leaning back, and depth comes back.

It comes back with a law that no pinhole stereo pair has.

A scroll keeps the midpoint along its length and loses it acrossLeft, a segment lying along the roll: the image of its midpoint and the midpoint of its image are the same point to 0e+0 px. Right, a segment running away from the eye: the two are 21.9% of the segment apart. One projection, two answers, because the eye is at infinity in one direction and seven metres away in the other.along the rollthe two midpoints coincide — 0e+0 pxone mark, drawn twiceacross itthey separate by 26.6%the image of the midpointthe midpoint of the imageno single viewpoint — the rays miss by 6.9 m26.6% of the receding segment
Fig. 1 The scroll’s along-roll result: a scroll keeps the midpoint of a segment lying along its roll and loses the midpoint of one receding across it. Along the roll it is a scale drawing, and a scale drawing, on its own, says nothing about depth.

A slit that leans

Keep the same scroll: an eye travelling along a straight track at height h, standing off c from the ground’s origin, drawing one vertical column at a time, with along-roll compression s. Its slit — the plane of rays that becomes one column — has always been perpendicular to the track. Now lean that plane by an angle φ along the track, keeping it vertical.

A world point is drawn by the one position of the eye whose leaning slit passes through it. For a slit looking straight across, that position is directly opposite the point. For a slit leaning forward by φ, the eye must be further back along the track, by the point’s distance from the track times tan φ, so that its forward-looking slit reaches it. The point’s column is s times that eye position. Its row is the ordinary divide by the distance along the slit.

The figure does not use that closed form. It finds the eye position for each point by bisection on the signed distance from the point to the leaning slit, so that what follows is a measurement of the construction rather than a restatement of its formula. A slit leaning 0° reproduces the perpendicular scroll to the arithmetic floor.

The same point, twice

A scroll drawn through two slits leaning ±10°: 9.17 px of disparity per metre of depthSix posts 4, 9, 15, 23, 35, 52 m from the eye's track, drawn by a pushbroom whose slit leans 10° forward along the track (upper strip) and one leaning 10° back (lower strip). Each post's two images are joined. Their horizontal separation is 36.7 px, 82.5 px, 137.5 px, 210.9 px, 320.9 px, 476.8 px — 9.169 px for every metre of depth, the same at every depth — and each post sits on the same rows in both drawings. Depth read off the separation returns each post's depth to 7e-15 m.slit leaning 10° forwardslit leaning 10° back4 m · 37 px9 m · 83 px15 m · 138 px23 m · 211 px35 m · 321 px52 m · 477 px9.169 px of disparity per metredepth to 7e-15 m
Fig. 2 Six posts from 4 m to 52 m from the track, drawn through a slit leaning 10° forward (upper strip) and one leaning 10° back (lower strip), each post’s two images joined. Their separation is 36.7 px for the nearest and 476.8 px for the furthest — 9.169 px for every metre of depth at every depth — and depth read off it is right to 7e-15 m.

Six posts stand at depths from four metres to fifty-two, and the figure draws them through a slit leaning 10° forward and through one leaning 10° back. Each post appears once in each drawing, and the two appearances are joined.

The separations are 36.7 px, 82.5 px, 137.5 px, 210.9 px, 320.9 px and 476.8 px. Divide each by its post’s depth and every quotient is 9.169 px per metre. The nearest post and the furthest give the same number, and depth recovered by dividing each separation by that constant is right to 7 × 10⁻¹⁵ m.

The constant is 2stanφ2s\tan\varphi. The forward slit draws a point from an eye position D tan φ behind it and the backward slit from one D tan φ ahead, so the two eye positions differ by 2D tan φ along the track, and the scroll turns track distance into columns by multiplying by s. For s = 26 px per metre and φ = 10°, that is 9.169.

Each post also sits on the same rows in both drawings. The row is set by the distance along the slit, and two slits leaning by equal amounts either way reach a point along equal distances. That is not decoration; it means a matcher searching for a point’s second image searches along a row, exactly as in a rectified pinhole pair. A pair of slits leaning by unequal amounts loses it — at 10° forward and 5° back, a point’s two images are drawn 0.563 px apart in height.

Why the two drawings share their rows

The rows are worth a closer look, because they are what makes the pair usable rather than merely informative.

Each slit draws a point’s row by dividing its height below the eye by its distance measured along the slit. A slit leaning forward by φ reaches a point along a line making an angle φ with the perpendicular to the track, and a slit leaning back by φ does the same from the other side. The two distances are equal — D/cos φ each — so the two divisions give the same row, for every point, at every depth.

That is the property a stereo matcher needs. A point is a line over there is the general statement that a mark’s match lies on a line; for this pair the line is the mark’s own row, so the search for each point’s second image runs along a row of the other drawing, exactly as for a rectified pinhole pair, and nothing has to be resampled first.

Lean the two slits by different amounts and the property goes. At 10° forward and 5° back the two distances along the slits differ, the two divisions differ, and a point 10 m from the track and 40 cm off the ground is drawn 0.563 px higher in one drawing than in the other. The search is then along a slanted line whose slant changes with depth. Equal and opposite slit angles are to a two-slit scroll what parallel optical axes are to a pinhole pair: the arrangement that turns a general two-view search into a search along rows.

Proportional, not reciprocal

Every stereo arrangement measured before this one has had depth reciprocal to disparity. Depth is a reciprocal is the essay that says so: a pinhole pair’s disparity is fB/Z, so the same reading error is worth a little depth near the cameras and a great deal far away, and past fB/δ it is worth everything. The range a pair cannot see past turned that into a hard bound, and whole pixels cut space into shells found the reciprocal cutting depth into shells a metre apart at ten metres.

A two-slit scroll’s disparity is 2stanφD2s\tan\varphi\cdot D. It is proportional to depth, so depth is proportional to it, and every consequence of the reciprocal law turns over:

  • the depth one pixel is worth is the same at every depth;
  • there is no distance at which the disparity falls to zero, so there is no range past which depth has no far edge;
  • a reading rounded to whole pixels cuts depth into equal intervals, not shells growing as the square of the distance.

The difference in mechanism is worth a sentence. A pinhole pair’s two eyes are a fixed distance apart, so a far point’s two rays are nearly parallel and its disparity is small. A two-slit scroll’s two eye positions are not a fixed distance apart: they are further apart for a further point, in exact proportion to its distance, because a slit leaning at a fixed angle has to travel further along the track to reach a point further away. The baseline grows with the depth it is measuring, and the reciprocal cancels.

What a pixel costs, at every depth

One pixel costs a slit pair 10.9 cm at every depth, and a pinhole pair more past 6.8 mThe depth one pixel of disparity error is worth, for a scroll read through two slits leaning ±10° and for a pinhole pair 1 m apart at 430 px. The slit pair's is 0.109 m at every depth. The pinhole pair's is 0.005 m at 1.5 m and 15.4 m at 80 m, rising as the square of the depth; the two cross at 6.85 m.-2-1010.50011.50depth of the point (m, log scale)depth one pixel of disparity is worth (m, log scale)they cross at 6.85 mpinhole pair: 15.4 m at 80 mslit pair ±0.109 m everywherecrossing at 6.85 m
Fig. 3 The depth one pixel of disparity error is worth, for the two-slit scroll and for a pinhole pair 1 m apart at 430 px, on logarithmic axes. The scroll’s is 0.109 m everywhere. The pinhole pair’s is 0.005 m at 1.5 m and 15.4 m at 80 m, and the two cross at 6.85 m.

For the two slits at ±10°, one pixel of disparity is worth 1/(2stanφ)1/(2s\tan\varphi) = 0.109 m of depth, at every depth.

The figure sets beside it a pinhole stereo pair with the scroll’s own focal length, 430 px, and a baseline of one metre — a generous pair, forty times wider than a pair of eyes. Its one-pixel interval is 0.005 m at 1.5 m, rising as the square of the depth to 15.4 m at 80 m. The two laws cross at 6.85 m, where Z2/fB=1/(2stanφ)Z^{2}/fB = 1/(2s\tan\varphi). Nearer than that the pinhole pair is the better instrument; further, the scroll is, and by a margin that grows without limit.

The crossing moves with both instruments’ parameters in the obvious ways. A wider pinhole baseline pushes it out as the square root; a larger slit angle pulls it in by the same law. What does not move is the shape of the comparison: one curve rising as the square of the depth, one flat line, and a single depth where they meet.

Whole pixels cut this depth into equal steps

Whole pixels cut space into shells found that a pinhole pair reading disparity to whole pixels can only report the depths fB/k, crowded near the cameras and spreading as the square of the distance. The two-slit scroll reads a disparity too, and rounding it has a different result.

Each whole pixel of its disparity is a fixed 0.109 m of depth, so a scroll pair read to whole pixels reports depths in equal steps of 0.109 m, from the nearest point to the furthest. Between 1.5 m and 80 m that is about 720 steps, all the same size. The pinhole pair of the figure above, reading its own disparity to whole pixels between the same two distances, has 281 shells, and they are anything but equal: 5 mm apart at 1.5 m and nearly fifteen metres apart by 80.

A reconstruction from the scroll pair would therefore show none of the artefacts that essay drew. A level floor would come back as a staircase with equal treads at every distance, rather than as standing plates that part as the square of the depth, and the error in any one reported depth would be at most half a step, 5.5 cm, whether the point was near or far.

That is not a verdict between the two. The pinhole pair’s near shells are far finer than the scroll’s steps, and a scene that lives within a few metres is measured much better by the pair. What equal steps buy is a reading whose quality does not depend on where in depth the interesting thing is — which, for a picture of a landscape running to the horizon, is most of what a reader would want from it.

Averaging, and the bias the reciprocal leaves

A second consequence of linearity is easy to miss and matters more than it looks.

Averaging readings biases a pinhole pair's depth and not a slit pair'sA disparity read many times with an error of one pixel either way, averaged in depth. A slit pair's depth is a linear function of its disparity, so the average is the true depth at every depth, to 2e-14%. A pinhole pair 1 m apart at 430 px reports 3.59% too deep at 80 m, because the reciprocal bends the two readings' depths unequally.01230.50011.50depth of the point (m, log scale)how far too deep the average of ±1 px readings reports it (%)pinhole pair: +3.59%slit pair: 0%pinhole +3.59% at 80 mslits: exact
Fig. 4 A disparity read many times with an error of one pixel either way, averaged in depth. The two-slit scroll’s average is its true depth everywhere, to 2e-14%. The pinhole pair’s average is too deep, by 3.59% at 80 m, because its reciprocal stretches a reading’s far error more than its near one.

Suppose each point’s disparity is read many times, with an error that is as often a pixel high as a pixel low, and the depths are averaged. For the two-slit scroll the average is the true depth, to 2 × 10⁻¹⁴ per cent: depth is a straight-line function of the reading, and averaging commutes with a straight line.

For the pinhole pair the average is wrong, and wrong in one direction. A disparity a pixel too low gives a depth further out than a disparity a pixel too high gives in front, because the reciprocal stretches the low side more — the same lopsidedness depth is a reciprocal drew as an interval not centred on the answer. Averaged, the two do not cancel: at 80 m the pinhole pair’s mean depth is 3.59% too deep. More readings make that estimate more precise and leave it exactly as biased.

So averaging, which the range a pair cannot see past found buys a square root of range for a pinhole pair, buys a two-slit scroll exactly what averaging is supposed to buy, with no floor set by the law itself.

Where the cost lands: the roll

Nothing is free, and the two-slit scroll’s cost is not in the pixels. It is in the scroll.

A point is drawn by the forward slit from one place on the track and by the backward slit from another, 2D tan φ further along. Both places have to be on the roll. A point near the start of the roll whose forward-slit position would lie before the start is drawn only once, and has no depth; so is one near the end whose backward-slit position lies after it.

How much of a 100 m roll ranges a point, against its depthA point is drawn by the forward slit from one place on the track and by the backward slit from another, 0.353 times its depth further along, so both must be on the roll. The share of a 100 m roll that ranges a point falls linearly with its depth — 92.9% at 20 m, 71.8% at 80 m — and reaches nothing at 283.6 m, the deepest point a roll that long can range at all.02550751000100200depth of the point (m)share of a 100 m roll on which both slits draw it (%)283.6 m71.8% at 80 mnone past 283.6 m
Fig. 5 The share of a 100 m roll on which both slits draw a point, against the point’s depth. It falls in a straight line — 92.9% at 20 m, 71.8% at 80 m — and reaches nothing at 283.6 m, the deepest point a roll that long can range at all.

For a roll a hundred metres long and slits at ±10°, a point twenty metres from the track is ranged over 92.9% of the roll’s length; a point eighty metres out over 71.8%; and a point 283.6 m out over none of it. The share falls in a straight line with depth, which is the linear law again, now paying rather than being paid.

So the two-slit scroll has a range limit after all, and it is a different kind of limit from a pinhole pair’s. A pinhole pair’s limit, fB/δ, is set by the reading precision and cannot be moved by building a longer instrument without widening its baseline. The two-slit scroll’s is set by the length of the roll and the slit angle, and it moves in proportion to the roll: a thousand-metre roll ranges to 2.8 km with the same slits, at the same 10.9 cm per pixel everywhere in between.

A smaller angle, and the trade inside it

The slit angle is the instrument’s one design choice, and it trades the two costs against each other.

A scroll drawn through two slits leaning ±5°: 4.55 px of disparity per metre of depthSix posts 4, 9, 15, 23, 35, 52 m from the eye's track, drawn by a pushbroom whose slit leans 5° forward along the track (upper strip) and one leaning 5° back (lower strip). Each post's two images are joined. Their horizontal separation is 18.2 px, 40.9 px, 68.2 px, 104.6 px, 159.2 px, 236.6 px — 4.549 px for every metre of depth, the same at every depth — and each post sits on the same rows in both drawings. Depth read off the separation returns each post's depth to 7e-15 m.slit leaning 5° forwardslit leaning 5° back4 m · 18 px9 m · 41 px15 m · 68 px23 m · 105 px35 m · 159 px52 m · 237 px4.549 px of disparity per metredepth to 7e-15 m
Fig. 6 The same six posts through slits leaning only 5° either way. The separations are halved — 18.2 px for the nearest and 236.6 px for the furthest, 4.549 px for every metre of depth — so a pixel is now worth twice the depth, and each point’s two drawings lie half as far apart along the roll.

At ±5° the separations halve — 18.2 px for the nearest post, 236.6 px for the furthest, 4.549 px per metre of depth — so a pixel of reading error is worth 0.220 m rather than 0.109 m. In exchange, each point’s two drawings are half as far apart along the track, so the same roll ranges twice as deep. A steeper slit angle buys depth precision with roll; a shallower one buys roll with precision. At any angle the law is linear, and the error is the same at every depth.

The roll’s length in pixels is the count of depths

The two costs — precision and roll — trade through the slit angle, and the trade has an invariant that makes the instrument easy to reason about.

A steeper slit angle makes each pixel worth less depth, 1/(2stanφ)1/(2s\tan\varphi), and makes the deepest point a roll of length L can range shallower, L/(2tanφ)L/(2\tan\varphi). Divide the second by the first and the angle cancels:

deepest ranged depthdepth one pixel is worth=Ls.\frac{\text{deepest ranged depth}}{\text{depth one pixel is worth}} = Ls.

The number of pixel-sized depth steps between the track and the deepest point the roll can range is the roll’s own length in pixels. For a hundred-metre roll at 26 px per metre it is 2,600, at ±10° and at ±5° alike: at 10° those are 2,600 steps of 10.9 cm out to 283.6 m, and at 5° they are 2,600 steps of 22.0 cm out to 571.5 m.

So the slit angle does not change how much depth a roll can tell apart. It changes only how that fixed budget is spread — finely over a short range, or coarsely over a long one. The budget itself is set by the paper: how long the scroll is and how finely it is drawn along its length. That is the conclusion a map along, and a picture across reached from the other side, that a scroll’s physical length is its measuring axis, and it is the same scale that makes a pond’s width a direct measurement of its size. Once the scene is drawn twice, the paper’s length turns out to be a measuring axis for depth as well.

What this is and is not a claim about

It is a claim about an instrument, not about paintings. No handscroll was painted through two slits, and nothing here suggests a painter placed a pond or a hill using a disparity. The two-slit scroll is a geometric construction built from the pushbroom model of a scroll, and it is here because it overturns the model’s own conclusion that depth is absent — by one change the model’s author had not needed to make.

It is a real arrangement. Imaging from a moving platform with sensors that look fore and aft along the direction of travel, and ranging the ground from the separation between the two resulting strips, is an established way of obtaining terrain from aircraft and from orbit, and its geometry is this one. The claim here is only the geometry; how such instruments are built and calibrated is not this site’s subject.

And the linear law holds for a straight track. Every result above assumes the eye travels in a straight line at constant height. A track that curves, as a river does, breaks the scaling along the roll on which both the scroll’s exact measure and this essay’s linear depth rest.

Still open: what a bending track costs a scroll

That last limit is the open question. A map along, and a picture across found the along-roll direction a perfect scale drawing, and every result since — the pond widest on its centre’s row, the posts’ disparity in exact proportion to depth — has leaned on the track being straight. A journey along a river is not straight. The measurement it needs lets the eye’s track curve with a stated radius, draws the same scene through a straight slit and through a pair of leaning ones, and measures what the bend costs: how far ratios along the roll depart from their true values as the radius tightens, whether a two-slit pair’s disparity stays proportional to depth or acquires a term in the track’s curvature, and the radius below which a scroll of a winding river stops being a scale drawing of anything.

What links here

Computed from the collection, not written here: the essays that point at this one.

Shares its objects with

Essays that name at least two of the same things, and that neither author linked.

Named objects

A flat tag is an object no other essay names yet.

BaselineDepth uncertaintyDisparityHandscrollinstrument limitMoving viewpointPushbroomStereo pair