@genocode/core 0.3.0 → 0.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (65) hide show
  1. package/dist/ast.d.ts +17 -1
  2. package/dist/ast.d.ts.map +1 -1
  3. package/dist/ast.js.map +1 -1
  4. package/dist/builtins.d.ts +1 -1
  5. package/dist/builtins.d.ts.map +1 -1
  6. package/dist/builtins.js +5 -2
  7. package/dist/builtins.js.map +1 -1
  8. package/dist/checker.d.ts +10 -1
  9. package/dist/checker.d.ts.map +1 -1
  10. package/dist/checker.js +102 -2
  11. package/dist/checker.js.map +1 -1
  12. package/dist/colour.d.ts +1 -1
  13. package/dist/colour.d.ts.map +1 -1
  14. package/dist/colour.js +8 -4
  15. package/dist/colour.js.map +1 -1
  16. package/dist/format.d.ts.map +1 -1
  17. package/dist/format.js +37 -3
  18. package/dist/format.js.map +1 -1
  19. package/dist/genetics.d.ts.map +1 -1
  20. package/dist/genetics.js +3 -1
  21. package/dist/genetics.js.map +1 -1
  22. package/dist/help.d.ts.map +1 -1
  23. package/dist/help.js +30 -3
  24. package/dist/help.js.map +1 -1
  25. package/dist/index.d.ts +1 -1
  26. package/dist/index.d.ts.map +1 -1
  27. package/dist/index.js.map +1 -1
  28. package/dist/interpreter.js +3 -1
  29. package/dist/interpreter.js.map +1 -1
  30. package/dist/lexer.d.ts.map +1 -1
  31. package/dist/lexer.js +1 -0
  32. package/dist/lexer.js.map +1 -1
  33. package/dist/parser.js +48 -2
  34. package/dist/parser.js.map +1 -1
  35. package/dist/values.d.ts +2 -0
  36. package/dist/values.d.ts.map +1 -1
  37. package/dist/values.js +1 -1
  38. package/dist/values.js.map +1 -1
  39. package/package.json +1 -1
  40. package/reference/LANGUAGE.md +61 -8
  41. package/reference/creatures/Alien.genie +653 -0
  42. package/reference/creatures/Breeze.genie +386 -0
  43. package/reference/creatures/Cobra.genie +386 -0
  44. package/reference/creatures/Flowerball.genie +302 -39
  45. package/reference/creatures/FlyingFish.genie +786 -0
  46. package/reference/creatures/Genes.genie +470 -0
  47. package/reference/creatures/Genie.genie +548 -0
  48. package/reference/creatures/Greenbay.genie +786 -0
  49. package/reference/creatures/Jellyfish.genie +472 -0
  50. package/reference/creatures/Monster.genie +594 -0
  51. package/reference/creatures/Neuron.genie +649 -0
  52. package/reference/creatures/Octoplant.genie +334 -0
  53. package/reference/creatures/Parasite.genie +393 -0
  54. package/reference/creatures/Pesky.genie +473 -0
  55. package/reference/creatures/Phoenix.genie +294 -0
  56. package/reference/creatures/Picstix.genie +1788 -0
  57. package/reference/creatures/Psybat.genie +602 -0
  58. package/reference/creatures/Star.genie +339 -0
  59. package/reference/creatures/Starfish.genie +458 -0
  60. package/reference/creatures/Transformer.genie +297 -0
  61. package/reference/creatures/TwoByTwo.genie +547 -0
  62. package/reference/creatures/Flower.genie +0 -41
  63. package/reference/creatures/Flyer.genie +0 -142
  64. package/reference/creatures/StarBurstShell.genie +0 -102
  65. package/reference/creatures/StarBurstShell9.genie +0 -102
