Pucks, an environment for experiments and education in artificial intelligence and artificial life.
TagGP, Clojure code for tree-based genetic programming with tags.
Code available from github.
Clojinc, a resource for learning clojure.
Code available from github.
Push, a programming language for genetic and evolutionary computation, and PushGP, a genetic programming system that evolves programs in Push:
Versions in several languages available from the Push, PushGP, and Pushpop page.
Clojush, most actively maintained version (written in Clojure), is available from github.
TinyGP, a simple genetic program system, derived from Riccardo Poli's "tiny_gp" and implemented for PLT Scheme.
Code available from this directory.
Genetic Programming for Finite Algebras, for producing terms of finite algebras by means of genetic programming using PushGP and ECJ.
Code available from the web page associated with the GECCO 2008 paper.
Division Blocks, a framework for artificial life involving physically simulated, three-dimensional blocks.
Code available from the web page associated with the GECCO 2007 paper.
Artificial Intelligence in 3D Virtual Worlds, a framework for artificial life involving physically simulated, three-dimensional blocks.
Code available from the course documentation.
SuperDuperWalker, by Jon Klein, Kyle Harrington, and Lee Spector: an environment supporting experiments on the evolution of locomotion, developed for use in CS193T: Biocomputational Developmental Ecology at Hampshire College. This code requires Jon Klein's breve simulaiton engine (http://www.spiderland.org/breve).
Code, notes and movies available from the SuperDuperWalker page.
SwarmEvolve, a series of experiments investigating the evolution of goal-directed flying behavior 3D virtual worlds. This code requires Jon Klein's breve simulaiton engine (http://www.spiderland.org/breve) and in some cases other code as described within. For descriptions of the SwarmEvolve systems and on-line movies of their behavior see http://hampshire.edu/lspector/gecco2003-collective.html.
SwarmEvolve 1.0 source code: http://hampshire.edu/lspector/swarmevolve-1.0.tz.
SwarmEvolve 2.0 source code: http://hampshire.edu/lspector/swarmevolve-2.0.tz.
qgame (Quantum Gate And Measurement Emulator), a program that simulates the operation of a quantum computer. Available from the QGAME page.
Parrondo's Paradox Simulator, an on-line simulator that demonstrates an interesting game theoretic phenomenon: http://hampshire.edu/lspector/parrondo/parrondo.html.
Unscramble, a simple genetic algorithm (in Common Lisp) that demonstrates how standard Darwinian mechanisms could unscramble a telephone directory in which all of the names and numbers have been paired randomly. This was written to accompany an article called "Hierarchy Helps It Work That Way" in the journal Philosophical Psychology.
ErunticLab, a genetic programming-based artificial life environment.
The Macintosh-specific version (note: some mac-specific elements have not been updated since MCL2.1 -- you may have to hack this to work under newer versions of MCL).
A new loader for the generic version that also works under MCL4 (which no longer has DEF-LOGICAL-DIRECTORY).
lgp, a linear, steady-state genetic programming engine in Common Lisp. Except where noted this will work in any modern Common Lisp system.
lgp2.lisp (version 1.19991206), the latest version. This major upgrade adds demes (subpopulations), control over the frequency with which different genetic operators will be applied, and a modified form of replacement tournament. Requires random.cl, provided below. Application code written for the original lgp will have to be modified for use with lgp2.
random.cl, Chris McConnell's random number generator, used by lgp and lgp2.
the original lgp.lisp, required for the pre-lgp2 applications below.
lgpLifePod.4.17.99.sea.hqx, a Macintosh-specific complete lgp package by Collin Lynch, including immigrate/emigrate operators for distributing lgp runs across a cluster of Macs via AppleEvents. (The name comes from our local cluster, which is called the "Tangerine LifePod".) Also includes code for distributing StarLogo runs across the cluster. The LifePod version has not been tested except on our own iMac cluster and may not be stable elsewhere; use at your own risk. The development of the LifePod version of lgp was supported by a Hughes Advanced Research Courses grant from the Howard Hughes Medical Institute.
symbolic regression on a stack-based calculator
calc.lisp, the calculator simulator.
calc-evolve.lisp, code linking the original lgp and the calculator, with example regression data sets.
calc-fast.lisp, a much faster version of the calculator, with no calculator number keys (uses ephemeral random constants instead).
calc-fast-evolve.lisp, a version of calc-evolve.lisp for use with calc-fast.lisp and the original lgp.
calc-fast-evolve2.lisp, a version of calc-evolve.lisp for use with calc-fast.lisp, updated for use with lgp2 (see below) by Alan Robinson.
interactive image evolution with the original lgp (Macintosh Common Lisp only)
MidGP, a Common Lisp stack-based genetic programming engine similar to HiGP (see [Stoffel and Spector, 1996]).
FPS6, a much-extended version of Mark Watson's FPS (Forward Production System) rule-based programming tool.
mcl-music, a high-level code interface for making music from Macintosh Common Lisp. mcl-music produces MIDI output (which may be routed to the Mac's internal "QuickTime Musical Instruments" synthesizer) from symbolic descriptions of musical parts. mcl-music is built on top of OpCode's OMS and an MCL/OMS interface kindly made available by Noteheads. For convenience, the package here includes everything that you need except MCL itself. (If anyone from Opcode or Noteheads objects to this inclusion please let me know!)
mcl-music-1.01.sea.hqx, a binhexed self-extracting archive.
CodeStepper, a Common Lisp facility for the efficient step-by-step evaluation of code. This can be useful, for example, for interleaving the execution of multiple agents in a single virtual world.