source: cpp/frams/neuro/neurocls-f0-SDK-library.h @ 969

Last change on this file since 969 was 952, checked in by Maciej Komosinski, 4 years ago

Added new receptors (Gp:"gyroscope" on a Part, Tp:Touch-proximity and Tc:Touch-contact) and improved existing ones (T, G)

  • Property svn:eol-style set to native
File size: 10.3 KB
Line 
1// This file is a part of Framsticks SDK.  http://www.framsticks.com/
2// Copyright (C) 1999-2015  Maciej Komosinski and Szymon Ulatowski.
3// See LICENSE.txt for details.
4
5
6// do not edit - generated automatically from "f0.def"
7// (to be included in "neurolibrary.cpp")
8
9
10
11
12
13
14
15     
16static ParamEntry NI_StdNeuron_tab[]={
17{"Neuron",1, 4 ,"N",},
18
19{"in",1,0,"Inertia","f 0.0 1.0 0.8",},
20{"fo",1,0,"Force","f 0.0 999.0 0.04",},
21{"si",1,0,"Sigmoid","f -99999.0 99999.0 2.0",},
22{"s",2,0,"State","f -1.0 1.0 0.0",},
23 
24{0,0,0,},};
25addClass(new NeuroClass(NI_StdNeuron_tab,"Standard neuron",-1,1,0, NULL,false, 2, 3));
26
27     
28static ParamEntry NI_StdUNeuron_tab[]={
29{"Unipolar neuron [EXPERIMENTAL!]",1, 4 ,"Nu",},
30{"in",1,0,"Inertia","f 0.0 1.0 0.8",},
31{"fo",1,0,"Force","f 0.0 999.0 0.04",},
32{"si",1,0,"Sigmoid","f -99999.0 99999.0 2.0",},
33{"s",2,0,"State","f -1.0 1.0 0.0",},
34 
35{0,0,0,},};
36addClass(new NeuroClass(NI_StdUNeuron_tab,"Works like standard neuron (N) but the output value is scaled to 0...+1 instead of -1...+1.\nHaving 0 as one of the saturation states should help in \"gate circuits\", where input signal is passed through or blocked depending on the other singal.",-1,1,0, NULL,false, 0, 3));
37
38      static int Gyro_xy[]={83,8,7,100,50,90,50,90,40,70,40,80,50,70,60,90,60,90,50,12,43,24,48,24,48,19,38,19,38,24,43,24,43,54,48,54,48,64,43,69,38,64,38,54,43,54,5,63,69,58,74,48,79,38,79,28,74,23,69,1,43,79,43,74,1,23,69,26,66,1,63,69,60,66,1,55,76,53,73,1,31,75,33,72};   
39static ParamEntry NI_Gyro_tab[]={
40{"Gyroscope",1, 0 ,"G",},
41
42
43
44 
45{0,0,0,},};
46addClass(new NeuroClass(NI_Gyro_tab,"Tilt sensor.\nSignal is proportional to sin(angle) = most sensitive in horizontal orientation.\n0=the stick is horizontal\n+1/-1=the stick is vertical",0,1,2, Gyro_xy,false, 32, 1));
47
48      static int GyroP_xy[]={83,8,7,100,50,90,50,90,40,70,40,80,50,70,60,90,60,90,50,12,43,24,48,24,48,19,38,19,38,24,43,24,43,54,48,54,48,64,43,69,38,64,38,54,43,54,5,63,69,58,74,48,79,38,79,28,74,23,69,1,43,79,43,74,1,23,69,26,66,1,63,69,60,66,1,55,76,53,73,1,31,75,33,72};   
49static ParamEntry NI_GyroP_tab[]={
50{"Part Gyroscope",1, 2 ,"Gp",},
51
52
53{"ry",1,0,"rotation.y","f -6.282 6.282 0",},
54{"rz",1,0,"rotation.z","f -6.282 6.282 0",},
55 
56{0,0,0,},};
57addClass(new NeuroClass(NI_GyroP_tab,"Tilt sensor. Signal is directly proportional to the tilt angle.\n0=the part X axis is horizontal\n+1/-1=the axis is vertical",0,1,1, GyroP_xy,false, 32, 3));
58
59      static int Touch_xy[]={43,2,7,100,50,90,50,90,40,70,40,80,50,70,60,90,60,90,50,11,75,50,65,50,60,55,55,45,50,55,45,45,40,50,35,50,30,45,25,50,30,55,35,50};   
60static ParamEntry NI_Touch_tab[]={
61{"Touch",1, 3 ,"T",},
62
63
64{"r",1,0,"Range","f 0.0 1.0 1.0",},
65{"ry",1,0,"rotation.y","f -6.282 6.282 0",},
66{"rz",1,0,"rotation.z","f -6.282 6.282 0",},
67 
68{0,0,0,},};
69addClass(new NeuroClass(NI_Touch_tab,"Touch and proximity sensor (Tc+Tp combined)\n-1=no contact\n0=just touching\n>0=pressing, value depends on the force applied (not implemented in ODE mode)",0,1,1, Touch_xy,false, 32, 3));
70
71      static int TouchC_xy[]={43,2,7,100,50,90,50,90,40,70,40,80,50,70,60,90,60,90,50,11,75,50,65,50,60,55,55,45,50,55,45,45,40,50,35,50,30,45,25,50,30,55,35,50};   
72static ParamEntry NI_TouchC_tab[]={
73{"Touch contact",1, 0 ,"Tc",},
74
75
76 
77{0,0,0,},};
78addClass(new NeuroClass(NI_TouchC_tab,"Touch sensor.\n-1=no contact\n0=the Part is touching the obstacle\n>0=pressing, value depends on the force applied (not implemented in ODE mode)",0,1,1, TouchC_xy,false, 32, 3));
79
80      static int TouchP_xy[]={43,2,7,100,50,90,50,90,40,70,40,80,50,70,60,90,60,90,50,11,75,50,65,50,60,55,55,45,50,55,45,45,40,50,35,50,30,45,25,50,30,55,35,50};   
81static ParamEntry NI_TouchP_tab[]={
82{"Touch proximity",1, 3 ,"Tp",},
83
84
85{"r",1,0,"Range","f 0.0 1.0 1.0",},
86{"ry",1,0,"rotation.y","f -6.282 6.282 0",},
87{"rz",1,0,"rotation.z","f -6.282 6.282 0",},
88 
89{0,0,0,},};
90addClass(new NeuroClass(NI_TouchP_tab,"Proximity sensor detecting obstacles along the X axis.\n-1=distance is \r\' or more\n0=zero distance'",0,1,1, TouchP_xy,false, 32, 3));
91
92      static int Smell_xy[]={64,5,7,100,50,90,50,90,40,70,40,80,50,70,60,90,60,90,50,3,10,40,15,45,15,55,10,60,5,20,30,25,35,30,45,30,55,25,65,20,70,4,15,35,20,40,22,50,20,60,15,65,5,75,50,50,50,45,45,40,50,45,55,50,50};   
93static ParamEntry NI_Smell_tab[]={
94{"Smell",1, 0 ,"S",},
95
96
97 
98{0,0,0,},};
99addClass(new NeuroClass(NI_Smell_tab,"Smell sensor. Aggregated \"smell of energy\" experienced from all energy objects (creatures and food pieces).\nClose objects have bigger influence than the distant ones: for each energy source, its partial feeling is proportional to its energy/(distance^2)",0,1,1, Smell_xy,false, 32, 3));
100
101      static int Const_xy[]={29,4,4,26,27,26,73,73,73,73,27,26,27,1,73,50,100,50,1,56,68,46,68,2,41,47,51,32,51,68};   
102static ParamEntry NI_Const_tab[]={
103{"Constant",1, 0 ,"*",},
104
105
106 
107{0,0,0,},};
108addClass(new NeuroClass(NI_Const_tab,"Constant value",0,1,0, Const_xy,false, 1, 3));
109
110      static int BendMuscle_xy[]={63,6,5,25,40,35,40,45,50,35,60,25,60,25,40,4,65,85,65,50,75,50,75,85,65,85,3,65,56,49,29,57,24,72,50,4,68,53,70,53,70,55,68,55,68,53,5,50,21,60,15,70,14,79,15,87,20,81,10,1,86,20,77,21};   
111static ParamEntry NI_BendMuscle_tab[]={
112{"Bend muscle",1, 2 ,"|",},
113
114
115
116{"p",0,0,"power","f 0.01 1.0 0.25",},
117{"r",0,0,"bending range","f 0.0 1.0 1.0",},
118 
119{0,0,0,},};
120addClass(new NeuroClass(NI_BendMuscle_tab,"",1,0,2, BendMuscle_xy,false, 2+16+64+4, 1));
121
122      static int RotMuscle_xy[]={62,5,5,25,40,35,40,45,50,35,60,25,60,25,40,4,65,85,65,50,75,50,75,85,65,85,1,69,10,77,17,10,59,15,57,17,57,22,60,26,69,27,78,26,82,21,82,16,79,12,69,10,80,6,3,65,50,65,20,75,20,75,50};   
123static ParamEntry NI_RotMuscle_tab[]={
124{"Rotation muscle",1, 1 ,"@",},
125
126
127
128{"p",0,0,"power","f 0.01 1.0 1.0",},
129 
130{0,0,0,},};
131addClass(new NeuroClass(NI_RotMuscle_tab,"",1,0,2, RotMuscle_xy,false, 2+16+128+4, 1));
132
133      static int SolidMuscle_xy[]={63,6,5,25,40,35,40,45,50,35,60,25,60,25,40,4,65,85,65,50,75,50,75,85,65,85,3,65,56,49,29,57,24,72,50,4,68,53,70,53,70,55,68,55,68,53,5,50,21,60,15,70,14,79,15,87,20,81,10,1,86,20,77,21};   
134static ParamEntry NI_SolidMuscle_tab[]={
135{"Muscle for solids",1, 2 ,"M",},
136
137
138
139{"p",0,0,"power","f 0.01 1.0 1.0",},
140{"a",0,0,"axis","d 0 1 0",},
141 
142{0,0,0,},};
143addClass(new NeuroClass(NI_SolidMuscle_tab,"",1,0,2, SolidMuscle_xy,false, 16+4+512, 2));
144
145      static int Diff_xy[]={24,3,3,25,0,25,100,75,50,25,0,1,75,50,100,50,3,44,42,51,57,36,57,44,42};   
146static ParamEntry NI_Diff_tab[]={
147{"Differentiate",1, 0 ,"D",},
148
149 
150{0,0,0,},};
151addClass(new NeuroClass(NI_Diff_tab,"Calculate the difference between the current and previous input value. Multiple inputs are aggregated with respect to their weights",-1,1,0, Diff_xy,false, 0, 3));
152
153      static int FuzzyNeuro_xy[]={44,5,2,30,65,37,37,44,65,3,37,65,44,37,51,37,58,65,2,51,65,58,37,65,65,6,100,50,70,50,70,25,25,10,25,90,70,75,70,50,1,70,65,25,65};   
154static ParamEntry NI_FuzzyNeuro_tab[]={
155{"Fuzzy system [EXPERIMENTAL!]",1, 4 ,"Fuzzy",},
156
157{"ns",0,0,"number of fuzzy sets","d 1  ",},
158{"nr",0,0,"number of rules","d 1  ",},
159{"fs",0,0,"fuzzy sets","s 0 -1 ",},
160{"fr",0,0,"fuzzy rules","s 0 -1 ",},
161 
162{0,0,0,},};
163addClass(new NeuroClass(NI_FuzzyNeuro_tab,"Refer to publications to learn more about this neuron.",-1,1,0, FuzzyNeuro_xy,false, 0, 3));
164
165     
166static ParamEntry NI_Sticky_tab[]={
167{"Sticky [EXPERIMENTAL!]",1, 0 ,"Sti",},
168
169
170 
171{0,0,0,},};
172addClass(new NeuroClass(NI_Sticky_tab,"",1,0,1, NULL,false, 16, 1));
173
174     
175static ParamEntry NI_LinearMuscle_tab[]={
176{"Linear muscle [EXPERIMENTAL!]",1, 1 ,"LMu",},
177
178
179{"p",0,0,"power","f 0.01 1.0 1.0",},
180 
181{0,0,0,},};
182addClass(new NeuroClass(NI_LinearMuscle_tab,"",1,0,2, NULL,false, 16+256, 1));
183
184     
185static ParamEntry NI_WaterDetect_tab[]={
186{"Water detector",1, 0 ,"Water",},
187
188 
189{0,0,0,},};
190addClass(new NeuroClass(NI_WaterDetect_tab,"Output signal:\n0=on or above water surface\n1=under water (deeper than 1)\n0..1=in the transient area just below water surface",0,1,1, NULL,false, 32, 3));
191
192     
193static ParamEntry NI_Energy_tab[]={
194{"Energy level",1, 0 ,"Energy",},
195
196 
197{0,0,0,},};
198addClass(new NeuroClass(NI_Energy_tab,"The current energy level divided by the initial energy level.\nUsually falls from initial 1.0 down to 0.0 and then the creature dies. It can rise above 1.0 if enough food is ingested",0,1,0, NULL,false, 32, 3));
199
200      static int Channelize_xy[]={57,10,4,25,0,25,100,75,70,75,30,25,0,1,75,50,100,50,1,70,50,55,50,1,30,80,55,50,1,30,20,55,50,1,30,35,55,50,1,30,45,55,50,1,30,55,55,50,1,61,53,65,47,1,30,65,55,50};   
201static ParamEntry NI_Channelize_tab[]={
202{"Channelize",1, 0 ,"Ch",},
203
204 
205{0,0,0,},};
206addClass(new NeuroClass(NI_Channelize_tab,"Combines all input signals into a single multichannel output; Note: ChSel and ChMux are the only neurons which support multiple channels. Other neurons discard everything except the first channel.",-1,1,0, Channelize_xy,false, 0, 3));
207
208      static int ChMux_xy[]={52,7,4,25,0,25,100,75,70,75,30,25,0,1,75,50,100,50,1,70,50,55,50,3,50,55,55,50,50,45,50,55,3,30,67,45,67,45,50,50,50,1,35,70,39,64,2,30,33,53,33,53,48};   
209static ParamEntry NI_ChMux_tab[]={
210{"Channel multiplexer",1, 0 ,"ChMux",},
211
212 
213{0,0,0,},};
214addClass(new NeuroClass(NI_ChMux_tab,"Outputs the selected channel from the second (multichannel) input. The first input is used as the selector value (-1=select first channel, .., 1=last channel)",2,1,0, ChMux_xy,false, 0, 3));
215
216      static int ChSel_xy[]={41,6,4,25,0,25,100,75,70,75,30,25,0,1,75,50,100,50,1,70,50,55,50,3,50,55,55,50,50,45,50,55,1,30,50,50,50,1,35,53,39,47};   
217static ParamEntry NI_ChSel_tab[]={
218{"Channel selector",1, 1 ,"ChSel",},
219
220{"ch",0,0,"channel","d   ",},
221 
222{0,0,0,},};
223addClass(new NeuroClass(NI_ChSel_tab,"Outputs a single channel (selected by the \"ch\" parameter) from multichannel input",1,1,0, ChSel_xy,false, 0, 3));
224
225     
226static ParamEntry NI_Random_tab[]={
227{"Random noise",1, 0 ,"Rnd",},
228 
229{0,0,0,},};
230addClass(new NeuroClass(NI_Random_tab,"Generates random noise (subsequent random values in the range of -1..+1)",0,1,0, NULL,false, 0, 3));
231
232      static int Sinus_xy[]={46,3,12,75,50,71,37,62,28,50,25,37,28,28,37,25,50,28,62,37,71,50,75,62,71,71,62,75,50,1,75,50,100,50,5,35,50,40,35,45,35,55,65,60,65,65,50};   
233static ParamEntry NI_Sinus_tab[]={
234{"Sinus generator",1, 2 ,"Sin",},
235
236{"f0",0,0,"base frequency","f -1.0 1.0 0.06283185307",},
237{"t",0,0,"time","f 0 6.283185307 0",},
238 
239{0,0,0,},};
240addClass(new NeuroClass(NI_Sinus_tab,"Output frequency = f0+input",1,1,0, Sinus_xy,false, 0, 3));
Note: See TracBrowser for help on using the repository browser.