ForHosting KIT · Developer Utilities

Two-member bracket force calculator

This two-member bracket force calculator finds the axial force carried by each of two members meeting at a loaded pin or joint.

● BetaFree · in your browser
Use it from WebAPIEmailTelegramApp soon

Enter the downward load and the direction angle of each member, measured counterclockwise from the positive horizontal axis. The calculator enforces horizontal and vertical equilibrium, reports a signed force and absolute magnitude for each member, and labels the result as tension, compression, or zero force. It is useful for statics homework, preliminary bracket checks, and reproducible engineering examples where members are ideal two-force elements and the joint is treated as a point.

Define the joint, load, and two member directions

Start by isolating the loaded joint in a free-body diagram. The calculator assumes a single external load acting vertically downward and two ideal axial members connected at that joint. Enter the load as a non-negative magnitude. You may use newtons, kilonewtons, pounds-force, or another force unit, provided the same unit is understood for every returned force. Define each member direction as an angle in degrees measured counterclockwise from the positive horizontal axis. This global angle convention avoids ambiguity about whether an angle was measured from a wall, floor, or vertical reference. For example, zero degrees points right, ninety degrees points up, and one hundred eighty degrees points left. The assumed positive direction for each unknown member force points away from the joint along that member, which is the standard tension assumption in a method-of-joints calculation. The solver does not need member lengths, elastic modulus, cross-sectional area, or displacement because it answers a statically determinate equilibrium question rather than a deformation problem. The two directions must be distinct and nonparallel. Equal angles are rejected explicitly because both unknown forces would act along the same line and the two equilibrium equations could not determine a unique force in each member. Opposite parallel directions are also singular and therefore rejected. Before relying on a result, confirm that your real connection can reasonably be modeled as a pin and that no unentered moment, third member, distributed load, or support reaction acts at the isolated joint.

How equilibrium produces the two axial forces

The calculation resolves each assumed tensile member force into horizontal and vertical components. For member one at angle a, those components are F1 cosine a and F1 sine a. Member two at angle b contributes F2 cosine b and F2 sine b. Horizontal equilibrium requires their horizontal components to sum to zero. Vertical equilibrium requires their upward component sum to balance the entered downward load. Together these statements form a two-by-two linear system: F1 cos(a) plus F2 cos(b) equals zero, and F1 sin(a) plus F2 sin(b) equals the load. Its determinant is sin(b minus a). When that determinant is zero, or indistinguishably close to zero at floating-point precision, the directions are parallel and no unique numerical solution exists. Otherwise, direct elimination gives F1 equal to negative load times cos(b) divided by the determinant and F2 equal to load times cos(a) divided by the determinant. The calculator evaluates these closed forms and rounds only the displayed response to the requested precision. A positive signed force confirms the initial tension assumption. A negative signed force reverses that assumed direction, so the member is labeled compression. The magnitude field is always non-negative and is convenient for sizing or comparison, while the signed field preserves the equilibrium direction. A force rounded exactly to zero is labeled zero_force. Because the method uses only deterministic arithmetic, identical inputs and precision produce identical JSON without network access, random sampling, iterative convergence, or dependence on the current date.

Interpret the labels and know the model limits

Treat the result as an ideal statics solution, not automatically as a safe design approval. Tension means the member pulls on the joint under the stated sign convention; compression means it pushes on the joint. The absolute magnitude tells you the axial demand, but capacity depends on facts outside this calculator. A tension member must still be checked for net-section yielding, fracture, connection strength, and any applicable safety factors. A compression member may be governed by buckling long before its material reaches a simple compressive stress limit, so its length, end restraints, cross section, imperfections, and design code matter. The point-joint model also ignores bending caused by eccentric connections, connection plate flexibility, member self-weight, dynamic amplification, and load combinations unless you incorporate their effects into an appropriate equivalent load and a valid free-body diagram. Use the tool to verify classroom work, compare hand calculations, prepare deterministic examples, or establish member-force demand for a later code-based check. If both members lie in an arrangement that cannot provide the required vertical balance, the algebra can still return signs that reveal the assumed directions reverse; inspect the geometry instead of treating every numeric output as a practical bracket. Equal or parallel angles fail rather than producing enormous or arbitrary forces, which protects automated workflows from silently accepting a singular equilibrium system. Browser calculations are free, while each successful API request costs $0.002. Validation failures identify malformed or singular input and should be corrected at the geometry or data source before sizing any real component.

Statics homework checks

Verify a method-of-joints calculation and see immediately which assumed member direction resolves to tension or compression.

Preliminary bracket studies

Compare how changing either member direction changes axial demand before detailed connection and code checks.

Engineering software fixtures

Generate deterministic signed forces, magnitudes, and state labels for examples, tests, or teaching interfaces.

What does the calculator cost?

It is free to use in the browser. A successful API request costs $0.002.

How must I measure the member angles?

Measure both angles in degrees counterclockwise from the positive horizontal axis at the loaded joint.

What do positive and negative force mean?

Positive signed force is tension. Negative signed force is compression; the separate magnitude is always non-negative.

Why are equal angles rejected?

Equal directions make the equilibrium coefficient matrix singular, so the two individual member forces cannot be determined uniquely.

Can I use kilonewtons or pounds-force?

Yes. The calculation is unit-consistent: returned forces use the same force unit as the entered load.

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.

POSThttps://api.kit.forhosting.com/mech/truss-two-member

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.

curl -X POST https://api.kit.forhosting.com/mech/truss-two-member \
  -H "Authorization: Bearer $KIT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"load":1000,"angle_1":30,"angle_2":120}'
{
  "load": 1000,
  "angle_1": 30,
  "angle_2": 120
}
{
  "task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
  "type": "mech.truss_two_member",
  "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.

Per request$0.002

Published price — no tokens, no invented credits. A failed task is never charged.

HTTPCodeMeaning
401unauthorizedMissing or invalid API key.
402insufficient_balanceYour balance doesn't cover the task price.
404unknown_typeThat task type doesn't exist.
429rate_limitedToo many requests. Use the webhook instead of polling.

Read the full KIT documentation →