What survives

Every quadric has one outline

The curve where a solid turns away from the eye is the section of the solid by one plane — the eye's polar plane — and the outline is three matrix products with no sampling in them. It works for a ball, a dish and a hyperboloid, and it fails for a cone, whose dual outline collapses to a single point and forgets which two lines pass through it.

Worth reading first: The ball at the edge of the frame · The polar with a straightedge · The circle whose centre moves.

Point a camera at a solid and the solid has an outline. Everything inside it is the solid; everything outside is not.

That sentence is doing more work than it looks. The outline is not an edge of the solid — a ball has no edges at all and still has an outline — and it is not painted on the surface, because it moves when the eye moves. It is a curve that belongs to the pair.

The eye's polar plane cuts an ellipsoidThe curve on the surface whose tangent plane passes through the eye — the contour generator — is exactly where the surface meets the **polar plane** of the eye, Q x. Here it is drawn as a plane and a curve rather than as a silhouette traced in the picture. Every point of it projects onto the conic the duals predict, to 1.2e-20 of the conic's own scale, over 242 points.correct from 18 cm, at 160 mm wideoutline from the duals · ellipse
Fig. 1 The curve, and the plane that contains it. Every point of that curve is a point of the surface whose tangent plane passes through the eye, and every one of them lies on one plane.

The claim of this essay is that for one whole class of solids the outline is not merely computable but is three matrix products, and that the class is large enough to be interesting and has an edge sharp enough to be instructive.

The class

A quadric is a surface whose points satisfy one quadratic equation. In homogeneous world coordinates that is a symmetric four-by-four matrix QQ with XTQX=0\mathbf{X}^{\mathsf T} Q \mathbf{X} = 0, exactly as a conic in the picture is a symmetric three-by-three with xTCx=0\mathbf{x}^{\mathsf T} C \mathbf{x} = 0.

The class is wider than it sounds. A sphere, every ellipsoid, both hyperboloids, a paraboloid, every circular and elliptic cylinder, and every cone are quadrics, and they differ only in the entries.

The eye's polar plane cuts a sphereThe curve on the surface whose tangent plane passes through the eye — the contour generator — is exactly where the surface meets the **polar plane** of the eye, Q x. Here it is drawn as a plane and a curve rather than as a silhouette traced in the picture. Every point of it projects onto the conic the duals predict, to 1.5e-20 of the conic's own scale, over 242 points.correct from 18 cm, at 160 mm wideoutline from the duals · ellipse
Fig. 2 A ball. The section is an ellipse in its own plane and the outline is an ellipse in the picture.
The eye's polar plane cuts a cylinderThe curve on the surface whose tangent plane passes through the eye — the contour generator — is exactly where the surface meets the **polar plane** of the eye, Q x. Here it is drawn as a plane and a curve rather than as a silhouette traced in the picture. A cylinder is a singular quadric, so the section is a pair of straight lines rather than a closed curve, and its two branches run off the ends of the clip.correct from 18 cm, at 160 mm widea singular quadric · a pair of lines
Fig. 3 A pipe. The section is a pair of straight lines, because a cylinder is a singular quadric, and the outline in the picture is two straight lines too.
The eye's polar plane cuts a coneThe curve on the surface whose tangent plane passes through the eye — the contour generator — is exactly where the surface meets the **polar plane** of the eye, Q x. Here it is drawn as a plane and a curve rather than as a silhouette traced in the picture. A cone is a singular quadric, so the section is a pair of straight lines rather than a closed curve, and its two branches run off the ends of the clip.correct from 18 cm, at 160 mm widea singular quadric · a pair of lines
Fig. 4 A cone. Its section is also a pair of lines, and they meet at the apex rather than running parallel.

The site already has the flat version of this whole apparatus. The polar with a straightedge takes the pole and polar of a conic, and five marks and the sixth fits one to five points. Everything below is one word changed: line for plane, conic for quadric, three for four.

