WIP ClusterPrefab drawer

This commit is contained in:
Pascal Serrarens 2026-05-08 15:52:41 +02:00
parent 49b122d945
commit 8d3d6d97b2
43 changed files with 2201 additions and 644 deletions

View File

@ -1,45 +0,0 @@
name: Copy Documentation to webserver
on:
push:
branches:
- '**'
pull_request:
branches:
- '**'
jobs:
copy-documentation:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v2
- name: Pause for debug
run: |
echo "Debug container: sleeping for 300s"
sleep 300
- name: Install Dependencies
run: |
apt-get update
apt-get install -y rsync # Install required packages
- name: Check volume
run: |
mount | grep /web/nanobrain || true
ls -la /web || true
cat /proc/self/mounts | grep nanobrain || true
ls -la /web/nanobrain; id; stat -c "%u:%g %n" /volume1/web/passer_life/documentation/nanobrain
- name: Ensure destination exists
run: |
chown -R $USER:$USER /web/nanobrain
- name: Copy html folder
run: |
find / -path '*/web/nanobrain/*'
rsync -av --delete Documentation/html/ /web/nanobrain 2>&1
echo $HOSTNAME
ps aux | head

View File

@ -0,0 +1,117 @@
fileFormatVersion: 2
guid: a28c69abf4d3b788885249a638c45a79
TextureImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 13
mipmaps:
mipMapMode: 0
enableMipMap: 1
sRGBTexture: 1
linearTexture: 0
fadeOut: 0
borderMipMap: 0
mipMapsPreserveCoverage: 0
alphaTestReferenceValue: 0.5
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
flipGreenChannel: 0
isReadable: 0
streamingMipmaps: 0
streamingMipmapsPriority: 0
vTOnly: 0
ignoreMipmapLimit: 0
grayScaleToAlpha: 0
generateCubemap: 6
cubemapConvolution: 0
seamlessCubemap: 0
textureFormat: 1
maxTextureSize: 2048
textureSettings:
serializedVersion: 2
filterMode: 1
aniso: 1
mipBias: 0
wrapU: 0
wrapV: 0
wrapW: 0
nPOTScale: 1
lightmap: 0
compressionQuality: 50
spriteMode: 0
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits: 100
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spriteGenerateFallbackPhysicsShape: 1
alphaUsage: 1
alphaIsTransparency: 0
spriteTessellationDetail: -1
textureType: 0
textureShape: 1
singleChannelComponent: 0
flipbookRows: 1
flipbookColumns: 1
maxTextureSizeSet: 0
compressionQualitySet: 0
textureFormatSet: 0
ignorePngGamma: 0
applyGammaDecoding: 0
swizzle: 50462976
cookieLightType: 0
platformSettings:
- serializedVersion: 4
buildTarget: DefaultTexturePlatform
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 4
buildTarget: Standalone
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
spriteSheet:
serializedVersion: 2
sprites: []
outline: []
customData:
physicsShape: []
bones: []
spriteID:
internalID: 0
vertices: []
indices:
edges: []
weights: []
secondaryTextures: []
spriteCustomMetadata:
entries: []
nameFileIdTable: {}
mipmapLimitGroupName:
pSDRemoveMatte: 0
userData:
assetBundleName:
assetBundleVariant:

View File

