Sample Xholon Applications
- preamble
- Hello World
- Simple Ping Pong
- Hello World with 3d VRML
- Hello World - Test Time
- Digital Watch
- Cell Model
- Cell Model with Autopoiesis
- Life
- Life with 3d VRML
- SBML Cell Model
- Elevator Controller
- Ant Foraging
- Ant Foraging with Genetic Programming
- Cart Centering
- Cart Centering with Genetic Programming
- ECJ Ant Trail
- ECJ Ant Trail with Genetic Programming
- ECJ Tutorial 4
- ECJ Tutorial 4 with Genetic Programming
- Game of Life
- CTRNN - AdapSysLab
- Dynamical Systems - Fibonacci
- Collisions
- Generic Test Application
- Finite State Machine Test
- Orthogonal Finite State Machine Test
- Regulated Catalyzing System (RCS)
- Membrane Computing - P Systems
- Brane Calculus
preamble
Each sample includes a description of what it is intended to demonstrate about Xholon.
Hello World
This model is a very simple example of how to write and run a Xholon application. Several xholon objects cooperate to write the words Hello and World a specified number of times.
Simple Ping Pong
Ping Pong is a sample Xholon application. Two active objects of the same class collaborate to count from 0 to 19. They coordinate their behaviors by writing directly into each others public variables, through ports. Compare this with the Hello World tutorial in which two active objects collaborate by passing messages through ports.
Hello World with 3d VRML
This variation of Hello World creates a 3d VRML file. VRML files are organized as trees, and it is quite straight-forward to write out a VRML tree from a Xholon composite structure tree.
Hello World - Test Time
This model extends the basic HelloWorld model by setting a couple of timers and responding to timeout events in addition to normally sent messages.
Digital Watch
This digital watch model includes a large hierarchical state machine. The system was modeled using the Poseidon UML tool, and transformed into XML and Java files required by the Xholon runtime framework. This application simulates the internal structure and behavior of a fairly generic digital watch I own. It has four buttons which can be labeled S1, S2, S3 and S4. It displays the time or the date. By pressing the four buttons in various combinations, the current second, minute, hour, month, day and date can be updated, and various other internal functions can be managed.
Cell Model
This simulation of a biological cell includes enzymes that continuously transform substrate chemicals into products, and lipid bilayers and transport proteins that move chemicals between compartments. This sample application is part of the separate Cellontro project, and is available by going to the Cellontro website.
Cell Model with Autopoiesis
This application demonstrates the emergence of structure, as enzymes construct a membrane around themselves.
Life
This simulation extends the cell model. Many instances of the original cell are embedded within multiple subsystems of an organism, which in turn is embedded within an ecosystem. This demonstrates a deeply nested composite structure, and the ability to reuse structures. This sample application is part of the separate Cellontro project, and is available by going to the Cellontro website. It is the most complex application developed so far using the Xholon runtime framework.
Life with 3d VRML
This biological cell simulation generates a Virtual Reality Modeling Language (VRML) view of itself, allowing 3d visualization with the use of a VRML browser.
SBML Cell Model
System Biology Markup Language (SBML) - see Cellontro project.
Elevator Controller
This model simulates the control of a pair of elevators operating in a multi-story building.
Ant Foraging
The Ant Foraging System is a Xholon implementation of an example presented by John Koza in his 1992 book Genetic Programming. It is an example of a grid implemented in Xholon, and also demonstrates mobility as ants move about on the grid. This and the next set of projects focus on systems that evolve and adapt to their environment, by using the Xholon runtime framework.
Ant Foraging with Genetic Programming
In this version of the Ant Foraging model, genetic programming is used to evolve the behavior of the ants, by manipulating the Xholon tree structure.
Cart Centering
This model implements a solution to the cart centering problem.
Cart Centering with Genetic Programming
This model uses genetic programming (GP) to evolve a solution to the cart centering problem.
ECJ Ant Trail
This model is a Xholon version of the Ant Trail application included with ECJ, an evolutionary computation system written in Java. This version does NOT include genetic programming, but simply uses an already-known optimal behavior. This optimal behavior, is hard-coded into a Xholon tree structure, inside the CompositeStructureHierarchy.xml configuration file.
ECJ Ant Trail with Genetic Programming
This model is a Xholon version of the Ant Trail application included with ECJ. You will need to download ECJ separately from Xholon. This version of the model generates an optimal solution using genetic programming (GP).
ECJ Tutorial 4
This model is a Xholon version of the Tutorial 4 application included with ECJ.
ECJ Tutorial 4 with Genetic Programming
This model is a Xholon version of the Tutorial 4 application included with ECJ. You will need to download ECJ separately from Xholon. This version of the model generates an optimal solution using genetic programming (GP).
Game of Life
This is the classic Conway Game of Life implemented using Xholon. It demonstrates how to implement a two-dimensional grid within a Xholon tree.
CTRNN - AdapSysLab
This model demonstrates use of a Continuous Time Recurrent Neural Network (CTRNN), using Xholon.
Dynamical Systems - Fibonacci
This model implements a dynamical system that creates the Fibonacci series. This demonstrates how to model dynamical systems using Xholon.
Collisions
This is a partial implementation of a statistical analysis described in a research paper.
Generic Test Application
This simple application demonstrates and tests some core internal functions of the Xholon runtime framework. It also shows how to add new nodes to the composite structure tree.
Finite State Machine Test
This application tests and demonstrates the ability of Xholon to model and execute hierarchical finite state machines (FSM). Xholon FSMs are based on the Unified Modeling Language (UML 2) specification for State Machines. This FSM was modeled using the Magic Draw UML tool, exported to XML Metadata Interchange (XMI) format, converted to Xholon XML and Java files using a set of XSLT scripts, merged with several manually-produced Xholon Java files, and executed using the Xholon runtime framework.
Orthogonal Finite State Machine Test
This application tests and demonstrates the ability of Xholon to model and execute hierarchical finite state machines (FSM), especially an FSM containing orthogonal states. Xholon FSMs are based on the Unified Modeling Language (UML 2) specification for State Machines. This FSM was modeled using the Magic Draw UML tool, exported to XML Metadata Interchange (XMI) format, converted to Xholon XML and Java files using a set of XSLT scripts, merged with several manually-produced Xholon Java files, and executed using the Xholon runtime framework. In UML, an orthogonal state contains two or more regions. Each of these regions can contain separate hierarchical states, that typically operate independently of each other.
Regulated Catalyzing System (RCS)
This model, taken from a biology domain, is a fairly simple Xholon application. A regulated catalyzing system (RCS) contains catalysts as well as entities that regulate the catalysts. The Glycogen Phosphorylase System is one such system, in which Glycogen Phosphorylase is the catalyst, and Phosphorylase Kinase and Phosphorylase Phosphatase regulate its activity.
Membrane Computing - P Systems
This is a model of a Membrane Computing system.
Brane Calculus
This is a model of a Brane Calculus system.