The polar of a point, with a straightedge onlyTwo secants through the point cut the conic at four places. The other two diagonal points of the quadrangle they make are joined, and that line is the polar — agreeing with the matrix product to 2.0e-13. No length, no angle, no midpoint: only joins and crossings, which is why the whole construction survives the projection that made this picture.the pointone point, one conicconstructed and computed agree to 2e-13
Fig. 5 The plane version, for comparison: a point, a conic, and the line the point’s polar is — constructed with a straightedge, no measurement anywhere.

The plane the eye cuts

The polar of a point with respect to a conic is CxC\mathbf{x}. The polar plane of a point with respect to a quadric is QXQ\mathbf{X}, and the same words describe what it is for: it collects the points whose tangent contains the given point.

For an eye outside the surface, that means the polar plane collects exactly the points where the surface turns away from the eye. The contour generator — the curve whose image is the outline — is therefore QQ \cap the polar plane of the eye, and no search is involved.

The eye's polar plane cuts an ellipsoidThe curve on the surface whose tangent plane passes through the eye — the contour generator — is exactly where the surface meets the **polar plane** of the eye, Q x. Here it is drawn as a plane and a curve rather than as a silhouette traced in the picture. Every point of it projects onto the conic the duals predict, to 6.1e-21 of the conic's own scale, over 242 points.correct from 18 cm, at 160 mm wideoutline from the duals · ellipse
Fig. 6 The eye moved. The polar plane swings with it, and it never passes through the centre of the solid: it is always nearer the eye than the centre is, which is the same statement as more than half the ball being hidden.

Two consequences follow immediately and neither needs any more machinery.

A plane section of a quadric is a conic. That is what the quadratic form restricted to a plane says: two variables, degree two.

The image of a conic is a conic. A projection is a linear map of homogeneous coordinates, and a linear map takes a quadratic form to a quadratic form.

So the outline of a quadric is a conic. Always, whatever the surface and wherever the eye. The ball’s ellipse in the ball at the edge of the frame is not a special case; it is this statement met once.

Three circles on one ground, and the three conics they drawThe same camera and the same ground. The only thing that differs between the rows is how far the nearest point of the circle is from the plane through the eye — 4.95 m, 0.37 m, -2.98 m — and that alone decides whether the picture is an ellipse, a parabola or a hyperbola.circlenearest point, past the eye planeB² − 4ACthe picture isradius 4.00 m, wholly beyond the eye+4.951 m-1.61e-1ellipseradius 8.62 m, just touching it+0.372 m-1.58e+0ellipseradius 12.00 m, crossing it-2.978 m1.65e-1hyperbolaone camera, 34° across, eye 8.78 m from the centreellipse · ellipse · hyperbola
Fig. 7 The plane statement it rests on, drawn: a circle in the world and the conic its image is, with the type decided by one incidence.

The three matrix products

Doing it by sampling is honest and slow. There is a closed form and it is worth writing out, because the shape of it explains why the outline is the object it is.

C=PQPT,C=adjCC^{*} = P\,Q^{*}\,P^{\mathsf T}, \qquad C = \operatorname{adj} C^{*}

where Q=adjQQ^{*} = \operatorname{adj} Q is the dual quadric and CC^{*} the dual conic. A dual quadric is a list of the planes tangent to the surface; a dual conic is a list of the lines tangent to the curve.

The duals are the right objects because of what an outline is made of. The eye does not see chosen points of the surface; it sees which planes graze it. Push the tangent planes forward through the camera and what comes out is the set of tangent lines to the outline, which is the outline’s dual. Written that way there is no case analysis, no silhouette tracing and no sampling.

