The Fish Window: Snell’s Law

Revised & Expanded 2/18/26

I like to use math to predict the outcome of a situation, this way I can see the reality without having to guess and understand my constraints before putting reality to the test. I started carrying around a notebook full of the formulas I have collected. When I am on the water, or scouting fishing holes, I use the shortcuts to quickly solve a problem within a certain location.

We have all been there: just pulling up to the water, when a fish surfaces for food. Every angler’s instinct is to jump out of the vehicle and bolt for the tackle! Meanwhile, the instant the door swings open and the angler sets foot on the ground the fish darts away. Being spotted and spooking the fish is not uncommon, and likely happening to anglers without them knowing, but there is a way to avoid being seen by the fish altogether, thanks to refraction.

Water has a different density than air, therefore it has a different refraction index. When water is 57º F (25º C), then the refractive index is 1.3390, or it may be simply referenced as 1.33 as a standard. Air has a much lower refractive index of 1.00028276, or simply 1. Th M. N. Polyanskiy. Refractiveindex.info database of optical constants. Sci. Data 11, 94 (2024) https://doi.org/10.1038/s41597-023-02898-2.

Snell’s Law states that when light passes from one medium into another, the product of the refractive index and the sine of the angle (measured from the normal) is the same in both media.

n_r​ ∙ sin(θ_r​) = n_i ​sin(θ_i​)

Where n is the index, i is the incident, and r is the refracted. The angles are measured from a perpendicular reference line, the normal, at 90º, drawn down from the point where the light hits the surface of the medium, and in this case, water.

Why is this important to an angler? For one, the physics causes light to be geometrically “funnel-limited”: only rays entering the water within a certain range of directions can refract down into the underwater eye. Everything else hits the surface at too steep an angle and internally reflects entirely, so you see the above water compressed into a circular window, surrounded by the underwater world mirrored.

As we will see in a second, the window acts like a lens. Due to refraction compression (peripheral) the ~180-degree image is compressed into ~97 degrees; consequently, the fish can see above-water objects only along underwater viewing angles θ ≤ θ_c, or the critical angle. The critical angle is the angle threshold where light does not pass. We can find this by setting the refracted ray to 90º from normal. This represents the edge of visibility. From the fish’s perspective, this angle marks the boundary of Snell’s Window: rays within this angle refract into the water, while rays beyond it are reflected back, creating the circular window of vision above.

​θ_i = 90

sin(90) = 1

n_r​ ∙ sin(θ_r​) = n_i  ​1

sin(θ_r​) = n_i / n_r

θ_c = arcsin(n_i / n_r)θ_c  = arcsin(1.00/ 1.33) = 48.31º

This is equal to half the cone angle.

48.31 ∙ 2 = 96.62º

This is the famous ~97º window called Snell’s Window.

For anglers, this is important, because it gives us a curtain to hide behind. The trick is knowing that the deeper the fish is in the water, the larger the viewport radius will be. We can see this principle at work by adjusting the depth of the fish and calculating the viewport radius. We use tangent (SOH, CAH, TOA) to find the radius when Radius = r, Depth = h. To find the horizontal distance, r, from the fish we use Snell’s law derivative:

tan(θ_c) = r /h

r = h ∙ tan(θ_c)

If h = 1 foot:

r = 1∙ tan(48.31)

r = 1∙ tan(48.31)

r = 1.12

So, for every 1 foot of depth, the hidden zone starts 1.12 feet away from the center of the window. In the beginning, say we are standing 20-25 yards from the fish; the fish is about 3 feet deep in the water. One argument made is: did the fish see the sudden movement and jolt, or did the footsteps in the sand cause the Mauthner neurons to react? This math defines the region where a fish can see you. Whether it reacts depends on biological factors. Read more on Mauthner neurons here: https://madanglerhub.com/2026/02/01/ancestral-machinery-why-fish-behave-the-way-they-do/. More precisely: was the angler seen and ignored by the fish, or was the fish unaware visually and felt the vibrations through the sand or rock?

