This site is largely a collection of links to my on-the-web software, although there is also a link to some downloadable software, and a blog.


In-browser simulators are programs you can use right here on the web, without downloading anything. The blog contains more information on these programs including future plans and bug reports.

CamoEvolve is a simple evolutionary simulator. CamoEvolve blog articles

100 Places is an ecological simulator focusing on niche partitioning. 100 Places blog articles

Random Rules generates a random set of rules that then completely determine the behavior of randomly-generated objects. Figuring out the rules requires some fundamental scientific method skills. Random Rules blog articles

RapidModel lets you assemble simple mathematical models in a visual format. RapidModel blog articles

ReactionTimer lets you test your reaction speed under different circumstances in a browser window. ReactionTimer blog articles

VectorGrid is a puzzle game that can be played competitively or single-player in which you apply pushing vectors across a board to steer projectiles. VectorGrid blog articles

This is a simple disease model with a number of options.

The programs below can be used but they are in testing, possibly missing features, and definitely missing documentation.

OPE Survivor is a life-history simulator in which you attempt to allocate resources towards growth and reproduction for a species to give it the best chance of surviving in different environmental conditions.

An animated model of comparative vertebrate circulation.


What does it do?

PhyloDraw draws phylogenies from spreadsheets. You put together a simple spreadsheet in which each row represents the information for a single terminal taxon (aligning columns for all taxa) and PhyloDraw creates a neat, clearly-labeled phylogenetic tree from that information.

What doesn't it do?

PhyloDraw only draws trees, it does not determine what they should be from sets of character data. There are lots of other programs to do that. PhyloDraw is about making readable phylogenetic trees quickly and easily, not determining the relationships between taxa.

Why would I want to use it?

I originally created PhyloDraw when I was teaching a zoology course and needed to draw approximately one tree per lecture. PhyloDraw made this much easier. PhyloDraw is also good when:

1) You are looking at historical data, perhaps a hand-drawn tree in an old paper, but the historical hypothesis has been disproven and so no currently-accessible data set will generate that tree.

2) You are creating a number of trees with overlap between them. So, for instance, in each of my zoology lectures I add one or two terminal taxa to the main tree. In PhyloDraw that requires only opening the instruction spreadsheet and adding a line for each new taxon. You can also draw a whole tree and then rapidly copy out sub-sections to new spreadsheets to generate larger views of those sub-sections.

3) You are creating "nonsense" trees for tests or to illustrate phylogenetic concepts. I do a lot of trees whose terminal taxa are letters to demonstrate ideas of monophyly, paraphyly, and polyphyly, for instance.

How do I use it?

There's a help file included in the download that covers everything.

Where do I get it?


See General downloading information if you need help figuring out what to download.

General downloading information

My download links will point to a Bitbucket project's Download section.

Quick start

If you're running Windows and just want a working program grab one of the zip files. It will include a working program and all the accessory files you need like help files. To download a zip file you'll need to know whether you have a 32-bit or 64-bit operating system.

In Windows 7 you can right-click on the My Computer icon and select Properties. One of the lines will list whether you are running a 32-bit or 64-bit system. On Windows 8 you can open the Control Panel. Select System and Security. Select System. This will tell you whether you are running a 32-bit or 64-bit system. (Technically you should be able to run the 32-bit on both systems but some people have reported problems running the 32-bit version of PhyloDraw on a 64-bit system.)

What if I am running something other than Windows?

My programs are written in Python which is capable of running on Windows, Linux, and Macs. If you download the source code, a Python interpreter, and the required packages you can theoretically run the program on any of those systems. I write the programs on a Linux computer and so I know they work there. I don't (at this point) test the programs on Macs and several years ago I did have a program fail to run on a Mac because an underlying dependency wasn't met.

If you are taking this option and you're not familiar with Python you will need to do a bit of reading. I recommend starting at Python.org. I can't cover all you'll need to know here.

The source code

The source code is available as a Git repository. If you're unfamiliar with Git you'll need to download it but you can then get the whole package of source code, images, and support files.

My projects are open source which means you are free to modify the code. Just check terms of use if you plan on distributing your modifications or making money off of the code. Terms of use will vary based on what other code I've used for my project. Some projects may not be available for commercial use and some projects may require you to keep any modified code open-source.


There's a blog. It contains a lot of the documentation for my software, but also articles about science when I have time.


I am an Associate Professor of Biology at Shaw University. I am primarily an ecologist with special interest in predator-prey interactions and their evolution, including the evolution of camouflage. I also program as a research tool and have become involved in several projects where my primary contribution is building systems for the automated collection or analysis of biological data (although I still tend towards projects where the data is related to evolution, ecology, or behavior).