Model code
Every chart in our research articles is generated from these scripts. Python 3.10+, numpy, scipy. Seeds are fixed.
Python
dib_fleet.py
View source
Pythonelevation_coverage.py
View source
Pythonfalse_alarm_fusion.py
View source
Pythonguard_cost.py
View source
Pythonperch_vs_hover.py
View source
Pythonprobability_of_interruption.py
View source
Pythonviewshed_export.py
View source
# Tencer Research — reproducible models
Every chart and table in the /research articles on tencerindustries.com is generated from the JSON these
scripts write to `out/`. Nothing in the articles is hand-typed from a model that wasn't run.
```
python3 perch_vs_hover.py # R1 momentum-theory hover power vs perched sensor power (<1 s)
python3 dib_fleet.py # R2 drone-in-a-box fleet sizing vs perch-and-hold, 1-yr Monte Carlo (~2 min)
python3 elevation_coverage.py # R3 viewshed vs sensor height; greedy vs random placement, 30 terrains (~3 min)
python3 false_alarm_fusion.py # R4 nuisance alarms, coincidence fusion, operator load (<5 s)
python3 probability_of_interruption.py # R5 EASI-style timely-detection model (<1 s)
python3 guard_cost.py # R6 guard-post cost Monte Carlo + tornado sensitivity (<2 s)
node ../build/build.mjs # renders articles + SVG charts from out/*.json
```
Requirements: Python 3.10+, numpy, scipy. All stochastic scripts are seeded.
Important: these are models with stated, illustrative assumptions (synthetic terrain, assumed alarm rates,
assumed cost distributions). They are not field trials. Each article lists its assumptions and limitations.
The only externally sourced numeric input is the BLS May 2024 median hourly wage for security guards ($18.46),
used as the mode of the wage distribution in R6.