The one-line formula and the traced curve, over a decade of distanceC = adj(P adj(Q) Pᵀ) against the contour generator traced on the surface and projected point by point, for a sphere and an ellipsoid, with the eye taken from 2.1 m out to 34 m. The two routes agree to at least 19 decimal places everywhere and the curve is flat, which is what an identity looks like rather than an approximation. The cone and the cylinder are not on this plot because the dual route has nothing to compare: its outline conic comes back rank 1, and the adjugate that would take the point conic back out of it is 1.4e-9 of the matrix's own size.1919.52020.5102030distance from the eye to the surface (m)decimal places the two routes agree tosphereellipsoidworst 19 placessingular quadrics have no dual conic
Fig. 8 The two routes against each other over a decade of distance. The traced contour generator lands on the conic the duals predict to nineteen decimal places everywhere, and the plot is flat, which is what an identity looks like.
The site's camera, written as the matrix multi-view geometry needsK holds the focal length and the principal point; R's rows are the camera basis — right, down, forward — and t is −R·eye. Projecting all 44 scene points through P = K[R|t] and through the camera itself gives the same picture to 1.8e-13 px. Everything in this field rests on the two being one camera, so it is measured rather than assumed.K — focal length and principal point739.90345.00739.9200.0001.0000R — right, down, forward0.980000.1991-0.0182-0.99580.08970.1982-0.0915-0.9759t = −R·eye00.99586.6497focal 739.85 px · 50.0° acrossP projects 44 points where the camera does, to 1.8e-13 pxcorrect from 17 cm, at 160 mm wide50° across
Fig. 9 The camera written as a matrix and checked against this site’s own projection routine, which is a dot product and a divide. They agree to the last bit, so the dual formula is a second route rather than a restatement of the first.

The adjugate rather than the inverse is not a stylistic preference, and the next section is why.

Where it stops

A cone and a cylinder are singular quadrics: their determinant is zero, so Q1Q^{-1} does not exist. The adjugate does, and it is rank one.

Push a rank-one dual through the camera and the result is rank one. As a dual conic, a rank-one matrix is not a curve at all — it is a point, and the set of lines it names is the pencil of all lines through that point.

A cone's outline is two lines, and the duals name only where they crossThe contour generator of a cone, traced on the surface and projected. It is two straight rulings, and every traced point lies on one of them to 1.9e-12 px. The dual formula returns a rank-1 matrix — its second eigenvalue is 4.0e-17 of its first — which as a dual conic is a single **point**: the image of the apex, at 345, 39. It names the point the two lines pass through and forgets which two they are.where the duals pointcorrect from 17 cm, at 160 mm widerank 1 dual · on the lines to 5.4e-12 px
Fig. 10 A cone’s outline. It is two rulings, and every traced point lies on one of them to two parts in a million million of a pixel. The dual formula returns a rank-one matrix whose second eigenvalue is three parts in a hundred million million million of its first, and what that matrix names is a single point: the image of the apex.

Which is right, and useless. The outline of a cone from outside is two lines through the image of the apex; the dual conic names the point they pass through and forgets which two they are. Taking the adjugate back to recover the point conic gives a matrix of zeros — a millionth of a millionth of the size of its own entries — and a routine that normalised those zeros would return a perfectly plausible ellipse with nothing behind it.

A cylinder's outline is two lines, and the duals name only where they crossThe contour generator of a cylinder, traced on the surface and projected. It is two straight rulings, and every traced point lies on one of them to 5.9e-14 px. The dual formula returns a rank-1 matrix — its second eigenvalue is 1.5e-18 of its first — which as a dual conic is a single **point**: the image of the axis direction, off the canvas. It names the point the two lines pass through and forgets which two they are.correct from 17 cm, at 160 mm widerank 1 dual · on the lines to 5.9e-14 px
Fig. 11 The same for a pipe, whose two outline lines are parallel in the world and meet at the vanishing point of the pipe’s own axis. The dual formula names that vanishing point and, again, not the two lines.

So outlineConic refuses. It measures the rank of the dual, and a rank other than three is an error rather than a number to press on with. The refusal is the useful part: the point route is unaffected — the contour generator is still the polar plane’s section, still exactly two straight lines, still projects to the outline — so what has been found is not a hole in the theory but a domain.

