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
)
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()