@ -78,7 +78,7 @@ $(function() {
<div class="levels">[detail level <span onclick="javascript:toggleLevel(1);">1</span><span onclick="javascript:toggleLevel(2);">2</span><span onclick="javascript:toggleLevel(3);">3</span>]</div><table class="directory">
<tr id="row_0_" class="even"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_0_" class="arrow" onclick="toggleFolder('0_')">&#9660;</span><span class="icona"><span class="icon">N</span></span><a class="el" href="namespace_nano_brain.html" target="_self">NanoBrain</a></td><td class="desc">The Nanobrain namespace </td></tr>
<tr id="row_0_0_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_0_0_" class="arrow" onclick="toggleFolder('0_0_')">&#9660;</span><span class="icona"><span class="icon">N</span></span><a class="el" href="namespace_nano_brain_1_1_unity.html" target="_self">Unity</a></td><td class="desc"></td></tr>
<tr id="row_0_0_0_" class="even"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_nano_brain_1_1_unity_1_1_brain.html" target="_self">Brain</a></td><td class="desc">The <a class="el" href="namespace_nano_brain.html" title="The Nanobrain namespace.">NanoBrain</a> Unity Componnent </td></tr>
<tr id="row_0_0_0_" class="even"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_nano_brain_1_1_unity_1_1_brain.html" target="_self">Brain</a></td><td class="desc">A <a class="el" href="namespace_nano_brain.html" title="The Nanobrain namespace.">NanoBrain</a> which can be used to control a gameobject </td></tr>
<tr id="row_0_0_1_" class="odd"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_nano_brain_1_1_unity_1_1_cluster_prefab.html" target="_self">ClusterPrefab</a></td><td class="desc">The Unity ScriptableObject to implement re-usable Cluster Prefabs </td></tr>
<tr id="row_0_1_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_nano_brain_1_1_cluster.html" target="_self">Cluster</a></td><td class="desc">A Cluster combines a collection of Nuclei to implement reusable behaviour </td></tr>
<tr id="row_0_2_" class="odd"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_nano_brain_1_1_memory_cell.html" target="_self">MemoryCell</a></td><td class="desc">A MemoryCell stored its value for one update </td></tr>

View File

@ -85,6 +85,8 @@ $(function() {
<tr class="odd"><td class="entry"><a class="el" href="class_nano_brain_1_1_neuron.html#a6389e0e1e08f9a670958d110050d2504">_outputValue</a></td><td class="entry"><a class="el" href="class_nano_brain_1_1_neuron.html">Neuron</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="class_nano_brain_1_1_neuron.html#ab08d3adcd550750d22943d5f8a8f94a4">_outputValue</a></td><td class="entry"><a class="el" href="class_nano_brain_1_1_neuron.html">Neuron</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="class_nano_brain_1_1_neuron.html#abda2c109ffc1dc92ebde0f4802c37b1f">ActivationType</a> enum name</td><td class="entry"><a class="el" href="class_nano_brain_1_1_neuron.html">Neuron</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="class_nano_brain_1_1_neuron.html#a89bb3565b62b372f9a9baad1b4657fc5">Activator</a>(float3 inputValue)</td><td class="entry"><a class="el" href="class_nano_brain_1_1_neuron.html">Neuron</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="class_nano_brain_1_1_neuron.html#a1d0ff8ec1bf2a0f7a5ee4c4ffad722ca">Activator</a>(Vector3 inputValue)</td><td class="entry"><a class="el" href="class_nano_brain_1_1_neuron.html">Neuron</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="class_nano_brain_1_1_neuron.html#a7b44b9201cb62d1778628082f10bb1d8">activator</a></td><td class="entry"><a class="el" href="class_nano_brain_1_1_neuron.html">Neuron</a></td><td class="entry"></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="class_nano_brain_1_1_neuron.html#afd3dff2960a406f480a02db7fa351e68">ActivatorBinary</a>(float3 input)</td><td class="entry"><a class="el" href="class_nano_brain_1_1_neuron.html">Neuron</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="class_nano_brain_1_1_neuron.html#aff1de06241cbc2846468d82203026382">ActivatorLinear</a>(float3 input)</td><td class="entry"><a class="el" href="class_nano_brain_1_1_neuron.html">Neuron</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
@ -101,13 +103,13 @@ $(function() {
<tr class="odd"><td class="entry"><a class="el" href="class_nano_brain_1_1_neuron.html#a543786edbba5dd2f46bdf48c7c64987e">AddSynapse</a>(Neuron sendingNucleus, float weight=1)</td><td class="entry"><a class="el" href="class_nano_brain_1_1_neuron.html">Neuron</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="class_nano_brain_1_1_neuron.html#a540695e1c09734dd5790cb75e8b8f176">bias</a></td><td class="entry"><a class="el" href="class_nano_brain_1_1_neuron.html">Neuron</a></td><td class="entry"></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="class_nano_brain_1_1_neuron.html#a61ebfee9f73116bd87d641af0fd3ef57">CloneFields</a>(Neuron clone)</td><td class="entry"><a class="el" href="class_nano_brain_1_1_neuron.html">Neuron</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="class_nano_brain_1_1_neuron.html#ade3c65b8999bc2caea35a477a890d557">Combinator</a></td><td class="entry"><a class="el" href="class_nano_brain_1_1_neuron.html">Neuron</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="class_nano_brain_1_1_neuron.html#a3f5113c3ec0e521ab24c3bdd34c5389e">Combinator</a></td><td class="entry"><a class="el" href="class_nano_brain_1_1_neuron.html">Neuron</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="class_nano_brain_1_1_neuron.html#a61f71c8a24ee7a78783648b0147048a5">Combinator</a>(float3 bias, List&lt; Synapse &gt; synapses)</td><td class="entry"><a class="el" href="class_nano_brain_1_1_neuron.html">Neuron</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="class_nano_brain_1_1_neuron.html#a983416d3d4382abb4ef0e4d24d99e732">Combinator</a>(Vector3 bias, List&lt; Synapse &gt; synapses)</td><td class="entry"><a class="el" href="class_nano_brain_1_1_neuron.html">Neuron</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="class_nano_brain_1_1_neuron.html#adcd8e3279ab63ad98f34485b6403e0c9">combinator</a></td><td class="entry"><a class="el" href="class_nano_brain_1_1_neuron.html">Neuron</a></td><td class="entry"></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="class_nano_brain_1_1_neuron.html#acad9a97a8f3b9df50209623e3e50bce3">CombinatorProduct</a>()</td><td class="entry"><a class="el" href="class_nano_brain_1_1_neuron.html">Neuron</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="class_nano_brain_1_1_neuron.html#a985c9a28b445133460cee6aa23d050ea">CombinatorProduct</a>()</td><td class="entry"><a class="el" href="class_nano_brain_1_1_neuron.html">Neuron</a></td><td class="entry"></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="class_nano_brain_1_1_neuron.html#ac336222e6d6f84cfc9f4ea68b5973166">CombinatorSum</a>()</td><td class="entry"><a class="el" href="class_nano_brain_1_1_neuron.html">Neuron</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="class_nano_brain_1_1_neuron.html#ab7909448ce5cda39c1e786d80a38d357">CombinatorSum</a>()</td><td class="entry"><a class="el" href="class_nano_brain_1_1_neuron.html">Neuron</a></td><td class="entry"></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="class_nano_brain_1_1_neuron.html#a94b65d9e945f73d7e6cebc03acd2e36f">CombinatorProduct</a>(float3 bias, List&lt; Synapse &gt; synapses)</td><td class="entry"><a class="el" href="class_nano_brain_1_1_neuron.html">Neuron</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="class_nano_brain_1_1_neuron.html#ab278cb03c9176522b9872b0b3460a0e0">CombinatorProduct</a>(Vector3 bias, List&lt; Synapse &gt; synapses)</td><td class="entry"><a class="el" href="class_nano_brain_1_1_neuron.html">Neuron</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="class_nano_brain_1_1_neuron.html#a8ec8679939dad6c9ccdd39e7c2cfae04">CombinatorSum</a>(float3 bias, List&lt; Synapse &gt; synapses)</td><td class="entry"><a class="el" href="class_nano_brain_1_1_neuron.html">Neuron</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="class_nano_brain_1_1_neuron.html#a0dbc2b80fb98e5e8c219f422f2f7aa73">CombinatorSum</a>(Vector3 bias, List&lt; Synapse &gt; synapses)</td><td class="entry"><a class="el" href="class_nano_brain_1_1_neuron.html">Neuron</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="class_nano_brain_1_1_neuron.html#a1b62779c4e520ef73e1e2afe2517d487">CombinatorType</a> enum name</td><td class="entry"><a class="el" href="class_nano_brain_1_1_neuron.html">Neuron</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="class_nano_brain_1_1_neuron.html#a515dbc8cdce3d6b2091228e7c6d2036f">curve</a></td><td class="entry"><a class="el" href="class_nano_brain_1_1_neuron.html">Neuron</a></td><td class="entry"></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="class_nano_brain_1_1_neuron.html#ab24f9dd28a936f0daabebf979c933b2a">curveMax</a></td><td class="entry"><a class="el" href="class_nano_brain_1_1_neuron.html">Neuron</a></td><td class="entry"></td></tr>

View File

@ -160,18 +160,6 @@ Public Member Functions</h2></td></tr>
<tr class="memitem:a80905f66a0e030cfb017cb4ffa70b7d6" id="r_a80905f66a0e030cfb017cb4ffa70b7d6"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_nano_brain_1_1_neuron.html#a80905f66a0e030cfb017cb4ffa70b7d6">SleepCheck</a> ()</td></tr>
<tr class="memdesc:a80905f66a0e030cfb017cb4ffa70b7d6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Check if the neuron is sleeping. <br /></td></tr>
<tr class="separator:a80905f66a0e030cfb017cb4ffa70b7d6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac336222e6d6f84cfc9f4ea68b5973166" id="r_ac336222e6d6f84cfc9f4ea68b5973166"><td class="memItemLeft" align="right" valign="top">float3&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_nano_brain_1_1_neuron.html#ac336222e6d6f84cfc9f4ea68b5973166">CombinatorSum</a> ()</td></tr>
<tr class="memdesc:ac336222e6d6f84cfc9f4ea68b5973166"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sum the synapse outputs together. <br /></td></tr>
<tr class="separator:ac336222e6d6f84cfc9f4ea68b5973166"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab7909448ce5cda39c1e786d80a38d357" id="r_ab7909448ce5cda39c1e786d80a38d357"><td class="memItemLeft" align="right" valign="top">Vector3&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_nano_brain_1_1_neuron.html#ab7909448ce5cda39c1e786d80a38d357">CombinatorSum</a> ()</td></tr>
<tr class="memdesc:ab7909448ce5cda39c1e786d80a38d357"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sum the synapse outputs together. <br /></td></tr>
<tr class="separator:ab7909448ce5cda39c1e786d80a38d357"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acad9a97a8f3b9df50209623e3e50bce3" id="r_acad9a97a8f3b9df50209623e3e50bce3"><td class="memItemLeft" align="right" valign="top">float3&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_nano_brain_1_1_neuron.html#acad9a97a8f3b9df50209623e3e50bce3">CombinatorProduct</a> ()</td></tr>
<tr class="memdesc:acad9a97a8f3b9df50209623e3e50bce3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Multiply the synapse outputs together. <br /></td></tr>
<tr class="separator:acad9a97a8f3b9df50209623e3e50bce3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a985c9a28b445133460cee6aa23d050ea" id="r_a985c9a28b445133460cee6aa23d050ea"><td class="memItemLeft" align="right" valign="top">Vector3&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_nano_brain_1_1_neuron.html#a985c9a28b445133460cee6aa23d050ea">CombinatorProduct</a> ()</td></tr>
<tr class="memdesc:a985c9a28b445133460cee6aa23d050ea"><td class="mdescLeft">&#160;</td><td class="mdescRight">Multiply the synapse outputs together. <br /></td></tr>
<tr class="separator:a985c9a28b445133460cee6aa23d050ea"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8aab0c6e45f7d0fc37ce401f7821e567" id="r_a8aab0c6e45f7d0fc37ce401f7821e567"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_nano_brain_1_1_neuron.html#a8aab0c6e45f7d0fc37ce401f7821e567">AddReceiver</a> (<a class="el" href="class_nano_brain_1_1_nucleus.html">Nucleus</a> receiverToAdd, float weight=1)</td></tr>
<tr class="memdesc:a8aab0c6e45f7d0fc37ce401f7821e567"><td class="mdescLeft">&#160;</td><td class="mdescRight">Add a new receiver to this neuron. <br /></td></tr>
<tr class="separator:a8aab0c6e45f7d0fc37ce401f7821e567"><td class="memSeparator" colspan="2">&#160;</td></tr>
@ -187,6 +175,18 @@ Static Public Member Functions</h2></td></tr>
<tr class="memitem:ad818e3b65f5eee3497ab5f53693bf7e8" id="r_ad818e3b65f5eee3497ab5f53693bf7e8"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_nano_brain_1_1_neuron.html#ad818e3b65f5eee3497ab5f53693bf7e8">Delete</a> (<a class="el" href="class_nano_brain_1_1_nucleus.html">Nucleus</a> nucleus)</td></tr>
<tr class="memdesc:ad818e3b65f5eee3497ab5f53693bf7e8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Delete the give neuron. <br /></td></tr>
<tr class="separator:ad818e3b65f5eee3497ab5f53693bf7e8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8ec8679939dad6c9ccdd39e7c2cfae04" id="r_a8ec8679939dad6c9ccdd39e7c2cfae04"><td class="memItemLeft" align="right" valign="top">static float3&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_nano_brain_1_1_neuron.html#a8ec8679939dad6c9ccdd39e7c2cfae04">CombinatorSum</a> (float3 <a class="el" href="class_nano_brain_1_1_neuron.html#a540695e1c09734dd5790cb75e8b8f176">bias</a>, List&lt; <a class="el" href="class_nano_brain_1_1_synapse.html">Synapse</a> &gt; <a class="el" href="class_nano_brain_1_1_neuron.html#ac77e618ae3d7d6915b86a2f8191e6327">synapses</a>)</td></tr>
<tr class="memdesc:a8ec8679939dad6c9ccdd39e7c2cfae04"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sum the bias and synpase outputs together. <br /></td></tr>
<tr class="separator:a8ec8679939dad6c9ccdd39e7c2cfae04"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0dbc2b80fb98e5e8c219f422f2f7aa73" id="r_a0dbc2b80fb98e5e8c219f422f2f7aa73"><td class="memItemLeft" align="right" valign="top">static Vector3&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_nano_brain_1_1_neuron.html#a0dbc2b80fb98e5e8c219f422f2f7aa73">CombinatorSum</a> (Vector3 <a class="el" href="class_nano_brain_1_1_neuron.html#a540695e1c09734dd5790cb75e8b8f176">bias</a>, List&lt; <a class="el" href="class_nano_brain_1_1_synapse.html">Synapse</a> &gt; <a class="el" href="class_nano_brain_1_1_neuron.html#ac77e618ae3d7d6915b86a2f8191e6327">synapses</a>)</td></tr>
<tr class="memdesc:a0dbc2b80fb98e5e8c219f422f2f7aa73"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sum the bias and synpase outputs together. <br /></td></tr>
<tr class="separator:a0dbc2b80fb98e5e8c219f422f2f7aa73"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a94b65d9e945f73d7e6cebc03acd2e36f" id="r_a94b65d9e945f73d7e6cebc03acd2e36f"><td class="memItemLeft" align="right" valign="top">static float3&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_nano_brain_1_1_neuron.html#a94b65d9e945f73d7e6cebc03acd2e36f">CombinatorProduct</a> (float3 <a class="el" href="class_nano_brain_1_1_neuron.html#a540695e1c09734dd5790cb75e8b8f176">bias</a>, List&lt; <a class="el" href="class_nano_brain_1_1_synapse.html">Synapse</a> &gt; <a class="el" href="class_nano_brain_1_1_neuron.html#ac77e618ae3d7d6915b86a2f8191e6327">synapses</a>)</td></tr>
<tr class="memdesc:a94b65d9e945f73d7e6cebc03acd2e36f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Multiply the synapse outputs together. <br /></td></tr>
<tr class="separator:a94b65d9e945f73d7e6cebc03acd2e36f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab278cb03c9176522b9872b0b3460a0e0" id="r_ab278cb03c9176522b9872b0b3460a0e0"><td class="memItemLeft" align="right" valign="top">static Vector3&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_nano_brain_1_1_neuron.html#ab278cb03c9176522b9872b0b3460a0e0">CombinatorProduct</a> (Vector3 <a class="el" href="class_nano_brain_1_1_neuron.html#a540695e1c09734dd5790cb75e8b8f176">bias</a>, List&lt; <a class="el" href="class_nano_brain_1_1_synapse.html">Synapse</a> &gt; <a class="el" href="class_nano_brain_1_1_neuron.html#ac77e618ae3d7d6915b86a2f8191e6327">synapses</a>)</td></tr>
<tr class="memdesc:ab278cb03c9176522b9872b0b3460a0e0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Multiply the synapse outputs together. <br /></td></tr>
<tr class="separator:ab278cb03c9176522b9872b0b3460a0e0"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-attribs" name="pub-attribs"></a>
Public Attributes</h2></td></tr>
@ -239,6 +239,18 @@ Protected Member Functions</h2></td></tr>
<tr class="memitem:a61ebfee9f73116bd87d641af0fd3ef57" id="r_a61ebfee9f73116bd87d641af0fd3ef57"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_nano_brain_1_1_neuron.html#a61ebfee9f73116bd87d641af0fd3ef57">CloneFields</a> (<a class="el" href="class_nano_brain_1_1_neuron.html">Neuron</a> clone)</td></tr>
<tr class="memdesc:a61ebfee9f73116bd87d641af0fd3ef57"><td class="mdescLeft">&#160;</td><td class="mdescRight">Copy relevant fields of this neuron to the given neuron. <br /></td></tr>
<tr class="separator:a61ebfee9f73116bd87d641af0fd3ef57"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a61f71c8a24ee7a78783648b0147048a5" id="r_a61f71c8a24ee7a78783648b0147048a5"><td class="memItemLeft" align="right" valign="top">float3&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_nano_brain_1_1_neuron.html#a61f71c8a24ee7a78783648b0147048a5">Combinator</a> (float3 <a class="el" href="class_nano_brain_1_1_neuron.html#a540695e1c09734dd5790cb75e8b8f176">bias</a>, List&lt; <a class="el" href="class_nano_brain_1_1_synapse.html">Synapse</a> &gt; <a class="el" href="class_nano_brain_1_1_neuron.html#ac77e618ae3d7d6915b86a2f8191e6327">synapses</a>)</td></tr>
<tr class="memdesc:a61f71c8a24ee7a78783648b0147048a5"><td class="mdescLeft">&#160;</td><td class="mdescRight">The combinator which combines the bias with the values from all synapses. <br /></td></tr>
<tr class="separator:a61f71c8a24ee7a78783648b0147048a5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a983416d3d4382abb4ef0e4d24d99e732" id="r_a983416d3d4382abb4ef0e4d24d99e732"><td class="memItemLeft" align="right" valign="top">Vector3&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_nano_brain_1_1_neuron.html#a983416d3d4382abb4ef0e4d24d99e732">Combinator</a> (Vector3 <a class="el" href="class_nano_brain_1_1_neuron.html#a540695e1c09734dd5790cb75e8b8f176">bias</a>, List&lt; <a class="el" href="class_nano_brain_1_1_synapse.html">Synapse</a> &gt; <a class="el" href="class_nano_brain_1_1_neuron.html#ac77e618ae3d7d6915b86a2f8191e6327">synapses</a>)</td></tr>
<tr class="memdesc:a983416d3d4382abb4ef0e4d24d99e732"><td class="mdescLeft">&#160;</td><td class="mdescRight">The combinator which combines the bias with the values from all synapses. <br /></td></tr>
<tr class="separator:a983416d3d4382abb4ef0e4d24d99e732"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a89bb3565b62b372f9a9baad1b4657fc5" id="r_a89bb3565b62b372f9a9baad1b4657fc5"><td class="memItemLeft" align="right" valign="top">float3&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_nano_brain_1_1_neuron.html#a89bb3565b62b372f9a9baad1b4657fc5">Activator</a> (float3 inputValue)</td></tr>
<tr class="memdesc:a89bb3565b62b372f9a9baad1b4657fc5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Apply the activation function to the input. <br /></td></tr>
<tr class="separator:a89bb3565b62b372f9a9baad1b4657fc5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1d0ff8ec1bf2a0f7a5ee4c4ffad722ca" id="r_a1d0ff8ec1bf2a0f7a5ee4c4ffad722ca"><td class="memItemLeft" align="right" valign="top">Vector3&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_nano_brain_1_1_neuron.html#a1d0ff8ec1bf2a0f7a5ee4c4ffad722ca">Activator</a> (Vector3 inputValue)</td></tr>
<tr class="memdesc:a1d0ff8ec1bf2a0f7a5ee4c4ffad722ca"><td class="mdescLeft">&#160;</td><td class="mdescRight">Apply the activation function to the input. <br /></td></tr>
<tr class="separator:a1d0ff8ec1bf2a0f7a5ee4c4ffad722ca"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aff1de06241cbc2846468d82203026382" id="r_aff1de06241cbc2846468d82203026382"><td class="memItemLeft" align="right" valign="top">float3&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_nano_brain_1_1_neuron.html#aff1de06241cbc2846468d82203026382">ActivatorLinear</a> (float3 input)</td></tr>
<tr class="memdesc:aff1de06241cbc2846468d82203026382"><td class="mdescLeft">&#160;</td><td class="mdescRight">Linear activation function. <br /></td></tr>
<tr class="separator:aff1de06241cbc2846468d82203026382"><td class="memSeparator" colspan="2">&#160;</td></tr>
@ -318,14 +330,6 @@ bool&#160;</td><td class="memItemRight" valign="bottom"><b>isFiring</b><code> [g
virtual bool&#160;</td><td class="memItemRight" valign="bottom"><b>isSleeping</b><code> [get]</code></td></tr>
<tr class="memdesc:ae8552e9fd3b0cd45e7f672ef1d6cb11b"><td class="mdescLeft">&#160;</td><td class="mdescRight">True when the neuron is not persisting and has not be updated for timeToSleep seconds. <br /></td></tr>
<tr class="separator:ae8552e9fd3b0cd45e7f672ef1d6cb11b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ade3c65b8999bc2caea35a477a890d557" id="r_ade3c65b8999bc2caea35a477a890d557"><td class="memItemLeft" align="right" valign="top"><a id="ade3c65b8999bc2caea35a477a890d557" name="ade3c65b8999bc2caea35a477a890d557"></a>
Func&lt; float3 &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>Combinator</b><code> [get]</code></td></tr>
<tr class="memdesc:ade3c65b8999bc2caea35a477a890d557"><td class="mdescLeft">&#160;</td><td class="mdescRight">The combinator which combines the values from all synapses. <br /></td></tr>
<tr class="separator:ade3c65b8999bc2caea35a477a890d557"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3f5113c3ec0e521ab24c3bdd34c5389e" id="r_a3f5113c3ec0e521ab24c3bdd34c5389e"><td class="memItemLeft" align="right" valign="top"><a id="a3f5113c3ec0e521ab24c3bdd34c5389e" name="a3f5113c3ec0e521ab24c3bdd34c5389e"></a>
Func&lt; Vector3 &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>Combinator</b><code> [get]</code></td></tr>
<tr class="memdesc:a3f5113c3ec0e521ab24c3bdd34c5389e"><td class="mdescLeft">&#160;</td><td class="mdescRight">The combinator which combines the values from all synapses. <br /></td></tr>
<tr class="separator:a3f5113c3ec0e521ab24c3bdd34c5389e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5310348a060db92afd9b6b5329f72723" id="r_a5310348a060db92afd9b6b5329f72723"><td class="memItemLeft" align="right" valign="top"><a id="a5310348a060db92afd9b6b5329f72723" name="a5310348a060db92afd9b6b5329f72723"></a>
virtual List&lt; <a class="el" href="class_nano_brain_1_1_nucleus.html">Nucleus</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>receivers</b><code> [get, set]</code></td></tr>
<tr class="memdesc:a5310348a060db92afd9b6b5329f72723"><td class="mdescLeft">&#160;</td><td class="mdescRight">The nuclei which have a synapse to this neuron. <br /></td></tr>
@ -722,8 +726,8 @@ virtual List&lt; <a class="el" href="class_nano_brain_1_1_nucleus.html">Nucleus<
</div>
</div>
<a id="ac336222e6d6f84cfc9f4ea68b5973166" name="ac336222e6d6f84cfc9f4ea68b5973166"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac336222e6d6f84cfc9f4ea68b5973166">&#9670;&#160;</a></span>CombinatorSum() <span class="overload">[1/2]</span></h2>
<a id="a61f71c8a24ee7a78783648b0147048a5" name="a61f71c8a24ee7a78783648b0147048a5"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a61f71c8a24ee7a78783648b0147048a5">&#9670;&#160;</a></span>Combinator() <span class="overload">[1/2]</span></h2>
<div class="memitem">
<div class="memproto">
@ -732,26 +736,44 @@ virtual List&lt; <a class="el" href="class_nano_brain_1_1_nucleus.html">Nucleus<
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">float3 CombinatorSum </td>
<td class="memname">float3 Combinator </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td class="paramtype">float3&#160;</td>
<td class="paramname"><em>bias</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">List&lt; <a class="el" href="class_nano_brain_1_1_synapse.html">Synapse</a> &gt;&#160;</td>
<td class="paramname"><em>synapses</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inherited</span></span> </td>
<span class="mlabels"><span class="mlabel">protected</span><span class="mlabel">inherited</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Sum the synapse outputs together. </p>
<dl class="section return"><dt>Returns</dt><dd>The sum of the synapse outputs</dd></dl>
<p>The combinator which combines the bias with the values from all synapses. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">bias</td><td>The bias of the neuron</td></tr>
<tr><td class="paramname">synapses</td><td>The synapses of the neuron</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd></dd></dl>
</div>
</div>
<a id="ab7909448ce5cda39c1e786d80a38d357" name="ab7909448ce5cda39c1e786d80a38d357"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab7909448ce5cda39c1e786d80a38d357">&#9670;&#160;</a></span>CombinatorSum() <span class="overload">[2/2]</span></h2>
<a id="a983416d3d4382abb4ef0e4d24d99e732" name="a983416d3d4382abb4ef0e4d24d99e732"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a983416d3d4382abb4ef0e4d24d99e732">&#9670;&#160;</a></span>Combinator() <span class="overload">[2/2]</span></h2>
<div class="memitem">
<div class="memproto">
@ -760,26 +782,44 @@ virtual List&lt; <a class="el" href="class_nano_brain_1_1_nucleus.html">Nucleus<
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">Vector3 CombinatorSum </td>
<td class="memname">Vector3 Combinator </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td class="paramtype">Vector3&#160;</td>
<td class="paramname"><em>bias</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">List&lt; <a class="el" href="class_nano_brain_1_1_synapse.html">Synapse</a> &gt;&#160;</td>
<td class="paramname"><em>synapses</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inherited</span></span> </td>
<span class="mlabels"><span class="mlabel">protected</span><span class="mlabel">inherited</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Sum the synapse outputs together. </p>
<dl class="section return"><dt>Returns</dt><dd>The sum of the synapse outputs</dd></dl>
<p>The combinator which combines the bias with the values from all synapses. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">bias</td><td>The bias of the neuron</td></tr>
<tr><td class="paramname">synapses</td><td>The synapses of the neuron</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd></dd></dl>
</div>
</div>
<a id="acad9a97a8f3b9df50209623e3e50bce3" name="acad9a97a8f3b9df50209623e3e50bce3"></a>
<h2 class="memtitle"><span class="permalink"><a href="#acad9a97a8f3b9df50209623e3e50bce3">&#9670;&#160;</a></span>CombinatorProduct() <span class="overload">[1/2]</span></h2>
<a id="a8ec8679939dad6c9ccdd39e7c2cfae04" name="a8ec8679939dad6c9ccdd39e7c2cfae04"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a8ec8679939dad6c9ccdd39e7c2cfae04">&#9670;&#160;</a></span>CombinatorSum() <span class="overload">[1/2]</span></h2>
<div class="memitem">
<div class="memproto">
@ -788,26 +828,136 @@ virtual List&lt; <a class="el" href="class_nano_brain_1_1_nucleus.html">Nucleus<
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">float3 CombinatorProduct </td>
<td class="memname">static float3 CombinatorSum </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td class="paramtype">float3&#160;</td>
<td class="paramname"><em>bias</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">List&lt; <a class="el" href="class_nano_brain_1_1_synapse.html">Synapse</a> &gt;&#160;</td>
<td class="paramname"><em>synapses</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inherited</span></span> </td>
<span class="mlabels"><span class="mlabel">static</span><span class="mlabel">inherited</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Sum the bias and synpase outputs together. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">bias</td><td>The bias of the neuron</td></tr>
<tr><td class="paramname">synapses</td><td>The synapses of the neuron</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd></dd></dl>
</div>
</div>
<a id="a0dbc2b80fb98e5e8c219f422f2f7aa73" name="a0dbc2b80fb98e5e8c219f422f2f7aa73"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a0dbc2b80fb98e5e8c219f422f2f7aa73">&#9670;&#160;</a></span>CombinatorSum() <span class="overload">[2/2]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static Vector3 CombinatorSum </td>
<td>(</td>
<td class="paramtype">Vector3&#160;</td>
<td class="paramname"><em>bias</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">List&lt; <a class="el" href="class_nano_brain_1_1_synapse.html">Synapse</a> &gt;&#160;</td>
<td class="paramname"><em>synapses</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span><span class="mlabel">inherited</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Sum the bias and synpase outputs together. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">bias</td><td>The bias of the neuron</td></tr>
<tr><td class="paramname">synapses</td><td>The synapses of the neuron</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd></dd></dl>
</div>
</div>
<a id="a94b65d9e945f73d7e6cebc03acd2e36f" name="a94b65d9e945f73d7e6cebc03acd2e36f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a94b65d9e945f73d7e6cebc03acd2e36f">&#9670;&#160;</a></span>CombinatorProduct() <span class="overload">[1/2]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static float3 CombinatorProduct </td>
<td>(</td>
<td class="paramtype">float3&#160;</td>
<td class="paramname"><em>bias</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">List&lt; <a class="el" href="class_nano_brain_1_1_synapse.html">Synapse</a> &gt;&#160;</td>
<td class="paramname"><em>synapses</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span><span class="mlabel">inherited</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Multiply the synapse outputs together. </p>
<dl class="section return"><dt>Returns</dt><dd>The mutliplcation of the synapse outputs</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">bias</td><td>The bias of the neuron</td></tr>
<tr><td class="paramname">synapses</td><td>The synapses of the neuron</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The result of the multiplication</dd></dl>
</div>
</div>
<a id="a985c9a28b445133460cee6aa23d050ea" name="a985c9a28b445133460cee6aa23d050ea"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a985c9a28b445133460cee6aa23d050ea">&#9670;&#160;</a></span>CombinatorProduct() <span class="overload">[2/2]</span></h2>
<a id="ab278cb03c9176522b9872b0b3460a0e0" name="ab278cb03c9176522b9872b0b3460a0e0"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab278cb03c9176522b9872b0b3460a0e0">&#9670;&#160;</a></span>CombinatorProduct() <span class="overload">[2/2]</span></h2>
<div class="memitem">
<div class="memproto">
@ -816,21 +966,109 @@ virtual List&lt; <a class="el" href="class_nano_brain_1_1_nucleus.html">Nucleus<
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">Vector3 CombinatorProduct </td>
<td class="memname">static Vector3 CombinatorProduct </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td class="paramtype">Vector3&#160;</td>
<td class="paramname"><em>bias</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">List&lt; <a class="el" href="class_nano_brain_1_1_synapse.html">Synapse</a> &gt;&#160;</td>
<td class="paramname"><em>synapses</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inherited</span></span> </td>
<span class="mlabels"><span class="mlabel">static</span><span class="mlabel">inherited</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Multiply the synapse outputs together. </p>
<dl class="section return"><dt>Returns</dt><dd>The mutliplcation of the synapse outputs</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">bias</td><td>The bias of the neuron</td></tr>
<tr><td class="paramname">synapses</td><td>The synapses of the neuron</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The result of the multiplication</dd></dl>
</div>
</div>
<a id="a89bb3565b62b372f9a9baad1b4657fc5" name="a89bb3565b62b372f9a9baad1b4657fc5"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a89bb3565b62b372f9a9baad1b4657fc5">&#9670;&#160;</a></span>Activator() <span class="overload">[1/2]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">float3 Activator </td>
<td>(</td>
<td class="paramtype">float3&#160;</td>
<td class="paramname"><em>inputValue</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span><span class="mlabel">inherited</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Apply the activation function to the input. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">inputValue</td><td></td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The result of applying the activation function</dd></dl>
</div>
</div>
<a id="a1d0ff8ec1bf2a0f7a5ee4c4ffad722ca" name="a1d0ff8ec1bf2a0f7a5ee4c4ffad722ca"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a1d0ff8ec1bf2a0f7a5ee4c4ffad722ca">&#9670;&#160;</a></span>Activator() <span class="overload">[2/2]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">Vector3 Activator </td>
<td>(</td>
<td class="paramtype">Vector3&#160;</td>
<td class="paramname"><em>inputValue</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span><span class="mlabel">inherited</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Apply the activation function to the input. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">inputValue</td><td></td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The result of applying the activation function</dd></dl>
</div>
</div>

View File

@ -85,6 +85,8 @@ $(function() {
<tr class="odd"><td class="entry"><a class="el" href="class_nano_brain_1_1_neuron.html#a6389e0e1e08f9a670958d110050d2504">_outputValue</a></td><td class="entry"><a class="el" href="class_nano_brain_1_1_neuron.html">Neuron</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="class_nano_brain_1_1_neuron.html#ab08d3adcd550750d22943d5f8a8f94a4">_outputValue</a></td><td class="entry"><a class="el" href="class_nano_brain_1_1_neuron.html">Neuron</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="class_nano_brain_1_1_neuron.html#abda2c109ffc1dc92ebde0f4802c37b1f">ActivationType</a> enum name</td><td class="entry"><a class="el" href="class_nano_brain_1_1_neuron.html">Neuron</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="class_nano_brain_1_1_neuron.html#a89bb3565b62b372f9a9baad1b4657fc5">Activator</a>(float3 inputValue)</td><td class="entry"><a class="el" href="class_nano_brain_1_1_neuron.html">Neuron</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="class_nano_brain_1_1_neuron.html#a1d0ff8ec1bf2a0f7a5ee4c4ffad722ca">Activator</a>(Vector3 inputValue)</td><td class="entry"><a class="el" href="class_nano_brain_1_1_neuron.html">Neuron</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="class_nano_brain_1_1_neuron.html#a7b44b9201cb62d1778628082f10bb1d8">activator</a></td><td class="entry"><a class="el" href="class_nano_brain_1_1_neuron.html">Neuron</a></td><td class="entry"></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="class_nano_brain_1_1_neuron.html#afd3dff2960a406f480a02db7fa351e68">ActivatorBinary</a>(float3 input)</td><td class="entry"><a class="el" href="class_nano_brain_1_1_neuron.html">Neuron</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="class_nano_brain_1_1_neuron.html#aff1de06241cbc2846468d82203026382">ActivatorLinear</a>(float3 input)</td><td class="entry"><a class="el" href="class_nano_brain_1_1_neuron.html">Neuron</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
@ -102,12 +104,12 @@ $(function() {
<tr class="even"><td class="entry"><a class="el" href="class_nano_brain_1_1_neuron.html#a540695e1c09734dd5790cb75e8b8f176">bias</a></td><td class="entry"><a class="el" href="class_nano_brain_1_1_neuron.html">Neuron</a></td><td class="entry"></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="class_nano_brain_1_1_neuron.html#a61ebfee9f73116bd87d641af0fd3ef57">CloneFields</a>(Neuron clone)</td><td class="entry"><a class="el" href="class_nano_brain_1_1_neuron.html">Neuron</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="class_nano_brain_1_1_neuron.html#adcd8e3279ab63ad98f34485b6403e0c9">combinator</a></td><td class="entry"><a class="el" href="class_nano_brain_1_1_neuron.html">Neuron</a></td><td class="entry"></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="class_nano_brain_1_1_neuron.html#ade3c65b8999bc2caea35a477a890d557">Combinator</a></td><td class="entry"><a class="el" href="class_nano_brain_1_1_neuron.html">Neuron</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="class_nano_brain_1_1_neuron.html#a3f5113c3ec0e521ab24c3bdd34c5389e">Combinator</a></td><td class="entry"><a class="el" href="class_nano_brain_1_1_neuron.html">Neuron</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="class_nano_brain_1_1_neuron.html#acad9a97a8f3b9df50209623e3e50bce3">CombinatorProduct</a>()</td><td class="entry"><a class="el" href="class_nano_brain_1_1_neuron.html">Neuron</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="class_nano_brain_1_1_neuron.html#a985c9a28b445133460cee6aa23d050ea">CombinatorProduct</a>()</td><td class="entry"><a class="el" href="class_nano_brain_1_1_neuron.html">Neuron</a></td><td class="entry"></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="class_nano_brain_1_1_neuron.html#ac336222e6d6f84cfc9f4ea68b5973166">CombinatorSum</a>()</td><td class="entry"><a class="el" href="class_nano_brain_1_1_neuron.html">Neuron</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="class_nano_brain_1_1_neuron.html#ab7909448ce5cda39c1e786d80a38d357">CombinatorSum</a>()</td><td class="entry"><a class="el" href="class_nano_brain_1_1_neuron.html">Neuron</a></td><td class="entry"></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="class_nano_brain_1_1_neuron.html#a61f71c8a24ee7a78783648b0147048a5">Combinator</a>(float3 bias, List&lt; Synapse &gt; synapses)</td><td class="entry"><a class="el" href="class_nano_brain_1_1_neuron.html">Neuron</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="class_nano_brain_1_1_neuron.html#a983416d3d4382abb4ef0e4d24d99e732">Combinator</a>(Vector3 bias, List&lt; Synapse &gt; synapses)</td><td class="entry"><a class="el" href="class_nano_brain_1_1_neuron.html">Neuron</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="class_nano_brain_1_1_neuron.html#a94b65d9e945f73d7e6cebc03acd2e36f">CombinatorProduct</a>(float3 bias, List&lt; Synapse &gt; synapses)</td><td class="entry"><a class="el" href="class_nano_brain_1_1_neuron.html">Neuron</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="class_nano_brain_1_1_neuron.html#ab278cb03c9176522b9872b0b3460a0e0">CombinatorProduct</a>(Vector3 bias, List&lt; Synapse &gt; synapses)</td><td class="entry"><a class="el" href="class_nano_brain_1_1_neuron.html">Neuron</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="class_nano_brain_1_1_neuron.html#a8ec8679939dad6c9ccdd39e7c2cfae04">CombinatorSum</a>(float3 bias, List&lt; Synapse &gt; synapses)</td><td class="entry"><a class="el" href="class_nano_brain_1_1_neuron.html">Neuron</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="class_nano_brain_1_1_neuron.html#a0dbc2b80fb98e5e8c219f422f2f7aa73">CombinatorSum</a>(Vector3 bias, List&lt; Synapse &gt; synapses)</td><td class="entry"><a class="el" href="class_nano_brain_1_1_neuron.html">Neuron</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="class_nano_brain_1_1_neuron.html#a1b62779c4e520ef73e1e2afe2517d487">CombinatorType</a> enum name</td><td class="entry"><a class="el" href="class_nano_brain_1_1_neuron.html">Neuron</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="class_nano_brain_1_1_neuron.html#a515dbc8cdce3d6b2091228e7c6d2036f">curve</a></td><td class="entry"><a class="el" href="class_nano_brain_1_1_neuron.html">Neuron</a></td><td class="entry"></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="class_nano_brain_1_1_neuron.html#ab24f9dd28a936f0daabebf979c933b2a">curveMax</a></td><td class="entry"><a class="el" href="class_nano_brain_1_1_neuron.html">Neuron</a></td><td class="entry"></td></tr>

View File

@ -90,6 +90,11 @@ $(function() {
<div class="contents">
<a name="details" id="details"></a><h2 class="groupheader">Description</h2>
<div class="textblock"><p>A neuron is a basic Nucleus. </p>
<p>A neuron combines the weighted input from other neurons and applies an activation function to it to compute the output value: </p><div class="fragment"><div class="line">Vector3 combination = <a class="code hl_function" href="class_nano_brain_1_1_neuron.html#a61f71c8a24ee7a78783648b0147048a5">NanoBrain::Neuron::Combinator</a>(bias, synapses);</div>
<div class="line">Vector3 output = <a class="code hl_function" href="class_nano_brain_1_1_neuron.html#a89bb3565b62b372f9a9baad1b4657fc5">NanoBrain::Neuron::Activator</a>(combination);</div>
<div class="ttc" id="aclass_nano_brain_1_1_neuron_html_a61f71c8a24ee7a78783648b0147048a5"><div class="ttname"><a href="class_nano_brain_1_1_neuron.html#a61f71c8a24ee7a78783648b0147048a5">NanoBrain.Neuron.Combinator</a></div><div class="ttdeci">float3 Combinator(float3 bias, List&lt; Synapse &gt; synapses)</div><div class="ttdoc">The combinator which combines the bias with the values from all synapses.</div><div class="ttdef"><b>Definition</b> Neuron.cs:463</div></div>
<div class="ttc" id="aclass_nano_brain_1_1_neuron_html_a89bb3565b62b372f9a9baad1b4657fc5"><div class="ttname"><a href="class_nano_brain_1_1_neuron.html#a89bb3565b62b372f9a9baad1b4657fc5">NanoBrain.Neuron.Activator</a></div><div class="ttdeci">float3 Activator(float3 inputValue)</div><div class="ttdoc">Apply the activation function to the input.</div><div class="ttdef"><b>Definition</b> Neuron.cs:560</div></div>
</div><!-- fragment --><p> The synapses are connections to other neurons. Each connection has a weight which is used to multiply the output of that other neuron before it is used by the combinator. </p>
</div><div class="dynheader">
Inheritance diagram for Neuron:</div>
<div class="dyncontent">
@ -165,18 +170,6 @@ Public Member Functions</h2></td></tr>
<tr class="memitem:a6423c493fd76f1774a8e80c56d8c5cdc" id="r_a6423c493fd76f1774a8e80c56d8c5cdc"><td class="memItemLeft" align="right" valign="top">override void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_nano_brain_1_1_neuron.html#a6423c493fd76f1774a8e80c56d8c5cdc">UpdateStateIsolated</a> ()</td></tr>
<tr class="memdesc:a6423c493fd76f1774a8e80c56d8c5cdc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Update the state without updating other Nuclei. <br /></td></tr>
<tr class="separator:a6423c493fd76f1774a8e80c56d8c5cdc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac336222e6d6f84cfc9f4ea68b5973166" id="r_ac336222e6d6f84cfc9f4ea68b5973166"><td class="memItemLeft" align="right" valign="top">float3&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_nano_brain_1_1_neuron.html#ac336222e6d6f84cfc9f4ea68b5973166">CombinatorSum</a> ()</td></tr>
<tr class="memdesc:ac336222e6d6f84cfc9f4ea68b5973166"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sum the synapse outputs together. <br /></td></tr>
<tr class="separator:ac336222e6d6f84cfc9f4ea68b5973166"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acad9a97a8f3b9df50209623e3e50bce3" id="r_acad9a97a8f3b9df50209623e3e50bce3"><td class="memItemLeft" align="right" valign="top">float3&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_nano_brain_1_1_neuron.html#acad9a97a8f3b9df50209623e3e50bce3">CombinatorProduct</a> ()</td></tr>
<tr class="memdesc:acad9a97a8f3b9df50209623e3e50bce3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Multiply the synapse outputs together. <br /></td></tr>
<tr class="separator:acad9a97a8f3b9df50209623e3e50bce3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab7909448ce5cda39c1e786d80a38d357" id="r_ab7909448ce5cda39c1e786d80a38d357"><td class="memItemLeft" align="right" valign="top">Vector3&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_nano_brain_1_1_neuron.html#ab7909448ce5cda39c1e786d80a38d357">CombinatorSum</a> ()</td></tr>
<tr class="memdesc:ab7909448ce5cda39c1e786d80a38d357"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sum the synapse outputs together. <br /></td></tr>
<tr class="separator:ab7909448ce5cda39c1e786d80a38d357"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a985c9a28b445133460cee6aa23d050ea" id="r_a985c9a28b445133460cee6aa23d050ea"><td class="memItemLeft" align="right" valign="top">Vector3&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_nano_brain_1_1_neuron.html#a985c9a28b445133460cee6aa23d050ea">CombinatorProduct</a> ()</td></tr>
<tr class="memdesc:a985c9a28b445133460cee6aa23d050ea"><td class="mdescLeft">&#160;</td><td class="mdescRight">Multiply the synapse outputs together. <br /></td></tr>
<tr class="separator:a985c9a28b445133460cee6aa23d050ea"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8aab0c6e45f7d0fc37ce401f7821e567" id="r_a8aab0c6e45f7d0fc37ce401f7821e567"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_nano_brain_1_1_neuron.html#a8aab0c6e45f7d0fc37ce401f7821e567">AddReceiver</a> (<a class="el" href="class_nano_brain_1_1_nucleus.html">Nucleus</a> receiverToAdd, float weight=1)</td></tr>
<tr class="memdesc:a8aab0c6e45f7d0fc37ce401f7821e567"><td class="mdescLeft">&#160;</td><td class="mdescRight">Add a new receiver to this neuron. <br /></td></tr>
<tr class="separator:a8aab0c6e45f7d0fc37ce401f7821e567"><td class="memSeparator" colspan="2">&#160;</td></tr>
@ -192,6 +185,18 @@ Static Public Member Functions</h2></td></tr>
<tr class="memitem:ad818e3b65f5eee3497ab5f53693bf7e8" id="r_ad818e3b65f5eee3497ab5f53693bf7e8"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_nano_brain_1_1_neuron.html#ad818e3b65f5eee3497ab5f53693bf7e8">Delete</a> (<a class="el" href="class_nano_brain_1_1_nucleus.html">Nucleus</a> nucleus)</td></tr>
<tr class="memdesc:ad818e3b65f5eee3497ab5f53693bf7e8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Delete the give neuron. <br /></td></tr>
<tr class="separator:ad818e3b65f5eee3497ab5f53693bf7e8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8ec8679939dad6c9ccdd39e7c2cfae04" id="r_a8ec8679939dad6c9ccdd39e7c2cfae04"><td class="memItemLeft" align="right" valign="top">static float3&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_nano_brain_1_1_neuron.html#a8ec8679939dad6c9ccdd39e7c2cfae04">CombinatorSum</a> (float3 <a class="el" href="class_nano_brain_1_1_neuron.html#a540695e1c09734dd5790cb75e8b8f176">bias</a>, List&lt; <a class="el" href="class_nano_brain_1_1_synapse.html">Synapse</a> &gt; <a class="el" href="class_nano_brain_1_1_neuron.html#ac77e618ae3d7d6915b86a2f8191e6327">synapses</a>)</td></tr>
<tr class="memdesc:a8ec8679939dad6c9ccdd39e7c2cfae04"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sum the bias and synpase outputs together. <br /></td></tr>
<tr class="separator:a8ec8679939dad6c9ccdd39e7c2cfae04"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a94b65d9e945f73d7e6cebc03acd2e36f" id="r_a94b65d9e945f73d7e6cebc03acd2e36f"><td class="memItemLeft" align="right" valign="top">static float3&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_nano_brain_1_1_neuron.html#a94b65d9e945f73d7e6cebc03acd2e36f">CombinatorProduct</a> (float3 <a class="el" href="class_nano_brain_1_1_neuron.html#a540695e1c09734dd5790cb75e8b8f176">bias</a>, List&lt; <a class="el" href="class_nano_brain_1_1_synapse.html">Synapse</a> &gt; <a class="el" href="class_nano_brain_1_1_neuron.html#ac77e618ae3d7d6915b86a2f8191e6327">synapses</a>)</td></tr>
<tr class="memdesc:a94b65d9e945f73d7e6cebc03acd2e36f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Multiply the synapse outputs together. <br /></td></tr>
<tr class="separator:a94b65d9e945f73d7e6cebc03acd2e36f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0dbc2b80fb98e5e8c219f422f2f7aa73" id="r_a0dbc2b80fb98e5e8c219f422f2f7aa73"><td class="memItemLeft" align="right" valign="top">static Vector3&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_nano_brain_1_1_neuron.html#a0dbc2b80fb98e5e8c219f422f2f7aa73">CombinatorSum</a> (Vector3 <a class="el" href="class_nano_brain_1_1_neuron.html#a540695e1c09734dd5790cb75e8b8f176">bias</a>, List&lt; <a class="el" href="class_nano_brain_1_1_synapse.html">Synapse</a> &gt; <a class="el" href="class_nano_brain_1_1_neuron.html#ac77e618ae3d7d6915b86a2f8191e6327">synapses</a>)</td></tr>
<tr class="memdesc:a0dbc2b80fb98e5e8c219f422f2f7aa73"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sum the bias and synpase outputs together. <br /></td></tr>
<tr class="separator:a0dbc2b80fb98e5e8c219f422f2f7aa73"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab278cb03c9176522b9872b0b3460a0e0" id="r_ab278cb03c9176522b9872b0b3460a0e0"><td class="memItemLeft" align="right" valign="top">static Vector3&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_nano_brain_1_1_neuron.html#ab278cb03c9176522b9872b0b3460a0e0">CombinatorProduct</a> (Vector3 <a class="el" href="class_nano_brain_1_1_neuron.html#a540695e1c09734dd5790cb75e8b8f176">bias</a>, List&lt; <a class="el" href="class_nano_brain_1_1_synapse.html">Synapse</a> &gt; <a class="el" href="class_nano_brain_1_1_neuron.html#ac77e618ae3d7d6915b86a2f8191e6327">synapses</a>)</td></tr>
<tr class="memdesc:ab278cb03c9176522b9872b0b3460a0e0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Multiply the synapse outputs together. <br /></td></tr>
<tr class="separator:ab278cb03c9176522b9872b0b3460a0e0"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-attribs" name="pub-attribs"></a>
Public Attributes</h2></td></tr>
@ -244,6 +249,15 @@ Protected Member Functions</h2></td></tr>
<tr class="memitem:a61ebfee9f73116bd87d641af0fd3ef57" id="r_a61ebfee9f73116bd87d641af0fd3ef57"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_nano_brain_1_1_neuron.html#a61ebfee9f73116bd87d641af0fd3ef57">CloneFields</a> (<a class="el" href="class_nano_brain_1_1_neuron.html">Neuron</a> clone)</td></tr>
<tr class="memdesc:a61ebfee9f73116bd87d641af0fd3ef57"><td class="mdescLeft">&#160;</td><td class="mdescRight">Copy relevant fields of this neuron to the given neuron. <br /></td></tr>
<tr class="separator:a61ebfee9f73116bd87d641af0fd3ef57"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a61f71c8a24ee7a78783648b0147048a5" id="r_a61f71c8a24ee7a78783648b0147048a5"><td class="memItemLeft" align="right" valign="top">float3&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_nano_brain_1_1_neuron.html#a61f71c8a24ee7a78783648b0147048a5">Combinator</a> (float3 <a class="el" href="class_nano_brain_1_1_neuron.html#a540695e1c09734dd5790cb75e8b8f176">bias</a>, List&lt; <a class="el" href="class_nano_brain_1_1_synapse.html">Synapse</a> &gt; <a class="el" href="class_nano_brain_1_1_neuron.html#ac77e618ae3d7d6915b86a2f8191e6327">synapses</a>)</td></tr>
<tr class="memdesc:a61f71c8a24ee7a78783648b0147048a5"><td class="mdescLeft">&#160;</td><td class="mdescRight">The combinator which combines the bias with the values from all synapses. <br /></td></tr>
<tr class="separator:a61f71c8a24ee7a78783648b0147048a5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a983416d3d4382abb4ef0e4d24d99e732" id="r_a983416d3d4382abb4ef0e4d24d99e732"><td class="memItemLeft" align="right" valign="top">Vector3&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_nano_brain_1_1_neuron.html#a983416d3d4382abb4ef0e4d24d99e732">Combinator</a> (Vector3 <a class="el" href="class_nano_brain_1_1_neuron.html#a540695e1c09734dd5790cb75e8b8f176">bias</a>, List&lt; <a class="el" href="class_nano_brain_1_1_synapse.html">Synapse</a> &gt; <a class="el" href="class_nano_brain_1_1_neuron.html#ac77e618ae3d7d6915b86a2f8191e6327">synapses</a>)</td></tr>
<tr class="memdesc:a983416d3d4382abb4ef0e4d24d99e732"><td class="mdescLeft">&#160;</td><td class="mdescRight">The combinator which combines the bias with the values from all synapses. <br /></td></tr>
<tr class="separator:a983416d3d4382abb4ef0e4d24d99e732"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a89bb3565b62b372f9a9baad1b4657fc5" id="r_a89bb3565b62b372f9a9baad1b4657fc5"><td class="memItemLeft" align="right" valign="top">float3&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_nano_brain_1_1_neuron.html#a89bb3565b62b372f9a9baad1b4657fc5">Activator</a> (float3 inputValue)</td></tr>
<tr class="memdesc:a89bb3565b62b372f9a9baad1b4657fc5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Apply the activation function to the input. <br /></td></tr>
<tr class="separator:a89bb3565b62b372f9a9baad1b4657fc5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aff1de06241cbc2846468d82203026382" id="r_aff1de06241cbc2846468d82203026382"><td class="memItemLeft" align="right" valign="top">float3&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_nano_brain_1_1_neuron.html#aff1de06241cbc2846468d82203026382">ActivatorLinear</a> (float3 input)</td></tr>
<tr class="memdesc:aff1de06241cbc2846468d82203026382"><td class="mdescLeft">&#160;</td><td class="mdescRight">Linear activation function. <br /></td></tr>
<tr class="separator:aff1de06241cbc2846468d82203026382"><td class="memSeparator" colspan="2">&#160;</td></tr>
@ -265,6 +279,9 @@ Protected Member Functions</h2></td></tr>
<tr class="memitem:a115176d819f6eaa624803c2ee3770f32" id="r_a115176d819f6eaa624803c2ee3770f32"><td class="memItemLeft" align="right" valign="top">float3&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_nano_brain_1_1_neuron.html#a115176d819f6eaa624803c2ee3770f32">ActivatorNormalized</a> (float3 input)</td></tr>
<tr class="memdesc:a115176d819f6eaa624803c2ee3770f32"><td class="mdescLeft">&#160;</td><td class="mdescRight">Normalize activation function. <br /></td></tr>
<tr class="separator:a115176d819f6eaa624803c2ee3770f32"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1d0ff8ec1bf2a0f7a5ee4c4ffad722ca" id="r_a1d0ff8ec1bf2a0f7a5ee4c4ffad722ca"><td class="memItemLeft" align="right" valign="top">Vector3&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_nano_brain_1_1_neuron.html#a1d0ff8ec1bf2a0f7a5ee4c4ffad722ca">Activator</a> (Vector3 inputValue)</td></tr>
<tr class="memdesc:a1d0ff8ec1bf2a0f7a5ee4c4ffad722ca"><td class="mdescLeft">&#160;</td><td class="mdescRight">Apply the activation function to the input. <br /></td></tr>
<tr class="separator:a1d0ff8ec1bf2a0f7a5ee4c4ffad722ca"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a337e53a6f6aae4d31dc5c5a5d4359213" id="r_a337e53a6f6aae4d31dc5c5a5d4359213"><td class="memItemLeft" align="right" valign="top">Vector3&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_nano_brain_1_1_neuron.html#a337e53a6f6aae4d31dc5c5a5d4359213">ActivatorLinear</a> (Vector3 input)</td></tr>
<tr class="memdesc:a337e53a6f6aae4d31dc5c5a5d4359213"><td class="mdescLeft">&#160;</td><td class="mdescRight">Linear activation function. <br /></td></tr>
<tr class="separator:a337e53a6f6aae4d31dc5c5a5d4359213"><td class="memSeparator" colspan="2">&#160;</td></tr>
@ -323,14 +340,6 @@ bool&#160;</td><td class="memItemRight" valign="bottom"><b>isFiring</b><code> [g
virtual bool&#160;</td><td class="memItemRight" valign="bottom"><b>isSleeping</b><code> [get]</code></td></tr>
<tr class="memdesc:ae8552e9fd3b0cd45e7f672ef1d6cb11b"><td class="mdescLeft">&#160;</td><td class="mdescRight">True when the neuron is not persisting and has not be updated for timeToSleep seconds. <br /></td></tr>
<tr class="separator:ae8552e9fd3b0cd45e7f672ef1d6cb11b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ade3c65b8999bc2caea35a477a890d557" id="r_ade3c65b8999bc2caea35a477a890d557"><td class="memItemLeft" align="right" valign="top"><a id="ade3c65b8999bc2caea35a477a890d557" name="ade3c65b8999bc2caea35a477a890d557"></a>
Func&lt; float3 &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>Combinator</b><code> [get]</code></td></tr>
<tr class="memdesc:ade3c65b8999bc2caea35a477a890d557"><td class="mdescLeft">&#160;</td><td class="mdescRight">The combinator which combines the values from all synapses. <br /></td></tr>
<tr class="separator:ade3c65b8999bc2caea35a477a890d557"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3f5113c3ec0e521ab24c3bdd34c5389e" id="r_a3f5113c3ec0e521ab24c3bdd34c5389e"><td class="memItemLeft" align="right" valign="top"><a id="a3f5113c3ec0e521ab24c3bdd34c5389e" name="a3f5113c3ec0e521ab24c3bdd34c5389e"></a>
Func&lt; Vector3 &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>Combinator</b><code> [get]</code></td></tr>
<tr class="memdesc:a3f5113c3ec0e521ab24c3bdd34c5389e"><td class="mdescLeft">&#160;</td><td class="mdescRight">The combinator which combines the values from all synapses. <br /></td></tr>
<tr class="separator:a3f5113c3ec0e521ab24c3bdd34c5389e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5310348a060db92afd9b6b5329f72723" id="r_a5310348a060db92afd9b6b5329f72723"><td class="memItemLeft" align="right" valign="top"><a id="a5310348a060db92afd9b6b5329f72723" name="a5310348a060db92afd9b6b5329f72723"></a>
virtual List&lt; <a class="el" href="class_nano_brain_1_1_nucleus.html">Nucleus</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>receivers</b><code> [get, set]</code></td></tr>
<tr class="memdesc:a5310348a060db92afd9b6b5329f72723"><td class="mdescLeft">&#160;</td><td class="mdescRight">The nuclei which have a synapse to this neuron. <br /></td></tr>
@ -679,83 +688,314 @@ virtual List&lt; <a class="el" href="class_nano_brain_1_1_nucleus.html">Nucleus<
</div>
</div>
<a id="ac336222e6d6f84cfc9f4ea68b5973166" name="ac336222e6d6f84cfc9f4ea68b5973166"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac336222e6d6f84cfc9f4ea68b5973166">&#9670;&#160;</a></span>CombinatorSum() <span class="overload">[1/2]</span></h2>
<a id="a61f71c8a24ee7a78783648b0147048a5" name="a61f71c8a24ee7a78783648b0147048a5"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a61f71c8a24ee7a78783648b0147048a5">&#9670;&#160;</a></span>Combinator() <span class="overload">[1/2]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">float3 CombinatorSum </td>
<td class="memname">float3 Combinator </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td class="paramtype">float3&#160;</td>
<td class="paramname"><em>bias</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">List&lt; <a class="el" href="class_nano_brain_1_1_synapse.html">Synapse</a> &gt;&#160;</td>
<td class="paramname"><em>synapses</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Sum the synapse outputs together. </p>
<dl class="section return"><dt>Returns</dt><dd>The sum of the synapse outputs</dd></dl>
<p>The combinator which combines the bias with the values from all synapses. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">bias</td><td>The bias of the neuron</td></tr>
<tr><td class="paramname">synapses</td><td>The synapses of the neuron</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd></dd></dl>
</div>
</div>
<a id="acad9a97a8f3b9df50209623e3e50bce3" name="acad9a97a8f3b9df50209623e3e50bce3"></a>
<h2 class="memtitle"><span class="permalink"><a href="#acad9a97a8f3b9df50209623e3e50bce3">&#9670;&#160;</a></span>CombinatorProduct() <span class="overload">[1/2]</span></h2>
<a id="a8ec8679939dad6c9ccdd39e7c2cfae04" name="a8ec8679939dad6c9ccdd39e7c2cfae04"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a8ec8679939dad6c9ccdd39e7c2cfae04">&#9670;&#160;</a></span>CombinatorSum() <span class="overload">[1/2]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">float3 CombinatorProduct </td>
<td class="memname">static float3 CombinatorSum </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td class="paramtype">float3&#160;</td>
<td class="paramname"><em>bias</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">List&lt; <a class="el" href="class_nano_brain_1_1_synapse.html">Synapse</a> &gt;&#160;</td>
<td class="paramname"><em>synapses</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Sum the bias and synpase outputs together. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">bias</td><td>The bias of the neuron</td></tr>
<tr><td class="paramname">synapses</td><td>The synapses of the neuron</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd></dd></dl>
</div>
</div>
<a id="a94b65d9e945f73d7e6cebc03acd2e36f" name="a94b65d9e945f73d7e6cebc03acd2e36f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a94b65d9e945f73d7e6cebc03acd2e36f">&#9670;&#160;</a></span>CombinatorProduct() <span class="overload">[1/2]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static float3 CombinatorProduct </td>
<td>(</td>
<td class="paramtype">float3&#160;</td>
<td class="paramname"><em>bias</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">List&lt; <a class="el" href="class_nano_brain_1_1_synapse.html">Synapse</a> &gt;&#160;</td>
<td class="paramname"><em>synapses</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Multiply the synapse outputs together. </p>
<dl class="section return"><dt>Returns</dt><dd>The mutliplcation of the synapse outputs</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">bias</td><td>The bias of the neuron</td></tr>
<tr><td class="paramname">synapses</td><td>The synapses of the neuron</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The result of the multiplication</dd></dl>
</div>
</div>
<a id="ab7909448ce5cda39c1e786d80a38d357" name="ab7909448ce5cda39c1e786d80a38d357"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab7909448ce5cda39c1e786d80a38d357">&#9670;&#160;</a></span>CombinatorSum() <span class="overload">[2/2]</span></h2>
<a id="a983416d3d4382abb4ef0e4d24d99e732" name="a983416d3d4382abb4ef0e4d24d99e732"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a983416d3d4382abb4ef0e4d24d99e732">&#9670;&#160;</a></span>Combinator() <span class="overload">[2/2]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">Vector3 CombinatorSum </td>
<td class="memname">Vector3 Combinator </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td class="paramtype">Vector3&#160;</td>
<td class="paramname"><em>bias</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">List&lt; <a class="el" href="class_nano_brain_1_1_synapse.html">Synapse</a> &gt;&#160;</td>
<td class="paramname"><em>synapses</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Sum the synapse outputs together. </p>
<dl class="section return"><dt>Returns</dt><dd>The sum of the synapse outputs</dd></dl>
<p>The combinator which combines the bias with the values from all synapses. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">bias</td><td>The bias of the neuron</td></tr>
<tr><td class="paramname">synapses</td><td>The synapses of the neuron</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd></dd></dl>
</div>
</div>
<a id="a985c9a28b445133460cee6aa23d050ea" name="a985c9a28b445133460cee6aa23d050ea"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a985c9a28b445133460cee6aa23d050ea">&#9670;&#160;</a></span>CombinatorProduct() <span class="overload">[2/2]</span></h2>
<a id="a0dbc2b80fb98e5e8c219f422f2f7aa73" name="a0dbc2b80fb98e5e8c219f422f2f7aa73"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a0dbc2b80fb98e5e8c219f422f2f7aa73">&#9670;&#160;</a></span>CombinatorSum() <span class="overload">[2/2]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">Vector3 CombinatorProduct </td>
<td class="memname">static Vector3 CombinatorSum </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td class="paramtype">Vector3&#160;</td>
<td class="paramname"><em>bias</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">List&lt; <a class="el" href="class_nano_brain_1_1_synapse.html">Synapse</a> &gt;&#160;</td>
<td class="paramname"><em>synapses</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Sum the bias and synpase outputs together. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">bias</td><td>The bias of the neuron</td></tr>
<tr><td class="paramname">synapses</td><td>The synapses of the neuron</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd></dd></dl>
</div>
</div>
<a id="ab278cb03c9176522b9872b0b3460a0e0" name="ab278cb03c9176522b9872b0b3460a0e0"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab278cb03c9176522b9872b0b3460a0e0">&#9670;&#160;</a></span>CombinatorProduct() <span class="overload">[2/2]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static Vector3 CombinatorProduct </td>
<td>(</td>
<td class="paramtype">Vector3&#160;</td>
<td class="paramname"><em>bias</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">List&lt; <a class="el" href="class_nano_brain_1_1_synapse.html">Synapse</a> &gt;&#160;</td>
<td class="paramname"><em>synapses</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Multiply the synapse outputs together. </p>
<dl class="section return"><dt>Returns</dt><dd>The mutliplcation of the synapse outputs</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">bias</td><td>The bias of the neuron</td></tr>
<tr><td class="paramname">synapses</td><td>The synapses of the neuron</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The result of the multiplication</dd></dl>
</div>
</div>
<a id="a89bb3565b62b372f9a9baad1b4657fc5" name="a89bb3565b62b372f9a9baad1b4657fc5"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a89bb3565b62b372f9a9baad1b4657fc5">&#9670;&#160;</a></span>Activator() <span class="overload">[1/2]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">float3 Activator </td>
<td>(</td>
<td class="paramtype">float3&#160;</td>
<td class="paramname"><em>inputValue</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Apply the activation function to the input. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">inputValue</td><td></td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The result of applying the activation function</dd></dl>
</div>
</div>
@ -1002,6 +1242,41 @@ virtual List&lt; <a class="el" href="class_nano_brain_1_1_nucleus.html">Nucleus<
</dl>
<dl class="section return"><dt>Returns</dt><dd>The normalized vector</dd></dl>
</div>
</div>
<a id="a1d0ff8ec1bf2a0f7a5ee4c4ffad722ca" name="a1d0ff8ec1bf2a0f7a5ee4c4ffad722ca"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a1d0ff8ec1bf2a0f7a5ee4c4ffad722ca">&#9670;&#160;</a></span>Activator() <span class="overload">[2/2]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">Vector3 Activator </td>
<td>(</td>
<td class="paramtype">Vector3&#160;</td>
<td class="paramname"><em>inputValue</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Apply the activation function to the input. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">inputValue</td><td></td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The result of applying the activation function</dd></dl>
</div>
</div>
<a id="a337e53a6f6aae4d31dc5c5a5d4359213" name="a337e53a6f6aae4d31dc5c5a5d4359213"></a>

View File

@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 67059ef99db37889cadce3ccb7931459
TextScriptImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -84,9 +84,13 @@ $(function() {
</div><!--header-->
<div class="contents">
<a name="details" id="details"></a><h2 class="groupheader">Description</h2>
<div class="textblock"><p>The <a class="el" href="namespace_nano_brain.html" title="The Nanobrain namespace.">NanoBrain</a> Unity Componnent. </p>
<p>This implements the top-level <a class="el" href="namespace_nano_brain.html" title="The Nanobrain namespace.">NanoBrain</a> Cluster <br />
</p>
<div class="textblock"><p>A <a class="el" href="namespace_nano_brain.html" title="The Nanobrain namespace.">NanoBrain</a> which can be used to control a gameobject. </p>
<p>A <a class="el" href="namespace_nano_brain.html" title="The Nanobrain namespace.">NanoBrain</a> is a small neural network which can be used to implement functional behaviour. The network consists of neurons which are connected together with synapses. The output values of the neurons are of type Vector3 to support spatial computing.</p>
<p>This component is basically a Unity representation of a nanobrain cluster. </p><dl class="section see"><dt>See also</dt><dd><ul>
<li><a class="el" href="class_nano_brain_1_1_cluster.html">Cluster</a></li>
<li><a class="el" href="class_nano_brain_1_1_neuron.html">Neuron</a> </li>
</ul>
</dd></dl>
</div>
<p>Inherits MonoBehaviour.</p>
<table class="memberdecls">

View File

@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 541aef040730601e195eb6bd6259d774
TextScriptImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 500ec32f1b060f323bc4137a6192e4c0
TextScriptImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 25cd7691722c239b6a35d4490aed639e
TextScriptImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 89a049ec79ac891e1a566bf19eb7a204
TextScriptImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: eb9748e2b82cf690aa33e55abd1e8b6b
TextScriptImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: b373cfbb551c0fcc28877689ce4e0a9e
TextScriptImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -82,11 +82,12 @@ $(function() {
<h3><a id="index_a" name="index_a"></a>- a -</h3><ul>
<li>ActivationType&#160;:&#160;<a class="el" href="class_nano_brain_1_1_neuron.html#abda2c109ffc1dc92ebde0f4802c37b1f">Neuron</a></li>
<li>Activator()&#160;:&#160;<a class="el" href="class_nano_brain_1_1_neuron.html#a89bb3565b62b372f9a9baad1b4657fc5">Neuron</a></li>
<li>activator&#160;:&#160;<a class="el" href="class_nano_brain_1_1_neuron.html#a7b44b9201cb62d1778628082f10bb1d8">Neuron</a></li>
<li>ActivatorBinary()&#160;:&#160;<a class="el" href="class_nano_brain_1_1_neuron.html#afd3dff2960a406f480a02db7fa351e68">Neuron</a></li>
<li>ActivatorLinear()&#160;:&#160;<a class="el" href="class_nano_brain_1_1_neuron.html#aff1de06241cbc2846468d82203026382">Neuron</a></li>
<li>ActivatorNormalized()&#160;:&#160;<a class="el" href="class_nano_brain_1_1_neuron.html#a115176d819f6eaa624803c2ee3770f32">Neuron</a></li>
<li>ActivatorPower()&#160;:&#160;<a class="el" href="class_nano_brain_1_1_neuron.html#a8ec3807c2e34c26c93bd24364fb86cfd">Neuron</a></li>
<li>ActivatorPower()&#160;:&#160;<a class="el" href="class_nano_brain_1_1_neuron.html#a7e418a2d45b63d8d50bb790686f0180b">Neuron</a></li>
<li>ActivatorReciprocal()&#160;:&#160;<a class="el" href="class_nano_brain_1_1_neuron.html#a9b4e8a447335f2eea7df277b2c27110c">Neuron</a></li>
<li>ActivatorSqrt()&#160;:&#160;<a class="el" href="class_nano_brain_1_1_neuron.html#aad821525adf08cba40407ef1924046a3">Neuron</a></li>
<li>ActivatorTanh()&#160;:&#160;<a class="el" href="class_nano_brain_1_1_neuron.html#a963c97a182c9e4148146c330182e5389">Neuron</a></li>
@ -111,10 +112,10 @@ $(function() {
<li>cluster&#160;:&#160;<a class="el" href="class_nano_brain_1_1_unity_1_1_cluster_prefab.html#a7d698403a74165870dd28d9a11238e9e">ClusterPrefab</a></li>
<li>CollectReceivers()&#160;:&#160;<a class="el" href="class_nano_brain_1_1_cluster.html#aafd42e24f34b91e3c441943e405f14ed">Cluster</a></li>
<li>CollectSynapsesTo()&#160;:&#160;<a class="el" href="class_nano_brain_1_1_cluster.html#a4bcbf4162dcb5d5722f1bcb842194780">Cluster</a></li>
<li>Combinator&#160;:&#160;<a class="el" href="class_nano_brain_1_1_neuron.html#a3f5113c3ec0e521ab24c3bdd34c5389e">Neuron</a></li>
<li>combinator&#160;:&#160;<a class="el" href="class_nano_brain_1_1_neuron.html#adcd8e3279ab63ad98f34485b6403e0c9">Neuron</a></li>
<li>CombinatorProduct()&#160;:&#160;<a class="el" href="class_nano_brain_1_1_neuron.html#acad9a97a8f3b9df50209623e3e50bce3">Neuron</a></li>
<li>CombinatorSum()&#160;:&#160;<a class="el" href="class_nano_brain_1_1_neuron.html#ac336222e6d6f84cfc9f4ea68b5973166">Neuron</a></li>
<li>Combinator()&#160;:&#160;<a class="el" href="class_nano_brain_1_1_neuron.html#a983416d3d4382abb4ef0e4d24d99e732">Neuron</a></li>
<li>CombinatorProduct()&#160;:&#160;<a class="el" href="class_nano_brain_1_1_neuron.html#a94b65d9e945f73d7e6cebc03acd2e36f">Neuron</a></li>
<li>CombinatorSum()&#160;:&#160;<a class="el" href="class_nano_brain_1_1_neuron.html#a8ec8679939dad6c9ccdd39e7c2cfae04">Neuron</a></li>
<li>CombinatorType&#160;:&#160;<a class="el" href="class_nano_brain_1_1_neuron.html#a1b62779c4e520ef73e1e2afe2517d487">Neuron</a></li>
<li>computeOrders&#160;:&#160;<a class="el" href="class_nano_brain_1_1_cluster.html#a3025fcf968634065929ce5e72ba6195b">Cluster</a></li>
<li>curve&#160;:&#160;<a class="el" href="class_nano_brain_1_1_neuron.html#a515dbc8cdce3d6b2091228e7c6d2036f">Neuron</a></li>

View File

@ -74,6 +74,7 @@ $(function() {
<div class="textblock">Here is a list of all documented functions with links to the class documentation for each member:</div>
<h3><a id="index_a" name="index_a"></a>- a -</h3><ul>
<li>Activator()&#160;:&#160;<a class="el" href="class_nano_brain_1_1_neuron.html#a1d0ff8ec1bf2a0f7a5ee4c4ffad722ca">Neuron</a></li>
<li>ActivatorBinary()&#160;:&#160;<a class="el" href="class_nano_brain_1_1_neuron.html#afd3dff2960a406f480a02db7fa351e68">Neuron</a></li>
<li>ActivatorLinear()&#160;:&#160;<a class="el" href="class_nano_brain_1_1_neuron.html#aff1de06241cbc2846468d82203026382">Neuron</a></li>
<li>ActivatorNormalized()&#160;:&#160;<a class="el" href="class_nano_brain_1_1_neuron.html#a115176d819f6eaa624803c2ee3770f32">Neuron</a></li>
@ -97,8 +98,9 @@ $(function() {
<li>Cluster()&#160;:&#160;<a class="el" href="class_nano_brain_1_1_cluster.html#a7f15db45b7dae643e67e2574ec9c1f8f">Cluster</a></li>
<li>CollectReceivers()&#160;:&#160;<a class="el" href="class_nano_brain_1_1_cluster.html#aafd42e24f34b91e3c441943e405f14ed">Cluster</a></li>
<li>CollectSynapsesTo()&#160;:&#160;<a class="el" href="class_nano_brain_1_1_cluster.html#a4bcbf4162dcb5d5722f1bcb842194780">Cluster</a></li>
<li>CombinatorProduct()&#160;:&#160;<a class="el" href="class_nano_brain_1_1_neuron.html#acad9a97a8f3b9df50209623e3e50bce3">Neuron</a></li>
<li>CombinatorSum()&#160;:&#160;<a class="el" href="class_nano_brain_1_1_neuron.html#ac336222e6d6f84cfc9f4ea68b5973166">Neuron</a></li>
<li>Combinator()&#160;:&#160;<a class="el" href="class_nano_brain_1_1_neuron.html#a61f71c8a24ee7a78783648b0147048a5">Neuron</a></li>
<li>CombinatorProduct()&#160;:&#160;<a class="el" href="class_nano_brain_1_1_neuron.html#a94b65d9e945f73d7e6cebc03acd2e36f">Neuron</a></li>
<li>CombinatorSum()&#160;:&#160;<a class="el" href="class_nano_brain_1_1_neuron.html#a8ec8679939dad6c9ccdd39e7c2cfae04">Neuron</a></li>
</ul>

View File

@ -75,7 +75,6 @@ $(function() {
<li>activator&#160;:&#160;<a class="el" href="class_nano_brain_1_1_neuron.html#a7b44b9201cb62d1778628082f10bb1d8">Neuron</a></li>
<li>baseName&#160;:&#160;<a class="el" href="class_nano_brain_1_1_cluster.html#a69781b68637b633039d76380665acdbf">Cluster</a></li>
<li>brain&#160;:&#160;<a class="el" href="class_nano_brain_1_1_unity_1_1_brain.html#a13c34b3156815d7a106ecd64d75f0aa0">Brain</a></li>
<li>Combinator&#160;:&#160;<a class="el" href="class_nano_brain_1_1_neuron.html#ade3c65b8999bc2caea35a477a890d557">Neuron</a></li>
<li>computeOrders&#160;:&#160;<a class="el" href="class_nano_brain_1_1_cluster.html#a3025fcf968634065929ce5e72ba6195b">Cluster</a></li>
<li>defaultOutput&#160;:&#160;<a class="el" href="class_nano_brain_1_1_cluster.html#ac1a42e360c06e2d39f1230088df95315">Cluster</a></li>
<li>isFiring&#160;:&#160;<a class="el" href="class_nano_brain_1_1_neuron.html#ad12c9bcead3b485fb46faed0d4934bcb">Neuron</a></li>

View File

@ -76,7 +76,7 @@ $(function() {
<div class="contents">
<div class="textblock">This inheritance list is sorted roughly, but not completely, alphabetically:</div><div class="directory">
<div class="levels">[detail level <span onclick="javascript:toggleLevel(1);">1</span><span onclick="javascript:toggleLevel(2);">2</span><span onclick="javascript:toggleLevel(3);">3</span>]</div><table class="directory">
<tr id="row_0_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_nano_brain_1_1_unity_1_1_brain.html" target="_self">Brain</a></td><td class="desc">The <a class="el" href="namespace_nano_brain.html" title="The Nanobrain namespace.">NanoBrain</a> Unity Componnent </td></tr>
<tr id="row_0_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_nano_brain_1_1_unity_1_1_brain.html" target="_self">Brain</a></td><td class="desc">A <a class="el" href="namespace_nano_brain.html" title="The Nanobrain namespace.">NanoBrain</a> which can be used to control a gameobject </td></tr>
<tr id="row_1_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_nano_brain_1_1_unity_1_1_cluster_prefab.html" target="_self">ClusterPrefab</a></td><td class="desc">The Unity ScriptableObject to implement re-usable Cluster Prefabs </td></tr>
<tr id="row_2_" class="even"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_2_" class="arrow" onclick="toggleFolder('2_')">&#9660;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_nano_brain_1_1_nucleus.html" target="_self">Nucleus</a></td><td class="desc">A Nucleus is a basic element in a brain cluster </td></tr>
<tr id="row_2_0_" class="odd"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_nano_brain_1_1_cluster.html" target="_self">Cluster</a></td><td class="desc">A Cluster combines a collection of Nuclei to implement reusable behaviour </td></tr>

View File

@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: c035fb3b746df09fc860b0a552e0264b
TextScriptImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -84,7 +84,7 @@ $(function() {
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="nested-classes" name="nested-classes"></a>
Classes</h2></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_nano_brain_1_1_unity_1_1_brain.html">Brain</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">The <a class="el" href="namespace_nano_brain.html" title="The Nanobrain namespace.">NanoBrain</a> Unity Componnent. <a href="class_nano_brain_1_1_unity_1_1_brain.html#details">More...</a><br /></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">A <a class="el" href="namespace_nano_brain.html" title="The Nanobrain namespace.">NanoBrain</a> which can be used to control a gameobject. <a href="class_nano_brain_1_1_unity_1_1_brain.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_nano_brain_1_1_unity_1_1_cluster_prefab.html">ClusterPrefab</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">The Unity ScriptableObject to implement re-usable Cluster Prefabs. <a href="class_nano_brain_1_1_unity_1_1_cluster_prefab.html#details">More...</a><br /></td></tr>

View File

@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 69c0c0dfe90463a72b21f0870b828bcd
TextScriptImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: d07ed414a0d67b98c846d2981302dc49
TextScriptImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,117 @@
fileFormatVersion: 2
guid: 5c11e7b90a6debaca941bc1043187bcb
TextureImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 13
mipmaps:
mipMapMode: 0
enableMipMap: 1
sRGBTexture: 1
linearTexture: 0
fadeOut: 0
borderMipMap: 0
mipMapsPreserveCoverage: 0
alphaTestReferenceValue: 0.5
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
flipGreenChannel: 0
isReadable: 0
streamingMipmaps: 0
streamingMipmapsPriority: 0
vTOnly: 0
ignoreMipmapLimit: 0
grayScaleToAlpha: 0
generateCubemap: 6
cubemapConvolution: 0
seamlessCubemap: 0
textureFormat: 1
maxTextureSize: 2048
textureSettings:
serializedVersion: 2
filterMode: 1
aniso: 1
mipBias: 0
wrapU: 0
wrapV: 0
wrapW: 0
nPOTScale: 1
lightmap: 0
compressionQuality: 50
spriteMode: 0
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits: 100
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spriteGenerateFallbackPhysicsShape: 1
alphaUsage: 1
alphaIsTransparency: 0
spriteTessellationDetail: -1
textureType: 0
textureShape: 1
singleChannelComponent: 0
flipbookRows: 1
flipbookColumns: 1
maxTextureSizeSet: 0
compressionQualitySet: 0
textureFormatSet: 0
ignorePngGamma: 0
applyGammaDecoding: 0
swizzle: 50462976
cookieLightType: 0
platformSettings:
- serializedVersion: 4
buildTarget: DefaultTexturePlatform
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 4
buildTarget: Standalone
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
spriteSheet:
serializedVersion: 2
sprites: []
outline: []
customData:
physicsShape: []
bones: []
spriteID:
internalID: 0
vertices: []
indices:
edges: []
weights: []
secondaryTextures: []
spriteCustomMetadata:
entries: []
nameFileIdTable: {}
mipmapLimitGroupName:
pSDRemoveMatte: 0
userData:
assetBundleName:
assetBundleVariant:

File diff suppressed because it is too large Load Diff

View File

@ -1,11 +1,11 @@
var searchData=
[
['activationtype_0',['ActivationType',['../class_nano_brain_1_1_neuron.html#abda2c109ffc1dc92ebde0f4802c37b1f',1,'NanoBrain::Neuron']]],
['activator_1',['activator',['../class_nano_brain_1_1_neuron.html#a7b44b9201cb62d1778628082f10bb1d8',1,'NanoBrain::Neuron']]],
['activator_1',['activator',['../class_nano_brain_1_1_neuron.html#a89bb3565b62b372f9a9baad1b4657fc5',1,'NanoBrain.Neuron.Activator(float3 inputValue)'],['../class_nano_brain_1_1_neuron.html#a1d0ff8ec1bf2a0f7a5ee4c4ffad722ca',1,'NanoBrain.Neuron.Activator(Vector3 inputValue)'],['../class_nano_brain_1_1_neuron.html#a7b44b9201cb62d1778628082f10bb1d8',1,'NanoBrain.Neuron.activator']]],
['activatorbinary_2',['ActivatorBinary',['../class_nano_brain_1_1_neuron.html#afd3dff2960a406f480a02db7fa351e68',1,'NanoBrain::Neuron']]],
['activatorlinear_3',['activatorlinear',['../class_nano_brain_1_1_neuron.html#aff1de06241cbc2846468d82203026382',1,'NanoBrain.Neuron.ActivatorLinear(float3 input)'],['../class_nano_brain_1_1_neuron.html#a337e53a6f6aae4d31dc5c5a5d4359213',1,'NanoBrain.Neuron.ActivatorLinear(Vector3 input)']]],
['activatornormalized_4',['ActivatorNormalized',['../class_nano_brain_1_1_neuron.html#a115176d819f6eaa624803c2ee3770f32',1,'NanoBrain::Neuron']]],
['activatorpower_5',['activatorpower',['../class_nano_brain_1_1_neuron.html#a8ec3807c2e34c26c93bd24364fb86cfd',1,'NanoBrain.Neuron.ActivatorPower(float3 input)'],['../class_nano_brain_1_1_neuron.html#a7e418a2d45b63d8d50bb790686f0180b',1,'NanoBrain.Neuron.ActivatorPower(Vector3 input)']]],
['activatorpower_5',['activatorpower',['../class_nano_brain_1_1_neuron.html#a7e418a2d45b63d8d50bb790686f0180b',1,'NanoBrain.Neuron.ActivatorPower(Vector3 input)'],['../class_nano_brain_1_1_neuron.html#a8ec3807c2e34c26c93bd24364fb86cfd',1,'NanoBrain.Neuron.ActivatorPower(float3 input)']]],
['activatorreciprocal_6',['activatorreciprocal',['../class_nano_brain_1_1_neuron.html#a9b4e8a447335f2eea7df277b2c27110c',1,'NanoBrain.Neuron.ActivatorReciprocal(float3 input)'],['../class_nano_brain_1_1_neuron.html#a4550fa8adb4d7f967727702a630abb30',1,'NanoBrain.Neuron.ActivatorReciprocal(Vector3 input)']]],
['activatorsqrt_7',['activatorsqrt',['../class_nano_brain_1_1_neuron.html#aad821525adf08cba40407ef1924046a3',1,'NanoBrain.Neuron.ActivatorSqrt(float3 input)'],['../class_nano_brain_1_1_neuron.html#ae17b57e9db94bfd35ba6feba84eb4249',1,'NanoBrain.Neuron.ActivatorSqrt(Vector3 input)']]],
['activatortanh_8',['ActivatorTanh',['../class_nano_brain_1_1_neuron.html#a963c97a182c9e4148146c330182e5389',1,'NanoBrain::Neuron']]],

View File

@ -5,9 +5,9 @@ var searchData=
['clusterprefab_2',['ClusterPrefab',['../class_nano_brain_1_1_unity_1_1_cluster_prefab.html',1,'NanoBrain::Unity']]],
['collectreceivers_3',['CollectReceivers',['../class_nano_brain_1_1_cluster.html#aafd42e24f34b91e3c441943e405f14ed',1,'NanoBrain::Cluster']]],
['collectsynapsesto_4',['CollectSynapsesTo',['../class_nano_brain_1_1_cluster.html#a4bcbf4162dcb5d5722f1bcb842194780',1,'NanoBrain::Cluster']]],
['combinator_5',['combinator',['../class_nano_brain_1_1_neuron.html#a3f5113c3ec0e521ab24c3bdd34c5389e',1,'NanoBrain.Neuron.Combinator'],['../class_nano_brain_1_1_neuron.html#ade3c65b8999bc2caea35a477a890d557',1,'NanoBrain.Neuron.Combinator'],['../class_nano_brain_1_1_neuron.html#adcd8e3279ab63ad98f34485b6403e0c9',1,'NanoBrain.Neuron.combinator']]],
['combinatorproduct_6',['combinatorproduct',['../class_nano_brain_1_1_neuron.html#acad9a97a8f3b9df50209623e3e50bce3',1,'NanoBrain.Neuron.CombinatorProduct()'],['../class_nano_brain_1_1_neuron.html#a985c9a28b445133460cee6aa23d050ea',1,'NanoBrain.Neuron.CombinatorProduct()']]],
['combinatorsum_7',['combinatorsum',['../class_nano_brain_1_1_neuron.html#ac336222e6d6f84cfc9f4ea68b5973166',1,'NanoBrain.Neuron.CombinatorSum()'],['../class_nano_brain_1_1_neuron.html#ab7909448ce5cda39c1e786d80a38d357',1,'NanoBrain.Neuron.CombinatorSum()']]],
['combinator_5',['combinator',['../class_nano_brain_1_1_neuron.html#adcd8e3279ab63ad98f34485b6403e0c9',1,'NanoBrain.Neuron.combinator'],['../class_nano_brain_1_1_neuron.html#a983416d3d4382abb4ef0e4d24d99e732',1,'NanoBrain.Neuron.Combinator(Vector3 bias, List&lt; Synapse &gt; synapses)'],['../class_nano_brain_1_1_neuron.html#a61f71c8a24ee7a78783648b0147048a5',1,'NanoBrain.Neuron.Combinator(float3 bias, List&lt; Synapse &gt; synapses)']]],
['combinatorproduct_6',['combinatorproduct',['../class_nano_brain_1_1_neuron.html#a94b65d9e945f73d7e6cebc03acd2e36f',1,'NanoBrain.Neuron.CombinatorProduct(float3 bias, List&lt; Synapse &gt; synapses)'],['../class_nano_brain_1_1_neuron.html#ab278cb03c9176522b9872b0b3460a0e0',1,'NanoBrain.Neuron.CombinatorProduct(Vector3 bias, List&lt; Synapse &gt; synapses)']]],
['combinatorsum_7',['combinatorsum',['../class_nano_brain_1_1_neuron.html#a8ec8679939dad6c9ccdd39e7c2cfae04',1,'NanoBrain.Neuron.CombinatorSum(float3 bias, List&lt; Synapse &gt; synapses)'],['../class_nano_brain_1_1_neuron.html#a0dbc2b80fb98e5e8c219f422f2f7aa73',1,'NanoBrain.Neuron.CombinatorSum(Vector3 bias, List&lt; Synapse &gt; synapses)']]],
['combinatortype_8',['CombinatorType',['../class_nano_brain_1_1_neuron.html#a1b62779c4e520ef73e1e2afe2517d487',1,'NanoBrain::Neuron']]],
['computeorders_9',['computeOrders',['../class_nano_brain_1_1_cluster.html#a3025fcf968634065929ce5e72ba6195b',1,'NanoBrain::Cluster']]],
['contents_10',['Table of Contents',['../index.html#autotoc_md1',1,'']]],

View File

@ -5,7 +5,7 @@ var searchData=
['nanobrain_2',['nanobrain',['../namespace_nano_brain.html',1,'NanoBrain'],['../md__2home_2pascal_2_development_2_projects_2_passer_2_nano_brain_2_nano_brain_2_assets_2_nano_brain-unitypackage_2_r_e_a_d_m_e.html',1,'NanoBrain']]],
['nanobrain_3a_3abreitenberg_3',['Breitenberg',['../namespace_nano_brain_1_1_breitenberg.html',1,'NanoBrain']]],
['nanobrain_3a_3aunity_4',['Unity',['../namespace_nano_brain_1_1_unity.html',1,'NanoBrain']]],
['neuron_5',['neuron',['../class_nano_brain_1_1_neuron.html',1,'Neuron'],['../class_nano_brain_1_1_neuron.html#a2b8cde3a1aa3b920745bba1ccea618a4',1,'NanoBrain.Neuron.Neuron()'],['../class_nano_brain_1_1_synapse.html#a34cfd8ef359b42aec2f7fd77c1d1a37f',1,'NanoBrain.Synapse.neuron']]],
['neuron_5',['neuron',['../class_nano_brain_1_1_neuron.html',1,'Neuron'],['../class_nano_brain_1_1_synapse.html#a34cfd8ef359b42aec2f7fd77c1d1a37f',1,'NanoBrain.Synapse.neuron'],['../class_nano_brain_1_1_neuron.html#a2b8cde3a1aa3b920745bba1ccea618a4',1,'NanoBrain.Neuron.Neuron()']]],
['nuclei_6',['nuclei',['../class_nano_brain_1_1_cluster.html#a768f118e891942c57022143067ff3c33',1,'NanoBrain::Cluster']]],
['nucleus_7',['Nucleus',['../class_nano_brain_1_1_nucleus.html',1,'NanoBrain']]]
];

View File

@ -1,13 +1,14 @@
var searchData=
[
['activatorbinary_0',['ActivatorBinary',['../class_nano_brain_1_1_neuron.html#afd3dff2960a406f480a02db7fa351e68',1,'NanoBrain::Neuron']]],
['activatorlinear_1',['activatorlinear',['../class_nano_brain_1_1_neuron.html#aff1de06241cbc2846468d82203026382',1,'NanoBrain.Neuron.ActivatorLinear(float3 input)'],['../class_nano_brain_1_1_neuron.html#a337e53a6f6aae4d31dc5c5a5d4359213',1,'NanoBrain.Neuron.ActivatorLinear(Vector3 input)']]],
['activatornormalized_2',['ActivatorNormalized',['../class_nano_brain_1_1_neuron.html#a115176d819f6eaa624803c2ee3770f32',1,'NanoBrain::Neuron']]],
['activatorpower_3',['activatorpower',['../class_nano_brain_1_1_neuron.html#a8ec3807c2e34c26c93bd24364fb86cfd',1,'NanoBrain.Neuron.ActivatorPower(float3 input)'],['../class_nano_brain_1_1_neuron.html#a7e418a2d45b63d8d50bb790686f0180b',1,'NanoBrain.Neuron.ActivatorPower(Vector3 input)']]],
['activatorreciprocal_4',['activatorreciprocal',['../class_nano_brain_1_1_neuron.html#a9b4e8a447335f2eea7df277b2c27110c',1,'NanoBrain.Neuron.ActivatorReciprocal(float3 input)'],['../class_nano_brain_1_1_neuron.html#a4550fa8adb4d7f967727702a630abb30',1,'NanoBrain.Neuron.ActivatorReciprocal(Vector3 input)']]],
['activatorsqrt_5',['activatorsqrt',['../class_nano_brain_1_1_neuron.html#aad821525adf08cba40407ef1924046a3',1,'NanoBrain.Neuron.ActivatorSqrt(float3 input)'],['../class_nano_brain_1_1_neuron.html#ae17b57e9db94bfd35ba6feba84eb4249',1,'NanoBrain.Neuron.ActivatorSqrt(Vector3 input)']]],
['activatortanh_6',['ActivatorTanh',['../class_nano_brain_1_1_neuron.html#a963c97a182c9e4148146c330182e5389',1,'NanoBrain::Neuron']]],
['addinstance_7',['addinstance',['../class_nano_brain_1_1_cluster.html#ab9c2d62634f5ff39eea2fb0d3e1a8bdc',1,'NanoBrain.Cluster.AddInstance()'],['../class_nano_brain_1_1_cluster.html#a898d208c89f585137874873ef48b8c3a',1,'NanoBrain.Cluster.AddInstance(ClusterPrefab prefab)']]],
['addreceiver_8',['AddReceiver',['../class_nano_brain_1_1_neuron.html#a8aab0c6e45f7d0fc37ce401f7821e567',1,'NanoBrain::Neuron']]],
['addsynapse_9',['AddSynapse',['../class_nano_brain_1_1_neuron.html#a543786edbba5dd2f46bdf48c7c64987e',1,'NanoBrain::Neuron']]]
['activator_0',['activator',['../class_nano_brain_1_1_neuron.html#a1d0ff8ec1bf2a0f7a5ee4c4ffad722ca',1,'NanoBrain.Neuron.Activator(Vector3 inputValue)'],['../class_nano_brain_1_1_neuron.html#a89bb3565b62b372f9a9baad1b4657fc5',1,'NanoBrain.Neuron.Activator(float3 inputValue)']]],
['activatorbinary_1',['ActivatorBinary',['../class_nano_brain_1_1_neuron.html#afd3dff2960a406f480a02db7fa351e68',1,'NanoBrain::Neuron']]],
['activatorlinear_2',['activatorlinear',['../class_nano_brain_1_1_neuron.html#aff1de06241cbc2846468d82203026382',1,'NanoBrain.Neuron.ActivatorLinear(float3 input)'],['../class_nano_brain_1_1_neuron.html#a337e53a6f6aae4d31dc5c5a5d4359213',1,'NanoBrain.Neuron.ActivatorLinear(Vector3 input)']]],
['activatornormalized_3',['ActivatorNormalized',['../class_nano_brain_1_1_neuron.html#a115176d819f6eaa624803c2ee3770f32',1,'NanoBrain::Neuron']]],
['activatorpower_4',['activatorpower',['../class_nano_brain_1_1_neuron.html#a8ec3807c2e34c26c93bd24364fb86cfd',1,'NanoBrain.Neuron.ActivatorPower(float3 input)'],['../class_nano_brain_1_1_neuron.html#a7e418a2d45b63d8d50bb790686f0180b',1,'NanoBrain.Neuron.ActivatorPower(Vector3 input)']]],
['activatorreciprocal_5',['activatorreciprocal',['../class_nano_brain_1_1_neuron.html#a9b4e8a447335f2eea7df277b2c27110c',1,'NanoBrain.Neuron.ActivatorReciprocal(float3 input)'],['../class_nano_brain_1_1_neuron.html#a4550fa8adb4d7f967727702a630abb30',1,'NanoBrain.Neuron.ActivatorReciprocal(Vector3 input)']]],
['activatorsqrt_6',['activatorsqrt',['../class_nano_brain_1_1_neuron.html#aad821525adf08cba40407ef1924046a3',1,'NanoBrain.Neuron.ActivatorSqrt(float3 input)'],['../class_nano_brain_1_1_neuron.html#ae17b57e9db94bfd35ba6feba84eb4249',1,'NanoBrain.Neuron.ActivatorSqrt(Vector3 input)']]],
['activatortanh_7',['ActivatorTanh',['../class_nano_brain_1_1_neuron.html#a963c97a182c9e4148146c330182e5389',1,'NanoBrain::Neuron']]],
['addinstance_8',['addinstance',['../class_nano_brain_1_1_cluster.html#ab9c2d62634f5ff39eea2fb0d3e1a8bdc',1,'NanoBrain.Cluster.AddInstance()'],['../class_nano_brain_1_1_cluster.html#a898d208c89f585137874873ef48b8c3a',1,'NanoBrain.Cluster.AddInstance(ClusterPrefab prefab)']]],
['addreceiver_9',['AddReceiver',['../class_nano_brain_1_1_neuron.html#a8aab0c6e45f7d0fc37ce401f7821e567',1,'NanoBrain::Neuron']]],
['addsynapse_10',['AddSynapse',['../class_nano_brain_1_1_neuron.html#a543786edbba5dd2f46bdf48c7c64987e',1,'NanoBrain::Neuron']]]
];

View File

@ -4,6 +4,7 @@ var searchData=
['cluster_1',['cluster',['../class_nano_brain_1_1_cluster.html#a7f15db45b7dae643e67e2574ec9c1f8f',1,'NanoBrain.Cluster.Cluster(ClusterPrefab prefab, Cluster parent)'],['../class_nano_brain_1_1_cluster.html#a29fe7b3d8b7b17eebc627f26e364b608',1,'NanoBrain.Cluster.Cluster(ClusterPrefab prefab, ClusterPrefab parent=null)']]],
['collectreceivers_2',['CollectReceivers',['../class_nano_brain_1_1_cluster.html#aafd42e24f34b91e3c441943e405f14ed',1,'NanoBrain::Cluster']]],
['collectsynapsesto_3',['CollectSynapsesTo',['../class_nano_brain_1_1_cluster.html#a4bcbf4162dcb5d5722f1bcb842194780',1,'NanoBrain::Cluster']]],
['combinatorproduct_4',['combinatorproduct',['../class_nano_brain_1_1_neuron.html#acad9a97a8f3b9df50209623e3e50bce3',1,'NanoBrain.Neuron.CombinatorProduct()'],['../class_nano_brain_1_1_neuron.html#a985c9a28b445133460cee6aa23d050ea',1,'NanoBrain.Neuron.CombinatorProduct()']]],
['combinatorsum_5',['combinatorsum',['../class_nano_brain_1_1_neuron.html#ac336222e6d6f84cfc9f4ea68b5973166',1,'NanoBrain.Neuron.CombinatorSum()'],['../class_nano_brain_1_1_neuron.html#ab7909448ce5cda39c1e786d80a38d357',1,'NanoBrain.Neuron.CombinatorSum()']]]
['combinator_4',['combinator',['../class_nano_brain_1_1_neuron.html#a61f71c8a24ee7a78783648b0147048a5',1,'NanoBrain.Neuron.Combinator(float3 bias, List&lt; Synapse &gt; synapses)'],['../class_nano_brain_1_1_neuron.html#a983416d3d4382abb4ef0e4d24d99e732',1,'NanoBrain.Neuron.Combinator(Vector3 bias, List&lt; Synapse &gt; synapses)']]],
['combinatorproduct_5',['combinatorproduct',['../class_nano_brain_1_1_neuron.html#a94b65d9e945f73d7e6cebc03acd2e36f',1,'NanoBrain.Neuron.CombinatorProduct(float3 bias, List&lt; Synapse &gt; synapses)'],['../class_nano_brain_1_1_neuron.html#ab278cb03c9176522b9872b0b3460a0e0',1,'NanoBrain.Neuron.CombinatorProduct(Vector3 bias, List&lt; Synapse &gt; synapses)']]],
['combinatorsum_6',['combinatorsum',['../class_nano_brain_1_1_neuron.html#a8ec8679939dad6c9ccdd39e7c2cfae04',1,'NanoBrain.Neuron.CombinatorSum(float3 bias, List&lt; Synapse &gt; synapses)'],['../class_nano_brain_1_1_neuron.html#a0dbc2b80fb98e5e8c219f422f2f7aa73',1,'NanoBrain.Neuron.CombinatorSum(Vector3 bias, List&lt; Synapse &gt; synapses)']]]
];

View File

@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: e5f5c27ddc89b1be0bc2f22b0e5a192b
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -1,5 +1,4 @@
var searchData=
[
['combinator_0',['combinator',['../class_nano_brain_1_1_neuron.html#ade3c65b8999bc2caea35a477a890d557',1,'NanoBrain.Neuron.Combinator'],['../class_nano_brain_1_1_neuron.html#a3f5113c3ec0e521ab24c3bdd34c5389e',1,'NanoBrain.Neuron.Combinator']]],
['computeorders_1',['computeOrders',['../class_nano_brain_1_1_cluster.html#a3025fcf968634065929ce5e72ba6195b',1,'NanoBrain::Cluster']]]
['computeorders_0',['computeOrders',['../class_nano_brain_1_1_cluster.html#a3025fcf968634065929ce5e72ba6195b',1,'NanoBrain::Cluster']]]
];

View File

@ -0,0 +1,82 @@
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UIElements;
using UnityEditor;
namespace NanoBrain.Unity {
[CustomPropertyDrawer(typeof(ClusterPrefab))]
class ClusterPrefab_Drawer : PropertyDrawer {
public static void Insepctor(SerializedObject serializedObject, string propertyName) {
EditorGUILayout.PropertyField(serializedObject.FindProperty(propertyName));
}
// Cache VisualElement per property path to avoid recreating every frame
static Dictionary<string, VisualElement> s_cache = new Dictionary<string, VisualElement>();
const float padding = 4f;
const float elementHeight = 64f; // height reserved for the VisualElement
public override float GetPropertyHeight(SerializedProperty property, GUIContent label) {
float height = EditorGUIUtility.singleLineHeight;
if (property.objectReferenceValue != null)
height += padding + elementHeight;
return 600; //height;
}
static Dictionary<string, bool> s_foldouts = new Dictionary<string, bool>();
public override void OnGUI(Rect position, SerializedProperty property, GUIContent label) {
label = EditorGUI.BeginProperty(position, label, property);
// Begin indent block
int indent = EditorGUI.indentLevel;
EditorGUI.indentLevel = 0;
// Draw the object field on the top line
Rect fieldRect = new(position.x, position.y, position.width, EditorGUIUtility.singleLineHeight);
EditorGUI.PropertyField(fieldRect, property, label);
if (property.objectReferenceValue is ClusterPrefab prefab) {
// key per field instance
string key = property.propertyPath + "_" + property.serializedObject.targetObject.GetEntityId();
if (!s_foldouts.TryGetValue(key, out bool isOpen)) isOpen = true;
// foldout header rect
Rect headerRect = new Rect(fieldRect.x, fieldRect.yMax + 4f, fieldRect.width, EditorGUIUtility.singleLineHeight);
isOpen = EditorGUI.Foldout(headerRect, isOpen, "Graph", true);
s_foldouts[key] = isOpen;
if (isOpen) {
// content rect below header
Rect drawRect = new Rect(fieldRect.x, headerRect.yMax + 2f, fieldRect.width, 450f);
// IMGUIContainer should be inserted here
ClusterView.Render(drawRect, prefab.cluster, property);
}
}
EditorGUI.indentLevel = indent;
EditorGUI.EndProperty();
}
// public ClusterViewer.GraphView CreateViewer(Cluster cluster, GameObject gameObject) {
// VisualElement mainContainer = new() {
// style = {
// flexDirection = FlexDirection.Row,
// minHeight = 450
// }
// };
// ClusterViewer.GraphView graph = new(cluster);
// graph.style.flexGrow = 1;
// mainContainer.Add(graph);
// root.Add(mainContainer);
// graph.SetGraph(gameObject);
// return graph;
// }
}
}

View File

@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: 5f43b401b7d59dec7ac7d493cbc4927d

148
Editor/ClusterView.cs Normal file
View File

@ -0,0 +1,148 @@
using System.Collections.Generic;
using UnityEngine;
using UnityEditor;
namespace NanoBrain.Unity {
public class ClusterView {
private static readonly float size = 20;
protected class ViewState {
public string key = null;
public Vector2 scrollPos = Vector2.zero;
public bool expandArray = false;
public Nucleus currentNucleus = null;
}
static Dictionary<string, ViewState> viewStates = new();
private static ViewState GetViewState(SerializedProperty property) {
string key = property.propertyPath + "_" + property.serializedObject.targetObject.GetEntityId();
if (!viewStates.TryGetValue(key, out ViewState state))
state = new() { key = key };
return state;
}
private static void UpdateViewState(ViewState viewState) {
viewStates[viewState.key] = viewState;
}
public static void Render(Rect drawRect, Cluster cluster, SerializedProperty property) {
ViewState state = GetViewState(property);
// background
EditorGUI.DrawRect(drawRect, Color.black);
const float contentWidth = 1000f;
Rect contentRect = new Rect(0f, 0f, contentWidth, drawRect.height);
// Begin horizontal-only scroll view
state.scrollPos = GUI.BeginScrollView(drawRect, state.scrollPos, contentRect, true, false);
// Local content group: draw GUI content using content-local coords (0..contentWidth)
GUI.BeginGroup(new Rect(-state.scrollPos.x, 0f, contentWidth, drawRect.height));
EditorGUI.DrawRect(new Rect(0f, 0f, contentWidth, drawRect.height), new Color(0.08f, 0.08f, 0.08f, 1f));
GUI.EndGroup();
GUI.EndScrollView();
// Clip to drawRect so Handles are not drawn outside the black area
GUI.BeginGroup(drawRect);
// Inner group positions content origin so local coords match content space and respect scroll
GUI.BeginGroup(new Rect(-state.scrollPos.x, 0f, contentWidth, drawRect.height));
Handles.BeginGUI();
DrawNucleus(state, cluster, new Vector2(100, 100), Color.black);
Handles.EndGUI();
GUI.EndGroup(); // end inner group
GUI.EndGroup(); // end clipping group
UpdateViewState(state);
}
protected static void DrawNucleus(ViewState state, Nucleus nucleus, Vector2 position, Color color) {
if (nucleus == null)
return;
if (nucleus == state.currentNucleus) {
// The selected nucleus highlight ring
Handles.color = Color.white;
Handles.DrawSolidDisc(position, Vector3.forward, size + 2);
}
if (nucleus is MemoryCell) {
Handles.color = Color.white;
Handles.DrawWireDisc(position + Vector2.right * 10, Vector3.forward, size);
}
Handles.color = color;
Handles.DrawSolidDisc(position, Vector3.forward, size);
Handles.color = Color.white;
// Position the label in front of the disc
//Vector3 labelPosition = position; // + (Vector2.forward * 0.1f);
GUIStyle style = new(EditorStyles.label) {
alignment = TextAnchor.MiddleCenter,
normal = { textColor = Color.white },
fontStyle = FontStyle.Bold,
};
// if (nucleus.parent is Cluster parentCluster && currentNucleus != null && parentCluster != currentNucleus.parent)
// DrawCluster(parentCluster, position, color, size);
// else if (nucleus is Cluster cluster)
// DrawCluster(cluster, position, color, size);
if (state.expandArray == false) {// || nucleus != currentNucleus) {
// put name below nucleus
Vector3 labelPos = position - Vector2.down * (size + 5); // below neuron
style.alignment = TextAnchor.UpperCenter;
if (nucleus.parent != null && state.currentNucleus != null && nucleus.parent != state.currentNucleus.parent && nucleus.parent is Cluster parentCluster1) {
// This neuron is part of another cluster
parentCluster1.name ??= "";
int colonPos = parentCluster1.name.IndexOf(":");
string baseName;
if (colonPos > 0 && colonPos < parentCluster1.name.Length - 2)
baseName = parentCluster1.name[..colonPos] + "\n";
else
baseName = parentCluster1.name + "\n";
Handles.Label(labelPos, baseName + nucleus.name, style);
}
else {
nucleus.name ??= "";
int colonPos = nucleus.name.IndexOf(":");
if (colonPos > 0 && colonPos < nucleus.name.Length - 2) {
// if it is an array, we should not show the :0 of the first element
string baseName = nucleus.name[..colonPos];
Handles.Label(labelPos, baseName, style);
}
else
Handles.Label(labelPos, nucleus.name, style);
}
}
// Tooltip
// Rect neuronRect = new(position.x - size, position.y - size, size * 2, size * 2);
// int id = GUIUtility.GetControlID(FocusType.Passive);
// Event e = Event.current;
// EventType et = e.GetTypeForControl(id);
// if (e != null && neuronRect.Contains(e.mousePosition)) {
// // Process Hover
// HandleMouseHover(nucleus, neuronRect);
// // Process click
// if (e.type == EventType.MouseDown && e.button == 0) {
// // Consume the event so the scene doesn't also handle it
// e.Use();
// if (nucleus is Cluster parentCluster2)
// OnNeuronClick(parentCluster2);
// else
// OnNeuronClick(nucleus);
// }
// }
}
}
}

View File

@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: 8a7663ccd347fd78dbdba393c03ed7c7

View File

@ -12,7 +12,6 @@ namespace NanoBrain.Unity {
public static ClusterPrefab previousPrefab;
public class GraphView : VisualElement {
//protected readonly ClusterPrefab prefab;
protected Cluster currentCluster;
protected SerializedObject serializedBrain;
protected Nucleus _currentNucleus;
@ -62,19 +61,13 @@ namespace NanoBrain.Unity {
scrollView.style.position = Position.Absolute;
scrollView.style.left = 0; scrollView.style.top = 0;
scrollView.style.right = 0; scrollView.style.bottom = 0;
//scrollView.style.flexGrow = 1;
scrollView.horizontalScrollerVisibility = ScrollerVisibility.Auto; // Auto shows when needed
scrollView.verticalScrollerVisibility = ScrollerVisibility.Hidden;
graphContainer = new(OnIMGUI);
//graphContainer.style.position = Position.Relative; // or omit this line
//graphContainer.style.position = Position.Absolute;
// graphContainer.style.left = 0; graphContainer.style.top = 0;
// graphContainer.style.right = 0; graphContainer.style.bottom = 0;
graphContainer.pickingMode = PickingMode.Position;
graphContainer.focusable = true;
//graphContainer.style.width = 1200;
//graphContainer.style.width = new StyleLength(StyleKeyword.Null); // allow content to determine width
graphContainer = new(OnIMGUI) {
pickingMode = PickingMode.Position,
focusable = true
};
scrollView.contentContainer.Add(graphContainer);
Add(scrollView);
@ -140,7 +133,7 @@ namespace NanoBrain.Unity {
#region Graph
protected virtual void DrawGraph() {
public virtual void DrawGraph() {
if (mode == Mode.Focus)
DrawFocusGraph();
else

View File

@ -4,9 +4,17 @@ using UnityEngine;
namespace NanoBrain.Unity {
/// <summary>
/// The NanoBrain Unity Componnent
/// A NanoBrain which can be used to control a gameobject
/// </summary>
/// This implements the top-level NanoBrain Cluster
/// A NanoBrain is a small neural network which can be used to implement functional behaviour.
/// The network consists of neurons which are connected together with synapses.
/// The output values of the neurons are of type Vector3 to support spatial computing.
///
/// This component is basically a Unity representation of a nanobrain cluster.
/// \sa
/// - \ref NanoBrain::Cluster "Cluster"
/// - \ref NanoBrain::Neuron "Neuron"
[HelpURL("https://passer.life/documentation/nanobrain/Documentation/html/class_nano_brain_1_1_unity_1_1_brain.html")]
public class Brain : MonoBehaviour {
/// <summary>
/// The Cluster prefab from which the cluster is created

View File

@ -45,7 +45,7 @@ namespace NanoBrain {
/// \copydoc NanoBrain::Nucleus::UpdateStateIsolated
public override void UpdateStateIsolated() {
// A memorycell does not have an activation function
var result = Combinator();
var result = Combinator(this.bias, this.synapses);
if (initialized)
// Output the previous, memorized value

View File

@ -12,6 +12,15 @@ namespace NanoBrain {
/// <summary>
/// A neuron is a basic Nucleus
/// </summary>
/// A neuron combines the weighted input from other neurons and applies an activation function to it
/// to compute the output value:
/// \code
/// Vector3 combination = NanoBrain::Neuron::Combinator(bias, synapses);
/// Vector3 output = NanoBrain::Neuron::Activator(combination);
/// \endcode
/// The synapses are connections to other neurons.
/// Each connection has a weight which is used to multiply the output of that other neuron
/// before it is used by the combinator.
[Serializable]
public class Neuron : Nucleus {
@ -436,8 +445,8 @@ namespace NanoBrain {
/// \copydoc NanoBrain::Nucleus::UpdateStateIsolated
public override void UpdateStateIsolated() {
var result = Combinator();
this.outputValue = ApplyActivator(result);
var combination = Combinator(this.bias, this.synapses);
this.outputValue = Activator(combination);
this.lastUpdate = Time.time;
}
@ -446,21 +455,28 @@ namespace NanoBrain {
#if UNITY_MATHEMATICS
/// <summary>
/// The combinator which combines the values from all synapses
/// The combinator which combines the bias with the values from all synapses
/// </summary>
protected Func<float3> Combinator => combinator switch {
CombinatorType.Sum => CombinatorSum,
CombinatorType.Product => CombinatorProduct,
_ => CombinatorSum
};
/// <param name="bias">The bias of the neuron</param>
/// <param name="synapses">The synapses of the neuron</param>
/// <returns></returns>
protected float3 Combinator(float3 bias, List<Synapse> synapses) {
switch (combinator) {
case CombinatorType.Sum: return CombinatorSum(bias, synapses);
case CombinatorType.Product: return CombinatorProduct(bias, synapses);
default: return CombinatorSum(bias, synapses);
}
}
/// <summary>
/// Sum the synapse outputs together
/// Sum the bias and synpase outputs together
/// </summary>
/// <returns>The sum of the synapse outputs</returns>
public float3 CombinatorSum() {
float3 sum = this.bias;
foreach (Synapse synapse in this.synapses) {
/// <param name="bias">The bias of the neuron</param>
/// <param name="synapses">The synapses of the neuron</param>
/// <returns></returns>
public static float3 CombinatorSum(float3 bias, List<Synapse> synapses) {
float3 sum = bias;
foreach (Synapse synapse in synapses) {
synapse.neuron.SleepCheck();
sum += synapse.weight * synapse.neuron.outputValue;
}
@ -470,10 +486,12 @@ namespace NanoBrain {
/// <summary>
/// Multiply the synapse outputs together
/// </summary>
/// <returns>The mutliplcation of the synapse outputs</returns>
public float3 CombinatorProduct() {
float3 product = this.bias;
foreach (Synapse synapse in this.synapses) {
/// <param name="bias">The bias of the neuron</param>
/// <param name="synapses">The synapses of the neuron</param>
/// <returns>The result of the multiplication</returns>
public static float3 CombinatorProduct(float3 bias, List<Synapse> synapses) {
float3 product = bias;
foreach (Synapse synapse in synapses) {
synapse.neuron.SleepCheck();
product *= synapse.weight * synapse.neuron.outputValue;
}
@ -483,34 +501,45 @@ namespace NanoBrain {
#else
/// <summary>
/// The combinator which combines the values from all synapses
/// The combinator which combines the bias with the values from all synapses
/// </summary>
protected Func<Vector3> Combinator => combinator switch {
CombinatorType.Sum => CombinatorSum,
CombinatorType.Product => CombinatorProduct,
_ => CombinatorSum
};
/// <param name="bias">The bias of the neuron</param>
/// <param name="synapses">The synapses of the neuron</param>
/// <returns></returns>
protected Vector3 Combinator(Vector3 bias, List<Synapse> synapses) {
switch (combinator) {
case CombinatorType.Sum: return CombinatorSum(bias, synapses);
case CombinatorType.Product: return CombinatorProduct(bias, synapses);
default: return CombinatorSum(bias, synapses);
}
}
/// <summary>
/// Sum the synapse outputs together
/// Sum the bias and synpase outputs together
/// </summary>
/// <returns>The sum of the synapse outputs</returns>
public Vector3 CombinatorSum() {
Vector3 sum = this.bias;
foreach (Synapse synapse in this.synapses)
/// <param name="bias">The bias of the neuron</param>
/// <param name="synapses">The synapses of the neuron</param>
/// <returns></returns>
public static Vector3 CombinatorSum(Vector3 bias, List<Synapse> synapses) {
float3 sum = bias;
foreach (Synapse synapse in synapses) {
synapse.neuron.SleepCheck();
sum += synapse.weight * synapse.neuron.outputValue;
}
return sum;
}
/// <summary>
/// Multiply the synapse outputs together
/// </summary>
/// <returns>The mutliplcation of the synapse outputs</returns>
public Vector3 CombinatorProduct() {
Vector3 product = this.bias;
foreach (Synapse synapse in this.synapses) {
//product *= synapse.weight * synapse.neuron.outputValue;
product = Vector3.Scale(product, synapse.weight * synapse.neuron.outputValue);
/// <param name="bias">The bias of the neuron</param>
/// <param name="synapses">The synapses of the neuron</param>
/// <returns>The result of the multiplication</returns>
public static Vector3 CombinatorProduct(Vector3 bias, List<Synapse> synapses) {
float3 product = bias;
foreach (Synapse synapse in synapses) {
synapse.neuron.SleepCheck();
product *= synapse.weight * synapse.neuron.outputValue;
}
return product;
}
@ -528,7 +557,7 @@ namespace NanoBrain {
/// <param name="inputValue"></param>
/// <returns>The result of applying the activation function</returns>
// This does not allocate memory and seems faster than a switch expression
float3 ApplyActivator(float3 inputValue) {
protected float3 Activator(float3 inputValue) {
switch (activator) {
case ActivationType.Linear: return ActivatorLinear(inputValue);
case ActivationType.Sqrt: return ActivatorSqrt(inputValue);
@ -625,15 +654,15 @@ namespace NanoBrain {
/// <param name="inputValue"></param>
/// <returns>The result of applying the activation function</returns>
// This does not allocate memory and seems faster than a switch expression
Vector3 ApplyActivator(Vector3 inputValue) {
protected Vector3 Activator(Vector3 inputValue) {
switch (activator) {
case ActivationType.Linear: return ActivatorLinear(inputValue);
case ActivationType.Sqrt: return ActivatorSqrt(inputValue);
case ActivationType.Power: return ActivatorPower(inputValue);
case ActivationType.Reciprocal: return ActivatorReciprocal(inputValue);
case ActivationType.Tanh: return ActivatorTanh(inputValue);
case ActivationType.Binary: return ActivatorBinary(inputValue);
case ActivationType.Normalized: return ActivatorNormalized(inputValue);
// case ActivationType.Tanh: return ActivatorTanh(inputValue);
// case ActivationType.Binary: return ActivatorBinary(inputValue);
// case ActivationType.Normalized: return ActivatorNormalized(inputValue);
default: return ActivatorLinear(inputValue);
}
}

View File

@ -0,0 +1,26 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!114 &11400000
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 60a957541c24c57e78018c202ebb1d9b, type: 3}
m_Name: Breitenberg
m_EditorClassIdentifier: Assembly-CSharp::NanoBrain.Unity.ClusterPrefab
cluster:
name:
parent:
rid: -2
prefab: {fileID: 0}
instanceCount: 0
nuclei: []
references:
version: 2
RefIds:
- rid: -2
type: {class: , ns: , asm: }

View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: f6472e5b4459918cab23832c0545c832
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 11400000
userData:
assetBundleName:
assetBundleVariant:

View File

@ -22,6 +22,8 @@ namespace NanoBrain.Breitenberg {
public Rigidbody rb;
public float turnTorque = 5f; // rotational influence
public Unity.ClusterPrefab brain;
void FixedUpdate() {
float sL = sensorLeft.output;
float sR = sensorRight.output;