Michelson interferometer mirror displacement
Count fringes, get mirror travel: 100 fringes with light of 6.328e-7 m mean the mirror moved 0.00003164 m, half the optical path change, because the light covers the extra distance twice. Free in your browser.
- Free
- Runs in your browser
- No sign-up
- Your data stays on your device
Run — free
Worked example
- Fringe count
- 100
- Wavelength
- 0.0000006328
- Mirror displacement
- 0.00003164
- Optical path change
- 0.00006328
- Precision
- 12
- Equation
- ΔL = 100·6.328e-7/2 = 0.00003164
A Michelson interferometer splits a monochromatic beam into two arms, reflects each from a mirror, and recombines them so interference fringes form at the detector. When one end mirror is translated along the optical axis by a distance ΔL, the light in that arm travels the extra distance twice—out and back—so the optical path length changes by 2ΔL. Counting how many bright or dark fringes pass a fixed point therefore measures that path change in units of the wavelength. This Michelson interferometer mirror displacement calculator accepts the fringe count N and the source wavelength λ, applies the closed identity ΔL equals N times λ over two, and returns the mirror displacement in the same length unit you used for λ. The engine is pure finite arithmetic: no network calls, no sampling, and no date-dependent shortcuts.
What counting fringes tells you
In the classic Michelson layout, a beam splitter divides coherent light into a reference arm and a measurement arm. Each arm ends in a mirror; the returning beams recombine and produce a fringe pattern whose local intensity depends on the optical path difference between the arms. Translating the measurement mirror by ΔL changes only that arm’s geometric path by ΔL on the outbound leg and again by ΔL on the return leg, so the optical path difference shifts by 2ΔL.
Bright fringes occur when the path difference is an integer multiple of λ; dark fringes when it is a half-integer multiple. Therefore each fringe that sweeps past a fixed observation point corresponds to one wavelength of optical-path change: N times λ equals 2 times ΔL, which rearranges to the working formula ΔL equals N times λ divided by two.
Where Michelson displacement checks fit in labs, study, and software
Students meet the Michelson formula when a lab counts fringes while a micrometer translates one mirror, when a homework set asks for ΔL given N and a He–Ne wavelength of six hundred thirty-two point eight nanometres, or when a contest problem wants the mirror travel from a measured fringe tally without building an optical table. Teachers can pre-generate answer keys for modest SI lengths without trusting opaque calculator apps that silently convert units or drop powers of ten on nanometres.
Metrology and instrumentation notebooks use the same identity when calibrating piezoelectric stages, checking screw-micrometer backlash against fringe counts, or converting a logged fringe counter into metres of travel for a stability report. Developers call the contract from scripts to seed deterministic test vectors for wave-optics widgets, to normalize user-entered N and λ before a classroom demo, or to satisfy programming-challenge statements that demand mirror displacement rather than a hand-waved sketch.
Product and education tools use the solve when a learner types fringe count and wavelength and the UI must show ΔL and the round-trip path change side by side.
What you can do with it
Undergraduate Michelson lab reports
Convert counted fringes N and laser wavelength λ into mirror displacement ΔL = Nλ/2 for micrometer comparisons and error analysis.
Homework and exam answer keys
Generate reproducible ΔL values for textbook He–Ne and sodium-line problems without hand arithmetic mistakes on powers of ten.
FAQ
What does the Michelson mirror displacement calculator cost?
It is free in your browser on this page.
Why is there a factor of two in ΔL = Nλ/2?
Light travels to the moving mirror and back, so a geometric displacement ΔL changes the optical path by 2ΔL. Each fringe corresponds to one wavelength of path change, hence Nλ = 2ΔL.
What happens if wavelength is zero or negative?
Wavelength must be a positive finite number for ΔL = Nλ/2 to be defined.
Can fringe count be a non-integer?
Yes. Partial fringes are allowed as non-negative finite numbers. Negative fringe counts are rejected by this contract.
Which unit does the mirror displacement come out in?
The same unit you used for the wavelength. Enter the wavelength in metres and the travel is in metres; enter it in nanometres and the travel comes out in nanometres.
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/michelson-mirror-displacement \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"fringe_count":100,"wavelength":6.328e-7}'const res = await fetch("https://api.kit.forhosting.com/optics/michelson-mirror-displacement", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"fringe_count": 100,
"wavelength": 6.328e-7
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/optics/michelson-mirror-displacement",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"fringe_count": 100,
"wavelength": 6.328e-7
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/optics/michelson-mirror-displacement", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"fringe_count":100,"wavelength":6.328e-7}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"fringe_count":100,"wavelength":6.328e-7}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/optics/michelson-mirror-displacement", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Example request
{
"fringe_count": 100,
"wavelength": 6.328e-7
}Example response
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "optics.michelson_mirror_displacement",
"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.
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
What Michelson fringe counting measures and what the response contains
This calculator returns the normalized fringe_count and wavelength you supplied, the computed mirror_displacement rounded to the requested precision, the optical_path_change Nλ (equal to 2ΔL), the precision used, a short formula string, a concrete equation with substituted numbers, the method tag michelson_mirror_displacement, and a one-line message. There is no ray-trace path and no random sampling of intensities: the engine either builds exact floating-point ΔL inside the supported magnitude range or rejects the input with invalid_input. Rejected cases include missing N or λ, non-finite values, magnitudes above the documented ceiling, a negative fringe count, and any wavelength that is zero or non-positive, because the displacement formula is undefined when λ is not a positive length.
How fringe count and wavelength are read and how ΔL stays reproducible
Optional leading plus signs and scientific notation on numeric strings are allowed when they parse as finite decimals; embedded spaces, hex prefixes, and non-numeric tokens are rejected with a clear message so a bad cell does not become a wrong displacement. Fringe count must be non-negative: a negative N is rejected because “number of fringes counted” is not a signed counter in this contract (use a signed convention in your own post-processing if you track direction of motion separately). The engine does not convert nanometres for you: enter λ in the same unit you want for ΔL—metres yield metres, micrometres yield micrometres. The preferred fields are fringe_count for N and wavelength for λ, but aliases N, n, fringes, fringeCount, and m for the fringe tally, and lambda, the Greek letter λ, wl, and wavelength_m for the wavelength, are accepted so spreadsheets, query strings, and typed forms can reuse the same contract. Wavelength must be strictly positive; zero and negative values fail with invalid_input because division of path change by two still requires a meaningful positive λ. An optional precision field, with aliases decimals and dp, chooses how many decimal places to expose for the numeric fields, defaulting to twelve and capped at fifteen so JSON goldens stay stable. Computation multiplies N by λ, halves the product for mirror_displacement, and also reports optical_path_change as N times λ so you can cross-check the round-trip identity 2ΔL equals Nλ without re-deriving it. Pair the free browser run on this page with the priced API when you need the identical mathematical result inside an automated pipeline.
Where Michelson displacement checks fit in labs, study, and software
On this page the work runs entirely in your browser; through the API each successful lookup costs $0.002, failed validation is not charged, and nothing is stored after the response returns. That split—free interactive exploration and a priced, identical API—matches the rest of the KIT tier-A catalog and lets you move from a lab bench demo to an automated pipeline without changing the mathematical result. Pair it with other optics endpoints when you are building a small lab of free, deterministic helpers for interference, diffraction, and introductory wave physics.
Integration use cases
Instrument and stage calibration scripts
Map fringe-counter logs to metres of travel in CI fixtures, piezostage checks, and teaching demos that share the same pure formula.
Technical questions
Do I need to convert nanometres myself?
Yes. Enter wavelength in the same length unit you want for mirror_displacement; the engine does not convert units.