A browser-based computational tool for the determination of internal forces and elastic deformation in beam structures.
Developed by Assoc. Prof. Rasim Temรผr ยท Istanbul University-Cerrahpaลa, Department of Civil Engineering
Part of the Vetin initiative for the digitisation of academic instruction tools.
The application is accessible directly through a web browser without requiring any software installation, user registration, or server-side processing. All computations are performed client-side.
Vetin Beam Analysis is an open-source, web-based software developed for educational use in structural mechanics and civil engineering curricula. The application enables the interactive graphical definition of beam structural models, and produces instantaneous visual representations of internal force distributions and elastic deformation curves โ entirely within the web browser environment.
The software is intended to support both undergraduate instruction and self-directed learning by providing immediate visual feedback on the structural response of beam systems under various loading and boundary conditions.
Key properties of the application:
- Operates entirely within the client browser; no server-side computation is required
- Functions offline as a Progressive Web App (PWA), compatible with major desktop and mobile platforms
- User interface is localised in more than 10 languages
- Source code is freely distributed under the MIT License
The user defines the structural model interactively on a calibrated grid canvas. All elements are positioned with snap-to-grid precision and may be repositioned or modified at any stage of model construction.
The following support conditions are available for model definition:
| Symbol | Boundary Condition | Mechanical Behaviour |
|---|---|---|
| โณ | Pinned Support | Restrains vertical and horizontal translation; permits rotation |
| โโณ | Roller Support | Restrains vertical translation; permits horizontal translation and rotation |
| โ | Fixed Support (Cantilever) | Restrains all translational and rotational degrees of freedom |
| โ | Internal Hinge | Introduces a moment release at the specified location |
The following load types may be applied to the structural model:
| Load Type | Description |
|---|---|
| Concentrated (Point) Load | A discrete force applied at a specified position and inclination angle |
| Bending Moment | A concentrated moment applied at a specified cross-section |
| Uniformly Distributed Load | A load of constant intensity applied over a defined span |
| Trapezoidal (Linearly Varying) Load | A load with linearly varying intensity between two specified magnitudes |
| Torsional Moment | A concentrated torsional moment applied at a specified cross-section |
Upon definition of the structural model, the following diagrams are generated automatically:
- FBD โ Free Body Diagram, including computed support reactions
- AFD โ Axial Force Diagram
- SFD โ Shear Force Diagram
- BMD โ Bending Moment Diagram
- TMD โ Torsional Moment Diagram
- ECD โ Elastic Curve Diagram (two-dimensional deflection profile)
- 3D Elastic Curve โ Three-dimensional interactive visualisation of the deformed beam geometry, rendered via WebGL
The elastic curve computation requires the specification of:
- Modulus of Elasticity (E) โ expressed in GPa
- Second Moment of Area (I) โ expressed in cmโด
- Save / Open โ The structural model may be exported to and imported from a
.jsonfile, enabling session continuity - Vector Graphics Export โ The structural model and the corresponding free body diagram (FBD) can be exported directly in scalable vector graphics (SVG) format for high-resolution publishing
- Diagram Export โ Computed internal force and deformation diagrams may be downloaded as PNG image files
- Data Export โ Tabulated numerical output may be downloaded for external reference
- Light / Dark mode โ selectable display theme
- Fullscreen mode โ for unobstructed model construction
- Configurable grid โ horizontal scale (m), vertical scale (kN), and grid resolution (px)
- Contextual guidance โ a dynamic hint panel provides task-specific usage instructions for each selected tool
The user interface is fully localised in more than 10 languages. The active language is selectable at runtime and persisted across sessions via localStorage:
| Code | Language | Code | Language |
|---|---|---|---|
tr |
๐น๐ท Turkish | en |
๐ฌ๐ง English |
de |
๐ฉ๐ช German | cn |
๐จ๐ณ Chinese |
es |
๐ช๐ธ Spanish | fr |
๐ซ๐ท French |
it |
๐ฎ๐น Italian | pt |
๐ง๐ท Portuguese |
ar |
๐ธ๐ฆ Arabic | ja |
๐ฏ๐ต Japanese |
ko |
๐ฐ๐ท Korean | ru |
๐ท๐บ Russian |
The application is implemented using standard web technologies without dependency on a JavaScript framework:
| Technology | Role |
|---|---|
| HTML5 / CSS3 / JavaScript (ES6+) | Core application architecture |
| Chart.js | Rendering of 2D internal force diagrams |
| D3.js | SVG-based structural diagram drawing |
| Three.js | WebGL-based 3D elastic curve visualisation |
| Service Worker API | Offline caching and PWA functionality |
| Web App Manifest | Home screen installation support |
beam/
โโโ index.html # Application entry point and HTML shell
โโโ manifest.json # PWA manifest descriptor
โโโ sw.js # Service Worker (offline caching)
โ
โโโ app.js # Application state management
โโโ main.js # Initialisation sequence
โโโ setup.js # Canvas and grid configuration
โโโ calculations.js # Internal force and reaction computations
โโโ ui-handler.js # User interface state and event dispatch
โ
โโโ draw-structure.js # Beam and support element rendering
โโโ draw-loads.js # Load visualisation
โโโ draw-utilities.js # Shared drawing utilities
โโโ elastic-3d.js # Three.js-based 3D elastic curve renderer
โ
โโโ desktop-events.js # Mouse and keyboard event handling
โโโ mobile-events.js # Touch event handling
โโโ download.js # PNG and JSON export logic
โ
โโโ translations.js # Localisation string repository
โโโ localization.js # Language switching and i18n engine
โ
โโโ common.css # Base styles and design tokens
โโโ desktop-layout.css # Desktop viewport layout
โโโ mobile-layout.css # Mobile viewport layout
โโโ controls-3d.css # 3D viewer control panel styling
โ
โโโ logo.svg # Application logotype
โโโ icon-192.png # PWA icon (192 ร 192 px)
โโโ icon-512.png # PWA icon (512 ร 512 px)
The application is hosted and publicly accessible at:
https://www.rasimtemur.com/vetin/beam/
As the application comprises static files only, it may be served locally using any HTTP server:
# Clone the repository
git clone https://github.com/rasimtemur/vetin-beam.git
cd vetin-beam
# Python 3 โ built-in HTTP server
python -m http.server 8000
# Node.js โ via npx
npx serve .Navigate to http://localhost:8000 in a web browser to launch the application.
On browsers supporting the PWA specification (Chromium-based browsers, Firefox, Safari on iOS), the application may be installed to the device home screen or desktop via the browser's "Install" or "Add to Home Screen" functionality, enabling offline access.
- Define the beam โ Activate the Beam tool and drag across the canvas to establish the beam axis and span.
- Assign boundary conditions โ Select a support type from the toolbar and click the desired location on the beam.
- Apply loading โ Select a load type and interact with the beam to define load position, magnitude, and direction as applicable.
- Examine results โ Internal force diagrams and reaction values are updated instantaneously following each model modification.
- Adjust deformation scale โ The Displacement Scale parameter may be increased to amplify the elastic curve for visual clarity.
- Export output โ The structural model and free body diagram (FBD) may be exported in vector format (SVG), while calculated diagrams can be saved as PNG images. The complete structural model can also be saved as a JSON file for session persistence.
Note: A contextual hint panel is displayed below the canvas at all times, providing guidance specific to the currently active tool.
- Support reactions are determined from the conditions of static equilibrium.
- Internal force distributions (axial force N, shear force V, bending moment M, torsional moment T) are obtained through numerical integration of the applied loading along the beam axis.
- Elastic deformation is computed by double integration of the bending moment diagram in accordance with the EulerโBernoulli beam theory, utilising the specified values of E (modulus of elasticity) and I (second moment of area).
- The three-dimensional elastic curve provides a simultaneous representation of flexural (vertical) and torsional (lateral) deformations.
This software is distributed under the MIT License.
Full license terms are available in the LICENSE file.
Assoc. Prof. Rasim Temรผr
Department of Civil Engineering
Istanbul University-Cerrahpaลa
๐ rasimtemur.com
Vetin is a collection of open-source, browser-based computational tools developed for use in civil and structural engineering education. Additional tools within the Vetin ecosystem are accessible at rasimtemur.com/vetin.
Developed in support of engineering education.
GitHub ยท
MIT License ยท
Istanbul University-Cerrahpaลa

