From 6e75fff4405fa0ef4840833d5b2ab56d4ae122c4 Mon Sep 17 00:00:00 2001 From: Pascal Serrarens Date: Fri, 29 May 2026 12:18:29 +0200 Subject: [PATCH] Added HelpURLs --- .../html/class_nano_brain_1_1_neuron.html | 4 +- ...nity_1_1_braitenberg_1_1_light_sensor.html | 3 +- ..._1_1_unity_1_1_braitenberg_1_1_sensor.html | 3 +- ...tenberg_1_1_touch_sensor-members.html.meta | 7 ++ ...1_1_braitenberg_1_1_touch_sensor.html.meta | 7 ++ ..._1_1_braitenberg_1_1_touch_sensor.png.meta | 117 ++++++++++++++++++ ..._1_1_braitenberg_1_1_touch_sensor.png.meta | 117 ++++++++++++++++++ Documentation/html/rtf/refman.rtf | 10 +- Documentation/html/search/classes_6.js.meta | 7 ++ Documentation/html/search/classes_7.js.meta | 7 ++ .../html/search/properties_8.js.meta | 7 ++ Documentation/html/search/variables_d.js.meta | 7 ++ .../ScriptableObjects/ClusterPrefab.cs | 1 + Samples/Braitenberg/Scripts/LightSensor.cs | 1 + Samples/Braitenberg/Scripts/Motor.cs | 1 + Samples/Braitenberg/Scripts/Sensor.cs | 25 +--- Samples/Braitenberg/Scripts/TouchSensor.cs | 1 + Samples/Braitenberg/Scripts/Vehicle.cs | 1 + 18 files changed, 298 insertions(+), 28 deletions(-) create mode 100644 Documentation/html/class_nano_brain_1_1_unity_1_1_braitenberg_1_1_touch_sensor-members.html.meta create mode 100644 Documentation/html/class_nano_brain_1_1_unity_1_1_braitenberg_1_1_touch_sensor.html.meta create mode 100644 Documentation/html/class_nano_brain_1_1_unity_1_1_braitenberg_1_1_touch_sensor.png.meta create mode 100644 Documentation/html/rtf/class_nano_brain_1_1_unity_1_1_braitenberg_1_1_touch_sensor.png.meta create mode 100644 Documentation/html/search/classes_6.js.meta create mode 100644 Documentation/html/search/classes_7.js.meta create mode 100644 Documentation/html/search/properties_8.js.meta create mode 100644 Documentation/html/search/variables_d.js.meta diff --git a/Documentation/html/class_nano_brain_1_1_neuron.html b/Documentation/html/class_nano_brain_1_1_neuron.html index 0f64588..e0275ca 100644 --- a/Documentation/html/class_nano_brain_1_1_neuron.html +++ b/Documentation/html/class_nano_brain_1_1_neuron.html @@ -92,8 +92,8 @@ $(function() {

A neuron is a basic Nucleus.

A neuron combines the weighted input from other neurons and applies an activation function to it to compute the output value:

Vector3 combination = NanoBrain::Neuron::Combinator(bias, synapses);
Vector3 output = NanoBrain::Neuron::Activator(combination);
-
float3 Combinator(float3 bias, List< Synapse > synapses)
The combinator which combines the bias with the values from all synapses.
Definition Neuron.cs:341
-
float3 Activator(float3 inputValue)
Apply the activation function to the input.
Definition Neuron.cs:441
+
float3 Combinator(float3 bias, List< Synapse > synapses)
The combinator which combines the bias with the values from all synapses.
Definition Neuron.cs:340
+
float3 Activator(float3 inputValue)
Apply the activation function to the input.
Definition Neuron.cs:440

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.

Inheritance diagram for Neuron:
diff --git a/Documentation/html/class_nano_brain_1_1_unity_1_1_braitenberg_1_1_light_sensor.html b/Documentation/html/class_nano_brain_1_1_unity_1_1_braitenberg_1_1_light_sensor.html index f3b8e02..7241daa 100644 --- a/Documentation/html/class_nano_brain_1_1_unity_1_1_braitenberg_1_1_light_sensor.html +++ b/Documentation/html/class_nano_brain_1_1_unity_1_1_braitenberg_1_1_light_sensor.html @@ -163,7 +163,8 @@ float output [ge

Performs a sampling function to retrieve a new sensor output value.

-
Returns
Sensor output value
+
Returns
0.0
+

This is a dummy implementation which always returns 0.0 because this component is an abstract sensor

Reimplemented from Sensor.

diff --git a/Documentation/html/class_nano_brain_1_1_unity_1_1_braitenberg_1_1_sensor.html b/Documentation/html/class_nano_brain_1_1_unity_1_1_braitenberg_1_1_sensor.html index ba8e5e3..b03afcf 100644 --- a/Documentation/html/class_nano_brain_1_1_unity_1_1_braitenberg_1_1_sensor.html +++ b/Documentation/html/class_nano_brain_1_1_unity_1_1_braitenberg_1_1_sensor.html @@ -157,7 +157,8 @@ float output [ge

Performs a sampling function to retrieve a new sensor output value.

-
Returns
Sensor output value
+
Returns
0.0
+

This is a dummy implementation which always returns 0.0 because this component is an abstract sensor

Reimplemented in LightSensor, and TouchSensor.

diff --git a/Documentation/html/class_nano_brain_1_1_unity_1_1_braitenberg_1_1_touch_sensor-members.html.meta b/Documentation/html/class_nano_brain_1_1_unity_1_1_braitenberg_1_1_touch_sensor-members.html.meta new file mode 100644 index 0000000..2a9f580 --- /dev/null +++ b/Documentation/html/class_nano_brain_1_1_unity_1_1_braitenberg_1_1_touch_sensor-members.html.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: a9c7f0b34010ecd7e91e6daf22bd48f7 +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Documentation/html/class_nano_brain_1_1_unity_1_1_braitenberg_1_1_touch_sensor.html.meta b/Documentation/html/class_nano_brain_1_1_unity_1_1_braitenberg_1_1_touch_sensor.html.meta new file mode 100644 index 0000000..f8be7e4 --- /dev/null +++ b/Documentation/html/class_nano_brain_1_1_unity_1_1_braitenberg_1_1_touch_sensor.html.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 4e39f2f342374e237beb37f70f727762 +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Documentation/html/class_nano_brain_1_1_unity_1_1_braitenberg_1_1_touch_sensor.png.meta b/Documentation/html/class_nano_brain_1_1_unity_1_1_braitenberg_1_1_touch_sensor.png.meta new file mode 100644 index 0000000..0900dbb --- /dev/null +++ b/Documentation/html/class_nano_brain_1_1_unity_1_1_braitenberg_1_1_touch_sensor.png.meta @@ -0,0 +1,117 @@ +fileFormatVersion: 2 +guid: 96024856ea208e4728e8e86944379590 +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: diff --git a/Documentation/html/rtf/class_nano_brain_1_1_unity_1_1_braitenberg_1_1_touch_sensor.png.meta b/Documentation/html/rtf/class_nano_brain_1_1_unity_1_1_braitenberg_1_1_touch_sensor.png.meta new file mode 100644 index 0000000..680da27 --- /dev/null +++ b/Documentation/html/rtf/class_nano_brain_1_1_unity_1_1_braitenberg_1_1_touch_sensor.png.meta @@ -0,0 +1,117 @@ +fileFormatVersion: 2 +guid: e6d9a9d410b135977b2794b9901f8495 +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: diff --git a/Documentation/html/rtf/refman.rtf b/Documentation/html/rtf/refman.rtf index 3fc1b18..8063bb2 100644 --- a/Documentation/html/rtf/refman.rtf +++ b/Documentation/html/rtf/refman.rtf @@ -1678,8 +1678,9 @@ Performs a sampling function to retrieve a new sensor output value. }}\par \par {{\s5\sb90\sa30\keepn\widctlpar\adjustright \b\f1\fs20\cgrid Returns\par}\pard\plain \s82\li720\widctlpar\ql\adjustright \fs20\cgrid {\s17 \sa60 \sb30 -Sensor output value\par -}}}{ +0.0\par +}}This is a dummy implementation which always returns 0.0 because this component is an abstract sensor \par +}{ Reimplemented from {\field {\*\fldinst { HYPERLINK \\l "AAAAAAAAEW" }{}}{\fldrslt {\cs37\ul\cf2 Sensor}}} .}\par } @@ -5427,8 +5428,9 @@ Performs a sampling function to retrieve a new sensor output value. }}\par \par {{\s5\sb90\sa30\keepn\widctlpar\adjustright \b\f1\fs20\cgrid Returns\par}\pard\plain \s82\li720\widctlpar\ql\adjustright \fs20\cgrid {\s17 \sa60 \sb30 -Sensor output value\par -}}}{ +0.0\par +}}This is a dummy implementation which always returns 0.0 because this component is an abstract sensor \par +}{ Reimplemented in {\field {\*\fldinst { HYPERLINK \\l "AAAAAAAAET" }{}}{\fldrslt {\cs37\ul\cf2 LightSensor}}} , and {\field {\*\fldinst { HYPERLINK \\l "AAAAAAAAFD" }{}}{\fldrslt {\cs37\ul\cf2 TouchSensor}}} .}\par diff --git a/Documentation/html/search/classes_6.js.meta b/Documentation/html/search/classes_6.js.meta new file mode 100644 index 0000000..983d1ff --- /dev/null +++ b/Documentation/html/search/classes_6.js.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 3a660a0c5a6eac121a2f0c1f9a59e1fe +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Documentation/html/search/classes_7.js.meta b/Documentation/html/search/classes_7.js.meta new file mode 100644 index 0000000..dfb3429 --- /dev/null +++ b/Documentation/html/search/classes_7.js.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 793684c257751ca56b7f66cae0c8ec7b +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Documentation/html/search/properties_8.js.meta b/Documentation/html/search/properties_8.js.meta new file mode 100644 index 0000000..690cb1d --- /dev/null +++ b/Documentation/html/search/properties_8.js.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: bb515f8df2b8fd885840d93140450f0d +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Documentation/html/search/variables_d.js.meta b/Documentation/html/search/variables_d.js.meta new file mode 100644 index 0000000..221c029 --- /dev/null +++ b/Documentation/html/search/variables_d.js.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: c6bd8d0abaaba24d785386f2a141a6d7 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/Scripts/ScriptableObjects/ClusterPrefab.cs b/Runtime/Scripts/ScriptableObjects/ClusterPrefab.cs index e51b266..3b9e835 100644 --- a/Runtime/Scripts/ScriptableObjects/ClusterPrefab.cs +++ b/Runtime/Scripts/ScriptableObjects/ClusterPrefab.cs @@ -6,6 +6,7 @@ namespace NanoBrain.Unity { /// The Unity ScriptableObject to implement re-usable Cluster Prefabs /// [CreateAssetMenu(menuName = "Passer/Cluster")] + [HelpURL("https://passer.life/documentation/nanobrain/Documentation/html/class_nano_brain_1_1_unity_1_1_cluster_prefab.html")] public class ClusterPrefab : ScriptableObject { /// diff --git a/Samples/Braitenberg/Scripts/LightSensor.cs b/Samples/Braitenberg/Scripts/LightSensor.cs index 1b81483..cf2a2f5 100644 --- a/Samples/Braitenberg/Scripts/LightSensor.cs +++ b/Samples/Braitenberg/Scripts/LightSensor.cs @@ -5,6 +5,7 @@ namespace NanoBrain.Unity.Braitenberg { /// /// A light sensor /// + [HelpURL("https://passer.life/documentation/nanobrain/Documentation/html/class_nano_brain_1_1_unity_1_1_braitenberg_1_1_light_sensor.html")] public class LightSensor : Sensor { /// /// If true, perform occlusion checks with raycasts diff --git a/Samples/Braitenberg/Scripts/Motor.cs b/Samples/Braitenberg/Scripts/Motor.cs index 40736da..c70c4bd 100644 --- a/Samples/Braitenberg/Scripts/Motor.cs +++ b/Samples/Braitenberg/Scripts/Motor.cs @@ -6,6 +6,7 @@ namespace NanoBrain.Unity.Braitenberg { /// A powered wheel collider, controlled by a NanoBrain::Neuron /// [RequireComponent(typeof(WheelCollider))] + [HelpURL("https://passer.life/documentation/nanobrain/Documentation/html/class_nano_brain_1_1_unity_1_1_braitenberg_1_1_motor.html")] public class Motor : MonoBehaviour { /// /// The name of the NanoBrain::Neuron to control this wheel diff --git a/Samples/Braitenberg/Scripts/Sensor.cs b/Samples/Braitenberg/Scripts/Sensor.cs index 54d7980..8ce13d9 100644 --- a/Samples/Braitenberg/Scripts/Sensor.cs +++ b/Samples/Braitenberg/Scripts/Sensor.cs @@ -7,6 +7,7 @@ namespace NanoBrain.Unity.Braitenberg { /// A non-directional sensor /// /// The sensor has a field of view, but the signal returned does not include a direction + [HelpURL("https://passer.life/documentation/nanobrain/Documentation/html/class_nano_brain_1_1_unity_1_1_braitenberg_1_1_sensor.html")] public class Sensor : MonoBehaviour { /// /// Maximum distance the sensor detects anything @@ -79,27 +80,11 @@ namespace NanoBrain.Unity.Braitenberg { /// /// Performs a sampling function to retrieve a new sensor output value /// - /// Sensor output value - // Cast a short set of rays in a cone and accumulate "brightness" from hits. + /// 0.0 + /// This is a dummy implementation which always returns 0.0 + /// because this component is an abstract sensor protected virtual float SampleSensor() { - int rays = 7; - float halfAngle = 30f; - float total = 0f; - - for (int i = 0; i < rays; i++) { - float t = rays == 1 ? 0.5f : (float)i / (rays - 1); - float angle = Mathf.Lerp(-halfAngle, halfAngle, t); - Vector3 dir = Quaternion.AngleAxis(angle, this.transform.up) * this.transform.forward; - - //Debug.DrawRay(this.transform.position, dir * sensorRange); - if (Physics.Raycast(this.transform.position, dir, out RaycastHit hit, sensorRange, senseLayer)) { - // Strength inversely proportional to distance, clamped to [0,1] - float str = 1f - (hit.distance / sensorRange); - // You can also sample material emission or color here if desired - total += Mathf.Clamp01(str); - } - } - return Mathf.Clamp01(total / rays); + return 0.0f; } } } \ No newline at end of file diff --git a/Samples/Braitenberg/Scripts/TouchSensor.cs b/Samples/Braitenberg/Scripts/TouchSensor.cs index fdf8c8a..3b118f3 100644 --- a/Samples/Braitenberg/Scripts/TouchSensor.cs +++ b/Samples/Braitenberg/Scripts/TouchSensor.cs @@ -5,6 +5,7 @@ namespace NanoBrain.Unity.Braitenberg { /// /// A sensor which can detect contacts with static GameObjects or Rigidbodies /// + [HelpURL("https://passer.life/documentation/nanobrain/Documentation/html/class_nano_brain_1_1_unity_1_1_braitenberg_1_1_touch_sensor.html")] public class TouchSensor : Sensor { /// diff --git a/Samples/Braitenberg/Scripts/Vehicle.cs b/Samples/Braitenberg/Scripts/Vehicle.cs index 61094f1..cef2dcf 100644 --- a/Samples/Braitenberg/Scripts/Vehicle.cs +++ b/Samples/Braitenberg/Scripts/Vehicle.cs @@ -6,6 +6,7 @@ namespace NanoBrain.Unity.Braitenberg { /// A Braitenberg style vehicle with two sensors and two motors, powered by a Nanobrain /// [RequireComponent(typeof(Rigidbody))] + [HelpURL("https://passer.life/documentation/nanobrain/Documentation/html/class_nano_brain_1_1_unity_1_1_braitenberg_1_1_vehicle.html")] public class Vehicle : MonoBehaviour { /// /// The NanoBrain::Cluster controlling the vehicle