Since 0.4.0 we kept checking Stabileo from several sides at once: the solver against published solutions and other programs, the design checks against worked examples, the same structure renumbered, rescaled and moved, and the files that earlier releases saved. That found twenty-three more defects that could give a wrong or unconservative result. Each one has an advisory saying what was wrong, who is affected and what to re-check. Twenty-two are fixed; 2D plastic collapse (SA-2026-044) stays refused until #758 is fixed.

Re-run your projects
These are the cases that move a design result the most. Each advisory has the worked case and what to do with results you already delivered.
| Advisory | Results version | What was wrong | Severity |
|---|---|---|---|
| SA-2026-029 | 7 | 3D design checks read the lateral moment or shear: a CIRSOC 201 column bent about Mz was checked over its depth, 36 % too little steel in an example | Critical |
| SA-2026-028 | 8 | EN 1992-1-1 flexure assumed the tension steel yields: MRd up to 22 % high | High |
| SA-2026-030 | 12 | CIRSOC 301 compression: a section with Qa ≤ 0 got a capacity above its squash load, and passed | High |
| SA-2026-041 | 19 | The RC column check paired the largest moment with the largest compression only: up to 15 % unconservative in an example | High |
| SA-2026-042 | 23 | 2D buckling overstated the factor of members whose compression grows along them: +43 % to +68 % for one member | High |
| SA-2026-038 | 35 | 3D buckling used each member’s mean axial force: +43 % on the factor of one member with a load along it | High |
| SA-2026-043 | 32 | Harmonic analysis lost the omitted modes’ correction when one mode was much softer than the rest: 79 times off at 2.3 Hz in an example | High |
| SA-2026-035 | — | A 3D-to-2D cut bent members about the wrong section axis: a Y–Z portal 13.5 times too stiff | High |
| SA-2026-033 | 20 | The load generator left out a floor’s whole area load when one low member stood over part of it | High |
| SA-2026-027 | 11 | The shell envelope kept the combination with the largest Von Mises, not each component’s extreme: mx 14 % low in an example | High |
| SA-2026-047 | 49 | In a model with shells, a load case that imposed a support displacement lost all of its shell stresses, so combinations and envelopes summed only the other cases’ shell stresses: the combined shell stresses could be unconservative, without a warning. In 0.2.0, 0.3.0 and 0.4.0 (#1676) | High |
Every project with shells solved before #1676 names SA-2026-047 when it opens (#1691): as affected when the model has a load case that imposes a support displacement and load combinations, and otherwise as possibly affected, because a saved project cannot show that it never had such a load case. Solving it again clears the notice; then compare the shell stresses of the combinations that include that case.
The other advisories cover concrete members with torsion under ACI 318 and EN 1992 (SA-2026-040), constraints of a model cut to 2D from a Y–Z or X–Y plane (SA-2026-036), 3D co-rotational analysis with large rotations (SA-2026-037), a load at t = 0 on a node without mass in time history (SA-2026-031), the zero mode of a mechanism in modal analysis (SA-2026-032), the equilibrium check of the report after the analysis (SA-2026-034), 2D plastic collapse, which stays refused until #758 is fixed (SA-2026-044), 3D plastic collapse with a member that has no usable plastic moment, now refused (SA-2026-045), harmonic analysis that chose between modal superposition and the direct solve per load, so superposition broke (SA-2026-046), rectangles and tubes imported from Excel or IFC with Iy and Iz swapped (SA-2026-039) and, for those who call the engine directly, steel shear without a shear area under AISC 360 and EN 1993 (SA-2026-025 and 026).
Other changes that move results
Other changes move numbers too, so each one is in the re-check notice; most have no advisory of their own, and the modal zero mode is SA-2026-032 above:
- A member’s governing value and the 2D envelope read the true peak of the diagram, not the nearest of 21 stations: they can rise, by 0.23 % under a triangular load and 1.05 % under a short partial load in the documented cases, and never fall.
- Mechanisms are refused instead of solved: behind a rigid link or a diaphragm in 2D, behind a connector in 2D (#1415), and in modal analysis, which used to drop the zero mode and return the others as complete, including a mechanism that slides along inclined supports.
- 3D material-nonlinear analysis solves frames with and without a warping constant side by side, and nodes reached only by trusses, instead of crashing or refusing them; models that solved before give the same numbers.
- Repeated eigenvalues keep their multiplicity, and static and modal results check their own equilibrium and orthogonality before they are shown.
- In Basic, P-Δ and the critical load split each member into elements, plastic collapse closes hinges that unload, and the influence line of the bending moment takes sagging as positive, as every other moment in Basic.
- A design check that cannot be evaluated is refused instead of passing, and a soft but real node rotation is no longer locked when the model has a much stiffer part.
- Linear analysis warns when a rotation passes 0.1 rad, also inside a member’s span (including the slope shear deformation adds to its axis and a thermal gradient’s curvature at a released end, #1569) and on a combination’s own displacements, and when compression may amplify its moments past 10 %; while that second warning is shown, the CIRSOC 301 checks are held. Where a rotation is warned, run a geometrically nonlinear (large-rotation) analysis; where the amplification is warned, a P-Δ or other second-order analysis.
Warned or refused, until each fix exists
Every open issue that can give a wrong result now has a warning or a refusal at each place it can reach the engineer (#807). A warning keeps the result and names the issue next to it; a refusal withholds the result and says why. A ledger in the repository lists every open safety issue with its warning or refusal, the condition that triggers it and the test that proves it fires, and a test keeps it in agreement with the engine.
- Refused: the 2D plastic collapse factor, which can change by up to 4.6 times with the numbering, the direction of members and the units (#758); a buckling factor outside the bounds of its own certificate (#741); MITC4 shells on distorted meshes under significant in-plane bending (#798); and MITC4 and MITC9 shells on twisted geometry (#1057).
- Warned: among others, time history, 3D modal superposition, near-singular models, contact, material nonlinear analysis and connectors with unequal stiffnesses.
- Apart from what it refuses, containment changes one number: the 2D reaction of a settled support that also carries a spring in the settled direction now includes that spring’s force. Every other value of the 145,515 in the results corpus is identical.
Also in 0.5.0
- Basic teaches structural analysis step by step: statics, the force and displacement methods, influence lines, second order and buckling, plastic analysis and dynamics, each explained step by step in the app. Its plastic collapse unit is withheld with the rest of 2D plastic collapse until #758 is fixed.
- German, French and Turkish are offered again.
- The AI assistant works with your own Anthropic or OpenAI key, kept only in your browser, and /examples has live models the engine solves again as a slider moves.
- PRO: master and similar storeys, plate results per unit width with principal moments and directions, the report after the analysis, a read-only viewer with “Duplicate and edit”, and a linked IFC drawn as a 3D reference.
- Files saved by 0.2.0, 0.3.0 and 0.4.0 open, migrate and give the same results on every change, except where a registered result change applies; a file saved by a newer version is refused with a message that says so.
- The same structure rescaled, renumbered, reversed or moved must give the same answer, checked across 17 analysis types on every change and on 8,192 generated models every night.
- Also fixed: soil-structure interaction reports its support reactions, which it used to return empty (#1675); shells of two families numbered alike are refused by the combinations and envelopes instead of one being combined in place of the other (#1669); and shell von Mises and principal stresses no longer overflow or underflow at extreme magnitudes, with results in the normal range bit-identical (#1688).
- A project solved with a version that had a known wrong-result bug in a feature it uses names the advisory until it is solved again (#1657), and projects record every analysis they ran, so an advisory about one analysis stays until that analysis runs again (#1663).
- Faster: the 30 s autosave skips an unchanged project (#1664), a large 3D workspace reopens with less garbage to collect (#1668), and published 3D results are frozen so the known-issue refusal check runs once per result (#1689).
- More engine checks: reciprocity with moments, factored combinations and superposition of every shell stress component (#1665), and one result record per node, support, element and shell for every analysis (#1674), which found the SSI and shell combination defects above.
- Stabileo Research and Stabileo Tools: runnable reproductions of published papers and benchmarks, revised after a three-reviewer pass, and free calculators that run on the same engine.