Sean Luke : Research 
    Papers       Research Projects       External Projects       Other Stuff       Home    



MASON

A Multi-agent Simulation Toolkit in Java

MASON is a single-process, discrete-event simulation toolkit designed for ``swarm''-style multiagent simulations involving large numbers of agents interacting in abstract environments. MASON delineates between models and visualization, allowing it to detach models from visualizers at runtime, migrate them from platform to platform, visualize the same model in different ways, etc. For a Java toolkit, MASON is very efficient. MASON is designed to work well hand-in-hand with ECJ (see below). MASON's home page.

ECJ

A Java-based Evolutionary Computation and Genetic Programming Research System

ECJ is a free, open-source research EC library written in Java. Its design goal was to support large, complex projects. As such it has a very large number of features, and is highly flexible, with nearly all classes (and all of their settings) dynamically determined at runtime by a user-provided parameter file. All structures in the system are arranged to be easily modifiable. The system was designed with an eye toward efficiency; ECJ may make you reconsider notions about Java and slowness.

ECJ is pretty full-featured as evolutionary computation systems go, and I believe it to be the most feature-rich genetic programming system available in the public domain. ECJ's home page.

SHOE

Simple HTML Ontology Extensions

SHOE is an SGML and XML application, a specific superclass of HTML/XHTML, designed to allow agents to embed knowledge representation statements into HTML. SHOE was developed at the same time as RDF, but is more sophisticated than RDF by quite a bit. Research in SHOE (Jim Hendler is a co-author) was a precursor to DARPA's DAML effort. The SHOE home page.

The Mersenne Twister in Java

A High-Speed, Exceptionally High-Quality Random Number Generator

The Mersenne Twister is a very high-quality, fast random number generator. I have coded two versions of it in Java. MersenneTwister.java is a complete drop-in subclass replacement for java.util.Random. MersenneTwisterFast.java is algorithmically identical, except that it isn't synchronized, and it's not a subclass of Random. But this, plus other speed improvements, enables it to be over twice the speed of MersenneTwister.java and about 1.5 times the speed of Random. There is Java documentation on these two classes available as well.

Lil-GP Tweaks

Strongly-Typed, Multithreaded C Genetic Programming Kernel

I have patched the lil-gp kernel (a popular genetic programming system) to do a great deal more things than it does by default, including strongly typed GP, multithreading, etc. If you're using lil-gp, you will find these helpful. If you're starting from the beginning, investigating which GP system to use, I suggest using ECJ instead. The lil-gp patch home page

C. Elegans Visualization

3D Visualizer for a Famous Worm

Caenorhabditus elegans is a near-microscopic worm whose entire neural structure, cellular organization, genome, cell ancestry, and embryonic development has been mapped out. This organism is close to being able to be simulated in its entirety inside a computer. The worm has about 350 neurons and about 5000 synapses, making it of some significant interest to parts of the AI community. I developed a simple visualization tool of the embryonic development and neural data for the worm. Perhaps it might be of interest to you too.

Snarf

A Prototype-style Object-Oriented Programming Facility for Common Lisp

Tired of the heavyweight ridiculousness that is CLOS? Hoping that Common Lisp would provide a quick-and-dirty, simple, flexible, dynamic facility like that found in Python, JavaScript, NewtonScript, or Self? Wait no longer! Snarf Version 1 implements prototype-style OO with lists and hash tables. It's not super fast, but it's simple and easy to use.

PARKA

High Performance Knowledge Representation

PARKA is a semantic network knowledge-representation system developed at the University of Maryland, which runs on various supercomputers, Unix machines, and Macs. I was involved involved with the development and of PARKA and also with projects using PARKA machinery. The PARKA Home Page.