Each one of the tutorials is designed to show a particular aspect of the norn brain so they tend to be very simple. A reasonable knowledge of norn genetics is generally assumed. The examples given use the Cyberlife Genetics Kit available for purchase from the Cyberlife Creatures site. Other third party tools may be able to be used. All genetic modifications are made to one of the original Cyberlife norns using the dad1.gen genetic file. Any genetic file should be useable for these examples though.
A norn brain lobe is composed of a number of cells that sit within the 64x48 grid of a norns brain. If you look at the current lobes for one of the original Cyberlife norns you will see something like the following:
Number | Name | X | Y | Width | Height | Neurones |
---|---|---|---|---|---|---|
0 | Perception | 4 | 13 | 7 | 16 | 112 |
1 | Drive | 34 | 30 | 8 | 2 | 16 |
2 | Source | 15 | 24 | 8 | 5 | 40 |
3 | Verb | 37 | 24 | 8 | 2 | 16 |
4 | Noun | 21 | 3 | 20 | 2 | 40 |
5 | General Sense | 32 | 34 | 8 | 4 | 32 |
6 | Decision | 53 | 15 | 1 | 16 | 16 |
7 | Attention | 44 | 30 | 5 | 8 | 40 |
8 | Concept | 12 | 6 | 40 | 16 | 640 |
The total size of the brain is a grid of 64x48 cells or neurones. Each lobe must be located somewhere within this grid. For example, the verb lobe is located at position (37,24), is 8 cells wide and 2 cells high for a total size of 16 cells.
Each cell or neurone (I use the words interchangeably throughout the tutorials) represents a piece of information or data that the lobe can process or act upon. In the standard lobes each cell performs a particular function. Using the Verb lobe as an example each cell maps to a particular verb (push, pull, etc) for the norn. The full table for the verb lobe is:
Cell | X | Y | Description |
---|---|---|---|
0 | 37 | 24 | Stay |
1 | 38 | 24 | Push |
2 | 39 | 24 | Pull |
3 | 40 | 24 | Stop |
4 | 41 | 24 | Come |
5 | 42 | 24 | Run |
6 | 43 | 24 | Get |
7 | 44 | 24 | Drop |
8 | 37 | 25 | Think |
9 | 38 | 25 | Sleep |
10 | 39 | 25 | Left |
11 | 40 | 25 | Right |
12 | 41 | 25 | Not Allocated |
13 | 42 | 25 | Not Allocated |
14 | 43 | 25 | Not Allocated |
15 | 44 | 25 | Not Allocated |
A description of how I found out the relationships between the grid position and the cells of the verb lobe.
Each cell has a number of attributes associated with it. For now we will only be concerned with two of them. These are the 'State' and the 'Output'.
Imagine a cell of a lobe as being a box that holds an integer value between 0 and 255. A value of 0 means the cell is dormant or currently inactive. A value of 255 means the cell has fired to its maximum level. So the value of the cell indicates how strongly the cell was fired.
When a cell is fired it gets set to a particular value. This value is known as the 'state' of the cell. A number of times every second (about 4?) Creatures goes through all cells of every lobe for every norn and calculates the 'Output' value of the cell. The output value indicates the current level of activity for the cell. So what is the difference between state and output? State is the stored value of the cell. Output is calculated from the State and indicates the current level of activity. Once the output is computed the value of the State is set to the value of the Output. For example:
This is how I think it works and observation using LobeStudy seems to show it.
What is the calculation that is applied to State to get the Output? This is a combination of a leakage rate and an SVRule. We will deal with the SVRule in the next tutorial so for now we will deal with the other Cell options.
In the Genetics Kit there are a number of values that can be set for a cell listed in the 'Cell Body' tab under 'Cell Body Dynamics'. They are:
To demonstrate the effects of the above settings we will create a norn with an extra brain lobe. This lobe will contain one cell. At various stages of the tutorial we will set the cell body dynamics to different values to demonstrate the effect. The results will be viewed using BrainCellMonitor.
The .gen file and a norn exported with this genome is available in example1.zip. This should enable you to try some of this example out even if you don't have the genetics kit. In that case start from step 8 after importing the norn from the zip file.
Nominal Threshold | 0 - slider all the way to the left |
Leakage Rate | 0 - Instant - Slider all the way to the right |
Rest State | 0 - slider all the way to the left |
Input gain lo-hi | 255 - slider all the way to the right |
inst,trig
9 0 255,endm
inst,fire 1 1 255,endm
The .gen file and a norn exported with this genome is available in example2.zip.
Nominal Threshold | 0 - slider all the way to the left |
Leakage Rate | 48 - Approximately 20 seconds. |
Rest State | 0 - slider all the way to the left |
Input gain lo-hi | 255 - slider all the way to the right |
The .gen file and a norn exported with this genome is available in example3.zip.
Nominal Threshold | 0 - slider all the way to the left |
Leakage Rate | 48 - Approximately 20 seconds. |
Rest State | 80 |
Input gain lo-hi | 255 - slider all the way to the right |
The .gen file and a norn exported with this genome is available in example4.zip.
Nominal Threshold | 128 |
Leakage Rate | 48 - Approximately 20 seconds. |
Rest State | 0 - slider all the way to the left |
Input gain lo-hi | 255 - slider all the way to the right |
This completes Tutorial One. I hope you found it interesting. It provides a background to general lobe and cell function. Tutorial Two will describe SVRules in more detail and introduce the concept of dendrites and linked lobes. Tutorial Three will create our first lobe that performs activity without our own interaction. ie. It will interact with the environment in some manner. Tutorial Four will provide our first functioning useful lobe.