@@ -0,0 +1,334 @@
1
+ creature Octoplant
2
+ // Eight fronds of beads curling out like the arms of an octopus, their colours shading with
3
+ // height and depth.
4
+ // Inspired by Octoplant, a DancerDNA creature.
5
+
6
+ gene reach = (4.492, 13.9, 19.67) in (3, 3, 3)..(20, 20, 20) // how far the beads wander: across, up and forward
7
+ gene reach_waves = (0.5563, 0.5624, 0.5415) in (0, 0, 0)..(0.7958, 0.7958, 0.7958) // how many waves they wander in, from the first bead to the last
8
+ gene reach_start = (0.6078, 0.2381, 0.2523) in (0, 0, 0)..(1, 1, 1)
9
+ gene size = (3.837, 7.493, 4.109) in (1, 1, 1)..(8, 8, 8) // how big the beads grow
10
+ gene size_waves = (0.4048, 0.221, 0.3398) in (0, 0, 0)..(0.7958, 0.7958, 0.7958)
11
+ gene size_start = (0.5367, 0.964, 0.6883) in (0, 0, 0)..(1, 1, 1)
12
+ gene turn = (-133.5, 78.03, 168.1) in (-171.9, -171.9, -171.9)..(171.9, 171.9, 171.9) // how far the beads turn: up, sideways and round
13
+ gene turn_waves = (0.5211, 0.2739, 0.7649) in (0, 0, 0)..(0.7958, 0.7958, 0.7958)
14
+ gene turn_start = (0.841, 0.0661, 0.3302) in (0, 0, 0)..(1, 1, 1)
15
+
16
+ gene gloss = 0.3306 in 0..1 // how strong the highlights are
17
+ gene focus = 0.9986 in 0..1 // how tight the highlights are
18
+ gene hue = 179.4 in 0..252 // the beads' hue at mid-height
19
+ gene hue_spread = 48.21 in 0..108 // how much the hue changes towards the top and bottom
20
+ gene saturation = 0.5193 in 0.5..1
21
+ gene fade = 0.7613 in 0.5..1 // how much darker the beads are at the front and back
22
+
23
+ pitch 90
24
+ repeat 8 {
25
+ frond
26
+ yaw 45
27
+ }
28
+
29
+ part frond {
30
+ branch {
31
+ shine gloss
32
+ sharpness focus
33
+ shape ball
34
+ repeat 15 as k {
35
+ branch {
36
+ let along = k / 14
37
+ let place = (reach.x * wave(reach_waves.x * (along - reach_start.x)), reach.y * wave(reach_waves.y * (along - reach_start.y)), reach.z * wave(reach_waves.z * (along - reach_start.z)))
38
+ move place
39
+ grow (0.1 + size.x * (1 + wave(size_waves.x * (along - size_start.x))), 0.1 + size.y * (1 + wave(size_waves.y * (along - size_start.y))), 0.1 + size.z * (1 + wave(size_waves.z * (along - size_start.z))))
40
+ pitch turn.x * wave(turn_waves.x * (along - turn_start.x))
41
+ yaw turn.y * wave(turn_waves.y * (along - turn_start.y))
42
+ roll turn.z * wave(turn_waves.z * (along - turn_start.z))
43
+ colour hsv(hue + hue_spread * abs(place.y / reach.y), saturation, 1 - fade * abs(place.z / reach.z))
44
+ lay
45
+ }
46
+ }
47
+ }
48
+ }
49
+
50
+ variant member_2 {
51
+ reach = (15.58, 10.48, 18.61)
52
+ reach_waves = (0.3898, 0.03803, 0.1362)
53
+ reach_start = (0.05906, 0.2397, 0.951)
54
+ size = (2.995, 5.127, 3.742)
55
+ size_waves = (0.3962, 0.2584, 0.1664)
56
+ size_start = (0.7345, 0.876, 0.8469)
57
+ turn = (33.68, 117.9, -4.605)
58
+ turn_waves = (0.02253, 0.5271, 0.1038)
59
+ turn_start = (0.5143, 0.8455, 0.2091)
60
+ gloss = 0.03824
61
+ focus = 0.5744
62
+ hue = 236.7
63
+ hue_spread = 42.61
64
+ saturation = 0.6341
65
+ fade = 0.6158
66
+ }
67
+
68
+ variant member_3 {
69
+ reach = (3.726, 11.4, 18.61)
70
+ reach_waves = (0.3937, 0.6428, 0.3568)
71
+ reach_start = (0.8125, 0.2381, 0.8828)
72
+ size = (4.596, 5.103, 4.109)
73
+ size_waves = (0.2023, 0.2208, 0.2436)
74
+ size_start = (0.608, 0.8643, 0.7674)
75
+ turn = (153.8, 61.19, 71.03)
76
+ turn_waves = (0.199, 0.2739, 0.1091)
77
+ turn_start = (0.8117, 0.5705, 0.2063)
78
+ gloss = 0.826
79
+ focus = 0.6122
80
+ hue = 234.5
81
+ hue_spread = 42.61
82
+ saturation = 0.5735
83
+ }
84
+
85
+ variant member_4 {
86
+ reach = (5.457, 6.221, 13.01)
87
+ reach_waves = (0.3019, 0.2149, 0.2956)
88
+ reach_start = (0.4272, 0.5127, 0.03146)
89
+ size = (1.579, 6.909, 1.749)
90
+ size_waves = (0.5624, 0.3793, 0.6676)
91
+ size_start = (0.2065, 0.2752, 0.687)
92
+ turn = (-100.9, -91.89, 96.36)
93
+ turn_waves = (0.2702, 0.03502, 0.5639)
94
+ turn_start = (0.1304, 0.4333, 0.2967)
95
+ gloss = 0.458
96
+ focus = 0.5272
97
+ hue = 0.8527
98
+ hue_spread = 69.81
99
+ saturation = 0.9402
100
+ fade = 0.8913
101
+ }
102
+
103
+ variant member_5 {
104
+ reach = (11.05, 12.04, 18.61)
105
+ reach_waves = (0.4665, 0.1476, 0.2988)
106
+ reach_start = (0.3496, 0.6565, 0.951)
107
+ size = (5.438, 5.127, 3.742)
108
+ size_waves = (0.7151, 0.6541, 0.04091)
109
+ size_start = (0.6841, 0.876, 0.4559)
110
+ turn = (126, 155.8, -4.605)
111
+ turn_waves = (0.3669, 0.0007292, 0.4925)
112
+ turn_start = (0.9249, 0.6375, 0.8769)
113
+ gloss = 0.9302
114
+ focus = 0.8715
115
+ hue = 26.44
116
+ hue_spread = 18.65
117
+ saturation = 0.8671
118
+ fade = 0.9339
119
+ }
120
+
121
+ variant member_6 {
122
+ reach = (14.55, 11.4, 18.61)
123
+ reach_waves = (0.3937, 0.4039, 0.3568)
124
+ reach_start = (0.2077, 0.407, 0.5289)
125
+ size = (4.596, 5.103, 4.109)
126
+ size_waves = (0.2023, 0.2208, 0.2436)
127
+ size_start = (0.608, 0.9443, 0.3718)
128
+ turn = (153.8, 61.19, -143)
129
+ turn_waves = (0.199, 0.4715, 0.4142)
130
+ turn_start = (0.8117, 0.6634, 0.873)
131
+ gloss = 0.5833
132
+ focus = 0.369
133
+ hue = 234.5
134
+ hue_spread = 95.08
135
+ saturation = 0.7359
136
+ fade = 0.5771
137
+ }
138
+
139
+ variant member_7 {
140
+ reach = (14.99, 12.04, 19.64)
141
+ reach_waves = (0.4665, 0.06423, 0.4089)
142
+ reach_start = (0.975, 0.6136, 0.1408)
143
+ size = (4.411, 4.684, 3.203)
144
+ size_waves = (0.1353, 0.4093, 0.04436)
145
+ size_start = (0.7202, 0.8048, 0.8581)
146
+ turn = (101.5, 145.4, -142.9)
147
+ turn_waves = (0.2009, 0.15, 0.5025)
148
+ turn_start = (0.09941, 0.3447, 0.8416)
149
+ gloss = 0.8259
150
+ focus = 0.2905
151
+ hue = 8.952
152
+ hue_spread = 98.34
153
+ saturation = 0.9954
154
+ fade = 0.8716
155
+ }
156
+
157
+ variant member_8 {
158
+ reach = (14.99, 11.81, 19.34)
159
+ reach_waves = (0.3867, 0.1354, 0.3206)
160
+ reach_start = (0.9315, 0.7344, 0.2385)
161
+ size = (5.231, 6.22, 3.203)
162
+ size_waves = (0.07264, 0.4714, 0.08535)
163
+ size_start = (0.6409, 0.8048, 0.8581)
164
+ turn = (101.5, 155.8, -144.3)
165
+ turn_waves = (0.2015, 0.1973, 0.4211)
166
+ turn_start = (0.09941, 0.4046, 0.7474)
167
+ gloss = 0.7337
168
+ focus = 0.2227
169
+ hue = 5.172
170
+ hue_spread = 100
171
+ saturation = 0.958
172
+ fade = 0.9323
173
+ }
174
+
175
+ variant member_9 {
176
+ reach = (10.58, 17.54, 11.5)
177
+ reach_waves = (0.06417, 0.1462, 0.2667)
178
+ reach_start = (0.458, 0.4261, 0.4579)
179
+ size = (1.748, 4.505, 1.123)
180
+ size_waves = (0.2876, 0.3719, 0.4095)
181
+ size_start = (0.7865, 0.6538, 0.2627)
182
+ turn = (-9.609, -2.985, 43.65)
183
+ turn_waves = (0.4044, 0.639, 0.609)
184
+ turn_start = (0.8946, 0.5434, 0.5712)
185
+ gloss = 0.3657
186
+ focus = 0.9763
187
+ hue = 4.437
188
+ hue_spread = 19.86
189
+ saturation = 0.9755
190
+ fade = 0.7291
191
+ }
192
+
193
+ variant member_10 {
194
+ reach = (17.09, 12.04, 17.93)
195
+ reach_waves = (0.4665, 0.06423, 0.357)
196
+ reach_start = (0.9532, 0.6565, 0.2606)
197
+ size = (3.776, 5.513, 3.203)
198
+ size_waves = (0.1724, 0.4093, 0.007897)
199
+ size_start = (0.7616, 0.7454, 0.8466)
200
+ turn = (101.5, 146.1, -129.9)
201
+ turn_waves = (0.2009, 0.1841, 0.4033)
202
+ turn_start = (0.09941, 0.3797, 0.6991)
203
+ gloss = 0.7982
204
+ focus = 0.2227
205
+ hue = 8.952
206
+ hue_spread = 100
207
+ saturation = 0.9479
208
+ fade = 0.9323
209
+ }
210
+
211
+ variant member_11 {
212
+ reach = (15.82, 6.721, 18.61)
213
+ reach_waves = (0.3612, 0.08674, 0.2776)
214
+ reach_start = (0.1801, 0.2397, 0.4855)
215
+ size = (5, 5.705, 3.74)
216
+ size_waves = (0.04388, 0.1771, 0.01627)
217
+ size_start = (0.7, 0.876, 0.7764)
218
+ turn = (-8.798, 117.9, -59.15)
219
+ turn_waves = (0.03783, 0.5705, 0.4775)
220
+ turn_start = (0.6626, 0.8236, 0.256)
221
+ gloss = 0.331
222
+ focus = 0.1962
223
+ hue = 203
224
+ hue_spread = 53.27
225
+ saturation = 0.579
226
+ fade = 0.5798
227
+ }
228
+
229
+ variant member_12 {
230
+ reach = (10.61, 7.406, 17.88)
231
+ reach_waves = (0.05083, 0.4905, 0.2107)
232
+ reach_start = (0.3762, 0.3305, 0.1623)
233
+ size = (4.596, 5.053, 7.043)
234
+ size_waves = (0.05894, 0.08426, 0.3318)
235
+ size_start = (0.2619, 0.7167, 0.1143)
236
+ turn = (-134.4, 31.29, 58.22)
237
+ turn_waves = (0.7212, 0.1581, 0.2201)
238
+ turn_start = (0.9023, 0.919, 0.9075)
239
+ gloss = 0.3393
240
+ focus = 0.6747
241
+ hue = 4.437
242
+ hue_spread = 105
243
+ saturation = 0.7562
244
+ fade = 0.7974
245
+ }
246
+
247
+ variant member_13 {
248
+ reach = (19.06, 14.91, 11.72)
249
+ reach_waves = (0.3898, 0.4597, 0.5721)
250
+ reach_start = (0.3496, 0.2733, 0.951)
251
+ size = (2.058, 5.053, 3.742)
252
+ size_waves = (0.2478, 0.2584, 0.1664)
253
+ size_start = (0.1622, 0.876, 0.8469)
254
+ turn = (35.57, 138.7, -108.6)
255
+ turn_waves = (0.02253, 0.2413, 0.2714)
256
+ turn_start = (0.5419, 0.2481, 0.5513)
257
+ gloss = 0.8903
258
+ focus = 0.5283
259
+ hue = 215
260
+ hue_spread = 100.8
261
+ saturation = 0.6341
262
+ fade = 0.8552
263
+ }
264
+
265
+ variant member_14 {
266
+ reach = (11.17, 15.82, 19.81)
267
+ reach_waves = (0.5556, 0.4769, 0.3679)
268
+ reach_start = (0.09858, 0.5219, 0.179)
269
+ size = (2.225, 2.62, 1.213)
270
+ size_waves = (0.4995, 0.06077, 0.1103)
271
+ size_start = (0.312, 0.9265, 0.7482)
272
+ turn = (-88.27, 62.4, -118.3)
273
+ turn_waves = (0.607, 0.7376, 0.3894)
274
+ turn_start = (0.5809, 0.7557, 0.4387)
275
+ gloss = 0.4883
276
+ focus = 0.7242
277
+ hue = 36.33
278
+ hue_spread = 81.16
279
+ saturation = 0.5263
280
+ fade = 0.7896
281
+ }
282
+
283
+ variant member_15 {
284
+ reach = (3.826, 11.4, 18.61)
285
+ reach_waves = (0.3898, 0.5907, 0.3568)
286
+ reach_start = (0.7997, 0.2419, 0.7173)
287
+ size = (4.596, 5.127, 4.109)
288
+ size_waves = (0.3726, 0.2208, 0.1225)
289
+ size_start = (0.7146, 0.8086, 0.6705)
290
+ turn = (163.5, 61.19, 71.03)
291
+ turn_waves = (0.199, 0.1675, 0.001565)
292
+ turn_start = (0.9541, 0.5705, 0.02179)
293
+ gloss = 0.826
294
+ focus = 0.6122
295
+ hue = 234.5
296
+ hue_spread = 42.61
297
+ saturation = 0.5227
298
+ }
299
+
300
+ variant member_16 {
301
+ reach = (5.457, 11.32, 11.72)
302
+ reach_waves = (0.1149, 0.4905, 0.2107)
303
+ reach_start = (0.3496, 0.3305, 0.4579)
304
+ size = (2.224, 5.053, 6.086)
305
+ size_waves = (0.5978, 0.3793, 0.6705)
306
+ size_start = (0.1622, 0.7657, 0.1143)
307
+ turn = (-134.4, -47.62, 58.22)
308
+ turn_waves = (0.4044, 0.2066, 0.2201)
309
+ turn_start = (0.7431, 0.919, 0.8216)
310
+ gloss = 0.9395
311
+ focus = 0.6747
312
+ hue = 4.437
313
+ hue_spread = 58.68
314
+ saturation = 0.9847
315
+ fade = 0.8523
316
+ }
317
+
318
+ variant member_17 {
319
+ reach = (10.72, 8.412, 5.431)
320
+ reach_waves = (0.5556, 0.3659, 0.1573)
321
+ reach_start = (0.09858, 0.1923, 0.04568)
322
+ size = (7.453, 2.62, 1.213)
323
+ size_waves = (0.4995, 0.6233, 0.1103)
324
+ size_start = (0.8643, 0.9355, 0.7482)
325
+ turn = (-88.27, 142.2, 14.43)
326
+ turn_waves = (0.1092, 0.4405, 0.3894)
327
+ turn_start = (0.6399, 0.9631, 0.8099)
328
+ gloss = 0.4883
329
+ focus = 0.7242
330
+ hue = 36.33
331
+ hue_spread = 81.16
332
+ saturation = 0.9841
333
+ fade = 0.9123
334
+ }