Open Calculations Studio - CalcPAD-syntax editor met live preview, wind-belastingberekening en SVG-tekening
CalcPAD-syntax editor with live preview · wind-load calculation · parametric SVG drawing

What is Open Calculations Studio?

Open Calculations Studio is a modern, open-source tool for structural calculations — inspired by CalcPAD, the widely-used tool among Dutch and European structural engineers. We rebuilt the entire calculation engine in TypeScript with support for CalcPAD syntax, and added live IFC and IFCX export so calculations integrate directly with BIM models.

  • CalcPAD-compatible — existing .cpd files work without changes
  • Unit-awaremm, kN, N/mm², mm⁴ via mathjs
  • Live IFCX + IFC4x3 STEP export — a calculation becomes a BIM element straight away
  • KaTeX rendering — mathematical formulas with real fractions, sub/superscripts and Greek letters
  • SVG drawings — parametric diagrams directly inside the calculation
  • Load cases — SLS / ULS / seismic in separate tabs
  • Usable as a library — embed in FEM applications or code checks

Why Open Calculations Studio?

CalcPAD has been used for years by Dutch structural engineers for hand calculations. But it's closed-source, runs only on Windows, and has no built-in BIM integration. Open Calculations Studio brings CalcPAD functionality to modern web tech: cross-platform, open source, and with direct IFC export.

The 1094-line 2259-Intertek-units.cpd regression file evaluates with 0 errors and renders 6 SVG drawings. Enough for real-world project calculations.

Example document

A CalcPAD document feels natural to an engineer — formulas, units, conditional logic and drawings side by side:

"Project — woning Laageind 57 #include svg_drawing.cpd # 1. Invoer b = 300 mm h = 500 mm N_Ed = ?*(kN) fck = 30 N/mm^2 # 2. Geometrie A = b*h // mm² — automatisch W_y = b*h^2/6 // mm³ # 3. Toetsing sigma = N_Ed/A to N/mm^2 #if sigma ≤ fck/1.5 'Voldoet ✓ #else 'Voldoet NIET ✗ #end if # 4. Detail-tekening @img(detail-D1.svg) # 5. Belasting-diagram $Plot{f(x) @ x = 0 : L}

Features

Formulas with units

Work with mm, kN, N/mm², mm⁴ and all SI units. Mathjs handles unit-aware arithmetic and automatic simplification (b*hmm²).

Math typesetting

KaTeX rendering with real fractions, superscripts, subscripts and Greek letters (σ, ε, ρ, Φ, ψ). Formulas show name = formula = filled-in values = result on one line.

Live preview

Split-pane editor (CodeMirror 6) with syntax highlighting for .cpd. Debounced preview re-renders as you type.

Load cases

Tabs for SLS / ULS / earthquake etc., each with its own prompt values for input variables. One document, multiple scenarios.

CalcPAD-compatible

Fully compatible with existing .cpd files: #if/#else if/#end if, #repeat, #for, #def macros, #include, $Plot, matrices, lookups.

IFC4x3 STEP export

Detects structural elements via conventional variable names (b_fdn, l_fdn, D_paal, M_Ed, R_c_d). Generates valid Project → Site → Building → Storey skeleton.

IFCX JSON-LD

Live IFCX (draft) export — the next generation of IFC with namespaces for calculations, standards and metadata. Calculation and BIM model in one format.

SVG drawings

Parametric SVG macros with value interpolation. @img(file.svg) embeds external drawings inline. @svg ... @end for hand-written SVG.

IFC tab

Built-in STEP viewer and IFCX JSON viewer with syntax highlighting. Clickable entity types link directly to buildingSMART documentation.

GEF upload

@gef name upload — use sounding data directly in foundation calculations. Integrates with Open Geotechniek Studio.

5 themes

Light, Forge, OpenAEC, Blueprint and Contrast — all built on OpenAEC design tokens. Pick what works best for your environment.

PDF export

Print-ready PDF export via Tauri shell with headless preview. Ready for project file or third-party review.

Library mode

Use @ifc-calc/core as a TypeScript library: parse, evaluate, render, generate IFC/IFCX from FEM apps or code-checking.

CalcPAD compatibility

Fully subset compatible with real-world CalcPAD files. Works out-of-the-box on your existing .cpd documents:

  • "Title, 'prose, // comment
  • #if … #else if … #else … #end if, #hide / #show / #pre / #post
  • #repeat n … #end repeat en #for var = lo : hi … #loop (incl. nested)
  • #def name(p1; p2; …) … #end def macros, #def Name$ = literal constants
  • #include filename.cpd — externe macro-libraries en SVG drawings
  • $Plot{ … @ x = lo : hi } — inline parametrische plots
  • Subscript-comma's (V_b,0), $-getypeerde refs, matrix [a;b|c;d]
  • Format-specs (:F2), dotted/percent identifiers
  • mathjs Matrix-aware take, hlookup, hlookup_ge, vlookup, get

User profiles

Structural engineers

Hand calculations for beams, columns, foundations — directly in a readable document. Open your existing CalcPAD files without migration.

BIM modelers

Link calculations directly to IFC elements. No manual transfer of values — the check lives in the model.

Education & training

Structural engineering students learn to calculate with real syntax they'll meet in practice. Open source — no license costs.

FEM developers

Embed @ifc-calc/core in your own FEM application for pre/post-processing or code-checking. TypeScript library, npm-installable.

Technology

TypeScript React 19 Rust Tauri 2 mathjs KaTeX CodeMirror 6 Vite npm workspaces

Monorepo with three packages: @ifc-calc/core (parser + evaluator + IFC generator as a TypeScript library), @openaec/calculations-studio (Tauri 2 desktop app with React 19 UI), and @ifc-calc/web (browser-only build). Cross-platform: Windows, macOS, Linux.