3.37 feet = 3 feet ∙ tan(48.31)

This formula can be used to compare radius sizes between different depths of water. This effectively raises the water level, rather than modeling the actual ray path. If the depth is 3 feet, then the radius of the window on the top of the water is 3.37 feet, a ~1.12x difference. To adjust for depth:

r ≤ (h) ∙ tan(θ_c​)

r ≤ (depth +/- new depth) ∙ tan(θ_c​)

r ≤ (3 + 6) ∙ tan(48.31)

r ≤ ~10 feet

This means the entire window is ~20 feet in diameter.

To understand the lens effect, we need to calculate for θ_i, or the incident angle, using Snell’s Law:

n_i ∙ sin(θ_r​) = n_r ​sin(θ_i​)

sin(θ_i) = (n_r / n_i)  ​sin(θ_r​)

θ_i​ = arcsin((n_r / n_i)  ​sin(θ_r​))

θ_i​ = arcsin((1.339 / 1.0)  ​sin(48.31))

θ_i​  = arcsin(1.339 ∙ 0.74675)

θ_i​  = arcsin(0.999989825)

θ_i​  = 89.18º

Therefore, the hidden area is technically:

θ = 90.0 – 89.18 = 0.82ºReal Hidden < 0.82º

This shows that the boat isn’t truly invisible unless we stand hundreds of feet away, however, due to compression the image shrinks as the distance grows. But this is an angle measured from the surface tangent, the point at which the light bends if shined outward. This is not a practical “stay-back” angle. This tells us at the rim of Snell’s window, the last above-water ray is grazing the surface (almost parallel to the water).

So, the question becomes: what would the depth have to be for the fish to see the angler? We go back to the tangent formula:

r = h ∙ tan(θ_c)

r / tan(θ_c) = h

Replace with the new radius, b:

b / tan(θ_c​) = h

67.5 feet / 1.12 = ~60 feet deep

If b is distance between the angler and the horizontal  point above the fish and r is the radius of the optical window, and b > r  the angler remains outside the fish’s optical window, hidden, however, you may be spotted if not crouched.

b = (a / tan(90 – θ_i​))

Angler_Distance when standing = (angler_height / tan(90 – θ_i​))

b_total = r + (a / tan(90 – θ_i​))

We then use the two formulas together to compare: visible if b ≤ r, hidden if b > r; a is the angler’s height, h is the depth of the target fish, and r is the radius of Snell’s window.

b > r

r + (a / tan(90 – θ_i​)) > h ∙ tan(θ_c)

In our example, we had 3.37 feet for the radius, but was the angler in the hidden zone?

If we calculated, 3.37 + ( 6 / tan(90 – θ_i​)), then no, the angler was not hidden from view, but the angler has shrunk to a very small size; however, if we use θ_c, then we use the widest angle before compression begins.

r + (a / tan(90 – θ_c)) > h ∙ tan(θ_c)

3.37 + (6 / tan(90 – 48.31)) > 3.37

3.37 + (6 / tan(41.7)) > 3.37

3.37 + (6.734) > 3.37

10.10 feet > 3.37 feet

This formula tells the deepest depth a fish will be, while keeping the angler under the visible rays before being compressed in Snell’s window. If b is greater than r, then the angler is effectively hidden from view. It isn’t a field ready formula, it’s too technical, but it is needed if the angler is on a steep incline. Where I fish, level earth is sometimes high above the waterline, and this is because Lucky Peak and Arrowrock are reservoirs in a canyon. Inclines are often steep in reservoir lakes and finding a safe fishing spot can be tricky. The beach areas offer lower angles, but require more distance to cast before reaching a depth most target fish are during a cold season or bright days. It’s hard to imagine having to stalk a fish like a hunter, but if the distance to depth rule (1.12x * h) is practiced religiously, it can lead to more hook-ups.

Leave a comment