Skip to content
OFFICIAL SS DOCUMENTATION

SS.Mechanics 1.2.0

Geometric multibody constraint Jacobians, spatial mass assembly, coupled Schur-complement integration and Newton-Euler reaction recovery; validated planar mechanics and three-dimensional rigid-body workflows
API 1.2.0
MIT
source

Language compatibility: >=1.0.0 <2.0.0
Runtime compatibility: >=1.0.0 <2.0.0

No package dependencies declared.

Public API

Public signature
export function add(Vector2 left, Vector2 right) -> Vector2

Parameters: left: Vector2, right: Vector2


Public signature
export function add3D(Vector3D left, Vector3D right)->Vector3D

Parameters: left: Vector3D, right: Vector3D


Public signature
export function angularAcceleration(double appliedMoment, double polarInertia) -> double

Parameters: appliedMoment: double, polarInertia: double


Public signature
export function assembleMultibodyMass3D(RigidBody3D[] bodies)->MultibodyMass3D

Parameters: bodies: RigidBody3D[]


Public signature
export record BodyBalance3D(public string bodyIdentity, public Vector3D appliedForce, public Vector3D appliedMoment, public Vector3D reactionForce, public Vector3D reactionMoment, public double forceResidual, public double momentResidual, public bool balanced)

Parameters: bodyIdentity: string, appliedForce: Vector3D, appliedMoment: Vector3D, reactionForce: Vector3D, reactionMoment: Vector3D, forceResidual: double, momentResidual: double, balanced: bool


Public signature
export function centripetalForce(double mass, double speed, double radius) -> double

Parameters: mass: double, speed: double, radius: double


Public signature
export function combinePointMasses(double[] masses, Vector2[] positions) -> MassProperties2D

Parameters: masses: double[], positions: Vector2[]


Public signature
export function constantAcceleration(double initialPosition, double initialVelocity, double acceleration, double time) -> Motion1D

Parameters: initialPosition: double, initialVelocity: double, acceleration: double, time: double


Public signature
export function constraintJacobian3D(RigidBody3D[] bodies, JointConstraint3D[] joints)->ConstraintJacobian3D

Parameters: bodies: RigidBody3D[], joints: JointConstraint3D[]


Public signature
export record ConstraintJacobian3D(public double[] values, public int rows, public int columns, public string[] rowIdentities)

Parameters: values: double[], rows: int, columns: int, rowIdentities: string[]


Public signature
export record CoupledMultibodyIntegration3D(public RigidBody3D[] bodies, public double[] times, public double[] finalMultipliers, public double maximumConstraintResidual, public int steps, public bool converged, public string diagnostic)

Parameters: bodies: RigidBody3D[], times: double[], finalMultipliers: double[], maximumConstraintResidual: double, steps: int, converged: bool, diagnostic: string


Public signature
export function cross3D(Vector3D left, Vector3D right)->Vector3D

Parameters: left: Vector3D, right: Vector3D


Public signature
export function dot(Vector2 left, Vector2 right) -> double

Parameters: left: Vector2, right: Vector2


Public signature
export function dot3D(Vector3D left, Vector3D right)->double

Parameters: left: Vector3D, right: Vector3D


Public signature
export function equilibrium2D(Vector2[] positions, Vector2[] forces, double forceTolerance, double momentTolerance) -> Equilibrium2D

Parameters: positions: Vector2[], forces: Vector2[], forceTolerance: double, momentTolerance: double


Public signature
export record Equilibrium2D(public double forceX, public double forceY, public double moment, public double residual, public bool balanced, public string diagnostic)

Parameters: forceX: double, forceY: double, moment: double, residual: double, balanced: bool, diagnostic: string


Public signature
export function equilibrium3D(RigidBody3D[] bodies, SpatialLoad3D[] loads, FixedConstraint3D[] constraintsValue, double forceTolerance, double momentTolerance)->MultibodyEquilibrium3D

Parameters: bodies: RigidBody3D[], loads: SpatialLoad3D[], constraintsValue: FixedConstraint3D[], forceTolerance: double, momentTolerance: double


Public signature
export function fixedConstraint3D(string bodyIdentity, bool x, bool y, bool z, bool rotationX, bool rotationY, bool rotationZ)->FixedConstraint3D

Parameters: bodyIdentity: string, x: bool, y: bool, z: bool, rotationX: bool, rotationY: bool, rotationZ: bool


