check_torque_balance
Verifies if a system of torques is in equilibrium by computing net torque and comparing it to zero within a specified tolerance. Solves rotational equilibrium problems.
Instructions
Check if torques are in equilibrium: Στ = 0.
Verifies whether a system of torques is balanced (net torque = 0).
Essential for rotational equilibrium and lever problems.
Args:
torques: List of torque vectors [[x,y,z], ...] in N⋅m (or JSON string)
tolerance: Tolerance for equilibrium check (fraction, default 0.01)
Returns:
Dict containing:
- net_torque: Net torque vector [x, y, z] in N⋅m
- net_torque_magnitude: Net torque magnitude in N⋅m
- is_balanced: Whether torques are in equilibrium
- individual_magnitudes: Magnitude of each torque
Example - Seesaw balance:
result = await check_torque_balance(
torques=[[0, 0, 100], [0, 0, -100]],
tolerance=0.01
)
Tool call template
Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.
{
"id": 1,
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"arguments": {
"torques": "<torques>"
},
"name": "check_torque_balance"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| torques | Yes | ||
| tolerance | No |
Implementation Reference
- Async MCP tool handler that parses input, creates TorqueBalanceRequest, calls the core calculation, and returns the response dict.
@tool # type: ignore[arg-type] async def check_torque_balance( torques: list[list[float]] | str, tolerance: float = 0.01, ) -> dict: """Check if torques are in equilibrium: Στ = 0. Verifies whether a system of torques is balanced (net torque = 0). Essential for rotational equilibrium and lever problems. Args: torques: List of torque vectors [[x,y,z], ...] in N⋅m (or JSON string) tolerance: Tolerance for equilibrium check (fraction, default 0.01) Returns: Dict containing: - net_torque: Net torque vector [x, y, z] in N⋅m - net_torque_magnitude: Net torque magnitude in N⋅m - is_balanced: Whether torques are in equilibrium - individual_magnitudes: Magnitude of each torque Example - Seesaw balance: result = await check_torque_balance( torques=[[0, 0, 100], [0, 0, -100]], tolerance=0.01 ) """ from ..statics import TorqueBalanceRequest from ..statics import check_torque_balance as check_torques if isinstance(torques, str): torques = json.loads(torques) request = TorqueBalanceRequest(torques=torques, tolerance=tolerance) response = check_torques(request) return response.model_dump()