encoding: each decoded camera pixel packs its projector pixel coords into 24-bit RGB: u12 = column (0..1023) in the top 12 bits, v12 = row (0..767) in the low 12: R = u12»4, G = (u12&15)«4 | v12»8, B = v12&255. Black = no decode (low contrast / off-raster). Downloads are always the packed raster, even when the red/green viz is shown.
sequence: white, black, then per axis 10 gray-code bit-planes (msb→lsb), 22 frames total. Decode = per-pixel threshold at (white+black)/2, gray→binary. The 2D binary set (dual photography) codes gray(Morton(u,v)) in 20 bit-planes. The sine-fringe set (1/8/64 periods × 4 phase steps, 26 frames, phase-shift decode) is kept for the fft question. Sensors quantize to 8 bits, so noise and gamma are honest knobs.
3D view: the drape is a projective texture (engine Projector pass: G-buffer depth → frustum sample) with no depth map from the projector's viewpoint, so it cannot occlude; the frustum is clamped at the tabletop so it does not paint through the table. The simulated sensors do occlude (and keep real floor overspill), so mountain shadows decode as invalid, as on a real table. Orbit: left-drag · pan: right-drag · dolly: wheel.
geometry: the projector is treated as a third camera; pairwise fundamental/essential matrices score every correspondence (match error, in pixels), camera↔projector rays triangulate the depth and height maps, and the scanned height colormap can be projected back onto the sand (swipe elevation splits it against the actual elevation). Rollover any raster, or the sand itself, for values.