source: cpp/frams/config/f0-SDK.def @ 934

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

Introduced 'volume' field available by getMinPart(), getMaxPart(), getDefPart() for genetic operators to limit the range of volumes (~mass) in simulation of solids

  • Property svn:eol-style set to native
File size: 11.4 KB
Line 
1CLASS(Model,f0_model,m)
2GROUP(Properties)
3GROUP(Visual)
4PROP(se,0,1024,startenergy,f,,,,startenergy)
5PROP(Vstyle,1,0,vis_style,s,0,0,,vis_style)
6ENDCLASS
7
8CLASS(Part,f0_part,p)
9GROUP(Geometry)
10GROUP(Other properties)
11GROUP(Visual)
12PROP(x,0,1024,position.x,f,,,,p.x)
13PROP(y,0,1024,position.y,f,,,,p.y)
14PROP(z,0,1024,position.z,f,,,,p.z)
15PROP(sh,0,0,shape,d,0,3,0,shape)
16PROP(s,0,0,size,f,0.1,10.0,1.0,size)
17PROP(sx,0,0,scale.x,f,0.001,1000.0,1.0,scale.x)
18PROP(sy,0,0,scale.y,f,0.001,1000.0,1.0,scale.y)
19PROP(sz,0,0,scale.z,f,0.001,1000.0,1.0,scale.z)
20XPROP(h,1,0,hollow,f,0,1,0,hollow)
21XPROP(dn,1,0,density,f,0.2,5.0,1.0,density)
22XPROP(fr,1,0,friction,f,0.0,4.0,0.4,friction)
23XPROP(ing,1,0,ingestion,f,0.0,1.0,0.25,ingest)
24XPROP(as,1,0,assimilation,f,0.0,1.0,0.25,assim)
25PROP(rx,0,0,rot.x,f,,,,rot.x)
26PROP(ry,0,1024,rot.y,f,,,,rot.y)
27PROP(rz,0,1024,rot.z,f,,,,rot.z)
28PROP(i,1,0,`info',s,,,,info)
29PROP(Vstyle,2,0,vis_style,s,0,0,part,vis_style)
30XPROP(vs,2,0,visual thickness,f,0.05,0.7,0.2,vsize)
31XPROP(vr,2,0,red component,f,0.0,1.0,1.0,vcolor.x)
32XPROP(vg,2,1024,green component,f,0.0,1.0,1.0,vcolor.y)
33XPROP(vb,2,1024,blue component,f,0.0,1.0,1.0,vcolor.z)
34ENDCLASS
35
36CLASS(Part_MinMaxDef,f0_part_minmaxdef,p)
37GROUP(Geometry)
38PROP(f,0,0,volume,f,0.1,10,1,volume)
39ENDCLASS
40
41CLASS(Joint,f0_joint,j)
42GROUP(Connections)
43GROUP(Geometry)
44GROUP(Other properties)
45GROUP(Visual)
46PROP(p1,0,1024,`part1 ref#',d,-1,999999,-1,p1_refno)
47PROP(p2,0,1024,`part2 ref#',d,-1,999999,-1,p2_refno)
48PROP(rx,1,0,rotation.x,f,,,,rot.x)
49PROP(ry,1,1024,rotation.y,f,,,,rot.y)
50PROP(rz,1,1024,rotation.z,f,,,,rot.z)
51PROP(dx,1,0,delta.x,f,-2,2,0,d.x)
52PROP(dy,1,1024,delta.y,f,-2,2,0,d.y)
53PROP(dz,1,1024,delta.z,f,-2,2,0,d.z)
54PROP(sh,1,0,shape,d,0,3,0,shape)
55PROP(hx,1,0,hinge position.x,f,,,0,hinge_pos.x)
56PROP(hy,1,1024,hinge position.y,f,,,0,hinge_pos.y)
57PROP(hz,1,1024,hinge position.z,f,,,0,hinge_pos.z)
58PROP(hrx,1,0,hinge rotation.x,f,,,0,hinge_rot.x)
59PROP(hry,1,1024,hinge rotation.y,f,,,0,hinge_rot.y)
60PROP(hrz,1,1024,hinge rotation.z,f,,,0,hinge_rot.z)
61PROP(hxn,1,0,hinge x negative limit,f,-6.2832,0,-1.5708,hinge_limit_x[0])
62PROP(hxp,1,1024,hinge x positive limit,f,0,6.2832,1.5708,hinge_limit_x[1])
63PROP(hyn,1,0,hinge y negative limit,f,-6.2832,0,-1.5708,hinge_limit_y[0])
64PROP(hyp,1,1024,hinge y positive limit,f,0,6.2832,1.5708,hinge_limit_y[1])
65XPROP(stif,2,0,stiffness,f,0.0,1.0,1.0,stif)
66XPROP(rotstif,2,0,rotation stiffness,f,0.0,1.0,1.0,rotstif)
67PROP(stam,2,0,stamina,f,0.0,1.0,0.25,stamina)
68PROP(i,2,0,`info',s,,,,info)
69PROP(Vstyle,3,0,vis_style,s,0,0,joint,vis_style)
70XPROP(vr,3,0,red component,f,0.0,1.0,1.0,vcolor.x)
71XPROP(vg,3,1024,green component,f,0.0,1.0,1.0,vcolor.y)
72XPROP(vb,3,1024,blue component,f,0.0,1.0,1.0,vcolor.z)
73ENDCLASS
74
75CLASS(Joint,f0_nodeltajoint,j,NOXML)
76GROUP(Connections)
77GROUP(Geometry)
78GROUP(Other properties)
79GROUP(Visual)
80PROP(p1,0,1024,`part1 ref#',d,-1,999999,-1,p1_refno)
81PROP(p2,0,1024,`part2 ref#',d,-1,999999,-1,p2_refno)
82PROP(sh,1,0,shape,d,0,3,0,shape)
83PROP(hx,1,0,hinge position.x,f,,,0,hinge_pos.x)
84PROP(hy,1,1024,hinge position.y,f,,,0,hinge_pos.y)
85PROP(hz,1,1024,hinge position.z,f,,,0,hinge_pos.z)
86PROP(hrx,1,0,hinge rotation.x,f,,,0,hinge_rot.x)
87PROP(hry,1,1024,hinge rotation.y,f,,,0,hinge_rot.y)
88PROP(hrz,1,1024,hinge rotation.z,f,,,0,hinge_rot.z)
89PROP(hxn,1,0,hinge x negative limit,f,-6.2832,0,-1.5708,hinge_limit_x[0])
90PROP(hxp,1,1024,hinge x positive limit,f,0,6.2832,1.5708,hinge_limit_x[1])
91PROP(hyn,1,0,hinge y negative limit,f,-6.2832,0,-1.5708,hinge_limit_y[0])
92PROP(hyp,1,1024,hinge y positive limit,f,0,6.2832,1.5708,hinge_limit_y[1])
93XPROP(stif,2,0,stiffness,f,0.0,1.0,1.0,stif)
94XPROP(rotstif,2,0,rotation stiffness,f,0.0,1.0,1.0,rotstif)
95PROP(stam,2,0,stamina,f,0.0,1.0,0.25,stamina)
96PROP(i,2,0,`info',s,,,,info)
97PROP(Vstyle,3,0,vis_style,s,0,0,joint,vis_style)
98XPROP(vr,3,0,red component,f,0.0,1.0,1.0,vcolor.x)
99XPROP(vg,3,1024,green component,f,0.0,1.0,1.0,vcolor.y)
100XPROP(vb,3,1024,blue component,f,0.0,1.0,1.0,vcolor.z)
101ENDCLASS
102
103CLASS(Neuro,f0_neuro,n)
104GROUP(Connections)
105GROUP(Other)
106GROUP(Visual)
107PROP(p,0,0,`part ref#',d,-1,999999,-1,part_refno)
108PROP(j,0,0,`joint ref#',d,-1,999999,-1,joint_refno)
109PROP(d,1,0,details,s,,,N,details,GETSET)
110PROP(i,1,0,`info',s,,,,info)
111PROP(Vstyle,2,0,vis_style,s,0,0,neuro,vis_style)
112PROP(getInputCount,0,1+2,`input count',d,,,,inputCount,GETONLY)
113PROP(getInputNeuroDef,0,0,`get input neuron',p oNeuroDef(d),,,,p_getInputNeuroDef,PROCEDURE)
114PROP(getInputNeuroIndex,0,0,`get input neuron index',p d(d),,,,p_getInputNeuroIndex,PROCEDURE)
115PROP(getInputWeight,0,0,`get input weight',p f(d),,,,p_getInputWeight,PROCEDURE)
116PROP(classObject,0,1+2,`neuron class',oNeuroClass,,,,classObject,GETONLY)
117ENDCLASS
118
119CLASS(NeuroConn,f0_neuroconn,c)
120GROUP(Connection)
121GROUP(Other)
122PROP(n1,0,1024,`this neuro ref#',d,-1,999999,-1,n1_refno)
123PROP(n2,0,1024,`connected neuro ref#',d,-1,999999,-1,n2_refno)
124PROP(w,0,1024,weight,f,-999999,999999,1.0,weight)
125PROP(i,1,0,`info',s,,,,info)
126ENDCLASS
127
128NEUROCLASS(StdNeuron,N,Neuron,`Standard neuron',-1,1,0)
129VISUALHINTS(DontShowClass)
130NEUROPROP(in,1,0,Inertia,f,0.0,1.0,0.8,inertia)
131NEUROPROP(fo,1,0,Force,f,0.0,999.0,0.04,force)
132NEUROPROP(si,1,0,Sigmoid,f,-99999.0,99999.0,2.0,sigmo)
133NEUROPROP(s,2,0,State,f,-1.0,1.0,0.0,newstate)
134ENDNEUROCLASS
135
136NEUROCLASS(StdUNeuron,Nu,`Unipolar neuron [EXPERIMENTAL!]',`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)
137NEUROPROP(in,1,0,Inertia,f,0.0,1.0,0.8,inertia)
138NEUROPROP(fo,1,0,Force,f,0.0,999.0,0.04,force)
139NEUROPROP(si,1,0,Sigmoid,f,-99999.0,99999.0,2.0,sigmo)
140NEUROPROP(s,2,0,State,f,-1.0,1.0,0.0,newstate)
141ENDNEUROCLASS
142
143NEUROCLASS(Gyro,G,Gyroscope,`Equilibrium sensor.\n0=the stick is horizontal\n+1/-1=the stick is vertical',0,1,2)
144VISUALHINTS(ReceptorClass)
145SYMBOL(`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')
146ENDNEUROCLASS
147
148NEUROCLASS(Touch,T,Touch,`Touch sensor.\n-1=no contact\n0=just touching\n>0=pressing, value depends on the force applied',0,1,1)
149VISUALHINTS(ReceptorClass)
150SYMBOL(`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')
151NEUROPROP(r,1,0,Range,f,0.0,1.0,1.0,range)
152ENDNEUROCLASS
153
154NEUROCLASS(Smell,S,Smell,`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)
155VISUALHINTS(ReceptorClass)
156SYMBOL(`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')
157ENDNEUROCLASS
158
159NEUROCLASS(Const,*,Constant,Constant value,0,1,0)
160VISUALHINTS(Invisible)
161SYMBOL(`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')
162ENDNEUROCLASS
163
164NEUROCLASS(BendMuscle,|,Bend muscle,,1,0,2)
165SHAPETYPE(BallAndStickShapeType)
166VISUALHINTS(DontShowClass+EffectorClass+V1BendMuscle+AtFirstPart)
167SYMBOL(`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')
168NEUROPROP(p,0,0,power,f,0.01,1.0,0.25,power)
169NEUROPROP(r,0,0,bending range,f,0.0,1.0,1.0,bendrange)
170ENDNEUROCLASS
171
172NEUROCLASS(RotMuscle,@,Rotation muscle,,1,0,2)
173SHAPETYPE(BallAndStickShapeType)
174VISUALHINTS(DontShowClass+EffectorClass+V1RotMuscle+AtFirstPart)
175SYMBOL(`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')
176NEUROPROP(p,0,0,power,f,0.01,1.0,1.0,power)
177ENDNEUROCLASS
178
179NEUROCLASS(SolidMuscle,M,Muscle,,1,0,2)
180SHAPETYPE(SolidsShapeType)
181VISUALHINTS(EffectorClass+AtFirstPart+SolidMuscleFlag)
182SYMBOL(`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')
183NEUROPROP(p,0,0,power,f,0.01,1.0,1.0,power)
184NEUROPROP(a,0,0,axis,d,0,1,0,axis)
185ENDNEUROCLASS
186
187NEUROCLASS(Diff,D,Differentiate,Calculate the difference between the current and previous input value. Multiple inputs are aggregated with respect to their weights,-1,1,0)
188SYMBOL(`3,3,25,0,25,100,75,50,25,0,1,75,50,100,50,3,44,42,51,57,36,57,44,42')
189ENDNEUROCLASS
190
191NEUROCLASS(FuzzyNeuro,Fuzzy,Fuzzy system [EXPERIMENTAL!],Refer to publications to learn more about this neuron.,-1,1,0)
192SYMBOL(`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')
193NEUROPROP(ns,0,0,number of fuzzy sets,d,1,,,fuzzySetsNr)
194NEUROPROP(nr,0,0,number of rules,d,1,,,rulesNr)
195NEUROPROP(fs,0,0,fuzzy sets,s,0,-1,,fuzzySetString)
196NEUROPROP(fr,0,0,fuzzy rules,s,0,-1,,fuzzyRulesString)
197ENDNEUROCLASS
198
199NEUROCLASS(Sticky,Sti,Sticky [EXPERIMENTAL!],,1,0,1)
200SHAPETYPE(BallAndStickShapeType)
201VISUALHINTS(EffectorClass)
202ENDNEUROCLASS
203
204NEUROCLASS(LinearMuscle,LMu,Linear muscle [EXPERIMENTAL!],,1,0,2)
205SHAPETYPE(BallAndStickShapeType)
206VISUALHINTS(EffectorClass+LinearMuscleFlag)
207NEUROPROP(p,0,0,power,f,0.01,1.0,1.0,power)
208ENDNEUROCLASS
209
210NEUROCLASS(WaterDetect,Water,Water detector,`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)
211VISUALHINTS(ReceptorClass)
212ENDNEUROCLASS
213
214NEUROCLASS(Energy,Energy,Energy level,`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)
215VISUALHINTS(ReceptorClass)
216ENDNEUROCLASS
217
218NEUROCLASS(Channelize,Ch,Channelize,`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)
219SYMBOL(`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')
220ENDNEUROCLASS
221
222NEUROCLASS(ChMux,ChMux,Channel multiplexer,`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)
223SYMBOL(`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')
224ENDNEUROCLASS
225
226NEUROCLASS(ChSel,ChSel,Channel selector,`Outputs a single channel (selected by the \"ch\" parameter) from multichannel input',1,1,0)
227SYMBOL(`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')
228NEUROPROP(ch,0,0,channel,d,,,,ch)
229ENDNEUROCLASS
230
231NEUROCLASS(Random,Rnd,Random noise,`Generates random noise (subsequent random values in the range of -1..+1)',0,1,0)
232ENDNEUROCLASS
233
234NEUROCLASS(Sinus,Sin,Sinus generator,`Output frequency = f0+input',1,1,0)
235SYMBOL(`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')
236NEUROPROP(f0,0,0,base frequency,f,-1.0,1.0,0.06283185307,f0)
237NEUROPROP(t,0,0,time,f,0,6.283185307,0,t)
238ENDNEUROCLASS
Note: See TracBrowser for help on using the repository browser.