• **the assumption (brightness / color constancy)**: a scene point keeps the same intensity as it moves over one timestep — it just *relocates*:
$$I(x,\,y,\,t) = I(x+u,\;y+v,\;t+1).$$
($u,v$ = the per-pixel displacement we want.) This is the "color constancy assumption" of Horn & Schunck 1981. [`fig-brightness-constancy`]
• **linearize (first-order Taylor)**: expand the right side about $(x,y,t)$, assuming small motion:
$$I(x+u,y+v,t+1) \approx I(x,y,t) + I_x\,u + I_y\,v + I_t.$$
Subtract $I(x,y,t)$ from both sides of brightness constancy → the **optical-flow constraint equation (OFCE)**:
$$\boxed{\,I_x\,u + I_y\,v + I_t = 0\,}\qquad\text{equivalently}\qquad \nabla I\cdot(u,v) + I_t = 0,$$
with $I_x,I_y$ the **spatial** gradients and $I_t$ the **temporal** gradient (frame difference).
• 💡 **"only the gradient matters"**: motion is invisible in **flat** regions — where $\nabla I = 0$ the constraint says $I_t=0$ and tells you *nothing* about $(u,v)$. Information about motion lives **entirely in the image gradient**. (This is exactly the lever Eulerian video magnification pulls: amplify the *temporal* change $I_t$ in proportion to the spatial gradient.)
• **the constraint is a line, not a point**: one scalar equation in two unknowns. In the $(u,v)$ plane it's a **line**; the true flow lies *somewhere on it* but is otherwise undetermined. We can pin down only the component **along $\nabla I$**: the **normal flow** $\;u_\perp = -I_t / \lVert\nabla I\rVert$ (magnitude), directed along the gradient. The component **tangent to the edge is free**. [`fig-flow-constraint-line`]