ULM (Unified Life Models, Legendre & Clobert 1995, Ferrière & al. 1996) is an open-source software enabling the simulation and analysis of deterministic and stochastic discrete time dynamical systems for population dynamics modeling. ULM works natively on Windows, Linux and macOS.
Models are described using a simple declaration language, close to the mathematical formulation. The system can be studied interactively by means of simple commands, producing convenient graphics and numerical results.
- any species life cycle graph (matrix models, Caswell 1989, 2000)
- inter and intra-specific competition, density dependence (non linear systems)
- environmental stochasticity (random processes, Tuljapurkar 1990)
- demographic stochasticity (branching processes)
- metapopulations, migrations
Stochastic models are handled via Monte Carlo simulation.
- Population trajectories
- Growth rate, population structure and reproductive values
- Sensitivities and elasticities to changes in parameters
- Generation time and net reproductive rate
- Fitness landscapes
- Probability of extinction or quasi-extinction, time of extinction
- Lyapunov exponents and bifurcation diagrams
The ULM distribution includes the executable, example model files (in the
models folder), and the documentation in
a pdf format.
- Start the ULM program.
- Open a model file or create your own.
compileto process the file, and
runto run the model.
- Download ulm_6.0_win.zip.
- Double click on the
ulm_6.0_win.zipfile and provide the path of installation (e.g.
- Start ULM by double clicking on
For users of Debian-based distributions (such as Ubuntu):
- Download the ULM package ulm_6.0_amd64.deb
- Install it by running
dkpg -i ulm.deb.
- Start ULM by running the command
For other distributions:
- Download the ULM package ulm_6.0_amd64.tar.gz
- Extract the tarball and run the
From a terminal you can do:
tar xvz ulm_6.0_amd64.tar.gz
- Download the ULM package ulm_6.0_macOs.dmg.
- Drop the Ulm icon to
- Start Ulm by running the program
Compiling from source
The source code can be downloaded from our git repository for both the stable version and the development version. Compilation instructions are in the README.md file.
- Bienvenu F & S Legendre. 2015. A new approach to the generation time in matrix population models. American Naturalist 185:834-843.
- Caswell H. 1989. Matrix Population Models. Sinauer, Sunderland, Massachussets, USA.
- Caswell H. 2000. Matrix Population Models: Construction, Analysis, and Interpretation. 2nd edition. Sinauer, Sunderland, Massachussets, USA.
- Ferrière R, F Sarrazin, S Legendre & J-P Baron. 1996. Matrix population models applied to viability analysis and conservation: Theory and practice with ULM software. Acta OEcologica 17:629-656.
- Legendre S & J Clobert. 1995. ULM, a software for conservation and evolutionary biologists. Journal of Applied Statistics 22:817-834.
- Legendre S, J Clobert, AP Møller & G Sorci. 1999. Demographic stochasticity and the social mating system in the process of extinction of small populations: The case of passerines introduced to New Zealand. American Naturalist 153:449-463.
- Legendre S. 2004. Influence of age structure and mating system on population viability. In Evolutionary Conservation Biology (Ferrière R, U Dieckmann & D Couvet eds.), Cambridge University Press, pp. 41-58.
- Schoener TW, J Clobert, S Legendre & DA Spiller. 2003. Life-history models of extinction: A test with island spiders. American Naturalist 162:558-573.
- Tuljapurkar S. 1990. Population Dynamics in Variable Environments. Lecture Notes in Biomathematics, Springer Verlag, Germany.
Stéphane Legendre Team of Eco-Evolutionary Mathematics Ecole normale supérieure 46 rue d'Ulm 75005 Paris France
ULM development team
François Bienvenu, Guilhem Doulcier, Hugo Gruson and Maxime Woringer.
Jean Clobert, Régis Ferrière, Frédéric Gosselin, Jean-Dominique Lebreton, François Sarrazin, Karl-Michael Schindler, Alexis Simon.
The developpers of Free Pascal and Lazarus.
All the people who used and supported ULM along the years.
Issues, feature requests and feedback can be reported on our issue tracker or by writing to Stéphane Legendre.