Skip to content

What Is ChainSolve? A New Approach to Engineering Calculations

An introduction to ChainSolve, how it works, why it exists, and how it differs from spreadsheets, Mathcad, and traditional calculation tools.

BG ben godfrey · · 3 min read
CHAINSOLVE

The Calculation Problem

Consider a typical automotive suspension design task. You need to determine the spring rate for a front corner. This requires:

  1. A target natural frequency (derived from vehicle dynamics requirements)
  2. The corner mass (derived from the vehicle weight distribution)
  3. The motion ratio (derived from the suspension geometry)
  4. The spring installation angle
  5. The wheel rate (computed from the target frequency and corner mass)
  6. The coil spring rate (computed from the wheel rate, motion ratio, and installation angle)

Each of these values has a source. Some come from requirements documents. Some come from CAD models. Some come from other calculations. Some are engineering judgement. All of them need to be recorded, justified, and traceable.

In a spreadsheet, this calculation might occupy 30 rows. The dependencies are implicit, cell B14 references B8, which references B3, which references a value that someone typed in six months ago and nobody remembers the source of. Change the motion ratio and you need to manually verify that every downstream value has updated correctly, assuming you can find them all.

ChainSolve takes a fundamentally different approach.

Calculations as Graphs

In ChainSolve, the spring rate calculation above is not a flat list of cells. It is a directed acyclic graph of calculation blocks:

  • Inputs are explicit, named, typed, and documented. Each input records its value, unit, source, and any assumptions.
  • Blocks are self-contained calculation steps. A block takes named inputs, applies a defined calculation (from a simple formula to a complex numerical method), and produces named outputs.
  • Connections link the outputs of one block to the inputs of another. These connections are explicit and visible, not hidden inside cell references.
  • Chains are composed graphs of blocks that represent a complete engineering calculation.

When you change an input, ChainSolve identifies every downstream block that is affected and recalculates them in topological order. There is no ambiguity about what changed and what was affected.

How It Differs From Existing Tools

Spreadsheets (Excel, Google Sheets): Spreadsheets give you a grid of cells with formulas. Dependencies are implicit in cell references. There is no typing, no unit checking, no structured way to attach assumptions or sources to values. Collaboration means emailing files or hoping that the shared drive version is current. ChainSolve replaces implicit cell graphs with explicit, documented, composable calculation graphs.

Mathcad / SMath: These tools are excellent for creating readable, documented calculations for a single analysis. But they are inherently document-oriented, a Mathcad worksheet is a page, not a composable component. You cannot take the beam deflection calculation from one worksheet and programmatically compose it with a load calculation from another. ChainSolve’s block model makes composition a first-class operation.

Custom scripts (Python, MATLAB): Engineers who write custom scripts gain composability and version control, but lose accessibility. Not every engineer on a team can read Python. Not every calculation justifies writing and maintaining a script. ChainSolve provides the composability of code with the accessibility of a visual tool.

PLM-integrated tools: Product lifecycle management systems offer traceability but at enormous overhead. They are designed for large organisations with dedicated administrators. ChainSolve provides calculation-level traceability without requiring enterprise infrastructure.

The Core Workflow

A typical ChainSolve workflow:

  1. Create a chain for your calculation (e.g., “Front Suspension Spring Rate”)
  2. Define input blocks for your known values: corner mass, target frequency, motion ratio
  3. Add calculation blocks that transform inputs into outputs: wheel rate from frequency and mass, spring rate from wheel rate and motion ratio
  4. Connect blocks to create the dependency graph
  5. Run the chain to compute all outputs
  6. Export the calculation as a documented report with full traceability

Every change is recorded. Every assumption is attached to the value it applies to. Every calculation can be versioned, shared, and reused as a component in a larger calculation.

Built for Performance

ChainSolve’s calculation engine is written in Rust and compiled to WebAssembly. This means:

  • Calculations run at near-native speed in the browser, no server round-trips for computation
  • The entire application works offline once loaded
  • Complex chains with hundreds of blocks evaluate in milliseconds
  • The same engine can run server-side for batch processing and CI/CD integration

What Comes Next

ChainSolve is currently in development. We are building toward an initial release that covers the core workflow described above, with a focus on mechanical engineering calculations in the automotive and motorsport domain.

If you would like early access or want to follow development, visit chainsolve.co.uk or subscribe to this blog’s RSS feed.

Written by
BG
ben godfrey
Engineer at Godfrey Engineering Ltd.