👤

BeamLab User Documentation

Please note that BeamLab is currently in beta. While we strive for accuracy and reliability, some features may still be under development or subject to change. We appreciate your understanding and feedback as we continue to improve the platform. Also, this documentation is a work in progress. Some sections may be incomplete or missing, and we are actively working to provide comprehensive guidance for all features.

Last update: 13 July 2026

BeamLab is a 2D finite element software designed for both students and professionals. It focuses on clear, practical structural modeling for simple beam and frame use cases. You can build a model quickly, define load cases and load combinations, run structural analysis, and keep your projects online for future access.

1. Introduction

BeamLab provides a modern browser-based workflow for finite element modeling. BeamLab allows project saving in your online account, so your model is available later from any compatible device.

  • 2D structural modeling with beams and frame behavior.
  • Predefined sections and editable materials.
  • Support definitions including spring-based behavior.
  • Load cases, combinations, and Eurocode-oriented guidance for load setup.
  • Fast visualization of structural response and diagrams.
  • 3D visualization support for better model inspection.
  • Cloud-based project management with account integration.
  • Excel export functionality for results and reporting.

2. Modeling Elements

This section covers the core structural components you need to build your FEM model. Start with nodes, add supports, define beams/arcs, and assign materials and sections.

2.1 Add a Node

Nodes are the base entities of every BeamLab model. Supports, beams, arcs, and nodal loads all reference node IDs, so a clean node layout is essential before adding structural members and actions.

2.1.1 Creation Modes

BeamLab supports two practical node entry workflows:

Canvas Click Mode

Click directly in the workspace while Node mode is active to create nodes interactively.

Command Prompt Mode

Type coordinates as X,Y (example: 1000,500) and press Enter.

Arc-Assisted Node Creation

During arc workflows, BeamLab can request missing nodes from geometric picks and may reuse an existing nearby node when one is detected.

2.1.2 Grid Snap

When grid magnetism is active, node coordinates are snapped to the model grid. In the current implementation, snap rounding uses a 20-unit step for X and Y.

2.1.3 Free Plan Limit

BeamLab checks account/subscription access before creating nodes. Free usage is limited to 10 active nodes. If the limit is reached, the app displays a message inviting the user to sign in and subscribe for larger models.

2.1.4 Node Data-table

The Node table is designed for fast numeric editing:

  • 25 visible rows are available for structured manual input.
  • Editing X/Y cells updates the canvas immediately.
  • Pasting from spreadsheet tools is supported but be careful because this feature is still under developement.
  • Comma decimals are accepted and normalized.
  • Press Enter to validate a cell, Escape to cancel current cell input.

2.1.5 Delete a Node

You can deleta node using the data-table, BeamLab asks for confirmation if node is connected to a beam or a load and then removes associated entities to keep the model consistent.

2.2 Add a Support

Supports are attached to existing nodes and define displacement/rotation constraints for the solver. BeamLab stores each support with its type, node ID, DDL state (Ux, Uy, Teta_Z), optional angle, and optional stiffness values for spring behavior.

2.2.1 Creation Modes

BeamLab supports two equivalent ways to create supports:

Canvas Mode

Select a support type in the sub-header, then click a node in the model.

Command Prompt Mode

Enter node ID as N1 or 1, then validate from the command prompt.

If no support type is selected, support creation is blocked until a type button is chosen.

2.2.2 Replace Existing Support

Only one active support is allowed per node. If a support already exists on the target node, BeamLab asks for confirmation before replacing it with the new type.

2.2.3 Support Details

Roller

Restrains one translation direction while allowing movement in the orthogonal direction and free rotation.

Default DDL: Ux free, Uy blocked, Teta_Z free.
Slider support icon Roller

Pin

Restrains translations and allows rotation. Common for simple supports.

Default DDL: Ux blocked, Uy blocked, Teta_Z free.
Slider support icon Pin

Fixed

Restrains translations and rotation. This is a fully clamped support condition.

Default DDL: Ux blocked, Uy blocked, Teta_Z blocked.
Slider support icon Fixed

Spring

Adds translational/rotational stiffness and is useful for soil interaction or semi-rigid restraint modeling.

Default DDL:Ux free, Uy free, Teta_Z free (stiffness set with kx, ky, km).
Slider support icon Spring

Slider

Allows guided displacement along a defined direction while restraining other components.

