How Synthetic Sentience Works

Synthetic Sentience is the best research vehicle for understanding how sentience arises in neural networks. Through describing brain models with the SOMA language, we can test our hypotheses about what's needed to support generative autonomous behavior in neural networks. Models can be simulated, refined, and run again, chasing various structural attributes of neural networks that ultimately give rise to sentience.

Synthetic Brain Models

Synthetic brain models are designed using NeuroSynthetica's Workbench CAD software and its SOMA modeling language. Using these design tools, both the large scale structure and the small-scale computing fabric of a spiking neural network are defined, as well as I/O channels to robots.

Generating Simulations from Models

Once a model is defined, a simulation incorporating all of the model's elements is generated on a COTS server running NeuroSynthetica's Sentience Engine real-time simulation software, saved to disk for use when the server runs the simulation. This step, called neurogenesis, actually grows a synthetic brain on the server in a database that incorporates the model's complete structure, representing every single neuron and all its connections to other neurons, as well as sensory input nerve channels from the robot, and motor control channels to the robot.

Running Simulations on the Server

Once a simulation is generated, the entire set of neurons and communication between them, together with the input and output data streams associated with a connected robot, is simulated in scalable time slices from 1ms to 1000ms, to match the time scale of the robot environment. During each timeslice, neurons may become excited and spike, exciting or damping other neurons. Some neurons may receive stimulation from sensory input channels from the robot's environment. Other neurons may send stimulation via output channels to the robot's control systems, driving actuators or other behavior.

Robots and Virtual Agents

As the robot's application program runs, it calls API functions provided by the NeuroSynthetica Robot Library to establish a connection over a TCP/IP network (including Wifi and broadband wireless networks). This allows the robot to send sensory data to the server, and to receive control information from the server that can be used to move actuators or perform virtual functions.