Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Introduction

CivilKit Calcs is an engineering calculation sheet that runs in your browser. You write a calculation as readable text, with quantities, units, formulas and notes, and the page works it out and shows a formatted report. You can plot the results, export the report to Word, Excel or PDF, and keep working with no network connection.

Everything is calculated on your own computer. The engine is compiled to WebAssembly and runs inside the page, so a calculation is never sent to a server.

Try it. Open CivilKit Calcs in a new tab and start typing, or begin from a worked example in Calculators and guides: a beam, a retaining wall, a pad footing, a pipe or a pump, each of which opens as a form. The product page gives the short overview.

What you get

  • Real units. 6 m, 12 kN/m, 300 MPa. The engine multiplies, divides and converts them, and it refuses to add a length to a time. A moment comes out in kilonewton metres because the units said so, not because you typed a label.
  • Two ways to write. The sheet format is Markdown prose with name: value lines. The Calcpad worksheet language (.cpd) is the full language of CalcpadCE, with macros, input forms and every directive. Both run on the same engine, and a sheet can show you the Calcpad it becomes.
  • Vectors, matrices and a large function library. Linear solves, eigenvalues, interpolation, numerical integration, root finding and more.
  • Plots. A one-line plot command, the Calcpad $Plot and $Map commands, and a Python block that draws with a matplotlib-style or Plotly-style interface, including 3D charts.
  • Python blocks. Small Python programs inside a sheet, run in the page, with results handed back to the sheet as ordinary quantities.
  • Templates with inputs. Put a ? in front of a value (L: ? 6 m) and it becomes a box, a drop-down, radio buttons or a checkbox in a fill-in form. A template is one file.
  • Symbolic maths. Rearrange a formula, differentiate, integrate or solve exactly.
  • A worksheet importer. Bring in worksheets from another calculation tool.
  • Export. Word with real equations, Excel with native charts, and PDF through the print dialog.
  • Free and open source. The source is on GitHub under the MIT licence.

Where to start

If you have never used it, open Your first sheet and follow it through once. It takes about five minutes. After that, read The sheet format, which describes everything you can write on a sheet line. The later chapters are independent: read the ones you need.

Each chapter that matches a short how-to video carries a line starting with “Video:”. The videos are recorded from the scripts in the book/videos folder of the source.

The videos

Each video has an Enlarge button in its top right corner that opens it large over the page; Esc closes it again.

VideoLengthChapter
1. Your first calculation in five minutes85 secondsYour first sheet in five minutes
2. Units and results85 secondsUnits
3. Plots in the sheet format80 secondsPlots
4. Plots from Python (Plotly style and matplotlib style)90 secondsPython blocks
5. Templates with inputs85 secondsTemplates with inputs
6. Import an existing worksheet90 secondsImporting worksheets
7. Symbolic maths for a beam deflection90 secondsSymbolic maths
8. Export a report to Word, Excel and PDF85 secondsExporting

The lengths are the planned ones in the storyboards.

Credit

CivilKit Calcs is built on CalcpadCE, the continuation of Calcpad by Nedelcho Ganchovski (Proektsoft) and contributors. The worksheet language, the editor support and the sample worksheets all come from that work. See Credits and licences.

A note on the examples

Every sheet and cpd example in this guide was run through the real engine when the guide was built (book/check-examples.sh). The results shown beside them are what the engine printed, with the default setting of two decimals. The seven template sheets quoted in Templates with inputs are checked to be identical to the samples the app ships. The Python examples and the input forms need the browser: they are run in the built app (book/check-python.mjs), which also counts the controls each form draws.