Open Tools · Forcerest
Forcerest user guide
The Forcerest user guide: building free-body diagrams, solving trusses and frames, friction, centroids, particle and rigid-body motion, kinetics, files and how the engine is verified. To use the tool itself, open Forcerest.
Professional use. Results are for education and preliminary design. They must be checked by a qualified professional, and they are not a substitute for code-compliant design or licensed engineering judgement.
Getting started
Forcerest is a statics and dynamics workbench that runs in your browser. It has nine modules, switched with the number keys 1 to 9 or the tabs at the top: Free body, Truss, Frames, Friction, Areas, Bodies, Particle, Rigid and Kinetics. The first three are drawing modules with a canvas; the other six are calculators with an input form, a diagram, a results table and a worked solution.
Your first free-body diagram, in two minutes: a beam with a pin and a roller.
- Open the Free body module and choose Examples in the top bar, then Simply supported beam: uniform load and a point load. Or build it yourself with the next steps.
- Press N and click twice on the canvas to place two nodes; press M and click the first node, then the second, to join them with a member. Press Esc to end the chain.
- Drag the Pin chip from the palette onto the left node and the Roller chip onto the right node. Drag the Force chip onto the beam and the Distributed chip onto the member.
- Click an item to select it and use the Edit tab on the right to type exact values. A downward force is a negative Fy.
- The status chip at the top of the canvas reads Determinate when the supports hold the body and the equilibrium equations give one answer. The Results tab lists the reactions and the Worked solution tab shows every equation with its numbers.
Everything re-solves as you edit; there is no Run button. The numbers have no built-in units: the equations are unit-free, and you only label them (for example metres and kilonewtons). Use one consistent set of units for every input.
The workspace
Top bar. The module tabs, undo and redo, Examples, open and save, print, links to Verify and this Guide, the shortcuts list and a light and dark theme switch.
Palette (drawing modules). The tools on the left. Click a chip and then click the canvas, or drag a chip onto the canvas and drop it. Dropping a support, force or couple on a node attaches it there; dropping it on a member splits the member with a new node; dropping it on empty space creates a node. Touch screens work through tap placement, because browsers do not drag between elements on touch.
Canvas. Drag nodes to move them; they snap to the grid you choose in the Edit tab. Drag the small round handle on a selected force to rotate it, and the handle on a selected support to rotate its reaction direction. Scroll to zoom, drag the background (or hold Space, or use the Pan tool) to pan, pinch to zoom on touch screens, and press Home to fit the model.
Right panel. Three tabs: Results (status, determinacy count, reactions, member or pin forces, and checks on your own model), Worked solution (the step-by-step display) and Edit (numeric fields for the selected item, view settings and a list of every object, which doubles as a keyboard-friendly way to select things).
Calculators. Pick a problem in the list, fill in the fields, and the result updates as you type. Each problem has a short description, a diagram drawn by the engine, a results table, any plots, and the worked solution. Use Reset inputs to return to the example values.
Free-body diagrams and equilibrium
The Free body module solves one rigid body in planar equilibrium. The body is the set of members you draw (all members belong to one body). Add:
- Supports. Pin: two reaction components. Roller: one force along a direction you set (the normal of the smooth surface it rolls on). Fixed: two components and a moment. Link or cable: one force along the axis of the link.
- Forces at nodes, typed as components Fx and Fy, or as a magnitude and a direction in degrees.
- Couples (pure moments) at nodes, counter-clockwise positive.
- Distributed loads on members, with an intensity at each end (a uniform load has equal values; a triangular load has zero at one end). The direction can be global x, global y, normal to the member or along the member.
What is solved. The sum of forces in x and y and the sum of moments are set to zero for the body. A distributed load is replaced by its exact equivalent: a force at the member start plus a couple, so uniform, triangular and trapezoidal loads (and loads whose total is zero) are all handled exactly. The Results tab shows each load's resultant and where it acts.
Determinacy check. The count of unknown reactions is compared with the three equations, and the rank of the equilibrium matrix decides the answer:
- Determinate and stable: a unique solution.
- Indeterminate: more independent unknowns than equations; the degree is reported and statics alone cannot give the reactions.
- Unstable or improperly constrained: for example three parallel reactions, or reactions that all pass through one point. The tool says how many mechanism freedoms remain.
- Not in equilibrium: the loads cannot be balanced by the reactions the supports can give.
- Needs attention: invalid input such as a member of zero length or an unknown node.
The Checks on this model list shows the sums of forces and moments over loads and reactions, which should be about zero.
Trusses: joints and sections
In the Truss module members are pin-ended two-force members and loads act at joints. Supports can be pins, rollers or links.
Method of joints. The tool writes the equilibrium of every joint (two equations per joint) with the member forces and reactions as unknowns, solves them, and reports each member as tension, compression or zero. Counting members m, reaction components r and joints j gives the familiar check m + r = 2j; the rank of the matrix decides whether the truss is really determinate or contains a mechanism. The Worked solution tab also walks through the sequential method of joints: the reactions from overall equilibrium, then joint by joint, always at a joint with at most two unknown members, with each joint's two equations written out. If some joints cannot be solved in sequence the tool says so and uses the simultaneous solution.
Zero-force members. Members found to be zero by inspection (an unloaded, unsupported joint with two non-collinear members, or three members of which two are collinear, or a single member) are listed with the rule that applies.
Method of sections. Press C and drag a cutting line across the truss. Choose which side to keep. The tool finds the cut members and writes the free-body equilibrium of the kept part. For up to three cut members it solves by moments about the point where the other two cut lines meet, or by a force sum when those lines are parallel, then confirms the result against the method of joints. If the line cuts more than three members, statics of that one cut cannot determine them and the tool says so.
Member force labels on the canvas show the magnitude and T, C or 0; blue is tension, red is compression and the line weight follows the size of the force.
Frames and machines
In the Frames module the members you draw are grouped into rigid bodies by a body label (A, B, C and so on, set in the palette before drawing or in a member's Edit panel). Members with the same label are welded into one body. Where members of different bodies meet at a node, that node is a pin. This covers frames with internal hinges, three-hinged arches, linkages, pliers and other machines.
Each body gets three equilibrium equations. At a pin shared by several bodies the tool introduces an unknown force on each body and enforces equilibrium of the pin itself, so Newton's third law is built in and a load applied at a pin is carried correctly. Supports and loads at a node that belongs to a single body act on that body directly. A fixed support or a couple must sit on a single-body node.
Results. The reactions, the force each pin exerts on each body, any two-force members (a body with two pins and no other load, so the force is along the line between them, with tension or compression), the distributed-load resultants and the equilibrium residual of every body.
Mechanisms. A machine such as a pair of pliers is a mechanism with one freedom; its forces are valid only for the configuration drawn. When the system has a unique consistent solution in that configuration the tool gives it and adds a warning.
Friction
The Friction module has six calculators. Coefficients are static unless the problem says otherwise.
- Block on an incline. Weight, incline angle, coefficient, and an applied force at an angle to the surface. It reports the normal force, the friction needed and available, whether the block is at rest, at impending motion up or down, or sliding, the smallest and largest force that keep it at rest, the angle of repose and any lift-off.
- Tipping or slipping. A block pushed by a horizontal force: the force that starts it slipping, the force that starts it tipping, which happens first, and where the normal force acts.
- Wedge. A wedge driven under a block that is held by a vertical guide, with a friction coefficient at the wedge-ground, wedge-block and block-guide surfaces. Choose driving or releasing; it reports the force, every normal and friction force, and whether the wedge is self-locking.
- Belt or rope on a drum. The ratio of tensions, e raised to the coefficient times the contact angle, for a flat or V-belt, with optional belt speed and mass per length (centrifugal tension), drum radius, torque and power; or the smallest coefficient that holds given tensions.
- Screw. Raising and lowering torque for a square thread from the lead angle or lead, self-locking and efficiency.
- Ladder. The smallest angle at which a ladder with a person on it will not slip, with friction at the floor and the wall; or a check of a given angle.
Each result shows the free-body equations with numbers, so you can follow the reasoning and adapt it by hand.
Centroids and moments of inertia of areas
The Areas module has three calculators.
- Composite area. A table of parts. Each row has a shape (rectangle, triangle, circle, semicircle, quarter circle, sector, ellipse or annulus), a sign (+1 solid, −1 hole), its position and its dimensions; the column help states the reference point of each shape. It returns the area, the centroid, the second moments Ix, Iy and the product Ixy about the centroid and about the origin axes, the polar moment, radii of gyration, the principal moments and principal angle, and section moduli to the extreme fibres. The worked solution tabulates every part with the parallel-axis theorem.
- Polygon. Vertices in order; exact area, centroid and second moments.
- Axes. Given Ix, Iy and Ixy, the principal values and angle, the Mohr circle centre and radius, the moments about a rotated axis, and the parallel-axis translation to a new origin.
A diagram shows the shapes (holes drawn distinctly), the centroid and the centroidal axes.
Centres of mass and inertia of bodies
The Bodies module has two calculators.
- Composite solid. Parts from slender rod, cuboid, cylinder, tube, sphere, hemisphere, cone and point mass, each with a density or a given mass, a sign (use −1 for a cavity), a centre position and an axis. It returns the total mass, the centre of mass, the full inertia tensor about the origin and about the centre of mass (with products of inertia), the principal moments, and the moment of inertia and radius of gyration about any axis you define by a point and a direction. For a cone or hemisphere the position is the centre of the base or flat face.
- Composite plate. Thin plates built from the area shapes with a surface density: mass, centre of mass and the moment of inertia about the perpendicular axis through the origin, the centre of mass and any point.
Particle kinematics
The Particle module covers motion without forces.
- Rectilinear, constant acceleration: the three constant-acceleration equations, solved for time, position or velocity, with a motion history plot.
- Rectilinear, position as a function of time: type s(t) as an expression (for example
2*t^3 - 9*t^2 + 12*t); velocity and acceleration are exact derivatives, with the total distance travelled and the displacement, handling reversals. - Rectilinear with drag: acceleration proportional to velocity or to its square, with closed-form results.
- Projectile: time of flight, range, greatest height, impact velocity and angle, and the launch angle for greatest range, with the trajectory plotted.
- Curvilinear, x(t) and y(t): velocity and acceleration vectors, speed, tangential and normal components and the radius of curvature, with the path plotted.
- Polar coordinates: r(t) and the angle θ(t) (radians) give the radial and transverse components of velocity and acceleration.
- Relative motion: two particles with constant velocity or acceleration, the relative position, velocity, the time and distance of closest approach, and translating-axes composition.
- Dependent motion: a cable and pulley constraint written as a linear relation between positions; known velocities and accelerations give the unknown ones.
Expressions accept numbers, t, pi, + − * / ^, parentheses and the functions sin, cos, tan, asin, acos, atan, atan2, sqrt, exp, ln and abs. They are parsed by a small safe parser; nothing is ever executed as code.
Rigid-body planar kinematics
The Rigid module treats a body in plane motion.
- Instant centre: from the velocity of one point and the direction of another, the instant centre of zero velocity, the angular velocity, and the velocity of any query point. Parallel directions are reported as pure translation.
- Relative velocity and acceleration: v_B = v_A + ω × r and a_B = a_A + α × r − ω² r, with tangential and normal parts and a vector diagram.
- Slider-crank: slider position, velocity and acceleration, connecting-rod angle and angular motion for a crank angle, with an optional offset, and a sweep over a revolution.
- Four-bar linkage: position by circle intersection (open or crossed assembly), angular velocities and accelerations by solving the two-by-two linear systems, a Grashof classification and a sweep over the crank angle.
- Rolling wheel: angular motion, the instant centre at the contact point, and velocity and acceleration of the contact point, the top point and a point on the rim.
Kinetics
The Kinetics module relates motion to force, energy and momentum.
- Newton's second law: two blocks over a pulley with friction and an optional pulley inertia; a vehicle on a banked curve (greatest and least speed); a solid or hollow body rolling down an incline with or without slipping (including the smallest friction coefficient for rolling); a bar pivoted at one end, with angular acceleration, angular velocity and pivot reactions.
- Work and energy: a block with a spring, friction and an incline (final speed or greatest compression); rigid-body swings and rolling from rest including rotational kinetic energy. Whether the block springs back from rest is estimated by assuming the static friction coefficient equals the kinetic coefficient you enter; the result says so beside the answer, and a real restart needs a static-friction check with the static coefficient.
- Impulse and momentum: linear impulse from a force table; angular impulse on a rigid body; momentum before and after.
- Impact: central impact of two particles with a coefficient of restitution, oblique impact of smooth spheres or a ball on a fixed surface, and a bouncing ball with the sequence of heights and the total time.
Standard gravity is taken as 9.80665 m/s² wherever a calculator uses it.
Step-by-step solutions and exports
Every solved problem has a Worked solution: given data, the free body or geometry, the governing equations, the substitution with numbers, the result and the checks. The steps are plain text so they can be copied into your own notes.
Exports. Each module can export:
- a Markdown report with the input, the results table, the worked solution and the professional-use notice;
- a CSV of the results;
- an SVG or PNG of the canvas or of the engine-drawn diagram;
- a print view (use your browser's print dialog to save a PDF).
Every export carries the line "Made with Forcerest · simulations4all.com". PNG export needs a browser canvas; if it is unavailable the SVG is saved instead.
Files, autosave and privacy
Autosave. Your document is saved to this browser's local storage as you work. Local storage is small and can be disabled in private windows; if it is unavailable, the tool keeps working but will not restore your work, so save a file.
Save and open. Save downloads a .forcerest.json file: plain JSON with the three drawing models and the saved inputs of the calculators, plus a copyright and terms notice. Open reads one back. Opening validates the file and rejects anything that is not a Forcerest document.
Formats. Forcerest reads and writes its own openly documented JSON format, and exports CSV, Markdown, SVG and PNG. It implements no proprietary or binary file formats.
Privacy. Everything runs in your browser. No analytics, no accounts, and no model data leave your device; the only network exchange is the domain-gate run permit.
Units and sign conventions
- Coordinates: x to the right, y up. Angles are in degrees at the interface, measured counter-clockwise from +x, unless a field says otherwise (polar θ(t) in an expression is in radians).
- Moments and rotations are counter-clockwise positive.
- Forces in a drawing are the forces on the body. Pin forces are the forces exerted on each body by the pin.
- Truss and two-force member forces: positive in tension.
- Reactions of a roller or link are along the direction you set; a positive result acts in that direction, a negative one acts opposite.
- Distributed load intensity is force per length. The direction option decides where positive points; the normal direction is the left of the member's start-to-end direction.
- The tool is unit-free. Mixing metres with millimetres, or kilonewtons with newtons, in one problem gives wrong answers. The unit labels you choose appear on results only.
- Standard gravity is 9.80665 m/s².
Keyboard shortcuts
| Key | Action |
|---|---|
| 1 to 9 | Switch module |
| V, H | Select, pan |
| N, M | Node, member (click two nodes; the chain continues, Esc ends it) |
| S | Support tool (choose the type in the palette) |
| F, Q, D | Force, couple, distributed load |
| C | Section cut (truss) |
| Delete | Delete the selected item |
| Arrow keys | Nudge the selected node by the grid step (Shift: five steps) |
| [ and ] | Rotate the selected force or support by 15 degrees |
| . and , | Select the next or previous object |
| Home | Fit the model in view |
| + and − | Zoom |
| Ctrl or Cmd with Z, Y | Undo, redo |
| Ctrl or Cmd with S, O | Save, open |
| ? | Show the shortcuts list |
Every control is reachable with the keyboard, and the Objects list in the Edit tab lets you select and edit anything without the mouse.
Size limits and performance
Everything runs in a Web Worker in your browser, never on a server, and each request is size-checked before it runs so that a tab cannot be exhausted.
| Workflow | Largest supported size | Notes |
|---|---|---|
| Truss | 400 joints, 800 members | A dense matrix of about 10.24 MB; a truss of this size solves in about a second on a laptop |
| Frame or free body | 300 nodes, 500 members, 60 bodies | Rigid-body equations only |
| Calculator tables | 200 rows | Parts, vertices, force segments |
| Plots | 4001 points per curve | Larger sweeps are not generated |
A request over the limit is refused with a clear message. A long calculation can be cancelled with the Cancel button, which stops the worker. The tool works in current Chrome, Edge, Firefox and Safari on desktop and mobile; touch input works and the layout fits a 390 px phone. It needs no shared-memory threads, cross-origin isolation headers or any special browser setting.
How we verify Forcerest
The engine is checked against independent references, not against itself. The suite has 210 reference cases, and each one is a row in the Verify view:
- Closed forms: reactions of beams under point, uniform and triangular loads; the centroids and second moments of rectangles, triangles, circles, semicircles, quarter circles, sectors and ellipses; the inertia of rods, spheres, hemispheres and cones; kinematics of constant acceleration, projectiles, drag, circular and polar motion; the wedge, belt, screw and ladder formulas; elastic and inelastic impact.
- Hand derivations written out: frames and machines, three-hinged arches, trusses by joints and by sections, mechanism velocities and accelerations, composite sections.
- Independent matrix computations done outside this tool in a separate scientific-computing environment, with the script kept next to the cases, for random trusses, frames, polygons, wedge systems, four-bar linkages and time integrations.
- Conservation identities and invariances: equilibrium of every body after a solve, action and reaction at pins, momentum and energy balance in impact, superposition, scaling, translation of the origin, rotation of axes.
- Published textbook examples appear as pending source until the owner supplies the numbers from a legitimate copy. We never invent or copy reference numbers from memory or from unauthorised copies of books.
The same case list runs in our automated test suite and in your browser. Open Verify and press Run all checks to see, for every case, what is checked, the reference, the computed value, the difference, the tolerance and PASS or FAIL, and to print a report. Beside every solved model you also see checks on your own model: the sums of forces and moments over loads and reactions, joint residuals for trusses and body-by-body equilibrium for frames.
Limitations: what Forcerest does not do
- It is a planar (2-D) statics and dynamics tool. There is no 3-D statics, no space trusses and no 3-D rigid-body dynamics.
- Statically indeterminate structures are detected and reported, but not solved: there is no deflection or stiffness analysis here. A structural analysis tool that includes member stiffness is the right place for indeterminate beams and frames.
- Members are rigid. There is no elasticity, buckling, stress or code checking.
- Friction is dry (Coulomb) friction with the coefficients you supply. No rolling resistance, no lubrication models.
- Dynamics covers the calculator problems listed above; it is not a general multibody time-domain simulator, and the kinetics calculators use ideal pulleys and light inextensible ropes.
- Mechanism analysis is for a single configuration (or a sweep of a single input), not a full motion simulation with contact.
- It reads and writes its own JSON format and CSV; it does not import other programs' file formats.
- Expression derivatives use the principal angle for atan2. At the origin, or exactly on the negative x axis with a time-dependent y argument, the engine refuses derivatives: a second-order derivative calculation cannot certify continuity there, even when the first two derivatives of y vanish. A constant zero y argument is allowed away from the origin. Evaluate away from the branch cut or use a continuous angle expression for your path.
- Results are not code-compliant design and not certified.
Compared with other tools
Desktop structural packages handle stiffness, indeterminate structures, load combinations and code checks; spreadsheet and symbolic-algebra worksheets handle arbitrary hand calculations; dedicated multibody simulators handle full 3-D motion. Forcerest covers a narrower, hand-calculation-sized workflow in one place and one language: a drawn free-body diagram, determinate equilibrium, trusses by joints and sections, multi-body frames, friction, section properties, particle and rigid-body kinematics and the standard kinetics problems, each with the worked solution shown. It is free, runs entirely in the browser, and does not need installation. It does not claim to replace those larger tools for indeterminate, three-dimensional or code-driven work.
Troubleshooting
| Message or symptom | Cause and fix |
|---|---|
| Unstable or improperly constrained | The supports allow motion. Look for three parallel reactions, reactions meeting at a point, or a truss missing a member. |
| Statically indeterminate | More unknown reactions than equations. Remove a redundant support or member, or use a tool with stiffness. |
| Not in equilibrium | The supports cannot balance the loads, for example a horizontal load on a body held only by vertical rollers. |
| Member of zero length | Two nodes sit at the same point. Move one. |
| Pin at a node of several bodies cannot have a fixed support or couple | Put the support or couple on a node of a single body. |
| No results appear | The run permit is still being fetched, or you are offline. The tool works offline for 24 hours after the last successful permit. |
| This tool runs only on simulations4all.com | The run permit could not be verified. Reload the page on simulations4all.com. Editing, opening and saving still work. |
| PNG export unavailable | Your browser blocked canvas export; use SVG. |
| Different answers from another source | Check the sign convention, the unit consistency and the angle reference in the Units and sign conventions section. |
Professional-use notice and sources
Results are for education and preliminary design. They must be checked by a qualified professional and are not a substitute for code-compliant design or licensed engineering judgement. No certification, code compliance or regulatory acceptance is claimed.
Forcerest is original software. Its layout, wording, examples and file format were written for this project; no third-party interface, help text, example or file sample was copied.
Every formula is a standard result of classical mechanics, implemented from first principles and checked against closed forms, hand derivations, independent matrix computations and conservation identities. No data were taken from unauthorised copies of books. Published textbook examples appear only as PENDING SOURCE until the owner supplies them from a legitimate copy.
Forcerest bundles no third-party code beyond the framework libraries of the host site (React, Next.js, Zustand, Lucide icons). No code was copied or ported from other engineering software.