← Back to home

Documentation

Overview#

TrussLab is a web application for the analysis, design, and optimization of steel trusses. Models are generated from parametric inputs (span, depth, truss type, etc.) and processed through FEM analysis, steel member checks, and optimization in a single workflow.

Trusses can be exported to structural analysis software, connection design software, BIM platforms, CAD drawings, and spreadsheets for use in other tools.

Workflow#

The workflow is an iterative loop:

  1. 1

    Model

    Parametric geometry, sections, materials, bracing

  2. 2

    Loads & Supports

    Point/distributed loads, restraints, combinations

  3. 3

    Analyze

    FEM solve for reactions, forces, deflections

  4. 4

    Design Check

    Member checks to the selected code, DCR per member

  5. 5

    Optimize

    Search over size, shape & topology

  6. 6

    Export

    DXF, Excel, SAP2000 (.s2k), IDEA StatiCa

Geometry, loads, analysis, design checks, and optimization share one model. A change to span or bracing pattern re-runs analysis and design checks against the updated geometry.

Truss Modeling#

Geometry is defined parametrically. Changing span or panel count regenerates a connected truss with consistent joints.

  • Truss-type presets: Pratt, Howe, Warren, Parallel chord, Pitched, Bowstring, Barrel, Tapered, and Scissor. Pratt, Howe and Warren share one chord layout and differ by the diagonal direction and Warren switches.
  • Chord shapes: Parabolic, Pitched, Trapezoidal, or Flat, set for top and bottom chords independently.
  • Hand-drawn members: the Add Member tool snaps new members to existing nodes. They are removed if the parametric geometry is changed afterwards.
  • Double-chord configurations for trusses with parallel top or bottom chords.
  • Bracing: lateral bracing of the top and bottom chords, defined as unbraced lengths (at panel points, at panel and mid points, or at a custom spacing). Bracing members themselves are not modeled. Cross (X) diagonals can be added with a configurable number of end panels.
  • Per-member controls: end releases (pinned vs. moment-connected), splice locations, and section/material overrides on individual members or groups.
  • Supports: Fixed, Pinned, Roller, or custom restraint definitions, with automatic remapping when geometry changes.

Structural Analysis Engine#

The truss is solved with the direct stiffness (matrix analysis) method on a 3D global-coordinate model.

MethodDirect stiffness (matrix) method, 3D global coordinates
SolverSparse LU factorization (primary)
DiscretizationEach member subdivided into internal segments for continuous force & deflection sampling along its length
Load typesDead, Superimposed Dead, Live, Roof Live, Wind, Seismic, Notional
Load applicationNodal point loads, member-length distributed loads, automatic self-weight
OutputsReactions, member axial/shear/moment forces, and joint deflections for each load case and combination

Self-weight is computed from each member's section and material properties and applied as a separate load case. Load combinations (strength and service) are user-editable.

Steel Design Checks#

Member checks follow the design code selected for the project: AISC 360-22 (LRFD), EN 1993-1-1, AS 4100:2020 or IS 800:2007. Selecting a code also sets its default load combinations. Any code can be used with any section catalogue.

Limit stateAISC 360-22EN 1993-1-1AS 4100:2020IS 800:2007
TensionD26.2.37.26.2, 6.3.1
CompressionE3, E4, E5, E76.2.4, 6.3.16.2, 6.3.37.1.2, 7.5.1.2
FlexureF2, F3, F5–F106.2.5, 6.3.2.25.2, 5.6.1.1, 5.6.1.28.2.1, 8.2.2, Annex E
ShearG2–G66.2.6, EN 1993-1-5 5.25.118.4
Combined forcesH1.16.2.1(7), 6.3.3 (Annex B)8.3.4, 8.4.59.3.1.3, 9.3.2.2

Tees and double angles are bent with either the flange or the stem in compression depending on the sign of the moment, and the analysis does not say which way the stem points, so both senses are checked and the smaller strength governs. Single angles are checked about their principal axes; their strengths are turned into strengths about the geometric axes that hold for either sign of either moment.

A step-by-step calculation report is generated for each member, per limit state and governing load combination.

Not yet implemented

Connections are not designed, so the net area is taken as the gross area. Moment gradient factors are taken as 1.0.

Materials & Section Database#

Steel materials are defined by yield strength, ultimate strength, elastic and shear modulus, Poisson's ratio, and density, with unit-aware inputs.

Each project uses one section catalogue, and its standard steels are loaded with it. When the catalogue is changed, each member moves to the closest section in the new catalogue.

CatalogueShapesSteels
AISC (Shapes Database v16)W, M, S, HP, C, MC, L, double L, WT, MT, ST, HSS rectangular, HSS round, PipeA992, A36, A500 Gr. C, A53
European (EN 10365, EN 10056-1, EN 10210-2, EN 10219-2)IPE, HEA, HEB, HEM, UPN, UPE, L, double L, SHS / RHS / CHS (hot-finished and cold-formed)S235, S275, S355, S460
Australian (AS/NZS 3679.1, AS/NZS 1163)UB, UC, PFC, EA, UA, double angle, SHS, RHS, CHS300, 350 (AS/NZS 3679.1); C250, C350, C450 (AS/NZS 1163)
Indian (IS 808, IS 4923, IS 1161)ISMB, ISLB, ISJB, ISWB, ISHB, ISSC, ISNPB, ISWPB, ISMC, ISMCP, ISLC, ISJC, ISA, double angle, SHS, RHS, CHSE250, E300, E350, E410, YSt240, YSt310