The eye's polar plane cuts a coneThe curve on the surface whose tangent plane passes through the eye — the contour generator — is exactly where the surface meets the **polar plane** of the eye, Q x. Here it is drawn as a plane and a curve rather than as a silhouette traced in the picture. A cone is a singular quadric, so the section is a pair of straight lines rather than a closed curve, and its two branches run off the ends of the clip.correct from 18 cm, at 160 mm widea singular quadric · a pair of lines
Fig. 12 The point route running on the case the dual route refuses. Nothing here is approximate: the section is solved in closed form in the polar plane, and the two lines come out of its own eigen-decomposition rather than out of a fit.

Why the degenerate section had to be handled at all

Tracing a plane conic is normally done by sweeping a direction out of its centre and solving a quadratic. That is fine for an ellipse and impossible here: a pair of parallel lines has no centre, and a pair of crossing lines has one exactly where the tracing would divide by nothing.

So the tracing is done by parallel chords instead — sweep one coordinate, solve for the other — and where the curve exists at all is itself solved rather than searched for, because the chord’s discriminant is a quadratic in the sweep coordinate. A bounded section then gets its own extent and an unbounded one gets whatever clip the figure asked for.

That is a small implementation decision and it is the reason the four surfaces are one routine rather than two. A version that swept directions would have worked on the two proper quadrics, would have thrown on the two singular ones, and would have suggested that the singular ones were a different subject.

What the receiving surface costs a four-point fitThe same lamp and the same occluder, cast onto four surfaces. Four marks of the shadow are matched to four known points of the occluder, the map they determine exactly is built, and the other sixty-eight points are predicted by it. On the plane the prediction is right to 3e-13 mm; on the others it is not, and the fit is still exact at the four everywhere — 2e-13 mm — which is what makes the rest a prediction rather than a residual.a flat floor3e-13 mma homology — four points determine ita dished floor5.67 mmnot a homologya ridged floor9.07 mmnot a homologya floor with a step74.95 mmnot a homologyworst error of the predicted pointsexact at the four fitted, on every surface
Fig. 13 The same lesson from the light field, where a shadow is cast onto four differently shaped receivers by one routine. Writing the general case first is what makes the special ones comparable.

Which conic comes out, and what decides it

The outline of a ball is an ellipse in every ordinary picture, and it need not be.

The test is the one the conic a circle becomes already gives for a curve, and it transfers without a word changed: the type of the image is decided by whether the object reaches the plane through the eye parallel to the picture. A contour generator entirely in front of that plane images as an ellipse. One that touches it images as a parabola. One that crosses it — which happens when the eye is close enough to the surface for the grazing curve to wrap past the eye’s own plane — images as a hyperbola, and half the outline is off at infinity.

Three circles on one ground, and the three conics they drawThe same camera and the same ground. The only thing that differs between the rows is how far the nearest point of the circle is from the plane through the eye — 4.95 m, 0.37 m, -2.98 m — and that alone decides whether the picture is an ellipse, a parabola or a hyperbola.circlenearest point, past the eye planeB² − 4ACthe picture isradius 4.00 m, wholly beyond the eye+4.951 m-1.61e-1ellipseradius 8.62 m, just touching it+0.372 m-1.58e+0ellipseradius 12.00 m, crossing it-2.978 m1.65e-1hyperbolaone camera, 34° across, eye 8.78 m from the centreellipse · ellipse · hyperbola
Fig. 14 The plane version of the test, run over a sweep that crosses. Nothing about the size or the distance decides the type; one incidence does.

For a sphere the crossing cannot happen at all from outside: the grazing circle is always nearer the eye than the centre is, so it is always in front of the eye’s own plane, and a ball is an ellipse in every picture anybody takes. For an unbounded quadric it happens constantly: a cylinder that runs past the observer has an outline with two branches, and a paraboloid seen from close in has a hyperbola for an outline. The formula does not notice — it returns the conic and the conic knows which kind it is — and the drawing has to notice, because an unbounded outline cannot be traced as a closed loop.

