Category Intelligent Software>Neural Network Systems/Tools

Abstract Emergent (formerly PDP++) is a comprehensive simulation environment for creating complex, sophisticated models of the brain and cognitive processes using neural network (NN) models.

These networks can also be used for all kinds of other more pragmatic tasks, like predicting the stock market or analyzing data.

Emergent includes a full graphical user interface (GUI) environment for constructing networks and the input/output patterns for the networks to process, and many different analysis tools for understanding what the networks are doing.

It has a new tabbed-browser style interface (in Qt 4 see below...), with full 3D graphics (via Open Inventor/Coin3D see below...), and advanced new GUI programming tools and data processing and analysis capabilities.

It supports the same algorithms as PDP++: Backpropagation (feed- forward and recurrent), Self-Organizing (e.g., Hebbian, Kohonen, and Competitive Learning), Constraint Satisfaction (e.g., Boltzmann, Hopfield), and the Leabra algorithm that integrates elements of all of the above in one coherent, biologically-plausible framework.

Note: The PDP++ software is a neural-network simulation system written in C++.

PDP++ was under constant development since 1993, and over the past several years has been completely overhauled and released with a new name: 'Emergent' (first released in August of 2007).

The GUI was completely rewritten using Qt from 'Qt Software' (the basis of the popular KDE environment) - [K Desktop Environment (KDE)] and Coin3D (an implementation of the Open Inventor framework for 3D scene-graph rendering).

Everything has been boiled down to the most essential elements, which are now much more advanced and flexible. It is now much easier to understand and modify the flow of processing, and to create programs that automate various tasks, including the creation of complex training environments.

Important new visualization tools have been added, and many optimizations have been implemented in terms of the memory footprint and script execution speed.

There is also a convenient plug-in architecture that makes extending the software much easier than before.

General Characteristics of Emergent --

1) Written in C++;

2) GUI-based, cross platform (Windows, Mac OS X, Linux/Unix).

3) Uses the Qt graphical and foundation class library.

4) Use the Coin "Inventor" library for Open-GL-based 3D visualizations.

5) Supports the multiple different NN learning and processing algorithms, from Backpropagation to more biologically-based algorithms including Leabra.

6) Provides for dynamic "plug-ins" which can extend the main program capabilities in many ways (new network algorithms, new visualizers, new data sources, network interfaces, etc.).

7) Provides low-level multi-dimensional matrices, and higher level "tables" (similar to an in-memory database) for data logging and manipulation.

8) Provides visual graphing and logging;

9) Networks can be entirely internal (data input/output driven inside the program) or can be hooked to external input/output (ex. a simulation environment, ACT-R, etc.).

10) Provides a data analysis framework, including multi-dimensional matrices, statistical processing, data summarization, etc.

11) Linked against the GNU Scientific Library - Emergent's matrix class is compatible with the matrix classes defined in that library.

12) Can be run on clusters under MPI (Message Passing Interface);

13) Supports multi-CPU/core computers;

14) Includes TA and CSS (described below…).

Libraries and Components of Emergent --

The Emergent Toolkit - This is the foundation on which Emergent is built.

It includes TA and CSS capabilities described below, basic application framework classes (String, Variant, lists, arrays, matrices, tables), a general-purpose application browser, a tabbed property editor (extensible to provide custom visualization and editing views for various types of application objects), a full 3D visualization/rendering library, low- level text-based CSS scripting and higher-level GUI-based Programs (which render CSS scripts to execute.)

TA (TypeAccess) - TA is a sophisticated meta-type information system for C++ programs. The header files of the application are scanned by a program called "maketa" which builds a comprehensive description of all the classes and their methods, members etc.

TA basically provides the same kinds of services as "Reflection" in systems like Java and C#. A set of directives can be applied to comments in the header files to control runtime behavior, such as visibility of member variables, etc.

CSS (C-Super Script) - CSS is a C++-like scripting language built in to Emergent. It is used as the basis of network simulation control, and can also be used to customize data input/output to networks, and to facilitate interactions with external components.

Third-Party software Emergent interfaces with --

Qt - Qt is a comprehensive application framework and GUI library. It is C++-based, cross-platform, and runs on virtually every modern system. It also has Python and (new) Java bindings.

It has basic classes such as String, Variant, etc., container classes (lists, etc.), a complete graphical framework (windows, widgets, etc.), and libraries for network/socket access, and XML.

Qt includes an elegant but sophisticated mechanism "signals and slots" for dynamically connecting objects together at runtime. It also includes a meta-typing system, which provides somewhat of a subset of the TA system.

Coin / Inventor - "Inventor" is a 3D API for describing collections of 3D objects for visualization. It renders these objects using the OpenGL framework. "Coin" is an open-source implementation of the Inventor API.

System Requirements

Windows, Mac OS X, Linux/Unix


Manufacturer Web Site Emergent

Price Free

G6G Abstract Number 20387

G6G Manufacturer Number 104024