Each member group can be assigned its own catalog section and one of the standard steel materials. The section catalog is read-only.

Parametric Optimization Engine#

The optimizer searches geometry, topology, and member sizing simultaneously, with a choice of optimization algorithms.

Design variables:

  • Top/bottom chord depth, support depth, span, panel count and spacing
  • Truss type and chord shape selection
  • Presence and orientation of diagonals, verticals, and cross (X) bracing, including variable end-panel counts for X-braced layouts
  • Member sizing per group, searchable across shape families (W, M, S, HP, C, MC, L, WT, MT, ST, HSS-Rectangular, HSS-Round, Pipe)

Objective:

A weighted cost function of total steel tonnage, deviation from a target demand-capacity ratio, and deflection, with deflection penalized asymmetrically. Optional penalty terms: connection count, unique section count, physical piece count.

Algorithm settings are configurable. Runs support stagnation-based early termination and a live 3D preview of the current design.

Roof Workspace#

The roof workspace places trusses on a roof surface. It opens from the workspace launcher in a separate window and saves roofs in the browser, like truss projects.

  • Roof surface — imported from DXF (3D faces, polyface meshes and MESH entities).
  • Trusses — saved truss projects are placed on the roof, then moved, rotated, copied or arrayed along a line.
  • Area loads — one uniform pressure per load case on the whole roof surface, by surface area or plan projection.

Connecting a truss to a roof:

  1. The roof is saved in the roof workspace.
  2. In the truss workspace, Interop > Connect to roof workspace links the truss to the roof. The start and end points of the span are typed or picked on the roof.
  3. Project top chord to roof sets the top chord to the roof section along the span. Projection requires the roof to cover the full span.
  4. Once the truss project is saved, the roof workspace shows it in place. Copies of it are arrayed along the roof and update with each save of the truss project.

Interoperability & Export#

  • DXF export — truss geometry and drawings.
  • Excel export — optimization run results.
  • SAP2000 — model export as a CSI text file (.s2k) including materials, sections, members, releases, loads, load combinations and boundary conditions.
  • IDEA StatiCa — selected joint with connected members, forces, and results, exported as OpenModel XML for IDEA StatiCa Connection.
  • ETABS and SAP2000 (live) — the model is written into a running ETABS 21+ or SAP2000 24+ through Trusslab Desktop Connector, described below.
  • Revit (live) — the truss members are placed as structural framing in an open Revit 2023, 2024, 2025, 2026 or 2027 project through the same connector and the TrussLab add-in for Revit, described below.

Trusslab Desktop Connector

This windows app helps user send the truss model from the web app to ETABS, SAP2000 or Revit through the API.

Setup

  1. Trusslab Desktop Connector is installed from the Microsoft Store (Windows 10 or 11, 64-bit).
  2. ETABS 21 or later, SAP2000 24 or later, or Revit 2023 to 2027 is opened with the target model.
  3. In the web app, Interop > Send to ETABS / SAP2000 / Revit creates a connection code. The code is pasted into the connector

Push modes

  • New model — starts a new model; the open one is closed without saving.
  • Replace all — deletes every frame and joint of the open model, then writes the truss.
  • Add to model — writes the truss next to the existing objects, with a name prefix on joints and members. Materials, sections, patterns and combinations that already exist are kept as they are.

New model and Replace all are confirmed in the connector on the PC before anything changes; an unanswered request is cancelled after 60 seconds. Sections are taken from the program’s AISC catalogue by name; a section missing from it is defined from its dimensions and listed in the push report.

Revit

Revit 2023 to 2027 also needs the TrussLab add-in for Revit (a zip, also on the account page under Connectors).

Install

  1. Revit is closed.
  2. The zip is extracted and Install.cmd is double-clicked.
  3. Revit is started. A TrussLab tab appears on the ribbon.

Manual install (without running Install.cmd): with Revit closed, the downloaded zip is unblocked first (right-click, Properties, tick Unblock, OK), then extracted. From the folder of the Revit release, for example 2025, the file TrussLab.addin and the folder TrussLab are copied into %APPDATA%\Autodesk\Revit\Addins\2025. Deleting the two removes the add-in.

Only the truss members go to Revit, as structural framing with analytical members, in one undo step. Types are matched by section name (W14X48, HSS6X6X3/8); a missing type is replaced by one of the same shape and listed in the push report. Add to model adds the members; Replace earlier push first deletes the members of earlier TrussLab pushes, after a confirmation on the PC. Revit may ask once whether to load the add-in; Always Load keeps the choice.

