Theater designers size seating risers with the standard sightline C-value formula: for a spectator's eye to clear the head of the person one row ahead by clearance C and still see the focal point on stage (usually the front edge of the stage floor, or an actor's eye level), the required eye height at row n is:
H(n) = D(n)/D1 · (H1 + C) − C
D(n) = horizontal distance from row n to the focal point
D1 = distance from row 1 (front row) to the focal point
H1 = eye height of row 1 above the focal point
C = clearance over the head in front (≈ 60–90 mm is standard)
This simulator instead runs the formula forward: you set a fixed riser height and row spacing, and it computes the actual clearance C achieved at every row by tracing the sightline ray from each seat's eye to the focal point and checking whether it clears the seated head directly in front (average seated eye-to-crown offset ≈ 0.12 m). A seat is marked blocked (red) when that ray dips below the head in front of it — the view is obstructed.
- Stage depth / focal height — moves the point every sightline must reach; a lower focal point (near the stage floor) is the hardest to clear, which is why designers check floor-level sightlines, not just eye-level ones.
- Riser height — flat floors (0 mm) block almost every row past the first; too much riser wastes building height and steepens the rake beyond comfort.
- Auto-solve — picks the constant riser height that gives every row exactly C = 60 mm, the minimum most codes accept, by solving the formula above row-by-row.
Real theaters (raked stalls, stadium seating, cinema risers) are all built on exactly this calculation — it is the difference between a seat with a clear view and one staring at the back of a head.