FaDeS simulates the out-of-plane overturning of a masonry façade and the debris it leaves on the street. It is a two-dimensional rigid-block model:
- the façade overturns about its outer toe (or about the top of the wall below it, in a partial collapse);
- it breaks into its blocks at the first impact;
- the blocks slide and tumble until they stop.
The extent of the debris is measured on the blocks at rest. It works for any wall given by its height, thickness, block size, diatone courses and materials, in total or partial collapse. It reports how far the debris reaches and, for a street of given width, how much of the street stays free.
FaDeS is the simulator of the paper Simulating the debris of overturning masonry façades with rigid blocks: from the falling panel to the documented collapses (C. Olivieri, G. Vaiano, L. Sibille, G. Mochi, F. Fabbrocino), and it makes the paper's analyses for any wall. It carries four worked examples, one wall of each type analysed in the paper, with the paper's results for them.
-
Single wall. Any façade, of your own size, blocks and materials, or one of the worked examples. You can watch it fall. The program measures P95 by mass and Lmax and plots the cumulative mass and the profile of the debris. With a street width it also gives the width left free.
-
Parametric study. Many walls, each with many seeds. The walls can be:
- a grid of heights and thicknesses with shared blocks and materials;
- a CSV file with one wall per row (your own buildings);
- the worked examples.
For each wall it gives the extent at break-up and at rest, as seed medians and ranges, and the increment that the debris phase adds, against the slenderness of the wall (as Fig. 7 of the paper). With a street width it adds the width left free, the number of seeds whose debris reaches the far side, and the height of the debris there.
-
Rigid-phase check (Section 3 of the paper). For up to five walls of any size and friction, the overturning phase is checked against the closed form of a rectangle pivoting about its toe:
- the angle at which the toe slips;
- the energy drift;
- the landing state with the step halved;
- the energy balance of the slide regime.
The tests of the two-block code and of the internal actions are shown with them.
-
Integrity in the fall (Section 4, Figs. 5–6). For any walls in total collapse it computes:
- the force and the moment that each section of the falling panel must carry;
- the first hinge with no tensile strength, and the two-block motion that follows it;
- the check at any tensile strengths, in its elastic and rigid-plastic forms.
The walls are the worked examples, a grid or a CSV file, with their own blocks, friction and density.
The convergence test of partial collapse (Section 6), the documented collapses (Section 7) and the convergence tests of Appendix A are in preparation.
Results are exported as CSV or JSON, and charts as SVG or PNG.
One wall of each type analysed in the paper, each with the default materials (μ = μg = 0.75, ρ = 1900 kg/m³, e = 0.02, diatone courses every 2 m) and with the paper's results for it:
| example | wall | analyses | the paper's results |
|---|---|---|---|
| total collapse, small blocks | H 10 m, t 0.60 m, blocks 0.15 × 0.15 m | all four | 20 runs, break-up measures, rigid-phase checks, integrity |
| total collapse, large blocks | H 5 m, t 1.20 m, blocks 0.40 × 0.20 m | all four | 20 runs, break-up measures, rigid-phase checks, integrity |
| partial collapse, top two thirds | H 9 m, Hr 6 m, t 0.60 m, blocks 0.15 × 0.15 m | single wall, study | 20 runs |
| partial collapse, top third | H 12 m, Hr 4 m, t 0.30 m, blocks 0.15 × 0.15 m | single wall, study | 20 runs |
They can be opened from the Overview in each analysis, which shows the paper's results until you run it. A run of an
example with the default variability and a seed from 1 to 20 is compared with the paper's run of that seed. Change
any parameter and the wall becomes your own. The examples are in examples/: paper_results.json (the walls and
the paper's results) and walls.csv (the walls, in the CSV format of the parametric study).
Every parameter can be changed. The defaults are the values of the paper.
| parameter | meaning | default |
|---|---|---|
| H | height of the façade, m | |
| mechanism, Hr | total collapse, or partial collapse of the top Hr metres | total |
| t | thickness of the wall, m | |
| bx × by | block size across the thickness × along the height, m | 0.15 × 0.15 |
| diatone spacing | through-stone courses 0.20 m high every … m; 0 = none | 2 |
| μ, μg | Coulomb friction between blocks, and against the street | 0.75, 0.75 |
| e | coefficient of restitution of every contact | 0.02 |
| ρ | density, kg/m³ | 1900 |
| variability | sd of the start angle, of the block joints and of the friction | 0.2°, 10 %, 5 % |
| seeds | each seed draws the start angle, the block joints and the friction | 1–20 |
| W | width of the street, m (optional) |
The model is a vertical strip of façade, one metre long, without return walls or floors. The building behind it is a rigid backstop. The wall starts from rest just past its tipping angle, and there is no ground motion during the fall. It stays rigid until its first impact and breaks completely into its blocks at that instant.
The paper describes the model and how it was tested:
- The overturning phase is verified to rounding error.
- A masonry panel with little or no tensile strength would crack before landing.
- In total collapse the extent is largely set at break-up: 95 % of the mass lies within about one height when the panel lands.
- The convergence and engine tests pass in seven tall, slender walls, which verifies the break-up geometry. The debris phase itself, and partial collapse, do not pass the convergence test.
The extent computed for a wall is therefore a property of the rigid-block idealisation, to be read with these results. It is neither a prediction for a real wall nor an established bound on it. docs/MODEL.md describes the model in more detail.
Installers are attached to the releases of this repository:
- macOS:
FaDeS-<version>-arm64.dmgfor Apple Silicon,FaDeS-<version>.dmgfor Intel. - Windows:
FaDeS-Setup-<version>.exe.
The installers are not signed with a developer certificate, so the system asks for confirmation the first time:
- macOS: if the program does not open, go to System Settings → Privacy & Security and choose Open Anyway.
- Windows: SmartScreen shows Windows protected your PC; choose More info → Run anyway.
You need Node.js 24.
npm ci # install the dependencies (planck.js, Electron, electron-builder)
npm start # open the program
npm test # testsEverything also runs from the command line, without the interface:
# one wall: a partial collapse of the top 4 m of a 12 m façade, larger blocks, a street 5 m wide
node src/cli/cli.js run --H 12 --t 0.45 --mechanism partial --Hr 4 --bx 0.25 --by 0.12 --W 5 --seed 1
# many walls: every combination of three heights and two thicknesses, 20 seeds, a street 6 m wide
node src/cli/cli.js study --H 6,9,12 --t 0.45,0.60 --seeds 1-20 --W 6
# your own walls, one per row of a CSV file
node src/cli/cli.js study --walls my_walls.csv --seeds 1-20
# the worked examples and the paper's results for them; all of them run as a study, compared with the paper
node src/cli/cli.js examples
node src/cli/cli.js study --examples
node src/cli/cli.js run --example partial-upper-third --seed 7
# the rigid phase (Sect. 3): the examples in total collapse, or walls of your own (one thickness per height)
node src/cli/cli.js rigid
node src/cli/cli.js rigid --H 8,4 --t 0.50,0.80 --mu 0.6
# integrity in the fall (Sect. 4): the examples, a grid with its own materials and tensile strengths, or a CSV file
node src/cli/cli.js integrity --stored # the paper's results for the examples
node src/cli/cli.js integrity # the examples, compared with the paper
node src/cli/cli.js integrity --H 6,9 --t 0.45 --mu 0.6 --rho 1700 --ft 0.05,0.2
node src/cli/cli.js integrity --walls my_walls.csv
node src/cli/cli.js --helpEvery finished run is stored as soon as it ends, so a stopped study resumes where it stopped.
One wall per row, comma or semicolon separated. A template with two walls that use every column is in
examples/walls_template.csv.
| column | meaning |
|---|---|
id |
name of the wall |
mechanism |
T total collapse; P partial collapse of the top Hr_m metres; P1, P2: partial with Hr = H/3, 2H/3 |
H_m, t_m |
height and thickness, m |
Hr_m |
height of the overturning part (partial collapse), m |
bx_m, by_m |
block size, m (optional) |
diatone_step_m |
spacing of the diatone courses, m; 0 = none (optional) |
mu, muG, e, rho |
friction, restitution, density (optional) |
W_m |
street width, m (optional) |
Empty optional cells take the default values. The same file can be used by the integrity analysis, which takes its walls in total collapse.
npm run dist:mac # dist/*.dmg (on a Mac)
npm run dist:win # dist/*.exe (on Windows)The tests run on Linux, Windows and macOS at every push (.github/workflows/tests.yml). The installers are built by
.github/workflows/build.yml. It is started by hand from the Actions tab, or by a tag such as v1.1.0, which also
publishes the installers as a release.
The worked examples carry the paper's results for them: the 80 runs of their seeds 1–20 and, for the two walls in total collapse, the break-up measures, the checks of the rigid phase and the integrity of the falling panel. Runs of the examples made with the program use the same code, parameters and random draws.
Agreement to the last bit cannot be guaranteed on every computer. The trajectory of thousands of contacts depends on
the last bit of sin, cos, atan2 and log, and these are not rounded identically by every JavaScript runtime and
processor. The program therefore carries its own implementation of these functions, so that every computer gives the
same result. Against the paper's results for the examples:
- in 78 of the 80 runs, P95 and Lmax are within 0.1 % of the paper's;
- in the other two, a difference in the last digits grows through the contacts to 1.9 % and 2.9 % in P95 (0.1 % and 1.4 % in Lmax);
- the seed medians of P95 and Lmax differ by at most 0.2 %;
- the break-up measures, the checks of the rigid phase and the integrity of the panel agree within 10⁻¹² (relative), with every result of the paper unchanged.
On Apple Silicon with Node.js 24, the command line with --native-math reproduces the paper's results for the
examples bit for bit.
The program ships no field data. Documented collapses can be loaded from a CSV file in the format above.
| folder | content |
|---|---|
src/sim |
the simulator: rigid phase, break-up, debris phase in planck.js, measures, deterministic functions |
src/analyses |
walls and their defaults, studies of any set of walls, the worked examples; integrity/: the checks of the rigid phase and the integrity of the falling panel |
src/runner |
parallel and resumable execution on worker threads |
src/main, src/renderer |
the desktop interface (Electron) |
src/cli |
the command line |
examples |
the worked examples with the paper's results for them, the template of the CSV file of walls |
test |
tests |
If you use FaDeS, please cite the paper (the full reference will be added on publication). The software itself is
cited from CITATION.cff (on GitHub: Cite this repository). Every release is archived on Zenodo. The DOI
10.5281/zenodo.24046462 refers to all versions and resolves to the latest
one.
MIT; see LICENSE. src/sim/detmath.js is a translation of fdlibm, © Sun Microsystems, distributed with its
notice, which is kept in LICENSE. planck.js is distributed under the MIT licence.