Default DDL:By default, Ux blocked, Uy free, Teta_Z blocked (horizontal slider baseline).
Slider support icon Slider

2.2.4 DDL and Type Logic

Support behavior is driven by DDL fields Ux, Uy, and Teta_Z (free/blocked). BeamLab can infer the support type from these values in the table editor:

  • Roller: Ux free, Uy blocked, Teta_Z free.
  • Pin: Ux blocked, Uy blocked, Teta_Z free.
  • Fixed: Ux blocked, Uy blocked, Teta_Z blocked.
  • Slider: translational direction from Ux/Uy, with Teta_Z blocked.
  • Spring: all DDL free, stiffness carried by kx/ky/km values.

2.2.5 Support Data-table

The Support table provides 25 rows and allows full support editing directly in place:

  • Type selection via dropdown (Roller, Pin, Fixed, Slider, Spring).
  • Node ID editing with validation against existing nodes.
  • DDL editing (Ux, Uy, Teta_Z) with immediate redraw.
  • Creation from empty rows when row data is entered.
  • Persistent storage in local project data.

2.2.6 Angle and Spring Stiffness

Supports can be rotated using the Angle [°] field.

For spring supports, you need to enter stiffness values in the kx, ky, and km fields. These values define the translational and rotational stiffness of the spring support. If no stiffness values are provided, the support will behave as a free support in all directions.

You can artificially create a spring support with very high stiffness values to simulate a fixed support condition.

You can also create a specific support using default support types and add spring stiffness values to simulate semi-rigid behavior. For example, a pin support with a rotational spring can be used to model a connection that allows rotation but resists it with a certain stiffness.

2.2.7 Delete a Support

Supports can be removed with the delete action in the support table. The canvas and stored model data are updated immediately after deletion.

2.3 Add a Beam

Beam creation is available in the Beam tools. Use it after creating nodes and assigning suitable supports.

2.3.1 Linear Beam

Use Add beam to connect two nodes with a straight element. Straight beams form the primary structural skeleton of your model and transmit forces along the element centerline.

2.3.2 Subdivide Beam

Use Subdivide beam when you need additional internal nodes for local loading or response precision. This splits an existing element into smaller sub-elements while maintaining connectivity. Subdividing improves accuracy for distributed loads and refines the internal force resolution. Please remember that you can't subdivide a beam and create more than 10 nodes in a free plan.

2.3.3 Arc Beam

Arc tools allow curved members with several definition methods:

  • Center-Start-Angle: Define the arc by its center, start point, and rotation angle.
  • Three-Point Arc: Click three points to define an arc geometry.
  • Start-End-Radius: Specify start point, end point, and radius of curvature.

This is useful for curved frames, arched members, and non-linear geometry layouts. BeamLab may automatically create intermediate nodes during arc definition if needed for discretization.

2.4 Add a Material

Define or select material properties such as Young's modulus (E), density, and Poisson's ratio. Material assignment controls element stiffness and, when relevant, load effects related to mass. BeamLab maintains a library of common materials (steel, concrete, timber, etc.) for quick access, and allows custom material definitions.

