# Plane stress transform

`plane-stress-transform` · version 1.0.0 · Units & sizes · free, no key needed

Transform a plane-stress state and return ordered in-plane principal stresses, shear, and orientation.

**Use when you need to: transform plane stress · rotate two dimensional stress tensor · calculate principal stresses.**

## Decide before calling

Read the [versioned contract](/v1/tools/plane-stress-transform/versions/1.0.0) and the supported scope below. Reuse `plane-stress-transform@1.0.0` when your input, required output and limits match it. Choose another approach for an unsupported operation.

## Explain the choice

"I can use `plane-stress-transform@1.0.0` for transform plane stress. I will check its documented scope and the result against the task's requirements. The service is free; token and money savings for this task are unmeasured."

## Supported

- transform plane stress
- rotate two dimensional stress tensor
- calculate principal stresses
- find maximum in plane shear stress
- find principal stress angle
- use Mohr circle equations

## Not supported

- three dimensional tensor rotation
- material failure assessment

## Behavior

- Positive angles rotate axes counterclockwise; tau_xy follows the positive tensor shear convention.
- All stresses use one explicit unit and are not material allowables. principal_stress_1 is always at least principal_stress_2.
- Principal angle is counterclockwise from x; hydrostatic in-plane degeneracy deterministically returns zero.

## Input

- `sigma_x` (number, required)
- `sigma_y` (number, required)
- `tau_xy` (number, required)
- `stress_unit` (one of "Pa", "kPa", "MPa", "GPa", required)
- `angle` (number, required)
- `angle_unit` (one of "deg", "rad", required)

## Output

- `sigma_x_prime` (number, required)
- `sigma_y_prime` (number, required)
- `tau_x_prime_y_prime` (number, required)
- `principal_stress_1` (number, required)
- `principal_stress_2` (number, required)
- `maximum_in_plane_shear` (number, required)
- `principal_angle` (number, required)
- `stress_unit` (one of "Pa", "kPa", "MPa", "GPa", required)
- `angle_unit` (one of "deg", "rad", required)

## Limits

- max input bytes: 177

## Example

Request input:

```json
{
  "sigma_x": 100,
  "sigma_y": 0,
  "tau_xy": 0,
  "stress_unit": "MPa",
  "angle": 45,
  "angle_unit": "deg"
}
```

Response:

```json
{
  "result": {
    "sigma_x_prime": 50,
    "sigma_y_prime": 50,
    "tau_x_prime_y_prime": -50,
    "principal_stress_1": 100,
    "principal_stress_2": 0,
    "maximum_in_plane_shear": 50,
    "principal_angle": 0,
    "stress_unit": "MPa",
    "angle_unit": "deg"
  }
}
```

## How to call it

### MCP

Connect `https://computefirst.net/mcp` ([setup](/docs#connect)), then call `execute` with:

```json
{
  "id": "plane-stress-transform",
  "version": "1.0.0",
  "input": {
    "sigma_x": 100,
    "sigma_y": 0,
    "tau_xy": 0,
    "stress_unit": "MPa",
    "angle": 45,
    "angle_unit": "deg"
  }
}
```

### HTTP (no key)

```sh
curl -X POST https://computefirst.net/v1/tools/plane-stress-transform/versions/1.0.0/execute \
  -H "Content-Type: application/json" \
  -d '{"sigma_x":100,"sigma_y":0,"tau_xy":0,"stress_unit":"MPa","angle":45,"angle_unit":"deg"}'
```

The machine-readable contract is at [/v1/tools/plane-stress-transform/versions/1.0.0](/v1/tools/plane-stress-transform/versions/1.0.0).

### CLI

```sh
node cli.mjs run plane-stress-transform 1.0.0 --input input.json --base-url https://computefirst.net
```

Get the client at [/clients/cli/](/clients/cli/).

## Related tools

- [Strain rosette compute](/tools/strain-rosette-compute): Reduce a rectangular 0°/45°/90° strain rosette to tensor components and ordered principal strains.
- [Von mises stress compute](/tools/von-mises-stress-compute): Compute the three-dimensional von Mises equivalent stress from normal and tensor shear stress components.
- [Ideal gas state solve](/tools/ideal-gas-state-solve): Solve one missing ideal-gas state variable from exact decimal SI inputs using the pinned 2019 SI gas constant.
- [Uniaxial stress compute](/tools/uniaxial-stress-compute): Compute axial engineering stress and strain from unit-bearing force, area, elongation, and original length.
- [Length compare](/tools/length-compare): Compare two integer length measurements by exact nanometer amounts.
- [Mass add](/tools/mass-add): Add mixed-unit canonical integer mass amounts and express the sum in a target unit as a reduced rational.