The eye's polar plane cuts a cylinderThe curve on the surface whose tangent plane passes through the eye — the contour generator — is exactly where the surface meets the **polar plane** of the eye, Q x. Here it is drawn as a plane and a curve rather than as a silhouette traced in the picture. A cylinder is a singular quadric, so the section is a pair of straight lines rather than a closed curve, and its two branches run off the ends of the clip.correct from 18 cm, at 160 mm widea singular quadric · a pair of lines
Fig. 15 A pipe whose outline is unbounded, drawn by clipping rather than by closing. Where a bounded section gets its own extent solved for it, an unbounded one has to be told how much to show.

Nine points, and what a quadric costs

A conic has five degrees of freedom, which is why five points fix one and why five marks and the sixth is a prediction rather than a fit.

A quadric is a symmetric four-by-four up to scale, which is nine. So nine points in general position fix a quadric, and a tenth is predicted. That is the same sentence again with the number changed, and it sets the price of the whole class: recovering a quadric from marks is nearly twice the work of recovering a conic, and every conditioning problem the conic fit has is worse.

Two circles, differently tilted, drawing one pictureBoth are 6.4 m across and both are in front of the camera; their planes are 23.61° apart. Each draws the conic to 1.1e-16 on normalised coefficients, while a plane one degree from either draws one 2.5e-4 away — so the agreement is a measurement and the ambiguity is real. And the distance is free on top of that: at 1.7× the range the same picture is drawn by a circle 1.7× as wide.horizonflat on the groundleaning 23.6°two circles, 6.4 m across, in planes 23.6° apartcorrect from 26 cm, at 160 mm widetwo poses, 23.6° apart, one picture
Fig. 16 The plane version, where five is enough and four is not: the family a short measure leaves, drawn rather than described.

The outline route sidesteps that entirely, and it is worth being clear about why. Nothing here fits a quadric to anything. The quadric is given — it is the object being drawn — and the question is what its picture is. That is the forward direction, and it is exact. The backward direction, recovering a quadric from its outlines in several pictures, is a real subject with real conditioning, and the outlines it works on are the ones computed here.

