Xholon using Java Web Start (JNLP)

Xholon applications can be deployed from a server using Java Web Start (JNLP). This page includes a few examples. Just press the Launch buttons. These applications are all self-certified, so you will see a security warning popup.

Hello World System

This is a very simple Hello World example. All it does is print Hello World! five times. To see this result, you will need to have the Java Web Start (JNLP) console enabled.

MeTTTa

MeTTTa is a simple game of tic-tac-toe.

Chameleon

Chameleon (with Groovy support)

Chameleon (with JRuby support)

Chameleon (with Jython support)

Chameleon is a Xholon application that does nothing but run forever. To make it do something, you will need to paste in one or more Xholon nodes, written in a Java scripting language such as beanshell or groovy.

As an example, follow these steps:

  1. Launch the Xholon app by pressing the Launch button above.
  2. When the Xholon GUI displays, select File --> Open in the Xholon menu. The Chameleon application will automatically load.
  3. Select Controller --> Start in the Xholon tree.
  4. Copy the following text to the clipboard:
    <SaySiblings implName="lang:beanshell:inline:"><![CDATA[
    
    import org.primordion.xholon.base.Xholon;
    
    public class SaySiblings extends Xholon
    {
      private String siblingText = "I have this number of siblings: ";
      
      public void postConfigure() {
        println(this.toString());
      }
      
      public String toString() {
        return siblingText + getNumSiblings();
      }
      
      public String getSiblingText() {
        return siblingText;
      }
      
      public void setSiblingText(String siblingText) {
        this.siblingText = siblingText;
      }
      
    }
    
    new SaySiblings();
    ]]></SaySiblings>
    
  5. Locate Model --> CompositeStructureHierarchy --> Chameleon in the Xholon tree. Right-click on this node and select Edit --> Paste Last Child from the popup menu.
  6. Xholon will invoke beanshell to create an object, and will then insert the new node as the last child of Chameleon. If the Java Web Start (JNLP) console window is open, you should see a message such as:
    I have this number of siblings: 0
  7. If the Xholon tree does not automatically refresh, you can press Controller --> Refresh to see the new node.
  8. If you click on the new node, it will display a message at the bottom of the Xholon GUI.
  9. Repeat the paste operation several more times. Each node will count its current number of siblings.

Wolf Sheep Grass

WolfSheepGrass is an Agent Based Model where wolves, sheep and grass interact on a grid.

Stupid Models

The stupid models are standard Agent Based Models that have been implemented by various tools, including Xholon.

Various Xholon samples models

This is a miscellaneous set of Xholon sample models.

Bestiary

In the Bestiary sample Xholon app, beasts exist in a grid and perform various behaviors.

You can paste houses into the Grid node, or directly into any grid cell. Some examples that can be copied and pasted:

<BestiaryPattern x="10" y="10">
_WWWWW
_W...W
PDE..W
_W...W
_WWWWW
</BestiaryPattern>
<BestiaryPattern>
_____P
_WWWWDWWWWWWW
_W...E......W
PDE.........W
_W..........W
_W..........W
_W.........EDP
_W..........W
PDE.........W
_W..........W
_W.......E..W
_WWWWWWWWDWWW
_________P
</BestiaryPattern>
<BestiaryPattern x="25" y="45">
_WWWWW
_W...W
PDE..W
_W...W
_W..WWWW
_W.....WW
_W......WWWWWWWW
_W........W....W
PDE.......W....W
_W............EDP
_W........W....W
_WWWWW..WWWWWWWW
___W......W
___W......W
___WWWWWWWW
</BestiaryPattern>

The following two houses are specialized cat traps. Once a cat enters the outer door, you can keep closing doors until you've herded it into the inner room. Then you can reopen all but the inner door, and wait to lure in another cat.

<BestiaryPattern x="10" y="10">
_WWWWW______WWWWWW
_W...WWWWWWWW....W
PDE..DDDDDDDD....W
_W...WWWWWWWW....W
_WWWWW______WWWWWW
</BestiaryPattern>
<BestiaryPattern x="10" y="10">
____________WWWWWW
_WWWWWWWWWWWW....W
PDDDDDDDDDDDD....W
_WWWWWWWWWWWW....W
____________WWWWWW
</BestiaryPattern>

The following .png images are how the above houses and cat traps look once they've been pasted into the grid. You can actually paste these .png images directly into the grid. Just follow these steps:

You can paste in new cats with cat behaviors.

<Cat>
  <MovingCatbehavior/>
  <GrowingCatbehavior/>
  <FreedomOfMovementCatbehavior/>
</Cat>

You can paste in multiple cats at a time, as a forest.

<_-.beasts>
  <Cat multiplicity="10">
    <MovingCatbehavior/>
    <GrowingCatbehavior/>
    <FreedomOfMovementCatbehavior/>
  </Cat>
</_-.beasts>

Other things you can do with the Bestiary app include:

Various Xholon Dynamical Systems models

This is a miscellaneous set of Xholon Dynamical Systems models.

Cellontro cell and biology models

These are cell biology and related models.

Climate Change models

Several models having to do with climate change. They are all in a somewhat preliminary state.

Climate Change multiapp

This combines two models, an Earth energy budget model, and a carbon cycle model. Both models are under development, and are in a preliminary state.

Xholon extension of NetLogo Gas Lab model

This is an extension of a NetLogo Gas Lab model, embedded inside a Xholon model.

Solar System test

This is a test of the Solar System reusable module.

Azimuth - Petri Net

A simple petri net model from the Azimuth Project.