HyperNEAT - Evolved Octopus Arm Control Demos

These videos show typical scaling behaviors evolved with HyperNEAT for the PPSN-2010 paper, Evolving a Single Scalable Controller for an Octopus Arm with a Variable Number of Segments. In all videos, the learned behavior is demonstrated on an 8-segment arm (as trained) before being scaled directly to support arms with additional segments without further training. Notice how the controller maintains the underlying contractive pattern regardless of the number of segments in the arm. Furthermore, note the high-dimensionality of their state and action spaces, as well as of the neural networks themselves (i.e. ANNs with thousands of connections).

Perfect Scaling from 8 to 14 Segments:

This video demonstrates a solution that maintains the ability to touch all six targets when scaled from 8 to 14 segments. The number of connections in the substrate at 8 segments is 7,488 and at 14 segments is 22,932.

Improved Performance from 8 to 16 Segments:

This video demonstrates a solution that touches more targets when scaled up; an 8-segment arm controller can touch five targets, but when applied to a 16-segment arm with no further training, the solution touches all six targets. The number of connections in the substrate at 8 segments is 7,488 and at 16 segments is 29,952.

Octopus Arm Simulator:

The octopus arm simulator in this study, inspired by descriptions in Yekutieli et al. (2005) and Engel et al. (2005), was developed at UCF to provide the ability to vary the number of segments in the arm and to allow the arm to sense the target. The arm model is written in Java (1.5) and is based on phys2d, a 2D physics engine written in Java (1.4). The simulation environment API will be made available in the near future.