Software

In these pages I describe several applications that I have developed as a hobby interest for my own amusement, and that of the students that I teach from time to time.  In brief, here is a list of the software applications and their purposes.  More detailed information is available, of course, on the pages dedicated to each, accessible through the Navigation Bar above.

The Eponymous Model of Orrery Software

Orrery (C++)

Orrery (Orrery Gravitational Systems) was conceived as a desk-top laboratory in which I and my students could explore the complex behaviour of gravitational systems.  All activity is 2-dimensional, making the interactions of celestial bodies uniquely visible.  Students can construct their own solar systems and watch them evolve.

Sustainable Economics Project

PSoup (C++)

PSoup (Primordial Soup) was inspired by Dr Michael Palmiter's classic program 'Simulated Evolution', and was conceived as a desk-top laboratory in which I and my students could tinker with the gene pool of a population of bugs and explore the genetic dynamics of an evolving population.  One of my students who did a statistical analysis of the changing gene pool was invited to make a presentation to the Chief Statistician of Canada, a great honour for both him and me.  Content is based on New York university entrance requirements in biology.

The most intriguing aspect of Dr Palmiter's design was his innovative implementation of genes.  With his design, the dynamics of evolution are exposed to immense evolutionary pressure, and it is possible to watch things evolve in minutes, right in front of your eyes.  He also found an interesting way to encode genes that control movement in such a way that 2D spacial features are not just simulated mathematically, but can impress themselves into heuristic search patterns.  His "Simulated Evolution" was truly a work of genius.  In PSoup I have implemented Dr Palmiter's ingenious designs in three sets of genes, each set being called a chromosome, of course.  In C1 I have place his spacial genes.  In addition, I have extracted and abstracted his model parameters that control biological functions such as metabolic rates, reproduction and death, and placed these parameters into chromosome C2, and made them open to pressure from evolution (that is an innovation on Dr Palmiter's model).  Finally, I have designed some genes that control sensory input and the fight or flight responses, and encoded those behavioural traits into the C3 chromosome.

In short, PSoup provides a complete schema for a multi-generational biophysical economy.  It is relatively easy to make such an "economy" stable.  These innovations from Dr Palmiter's work have been the basis of four of my follow-on models in which I investigate the dynamics of sustainable economics:

 - ModEco

 - OamLab

 - MppLab 

 - TpLab 

ModEco (C++)

ModEco (Model Economies) was conceived as a desk-top laboratory in which I and my students could explore the dynamics of an economic system.  With version 1.XX we found only one sustainable economic model.  That version was so extremely abstracted that the results were not easily described, and therefore lacked credibility due to inaccessibility.  Version 2.XX is several large steps advanced from abstract towards more realistic, and that is both good and bad.  It is more easily explained, and more realistic, but less stable.  It is in abated development while I do research to discover why the more realistic models are less stable.  To date I have not been able to find a single scenario that is stable and sustainable in this physically more credible model.  I have begun to fear that modern profit-driven economies are fundamentally dynamically unstable.  

ModEco - The PMM only (NetLogo)

The original two versions of ModEco were written in C++, a dying computer language.  I have written an ODD document to describe the only stable society modeled in V1.XX, called the PMM (Perpetual Motion Machine).  Using the NetLogo language I redeveloped that one sustainable scenario.

EiLab (C++)

In 2000 Dragulescu and Yakovenko re-discovered a group of economic models that are now called the BDY model, and they fall into a category of economic model called a "capital exchange" model.  In such models all aspects of physicality are ignored (e.g. the quantities and prices of goods and services) and only the exchange of cash is modeled.  Surprisingly, such an approach provides an amazing view into one side of the hybrid biophysical/economic dynamics that control our lives.  Yakovenko's work demonstrates that, in closed capital exchange models, a logical analogue of the Maximum Entropy Principle (MEP) dominates their evolution, even though physicality is absolutely absent.  By implication, the same analogue of the MEP would be active in real-world economies.  EiLab (Entropic Index Laboratory) was conceived as a desk-top laboratory in which I and my students could explore the nature of entropy as exhibited in capital exchange models (ABMs), and develop techniques to implement it and use it for deeper understanding of the dynamics associated with sustainable economies.

OamLab (NetLogo)

This "Open Atwood machine" laboratory is a simple model testing the pronouncement found in the paper by A.J. Lotka in his paper of 1922.  He argued that all system-wide energy pathways are in a Darwinian-like competition for free energy.  Those with the greatest ability to garner and degrade energy have an evolutionary advantage over the less capable pathways, and will expand to push the others out.  In this way, the system evolves to function with a maximized flux of energy being garnered and degraded.  This is Lotka's contribution to the Maximum Power Principle, as I have come to understand it.  OamLab demonstrates the evolution of chains of energy transformers, the links of which are formed from open Atwood Machines.

MppLab (NetLogo)

The "Maximum Power Principle" laboratory is a more complex model testing Lotka's argument, but also testing the argument of Odum and Pinkerton (1955).  They argued that all individual energy transformations are in a Darwinian-like competition for free energy.  Those with the greatest ability to preserve non-degraded energy have an evolutionary advantage of the less capable energy transformations, and will multiply in number to push others out.  An example of such an energy transformation might be a predation event, in which one organism consumes another.  This was their contribution to the Maximum Power Principle, as I have come to understand it.  MppLab demonstrates the evolution of a trophic web in mere minutes.

So, we have this paradox.  At the system level, the system evolves to garner and consume energy at maximum power.  At the level of the interaction between energy stores, i.e. of the transfer and transformation of energy, the transformation evolve to minimize the consumption of energy.  At the level of the organisms themselves, they evolve to maximize their own numbers.  It is out of this three-level paradoxical set of dynamics that all of the complexity and wonder of the world arises, whether in biological systems, social systems, or economic sytems.

TpLab (NetLogo)

"Teleological Pruning" laboratory uses the innovative movement genes designed by Dr Palmiter (in Simulated Evolution) to model blind organisms searching for food in a fierce competition for survival (see the discussion of PSoup, above).  However, these organisms are endowed with belief systems and tribal bonds that can either interfere with or enhance the effects of those genetic behaviours.  The goal is to find insight into how human belief systems are shaped by the struggle for survival.

CmLab (NetLogo)

The "Conservation of Money" laboratory is conceived as a model in which one can study the dynamics of monetary systems.  Like EiLab and Yakovenko's BDY model(s), CmLab is a capital exchange model in which all physicality is abstracted away and only stores and flows of money are modeled.  It does, however, model a modern national economy with government operational accounts, a central bank, chartered banks, merchants and depositors.  The focus is on when and how money is created and destroyed, and the ebb and flow of the money supply.  Fractional reserve banking, double-entry book-keeping, and proscriptions on counterfeiting and defacement ensure that money is conserved.  It shines some light on some very interesting aspects of modern monetary systems. 

Other Models

SSS Curves

SSS Curves (Segmented Self-Similar Curves) was conceived as a desk-top laboratory in which I and my students could reproduce such famous fractal curves as the Hilbert curve, Sierpinsky Curve, Koch curve and others.  We also wanted to find a deeper understanding of fractal dimensions, so we built in the ability to create our own curves.

Mars

Mars (Memory Array Redcode Simulator) is an implementation of a famous programmer's game in which gladiators (in the form of programs written in the Redcode assembly language) are placed randomly into an arena (the memory array).  They must then find and destroy their opponents before their opponents find and destroy them.  Redcode programs are unique in my experience, as they are able to repair their own code when damaged.  Mars includes an ADE, a Redcode assembler, and an arena operator.

2D Weather

2D Weather (Two Dimensional Weather) was conceived as a desk-top laboratory in which I and my students could explore the dynamics of a very simple weather system.  This is an unfinished application.  The effects of moisture, humidity and therefore also precipitation are not implemented yet.  Nevertheless, students were impressed when sunshine caused circulation of air and hydraulic patterns of air flow over terrain.

Cautions

RE VIRUSES AND MALWARE:  While I make every effort to ensure that my computers are free of viruses or other bad software, I can make no guarantee that this is the case.  It is the responsibility of the user to verify that any download of software or other files from this site (or any other site, for that matter) is virus-free and safe to use.

COMPLETENESS:  All versions of all applications are incomplete.  They are a work in progress.  This does not mean they don't work.  I believe that I have removed most, or possibly all, bugs from the core engines over months, and in some cases years, of use by me (and my students, when they were involved) as I have added features.  The core engines in each case seem to work well.  It does mean there are technical functions and features used for debug purposes that are still open for use, there are obsolete features not yet removed, and there are "hooks" for yet-to-be-added data collection and display features.

USER DOCUMENTATION:  Help files do not exist in many cases.  Microsoft no longer supports integrated help files, but require all help to be browser-based.  I have not followed their lead.  So, there is no context-sensitive user "documentation". On the positive side, many of the features have self-documenting screens associated with them.  But, many do not.  It may require some time and patience to figure out how things work.  Some design documents exist, but they may be partially out of date.  Some "NOTES TO FILE" are available and they may show how many analytic activities were carried out, with the results.  PSoup, SSS Curves and Orrery have help files in the old non-browser style that can be made functional if you are technical.  That's about as good as it gets, for now, respecting user manuals.

DESIGN DOCUMENTATION:  Keeping in mind that this is my hobby, the design documentation is fragmentary.  I tend to write design until I know what I want to do, then abandon the design work and dive into coding.  Then I return to the design docs and tidy them up.  

Last updated:17 September 2014.