Public signature
export record FixedConstraint3D(public string bodyIdentity, public bool x, public bool y, public bool z, public bool rotationX, public bool rotationY, public bool rotationZ)

Parameters: bodyIdentity: string, x: bool, y: bool, z: bool, rotationX: bool, rotationY: bool, rotationZ: bool


Public signature
export function gravitationalPotentialEnergy(double mass, double gravity, double elevation) -> double

Parameters: mass: double, gravity: double, elevation: double


Public signature
export function impulse(Vector2 force, double duration) -> Vector2

Parameters: force: Vector2, duration: double


Public signature
export function integrateCoupledMultibody3D(RigidBody3D[] initial, SpatialLoadHistory3D history, JointConstraint3D[] joints, Vector3D gravity, double startTime, double timeStep, int steps, double constraintTolerance)->CoupledMultibodyIntegration3D

Parameters: initial: RigidBody3D[], history: SpatialLoadHistory3D, joints: JointConstraint3D[], gravity: Vector3D, startTime: double, timeStep: double, steps: int, constraintTolerance: double


Public signature
export function integrateRigidBodies3D(RigidBody3D[] initial, SpatialLoadHistory3D history, FixedConstraint3D[] constraintsValue, Vector3D gravity, double startTime, double timeStep, int steps)->RigidBodyIntegration3D

Parameters: initial: RigidBody3D[], history: SpatialLoadHistory3D, constraintsValue: FixedConstraint3D[], gravity: Vector3D, startTime: double, timeStep: double, steps: int


Public signature
export record JointConstraint3D(public string identity, public string firstBodyIdentity, public string secondBodyIdentity, public Vector3D firstLocalPoint, public Vector3D secondLocalPoint, public bool x, public bool y, public bool z, public bool rotationX, public bool rotationY, public bool rotationZ)

Parameters: identity: string, firstBodyIdentity: string, secondBodyIdentity: string, firstLocalPoint: Vector3D, secondLocalPoint: Vector3D, x: bool, y: bool, z: bool, rotationX: bool, rotationY: bool, rotationZ: bool


Public signature
export record JointReaction3D(public string jointIdentity, public Vector3D firstForce, public Vector3D firstMoment, public Vector3D secondForce, public Vector3D secondMoment)

Parameters: jointIdentity: string, firstForce: Vector3D, firstMoment: Vector3D, secondForce: Vector3D, secondMoment: Vector3D


Public signature
export record JointReactionRecovery3D(public JointReaction3D[] joints, public Vector3D[] bodyResidualForces, public Vector3D[] bodyResidualMoments, public double maximumResidual, public bool balanced, public string diagnostic)

Parameters: joints: JointReaction3D[], bodyResidualForces: Vector3D[], bodyResidualMoments: Vector3D[], maximumResidual: double, balanced: bool, diagnostic: string


Public signature
export function kineticEnergy(double mass, Vector2 velocity) -> double

Parameters: mass: double, velocity: Vector2


Public signature
export function magnitude(Vector2 value) -> double

Parameters: value: Vector2


Public signature
export function magnitude3D(Vector3D value)->double

Parameters: value: Vector3D


Public signature
export record MassProperties2D(public double mass, public Vector2 centroid, public double polarInertia)

Parameters: mass: double, centroid: Vector2, polarInertia: double


Public signature
export function momentAbout(Vector2 position, Vector2 force) -> double

Parameters: position: Vector2, force: Vector2


Public signature
export record Motion1D(public double position, public double velocity, public double acceleration, public double time)

Parameters: position: double, velocity: double, acceleration: double, time: double


Public signature
export record MultibodyEquilibrium3D(public BodyBalance3D[] bodies, public double residual, public bool balanced, public string diagnostic)

Parameters: bodies: BodyBalance3D[], residual: double, balanced: bool, diagnostic: string


Public signature
export record MultibodyMass3D(public double[] values, public double[] inverseValues, public int degreesOfFreedom, public string[] degreeIdentities)

Parameters: values: double[], inverseValues: double[], degreesOfFreedom: int, degreeIdentities: string[]


Public signature
export function parallelAxis(double centroidalInertia, double mass, double distance) -> double

Parameters: centroidalInertia: double, mass: double, distance: double


Public signature
export function projectile(double initialX, double initialY, double speed, double angle, double gravity, double time) -> ProjectileState

Parameters: initialX: double, initialY: double, speed: double, angle: double, gravity: double, time: double