Some properties are mandatory for analysis (E), while others are optional (density, Poisson's ratio) and may be used for specific calculations or reporting. Be careful, poisson's ratio is used in the solver timoshenko.

2.5 Add a Section

Choose from BeamLab predefined sections (I-beams, rectangular, circular, etc.) and assign them to elements. Section properties (area A, second moment of inertia I, dimensions) directly influence deformation and internal force distribution. You can also define custom sections with custom geometric properties. For custom sections, ensure that the area and moment of inertia are correct. Coordonates of the fiber are not used in the solver, however, they are used for the visualization of the stress distribution in the cross-section.

3. Loading & Cases

This section covers how to define loads on your structure, organize them into load cases, and combine cases for design checks.

3.1 Add a Load

Load tools include:

  • Nodal Forces: Point loads applied directly at nodes (Fx, Fy).
  • Point Loads on Beams: Concentrated forces applied at any point along an element.
  • Uniform Distributed Loads: Uniform loads along a beam segment (q in units of force/length).
  • Linear Distributed Loads: Linearly varying loads with different intensities at start/end.
  • Bending Moments (Point): Concentrated moments applied at nodes or beam points.
  • Bending Moments (Distributed): Distributed moment intensity along a segment.

Eurocode Map Guidance: BeamLab provides integrated Eurocode mapping support to help define wind, snow, and seismic actions based on geographical location and structural type. (In progress, only snow for France is available in the current version.)

3.2 Add a Load Case

In the Load Combination panel, use Add Case to create independent load scenarios (e.g., Dead Load, Live Load, Wind, Snow, Seismic). Keep each physical action family separated for transparent post-processing and design checks. Each load case can contain multiple loads.

3.3 Add a Combination

Use Add Combination to combine existing load cases with appropriate factors for design checks. BeamLab supports workflows aligned with Eurocode logic:

  • Ultimate Limit State (ULS): Design combinations with higher partial safety factors (γ ≈ 1.35–1.5).
  • Serviceability Limit State (SLS): Combinations with lower factors for deflection and cracking checks.
  • Custom Combinations: Define your own factor values and combination rules.

The solver can compute internal forces for each combination independently, allowing you to find critical results for design.

4. Analysis & Solving

This section covers the tools to check your model, configure analysis settings, and run the finite element solver.

4.1 Check Structure

Before solving, use Check Structure to validate your model. This checks for:

  • Incomplete or missing connectivity (orphan elements).
  • Support conditions (rigid body modes, insufficient restraint).
  • Duplicate elements or overlapping geometry.
  • Invalid material or section assignments.
  • Load case consistency and completeness.

Any issues are reported in a dedicated check window. Resolve all critical issues before proceeding to solve.

4.2 Parameters

To be completed.

4.3 Solver

The solver is the computational engine that performs the finite element analysis. It:

  • Assembles the global FEM system from your structure, supports, materials, sections, and loads.
  • Applies boundary conditions and constraint equations.
  • Solves the stiffness matrix equation: KU = F for nodal displacements (U).
  • Computes internal forces (normal force, shear, moment) at each element.
  • Calculates reactions at supports and verification checks.

Computation typically completes within seconds for models with under 1,000 degrees of freedom. Progress is displayed in the interface during solving.

4.3.1 Beam formulation

BeamLab uses a 2D beam element with 3 degrees of freedom per node: axial displacement, transverse displacement, and rotation. The local stiffness matrix is 6x6, then rotated to the global system with the element angle.

Euler-Bernoulli beam

Used when shear deformation is neglected. This is the formulation implemented by beam_stiffness_matrix_euler in the solver.

\[ \mathbf{K}_{\mathrm{EB}} = \begin{bmatrix} \frac{EA}{L} & 0 & 0 & -\frac{EA}{L} & 0 & 0 \\ 0 & \frac{12EI}{L^3} & \frac{6EI}{L^2} & 0 & -\frac{12EI}{L^3} & \frac{6EI}{L^2} \\ 0 & \frac{6EI}{L^2} & \frac{4EI}{L} & 0 & -\frac{6EI}{L^2} & \frac{2EI}{L} \\ -\frac{EA}{L} & 0 & 0 & \frac{EA}{L} & 0 & 0 \\ 0 & -\frac{12EI}{L^3} & -\frac{6EI}{L^2} & 0 & \frac{12EI}{L^3} & -\frac{6EI}{L^2} \\ 0 & \frac{6EI}{L^2} & \frac{2EI}{L} & 0 & -\frac{6EI}{L^2} & \frac{4EI}{L} \end{bmatrix} \]
Timoshenko beam

Used when shear deformation is included. The solver applies the shear factor : \[ \phi = 12EI / (GA L^2) \] in beam_stiffness_matrix_timoshenko. Please note that the shear modulas G is derived from the material's Young modulus E and Poisson ratio ν using the relation : \[ G = \frac{E}{2(1 + \nu)} \] If nu is not defined, the solver uses a default value of 0.3 for isotropic materials. If E is not defined, the solver uses a default value of 210 GPa for steel or another value if default material is change.

\[ \phi = \frac{12EI}{GA L^2} \] \[ \mathbf{K}_{\mathrm{T}} = \begin{bmatrix} \frac{EA}{L} & 0 & 0 & -\frac{EA}{L} & 0 & 0 \\ 0 & \frac{12EI}{L^3(1+\phi)} & \frac{6EI}{L^2(1+\phi)} & 0 & -\frac{12EI}{L^3(1+\phi)} & \frac{6EI}{L^2(1+\phi)} \\ 0 & \frac{6EI}{L^2(1+\phi)} & \frac{(4+\phi)EI}{L(1+\phi)} & 0 & -\frac{6EI}{L^2(1+\phi)} & \frac{(2-\phi)EI}{L(1+\phi)} \\ -\frac{EA}{L} & 0 & 0 & \frac{EA}{L} & 0 & 0 \\ 0 & -\frac{12EI}{L^3(1+\phi)} & -\frac{6EI}{L^2(1+\phi)} & 0 & \frac{12EI}{L^3(1+\phi)} & -\frac{6EI}{L^2(1+\phi)} \\ 0 & \frac{6EI}{L^2(1+\phi)} & \frac{(2-\phi)EI}{L(1+\phi)} & 0 & -\frac{6EI}{L^2(1+\phi)} & \frac{(4+\phi)EI}{L(1+\phi)} \end{bmatrix} \]

If one end is released with a hinge, the solver performs a static condensation of the rotational degree of freedom at that end before assembly.

5. Visualization & Results

After solving, use result buttons and display options to understand your structure's behavior and internal stresses.

5.1 Result Views

After solving, use these buttons to display different result types:

5.1.1 Normal Force (N)

Displays axial force distribution along beams. Tension is in positive, compression in negative.

5.1.2 Shear Force (V)

Shows shear stress distribution.

5.1.3 Bending Moment (M)

Displays bending moment diagrams.

5.1.4 Rotation

Shows rotational angles (θ) at nodes and along the structure.

5.1.5 Displacement/Deformation

Displays the deformed shape of the structure overlaid on the original geometry. An amplification factor allows you to exaggerate small deformations for visibility. Use the amplification slider to adjust the scale.

5.2 Display Options

5.2.1 Toggle Structure Elements

Use the Display Structure menu to show/hide different model components:

  • Show All: Display nodes, beams, and loads simultaneously.
  • Hide Nodes: Focus on element geometry and results.
  • Hide Beams: Isolate load visualization and support points.
  • Hide Loads: View only structural geometry.

5.2.2 Grid & Ruler

Toggle the grid background for geometric reference and scale. The ruler display shows unit increments. Grid snap is controlled separately from grid visibility.

5.2.3 Dark Mode

Switch between light and dark themes. Dark mode reduces eye strain during extended work sessions and improves readability of results with colored overlays.

5.2.4 3D View

Activate 3D visualization to inspect your model from multiple angles. Rotate, zoom, and pan in 3D space to verify geometry before solving. This is especially useful for identifying modeling errors in complex frames.

5.3 Export to Excel

Export your complete results to an Excel workbook for further analysis, reporting, and data sharing. Exported data includes:

  • Model Summary: Project name, units, analysis type.
  • Nodes & Supports: Coordinates, support types, reactions.
  • Elements & Properties: Beam definitions, materials, sections.
  • Load Cases: Load definitions and combinations.
  • Results: Displacements, internal forces, stresses for all combinations.
  • Diagrams: Graphical representation of N, V, M, and deformation (if available).

Note: Export is available for premium/logged-in users.

6. Tools & Utilities

This section describes utility tools for managing and manipulating your model.

6.1 Select/Move

The Select and Move tools let you inspect and adjust model entities quickly:

  • Select: Click to select nodes, beams, supports, or loads. Selected entities are highlighted.
  • Move: Drag selected entities to reposition them. The canvas updates in real-time.
  • Geometry Refinement: Use for fine-tuning node positions and support relocations.
  • Load Repositioning: Adjust applied loads to new locations without deleting and recreating.

7. Account & Project Management

This section covers account management, project saving, loading, and workspace features.

7.1 Create Account

Create an account to unlock online project management. Account access provides:

  • Cloud storage for your projects (accessible from any device).
  • Centralized profile settings and subscription management.
  • Sharing and collaboration features (in development).

7.2 Save

Use the Save button (💾) to store your model in your online workspace. This cloud-first workflow offers:

  • Project naming and versioning.
  • Automatic timestamps for each save.
  • Project accessibility from any browser and device.
  • Option to keep local copies for offline work.

7.3 Load

Use the Load button (📂) to retrieve previously saved projects from your workspace. A project browser shows all your saved models with metadata (creation date, last modified, size). Select any project to restore it to the canvas.

7.4 Clear Canvas

The Clear button (🗑️) removes all entities from the current model (nodes, beams, supports, loads). This starts a fresh model. You will be prompted to confirm before clearing to prevent accidental data loss. Cleared models are not automatically saved unless you save before clearing.