Squareness Checker
Check whether a corner is truly square using the 3-4-5 rule: enter the two legs and the measured diagonal, and get the expected diagonal, deviation, actual corner angle, and a squareness rating.
Input
The actual corner-to-corner distance you measured between the far ends of side A and side B.
Only used to label the results — side A/B/diagonal share whichever unit you measured in.
Acceptable deviation, in inches (customary) or centimeters (metric). 1/8 in. (0.125) is the standard rule of thumb for framing and deck layout.
Output
| Property | Value |
|---|---|
| No data yet | |
More ways to use this tool
REST API
curl -X POST https://api.iotools.cloud/v1/tool/squareness-checker \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"sideA": "3",
"sideB": "4",
"diagonal": "5",
"unitSystem": "customary",
"tolerance": "0.125"
}'Swap in your own key from your account. The tool's fields are the body — no wrapper.
Ask an AI agent
Use the IOTools `squareness-checker` tool (Squareness Checker) on this input:
YOUR_INPUT_HEREPaste this at any agent connected to the IOTools MCP server, then add your input.
Embed widget
<iframe
src="https://iotools.cloud/embed/squareness-checker/"
width="100%" height="520" frameborder="0" scrolling="no" loading="lazy"
title="Squareness Checker — iotools.cloud"
sandbox="allow-scripts allow-forms allow-same-origin allow-downloads allow-popups allow-popups-to-escape-sandbox"
allow="clipboard-write"
style="width:100%;border:1px solid #e5e7eb;border-radius:12px;overflow:hidden"></iframe>
<script src="https://iotools.cloud/embed.js" async></script>Drop this into your own page — free, no key required, just a link back.
| Cost per API/MCP call | From 5 credits |
|---|---|
| Need more credits? | View pricing |
Also available with
Guides
The Squareness Checker verifies a corner against the classic 3-4-5 rule carpenters and deck builders use to square a layout: measure two perpendicular legs and the diagonal between their far ends, and compare that diagonal against what the Pythagorean theorem says it should be for a true 90° corner.
How to use it
- Measure and enter side A and side B — two lines running from the corner, ideally at least 3 ft / 1 m long (longer legs make small errors easier to catch).
- Measure the diagonal — the straight-line distance between the far ends of side A and side B.
- Pick your unit system and, optionally, adjust the tolerance — the standard rule of thumb is ⅛ in. (0.125), already filled in.
The tool reports the expected diagonal, how far off your measured diagonal is, the corner's actual angle (computed from all three lengths via the law of cosines, not just the diagonal), a plain-language rating, and which way to nudge the corner if it isn't square yet.
The math
- Expected diagonal =
√(A² + B²) - Deviation = measured diagonal − expected diagonal
- Corner angle =
acos((A² + B² − diagonal²) ÷ (2 × A × B))— the actual angle between side A and side B, derived from all three measurements rather than assumed - Within tolerance =
|deviation| ≤ tolerance
A positive deviation (diagonal too long) means the corner is slightly obtuse — pull it inward. A negative deviation (diagonal too short) means it's slightly acute — push it outward.
Does it have to be exactly 3, 4, and 5?
No — any multiple of that ratio works the same way: 6-8-10 and 9-12-15 are the same 3-4-5 triangle scaled up, which is exactly why builders use bigger multiples to square a whole deck or foundation instead of just a small corner. Any right-triangle measurement works here, not just multiples of 3-4-5.
What tolerance should I use?
⅛ in. (0.125) over a few feet is the standard rule of thumb for framing, decking, and most DIY layout work. Tighter finish work (cabinetry, tile layout) may want a smaller tolerance; large-scale foundation work sometimes allows a bit more, scaled to the size of the layout.
For a compound miter or bevel angle instead of a squareness check, see the Miter Angle Calculator. For a general right-triangle solve, use the Triangle Calculator.
Everything runs in your browser; no inputs are sent to a server.