Public signature
export record ProjectileState(public double x, public double y, public double velocityX, public double velocityY, public bool aboveDatum)

Parameters: x: double, y: double, velocityX: double, velocityY: double, aboveDatum: bool


Public signature
export function recoverJointReactions3D(RigidBody3D[] bodies, JointConstraint3D[] joints, SpatialLoad3D[] loads, double[] multipliers, Vector3D[] linearAccelerations, Vector3D[] angularAccelerations, double tolerance)->JointReactionRecovery3D

Parameters: bodies: RigidBody3D[], joints: JointConstraint3D[], loads: SpatialLoad3D[], multipliers: double[], linearAccelerations: Vector3D[], angularAccelerations: Vector3D[], tolerance: double


Public signature
export function rectangleCentroidalInertia(double mass, double width, double height) -> double

Parameters: mass: double, width: double, height: double


Public signature
export function resultant(Vector2[] forces) -> Vector2

Parameters: forces: Vector2[]


Public signature
export function rigidBody3D(string identity, double mass, Vector3D principalInertia, Vector3D position, Vector3D velocity, Vector3D rotation, Vector3D angularVelocity)->RigidBody3D

Parameters: identity: string, mass: double, principalInertia: Vector3D, position: Vector3D, velocity: Vector3D, rotation: Vector3D, angularVelocity: Vector3D


Public signature
export record RigidBody3D(public string identity, public double mass, public Vector3D principalInertia, public Vector3D position, public Vector3D velocity, public Vector3D rotation, public Vector3D angularVelocity)

Parameters: identity: string, mass: double, principalInertia: Vector3D, position: Vector3D, velocity: Vector3D, rotation: Vector3D, angularVelocity: Vector3D


Public signature
export record RigidBodyIntegration3D(public RigidBody3D[] bodies, public double[] times, public double[] mechanicalEnergy, public Vector3D[] linearMomentum, public int steps, public double externalWork, public double energyChange, public double energyResidual, public double momentumResidual, public string diagnostic)

Parameters: bodies: RigidBody3D[], times: double[], mechanicalEnergy: double[], linearMomentum: Vector3D[], steps: int, externalWork: double, energyChange: double, energyResidual: double, momentumResidual: double, diagnostic: string


Public signature
export function rotate(Vector2 value, double radians) -> Vector2

Parameters: value: Vector2, radians: double


Public signature
export function scale(Vector2 value, double factor) -> Vector2

Parameters: value: Vector2, factor: double


Public signature
export function scale3D(Vector3D value, double factor)->Vector3D

Parameters: value: Vector3D, factor: double


Public signature
export function spatialLoad3D(string bodyIdentity, Vector3D force, Vector3D applicationPoint, Vector3D moment)->SpatialLoad3D

Parameters: bodyIdentity: string, force: Vector3D, applicationPoint: Vector3D, moment: Vector3D


Public signature
export record SpatialLoad3D(public string bodyIdentity, public Vector3D force, public Vector3D applicationPoint, public Vector3D moment)

Parameters: bodyIdentity: string, force: Vector3D, applicationPoint: Vector3D, moment: Vector3D


Public signature
export interface SpatialLoadHistory3D

Public signature
export function subtract(Vector2 left, Vector2 right) -> Vector2

Parameters: left: Vector2, right: Vector2


Public signature
export function subtract3D(Vector3D left, Vector3D right)->Vector3D

Parameters: left: Vector3D, right: Vector3D


Public signature
export function vector(double x, double y) -> Vector2

Parameters: x: double, y: double


Public signature
export record Vector2(public double x, public double y)

Parameters: x: double, y: double


Public signature
export function vector3D(double x, double y, double z)->Vector3D

Parameters: x: double, y: double, z: double


Public signature
export record Vector3D(public double x, public double y, public double z)

Parameters: x: double, y: double, z: double


Public signature
export function velocityAfterImpulse(double mass, Vector2 initialVelocity, Vector2 appliedImpulse) -> Vector2

Parameters: mass: double, initialVelocity: Vector2, appliedImpulse: Vector2


Public signature
export function work(Vector2 force, Vector2 displacement) -> double

Parameters: force: Vector2, displacement: Vector2


Documentation version

Language 1.0.0, compiler 1.0.0, runtime 1.0.0. This reference is generated from the official SS documentation so package and language details stay consistent with the release.