Brewster angle calculator
Finds the polarizing angle for any pair of media: light going from air (index 1) into glass (index 1.5) reflects fully polarized at about 56.3°. The index ratio and each calculation step are shown. Free in your browser.
- Free
- Runs in your browser
- No sign-up
- Your data stays on your device
Run — free
Worked example
- N1
- 1
- N2
- 1.5
- Ratio
- 1.5
- N2 over n1
- 1.5
- Brewster angle rad
- 0.9827937232
- Brewster angle deg
- 56.309932474
A Brewster angle calculator turns two refractive indices into the incidence angle at which reflected light is fully polarized. Enter n1 for the incident medium and n2 for the second medium; the tool returns θB equals arctan of n2 over n1 in both radians and degrees, the index ratio, a clear formula string, substitution steps, and a short message that states the polarization result.
What Brewster's angle means for two media
When a plane electromagnetic wave strikes a planar dielectric interface, part of the light is reflected and part is refracted. The amplitude of each polarization component depends on the angle of incidence and on the refractive indices of the two media through the Fresnel equations. There is a special angle, called Brewster's angle or the polarizing angle, at which the p-polarized (parallel to the plane of incidence) reflection coefficient drops to zero.
At that geometry the reflected beam contains only the s-polarized component and is therefore fully linearly polarized. For incidence from medium n1 onto medium n2, Brewster's law states that the polarizing angle measured from the surface normal is the arctangent of the ratio n2 over n1. Classic classroom checks use air to glass: n1 near one and n2 near one point five, which yields a Brewster angle of roughly fifty-six degrees.
The complementary statement is that the reflected and refracted rays are perpendicular at Brewster incidence, which follows from Snell's law once the arctan condition holds. Teachers care about the non-positive-index rejection as much as the arithmetic: a student who plugs n equals zero or a negative placeholder has left the physical domain of this tool, and a silent NaN or absolute-value fallback would hide that mistake.
The check path recomputes arctan of n2 over n1 with the same fixed rounding used for published fields, so a successful response always ships with steps you can assert in tests or worksheets.
Practical tips, limits, and related searches
Use the refractive indices at the wavelength of interest when dispersion matters: glass and plastics change n across the visible band, so a single n pair is a monochromatic approximation. Keep both indices inside the published positive range so the ratio cannot overflow into a non-finite arctangent that the solver must reject. Prefer sending numbers rather than pre-formatted strings when you control the client; string numbers are accepted only when they match a strict finite numeric pattern.
Prefer this capability when you already have two positive indices and only need the polarizing angle; if your source is a material datasheet with n at several wavelengths, pick the row that matches your laser or LED first.
What you can do with it
Homework checks for Brewster's law
Students enter n1 and n2 from textbook air-glass or water-glass problems and compare hand-written θB in degrees against a deterministic result before submitting.
Lab polarizer and Brewster window setup
Pipelines convert catalog refractive indices into the incidence angle for a Brewster window or external reflection polarizer before locking mount geometry.
FAQ
What is Brewster's angle?
It is the incidence angle θB = arctan(n₂/n₁) at which light reflected from the interface between media n1 and n2 is fully polarized (s-polarized; p-reflection vanishes).
Is the angle from the normal or from the surface?
From the surface normal, matching standard geometric-optics convention for incidence angles and Snell's law.
Does this compute Fresnel reflectance?
No. It only returns the Brewster angle (and ratio, dual units, steps). Amplitude reflectance coefficients are out of scope.
Is the Brewster angle calculator free?
The browser tool is free and runs locally.
What is the Brewster angle from air to glass?
With an index of 1 for air and 1.5 for glass, Brewster's angle is about 56.3° from the surface normal. At that angle the reflected light keeps only its s-polarized part.
Related tools
For developers — API access
Everything on this page is available programmatically. This section is for teams who want to wire it into their own systems; everyone else can just use the tool above.
API endpoint
Prefer to automate it? One authenticated POST creates the task; the result comes back by webhook or a signed link. The same capability also runs here on the web, by email and from Telegram — and soon from our app too.
Call it from your stack
curl -X POST https://api.kit.forhosting.com/optics/brewster-angle \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"n1":1,"n2":1.5}'const res = await fetch("https://api.kit.forhosting.com/optics/brewster-angle", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"n1": 1,
"n2": 1.5
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/optics/brewster-angle",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"n1": 1,
"n2": 1.5
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/optics/brewster-angle", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"n1":1,"n2":1.5}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"n1":1,"n2":1.5}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/optics/brewster-angle", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Example request
{
"n1": 1,
"n2": 1.5
}Example response
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "optics.brewster_angle",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}The API is asynchronous: the call returns a task_id immediately and the result arrives by webhook. Polling is capped at 1 req/s per task.
Pricing
Published price — no tokens, no invented credits. A failed task is never charged.
Limits
max_abs | 1000000000000 |
Errors
| HTTP | Code | Meaning |
|---|---|---|
401 | unauthorized | Missing or invalid API key. |
402 | insufficient_balance | Your balance doesn't cover the task price. |
404 | unknown_type | That task type doesn't exist. |
429 | rate_limited | Too many requests. Use the webhook instead of polling. |
Technical notes
Non-positive refractive indices are rejected with invalid_input because Brewster's law is defined for physical positive n values, not for zero or negative placeholders.
How to call the API and what comes back
Values at or below about one times ten to the minus fifteen, or below the published minimum positive floor, are treated as non-positive and rejected. Send a JSON body with two required finite numbers: n1 for the incident medium refractive index (aliases n_i, n_incident, incident_index, n_from) and n2 for the second medium (aliases n_t, n_transmitted, transmitted_index, n_to). Both must be strictly positive and stay within the published absolute limit of one trillion so the ratio and arctangent remain finite in IEEE double precision on the Worker and in the browser. On success the response echoes rounded n1 and n2, sets ratio and n2_over_n1 to the same n2 divided by n1 value, brewster_angle_rad and theta_b_rad to the angle in radians, brewster_angle_deg and theta_b_deg to the angle in degrees, formula to the string θB equals arctan of n2 over n1, units for rad, deg, and dimensionless index, message to a short English summary, and steps to an ordered array of substitution lines. Failed validation—missing fields, non-finite numbers, values outside absolute limits, non-positive indices, or a non-finite ratio or angle—returns invalid_input and is never charged. Pricing is a flat $0.002 per successful request with unit item and zero marginal unit price.
Practical tips, limits, and related searches
When teaching, pair examples: air n1 equals one onto glass n2 equals one point five yields about fifty-six point three degrees; water n1 equals one point three three onto glass recovers a different angle; equal indices n1 equals n2 yield forty-five degrees because arctan of one is π over four; and n1 or n2 equal to zero demonstrates the hard invalid_input path. This landing targets people searching for a Brewster angle calculator, polarization angle from refractive index, or arctan n2 over n1 online; it is not a full Fresnel reflectance curve tool, not a Malus-law intensity calculator after an analyzer, and not a wavelength-dependent dispersion model. Failed tasks that return invalid_input do not consume prepaid balance, which keeps exploratory scripts cheap when learners deliberately send non-positive n. Round-trip checks are easy: recompute arctan of n2 over n1 by hand or in a calculator and confirm it equals brewster_angle_rad within the same twelve-decimal rounding, then convert radians times one hundred eighty over pi and confirm brewster_angle_deg.
Integration use cases
Unit tests for optics libraries
Generate known-good polarizing angles plus deliberate non-positive-index rejections for coding kata expected values and CI fixtures.
Technical questions
What happens when a refractive index is zero or negative?
Brewster's law requires strictly positive indices. This tool returns invalid_input instead of taking an absolute value or returning NaN.