Wave intensity inverse square law calculator
This wave intensity inverse square law calculator finds the intensity at a second radial distance when you know the intensity at a first distance.
Run — free
It applies the ideal point-source relationship I₁r₁² = I₂r₂², so doubling the distance makes the intensity one quarter as large, while halving the distance makes it four times as large. Enter both distances in the same unit and use any intensity unit consistently. The result includes the distance ratio, intensity ratio, percentage change, assumptions, and transparent calculation steps.
Set up the two-distance intensity calculation
Start with a measured or specified initial intensity and the radial distance at which that value applies. Then enter the target distance where you want to estimate the new intensity. The two distance values can be metres, feet, centimetres, or another unit, but they must use the same unit because the calculator forms a ratio. The intensity can likewise be watts per square metre, milliwatts per square centimetre, or another consistent intensity unit; the calculated final intensity remains in the unit you entered. Radial distance means the straight-line distance from the effective point source, not the extra path travelled along a reflection. Both distances must be greater than zero because the ideal point-source equation is undefined at the source location. Initial intensity may be zero, in which case the predicted intensity remains zero at every finite radius. This setup is useful when a reading is available at one location but the expected exposure, irradiance, or power density is needed at another location without reconstructing the total source power.
Understand the inverse square relationship
For an isotropic point source, the same emitted power spreads across the surface of a sphere. A sphere's area is proportional to the square of its radius, so intensity, which is power divided by area, is proportional to one divided by radius squared. The calculator rearranges I₁r₁² = I₂r₂² into I₂ = I₁ × (r₁ / r₂)². If the target radius is three times the initial radius, the target intensity is one ninth of the known intensity. If the target radius is one third as large, the target intensity is nine times larger. The returned intensity ratio is I₂/I₁, while the distance ratio is r₂/r₁. A negative percentage change means the intensity falls; a positive value means it rises as the target moves closer. This is a geometric spreading calculation, not a decibel calculation. Convert to logarithmic units separately when a sound pressure level, intensity level, or other domain-specific logarithmic measure is required.
Know when the ideal model is appropriate
Use the inverse square law when the source is small relative to both distances and radiates approximately uniformly into unobstructed three-dimensional space. The estimate is strongest in the far field, where the wavefront behaves like an expanding sphere. Real systems can depart from this model. Absorption in air, water, tissue, or another medium removes energy as the wave travels. Walls and surfaces create reflections; lenses, antennas, horns, and reflectors focus energy into preferred directions; obstacles produce shadowing and diffraction; and extended or line-like sources spread differently at nearby distances. The calculator deliberately excludes all of those effects so that its output stays interpretable. Treat the result as a baseline for ideal geometric spreading, then apply measured attenuation or a domain-specific propagation model when conditions demand it. For safety limits, compliance work, medical exposure, or equipment protection, use calibrated measurements and appropriate standards rather than relying on this ideal estimate alone. Always document where the initial intensity was obtained and whether the point-source assumptions reasonably match the physical arrangement.
What you can do with it
Estimate optical irradiance farther away
Project a known irradiance measurement from one radius to a farther detector position under ideal free-space spreading.
Compare laboratory sensor positions
Predict how moving a sensor closer to or farther from a compact source changes the measured intensity before arranging the experiment.
Check inverse square scaling
Verify the expected intensity ratio for a point-source wave model and compare it with observations that may include absorption or directional effects.
FAQ
What formula does the calculator use?
It uses I₂ = I₁ × (r₁/r₂)², which follows from I₁r₁² = I₂r₂² for ideal spherical spreading from a point source.
Which units should I use?
Use the same unit for both distances. You may use any intensity unit; the final intensity is returned in that same unit.
Why does doubling distance reduce intensity to one quarter?
Doubling the radius makes the spherical area four times larger, so the same power is distributed over four times the area.
Does this include absorption or reflections?
No. It represents ideal geometric spreading only and excludes absorption, reflection, focusing, obstruction, and source directionality.
How much does an API request cost?
Each API request costs $0.002. The browser calculator can run the same deterministic calculation locally for free.
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/wave-intensity-inverse-square \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"initial_intensity":120,"initial_distance":2,"final_distance":6}'const res = await fetch("https://api.kit.forhosting.com/optics/wave-intensity-inverse-square", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"initial_intensity": 120,
"initial_distance": 2,
"final_distance": 6
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/optics/wave-intensity-inverse-square",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"initial_intensity": 120,
"initial_distance": 2,
"final_distance": 6
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/optics/wave-intensity-inverse-square", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"initial_intensity":120,"initial_distance":2,"final_distance":6}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"initial_intensity":120,"initial_distance":2,"final_distance":6}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/optics/wave-intensity-inverse-square", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Example request
{
"initial_intensity": 120,
"initial_distance": 2,
"final_distance": 6
}Example response
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "optics.wave_intensity_inverse_square",
"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. |