Codes and sessions

  • A connection code works once and only within 10 minutes of being created.
  • A session ends after 2 hours without a push or a program refresh, after 12 hours in total, or when either side ends it.
  • Active sessions are listed on the account page, where each can be revoked.
  • The connector stores no password or token on disk, accepts only pushes signed by the TrussLab app.

Troubleshooting

  • Program not listed — the program is not running, or its API is not registered
  • Program busy — a dialog is open in ETABS / SAP2000 or an analysis is running; once it is closed, the push is sent again.
  • Revit: add-in not loaded — the add-in is not installed for that Revit release; Install.cmd is run with Revit closed.
  • Revit busy — a dialog, an edit mode or another command is open in Revit; once it is finished, the push is sent again.
  • Code not valid — the code was already used or is older than 10 minutes; a new one is created in the web app.
  • Update required — the Microsoft Store updates the connector to the current version.

AI Assistants (MCP)#

AI assistants such as Claude, ChatGPT, Cursor and VS Code operate TrussLab through a remote MCP server. The assistant works on the project open in a TrussLab browser tab: geometry, supports, loads, load combinations, analysis, auto-design, optimization, reports and project files. Every change appears live in that tab.

Server addresshttps://engine.trusslab.in/mcp
TransportStreamable HTTP
AuthenticationOAuth 2.1 sign-in with the TrussLab account, with dynamic client registration. No API key is used.
Tooltl: runs a script of TrussLab commands in the connected tab
RequirementA TrussLab account with an active licence or trial

Adding the server to an AI app

  • Claude (web and desktop): Settings › Connectors › Add custom connector, with the server address above.
  • Claude Code: the server is added from a terminal, then signed in with /mcp inside Claude Code.
    claude mcp add --transport http trusslab https://engine.trusslab.in/mcp
  • ChatGPT: Settings › Apps & Connectors, with developer mode on, then Create, with the server address above.
  • Cursor: an entry in ~/.cursor/mcp.json (all projects) or .cursor/mcp.json (one project).
    {
      "mcpServers": {
        "trusslab": { "url": "https://engine.trusslab.in/mcp" }
      }
    }
  • VS Code: an entry in .vscode/mcp.json, or MCP: Add Server from the command palette with type HTTP.
    {
      "servers": {
        "trusslab": { "type": "http", "url": "https://engine.trusslab.in/mcp" }
      }
    }
  • Other MCP clients: any client that supports remote servers over HTTP with OAuth connects with the same address.

Connecting

  1. On the first connection, the AI app opens a TrussLab sign-in page. After sign-in, the consent page lists the access requested; Allow completes the connection. A trial is activated beforehand with Launch App.
  2. The web app is opened at app.trusslab.in with the same account, and the AI app control switch in the top bar is turned on. The AI activity window opens beside the model.
  3. On its first call, each AI app is listed in the activity window for approval: Allow in this tab or Deny. Apps not recognised as Claude, ChatGPT, Cursor or VS Code are marked as unverified.

One tab at a time

AI app control applies to one tab. It turns off when the tab is reloaded, when another tab turns it on, after 30 minutes without use, or on sign-out.

Behaviour

  • Each tl call is one undo step in the tab.
  • Commands that use the monthly allowance (auto-design, optimization runs, reports and exports) or cannot be undone (deleting a project) ask for confirmation in the activity window. With Auto mode on in that window, allowance commands run without confirmation. Allowance use is the same as in the web app; TrussLab makes no additional charge for AI use.
  • Optimization setups are shown in the tab for approval before the run starts. Long runs continue after the tool call returns, and the next call collects the result.
  • An app connected with read-only access reads the project but cannot change it.
  • Questions from the assistant are asked in the AI app's chat, not in TrussLab.

Example requests

  • “Model a 24 m Pratt roof truss with 8 panels and 2 m depth, pinned and roller supports, and 9 kN/m dead and 6 kN/m roof live load on the top chord. Auto-design it and report tonnage and the maximum DCR.”
  • “Compare Howe and Warren layouts for the open project and keep the lighter one as a variant.”
  • “List members with a DCR above 0.9 and the governing limit state for each.”

Revoking access

Turning the switch off disconnects all AI apps from the tab. Connections are removed permanently under Account › Connected AI apps.

Troubleshooting

  • No TrussLab tab is ready for AI apps: the web app is not open, not signed in, or AI app control is off.
  • An active TrussLab licence or trial is needed to connect AI apps: a trial is activated in the web app, or a plan is selected on Pricing.
  • The TrussLab tab is still busy with earlier commands: a previous call or a confirmation in the activity window is pending.
  • Too many TrussLab calls in a minute: the assistant is sending too many separate calls; commands are batched into fewer calls.

Platform & Data#

TrussLab runs in a web browser on desktop, tablet, and phone. Projects are saved as .json files on the local device.

Getting Started#

  1. Create an account (Sign up).
  2. Select Launch App and activate a trial license.
  3. Open or create a project.

Plan details: Pricing.

FAQ & Support#

See the FAQ. Other inquiries: Contact.