Another picture of the same sweep buys nothingTwo ways of adding views to the courtyard, every mark read to 1 px. Filling in a fixed 60° sweep leaves the worst camera-centre error at 2.0e-3 where 3 views gave 1.1e-3. Widening the sweep by 12° per view improves it from 3.2e-3 to 1.3e-3 and then flattens as well. What the reconstruction is short of is angular spread, not pictures. At every point on both curves the Jacobian has exactly 7 flat directions.-2.80-2.6034567number of viewsworst camera-centre error (fraction of the track's mean radius, log scale)7 flat7 flat7 flat7 flat7 flat60° sweep, filled in12° per view, wideningfilled in: 1.1e-3 → 2.0e-3widened: 3.2e-3 → 1.8e-3
Fig. 17 What a second picture adds, in the general case. One outline gives a cone; two give the pair of quadrics inscribed in both cones, and the count of views needed is set by the nine.

The two curves on one solid

A quadric seen from a point has a contour generator. A quadric lit from a point has one too, and they are different curves.

The shadow's edge and the drawn outlineTwo circles on the same ball. One is where the surface turns away from the lamp — it is the curve whose shadow is the edge of the cast shadow, and at 2.6 m it lies 80.0° from the lamp's direction rather than the 90° of a great circle. The other is where the surface turns away from the eye, at 84.0°. They are 88.9° apart and they coincide only when the lamp is at the eye, which is the arrangement in which no shadow is visible.88.9° between the two circlescorrect from 23 cm, at 160 mm widelamp 2.6 m · shadow circle at 80.0°
Fig. 18 Both, on one ball: the circle where it turns away from the eye and the circle where it turns away from the lamp. Neither is the equator, and the two coincide exactly when the eye is at the lamp — which is the arrangement in which no shadow is visible.

That is the same construction twice with the centre moved, which is this site’s oldest habit and the reason the light field needed no new machinery when it was opened. One routine computes the curve for a lamp and another computes it for an eye, written at different times for different reasons, and they agree on the case they share.

The lamp is the second eyeOne camera, one lamp, one point. The camera's ray through the point's image fixes it on a line; the image of its shadow fixes where the lamp's ray through it meets the floor; and two lines that are not parallel meet. The point comes back at 1e-15 m of closest approach and 9e-16 m from where it was put — depth out of a single photograph, with no second camera and nothing assumed about the object. The rays cross at 28.5°, and that angle is what the measurement is worth.horizonthe pointits shadowcorrect from 22 cm, at 160 mm widerays cross at 24.8° · recovered to 4e-15 m
Fig. 19 The general statement: a lamp is a centre of projection, so every question about what an eye sees has a partner about what a lamp lights.

What comes out of it that a silhouette does not give

The outline as a conic is five numbers rather than a traced curve, and the difference matters as soon as anything is to be recovered.

Fitting a conic to a drawn outline and taking the tangent cone through the eye gives back a cone in space, exactly. For a sphere the axis of that cone is the direction to the ball and its half-angle is the ratio of radius to distance. For a cylinder the two outline lines meet at a vanishing point, which is the direction of the axis, recovered from an outline with no end-caps visible anywhere.

The vanishing point runs to infinity and the measurement does not careAs the camera comes level the vertical vanishing point leaves the canvas, the page and eventually the plausible — 7.2 × 10⁹ px at a tilt of one part in eight million. The recovered height stays exact to 2e-16 relative the whole way. At exactly level the method has nothing to work with and refuses.0510-6-4-20how far the camera looks down, over eight metres (metres, log scale)where the vertical vanishing point falls (log₁₀ pixels)the vanishing pointthe error in the recovered heightthe error curve is offset by 17 decades to be visiblea flat line at machine precision
Fig. 20 The recovery a pipe’s outline supports: the two drawn lines meet at the vanishing point of the axis, and that point is a direction in the world whether or not it lands on the paper.
Two scenes 137× apart, and the one picture they both makeEverything in the second plan — the room, the eye's distance, the eye's own height — is 137 times the first. Every projected vertex agrees to 1e-13 px. A single photograph has no scale, and this is what that means.a room 2.8 m across, eye 1.6 m up1 mthe same plan, 137× bigger137 midenticalpicturesthe picture — both scenes, drawn twice, one on top of the otherlargest disagreement 1e-13 px over 8 verticesone length has to come from outside the picture
Fig. 21 And the standing refusal that every one of these recoveries runs into. A single view fixes the geometry up to one overall scale, so a cone recovered from an outline has a shape and no size.

What this does not say

It does not say that real solids are quadrics. Almost nothing is. What the class buys is that the outline of a member is exactly computable, which makes it the right place to check a silhouette routine that will later be pointed at something arbitrary — the same reason this site draws boxes rather than buildings when it wants to recover a camera.

It does not say the contour generator is visible. It is a curve on the surface and the reader is looking at the surface edge-on there, so nothing marks it in the picture except the outline itself. Where it is visible is on a second solid: the curve where a ball turns away from a lamp is drawn on the ball as the edge of its own shadowed part, and that is the version the edge of a shadow is drawn on the object can point at.

It says nothing about finding the outline in a photograph. Every outline here is computed from the surface, and detecting one in an image is a matter of image data, which this site’s multi-view ruling puts outside its own scope on purpose.

And it does not say the dual route is better. It is faster, it has a domain, and the point route has no domain and is slower. Keeping both is what let the domain be discovered at all: the disagreement was not predicted, it was found by running one against the other and watching the check fail.

The transferable form

The interesting half of this essay was not the formula. It was the day the formula stopped working.

A closed form and a sampled routine kept side by side will eventually disagree, and the disagreement is where one of them has a domain the other does not. A single route never tells its user which cases it is wrong on.

That is the same shape as the site’s oldest habit stated from a new angle. Two routes are usually kept so that agreement means something; here they were kept and the disagreement meant something, and it meant the more useful thing. A cone’s outline was going to be drawn either way; without the second route it would have been drawn from a normalised matrix of numerical zeros, and it would have looked entirely reasonable.

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.

AdjugateCamera matrixConicContour generatorDegeneracyDemonstrationDual conicDual quadricHomogeneous coordinatesPolar planepole and polarQuadric