Five ways of looking for errors
- Comparison with other programs: the same models, fixed ones and random ones generated every night, are solved with OpenSees, Code_Aster, Frame3DD, PyNite, MYSTRAN, Kratos and CalculiX, and every difference is investigated.
- Published references: cases whose results were published by their authors, and design checks compared with published worked examples (INTI-CIRSOC, AISC and others).
- Physical invariants: rotating, mirroring or renumbering a model, or changing its units, must change the answer exactly as physics says.
- Derivations: the frame element matrices are derived symbolically and compared term by term with the code.
- Fuzzing and mutation testing: millions of generated inputs look for failures, and errors are introduced on purpose to check that the tests catch them.
Results with an error bound
For results that support it, Stabileo computes, in interval arithmetic, a bound that contains the exact solution of the system it solved; when it cannot, the result is marked uncertified, with the reason. The core mathematics is proved in Lean for linear analysis, combinations, modal analysis and plastic collapse. Since 0.3.0, for linear analysis of frames and trusses the bound is also checked against the model itself, with an independent assembly.
Why we publish safety advisories
This verification found real defects, many of them unconservative. We publish those that could have affected results already in use, with how to recognise an affected model and what to re-check, because a defect nobody reports stays in calculations already delivered.
- SA-2026-001 to 004 were fixed in version 0.2.0.
- SA-2026-005 to 020 were fixed in version 0.3.0.
- The app says once when results may have changed, and projects saved before a change that concerns them ask for a re-check when opened.
What no check guarantees
- An error bound bounds numerical error; it does not prove the model is right, and it does not bound the discretisation error of the mesh.
- There has not yet been an independent review by a licensed structural engineer, and CIRSOC 301 steel results are still labelled experimental.
- Material-nonlinear analysis is a whole-member secant model.
- The PRO module, including code design, is still in development.
- Open safety issues are public on GitHub, and the verification level of every analysis, element and code is in the maturity matrix.
In short: Stabileo fits analysis you can cross-check, teaching, and design work where an engineer reviews the governing results, as with any program. If your process requires independently reviewed or certified commercial software, Stabileo is not there yet, and we say so.
Frequently asked questions
Is Stabileo reliable for real structural design work?
Its results are checked in five independent ways, including comparison with seven other finite-element programs and error bounds proved in Lean, and defects that could have affected results already in use are published; those still being triaged are public on GitHub. It has not yet had an independent review by a licensed engineer and the PRO module is in development, so, as with any program, the engineer reviews the model and the governing results.
Why does Stabileo publish safety advisories?
Because its verification found real defects, many of them unconservative, and a defect nobody reports stays in calculations already delivered. Each advisory says how to recognise an affected model and what to re-check.
Are the published advisories fixed?
Yes. SA-2026-001 to 004 were fixed in version 0.2.0 and SA-2026-005 to 020 in 0.3.0.