@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,386 @@
1
+ creature Breeze
2
+ // Four sprays of rings blowing out round a pale ball, their colours shading with height and
3
+ // depth.
4
+ // Inspired by Breeze, a DancerDNA creature.
5
+
6
+ gene reach = (1.652, 3, 4.867) in (0, 1, 2)..(5, 5, 6) // how far the rings wander: across, up and forward
7
+ gene reach_waves = (0.3183, 0.4983, 0.3183) in (0, 0, 0)..(0.7958, 0.7958, 0.7958) // how many waves they wander in, from the first ring to the last
8
+ gene reach_start = (0.23, 0.03289, 0.05205) in (0, 0, 0)..(1, 1, 1)
9
+ gene size = (1.359, 1, 0.7441) in (0, 0, 0)..(2, 2, 2) // how big the rings grow
10
+ gene size_waves = (0.2247, 0.2069, 0.2629) in (0.1592, 0.1592, 0.1592)..(0.3183, 0.3183, 0.3183)
11
+ gene size_start = (0.5685, 0.5697, 0.4083) in (0.2, 0.2, 0.2)..(0.8, 0.8, 0.8)
12
+ gene turn = (-36.23, 54.05, -15.7) in (-171.9, -171.9, -171.9)..(171.9, 171.9, 171.9) // how far the rings turn: up, sideways and round
13
+ gene turn_waves = (0.199, 0.1399, -0.6864) in (-0.7958, -0.7958, -0.7958)..(0.7958, 0.7958, 0.7958)
14
+ gene turn_start = (0.7319, 0.4213, 0.4487) in (0, 0, 0)..(1, 1, 1)
15
+
16
+ gene gloss = 0.826 in 0..1 // how strong the highlights are
17
+ gene focus = 0.907 in 0..1 // how tight the highlights are
18
+ gene hue = 189.1 in 0..252 // the rings' hue at mid-height
19
+ gene hue_spread = 65.48 in 0..108 // how much the hue changes towards the top and bottom
20
+ gene saturation = 0.7 in 0.5..1
21
+ gene fade = 0.5129 in 0.5..1 // how much darker the rings are at the front and back
22
+
23
+ pitch 90
24
+ shape ball
25
+ lay
26
+ // Turned round front to back, as the original was.
27
+ grow (1, 1, -1)
28
+ repeat 4 {
29
+ spray
30
+ yaw -90
31
+ }
32
+
33
+ part spray {
34
+ branch {
35
+ shine gloss
36
+ sharpness focus
37
+ shape ring
38
+ repeat 10 as k {
39
+ branch {
40
+ let along = k / 9
41
+ 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)))
42
+ move place
43
+ 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))))
44
+ pitch turn.x * wave(turn_waves.x * (along - turn_start.x))
45
+ yaw turn.y * wave(turn_waves.y * (along - turn_start.y))
46
+ roll turn.z * wave(turn_waves.z * (along - turn_start.z))
47
+ colour hsv(hue + hue_spread * abs(place.y / reach.y), saturation, 1 - fade * abs(place.z / reach.z))
48
+ lay
49
+ }
50
+ }
51
+ }
52
+ }
53
+
54
+ variant member_2 {
55
+ reach = (0.007514, 3.047, 4.232)
56
+ reach_waves = (0.603, 0.4983, 0.3183)
57
+ reach_start = (0.23, 0.9328, 0.179)
58
+ size = (1, 0.2605, 1)
59
+ size_waves = (0.2501, 0.2839, 0.2629)
60
+ size_start = (0.439, 0.7777, 0.2607)
61
+ turn = (-34.39, -61.19, -110.7)
62
+ turn_waves = (0.199, -0.7085, 0.1091)
63
+ turn_start = (0.8117, 0.5705, 0.07485)
64
+ gloss = 0.1
65
+ hue = 59.52
66
+ hue_spread = 39.6
67
+ saturation = 0.9553
68
+ fade = 0.9473
69
+ }
70
+
71
+ variant member_3 {
72
+ reach = (0.9058, 2.711, 6)
73
+ reach_waves = (0.6048, 0.2955, 0.319)
74
+ reach_start = (0.2486, 0.2, 0.8)
75
+ size = (1, 1, 0.09204)
76
+ size_waves = (0.2111, 0.2069, 0.1874)
77
+ size_start = (0.6, 0.4467, 0.5576)
78
+ turn = (85.33, 58.78, -9.777)
79
+ turn_waves = (0.199, -0.06849, 0.3927)
80
+ turn_start = (0.8117, 0.5705, 0.7997)
81
+ hue = 94.04
82
+ hue_spread = 88.83
83
+ saturation = 0.7812
84
+ fade = 0.6713
85
+ }
86
+
87
+ variant member_4 {
88
+ reach = (4.75, 3, 4.578)
89
+ reach_waves = (0.3019, 0.582, 0.179)
90
+ reach_start = (0.9254, 0.5961, 0.8)
91
+ size = (0.5104, 1.512, 1.45)
92
+ size_waves = (0.2486, 0.2069, 0.2247)
93
+ size_start = (0.6, 0.7777, 0.2999)
94
+ turn = (7.422, 116, 149.2)
95
+ turn_waves = (-0.1763, 0.4423, -0.5392)
96
+ turn_start = (0.8117, 0.992, 0.6479)
97
+ gloss = 0.2119
98
+ focus = 0.7201
99
+ hue_spread = 20.27
100
+ saturation = 0.6745
101
+ fade = 0.5644
102
+ }
103
+
104
+ variant member_5 {
105
+ reach = (2.312, 2.435, 6)
106
+ reach_waves = (0.3183, 0.3285, 0.4489)
107
+ reach_start = (0.9592, 0.8749, 0.8)
108
+ size = (1, 1, 1)
109
+ size_waves = (0.2111, 0.2069, 0.3158)
110
+ size_start = (0.7399, 0.4988, 0.6)
111
+ turn = (-153.8, -8.39, -9.777)
112
+ turn_waves = (0.199, 0.4423, 0.1091)
113
+ turn_start = (0.7381, 0.5705, 0.493)
114
+ hue = 70.24
115
+ hue_spread = 39.6
116
+ fade = 0.6043
117
+ }
118
+
119
+ variant member_6 {
120
+ reach = (1.652, 4.947, 6)
121
+ reach_waves = (0.3183, 0.7656, 0.3183)
122
+ reach_start = (0.06554, 0.2, 0.8)
123
+ size = (1, 1.57, 0.1823)
124
+ size_waves = (0.3066, 0.2778, 0.2629)
125
+ size_start = (0.6, 0.7777, 0.215)
126
+ turn = (-153.8, -170.8, 76.27)
127
+ turn_waves = (-0.05836, 0.4423, 0.3225)
128
+ turn_start = (0.6727, 0.5705, 0.2063)
129
+ gloss = 0.6802
130
+ hue_spread = 39.6
131
+ fade = 0.5481
132
+ }
133
+
134
+ variant member_7 {
135
+ reach = (4.759, 3, 4.172)
136
+ reach_waves = (0.3183, 0.4983, 0.02956)
137
+ reach_start = (0.23, 0.3993, 0.8)
138
+ size = (0.6052, 1, 1)
139
+ size_waves = (0.2111, 0.2069, 0.3157)
140
+ size_start = (0.7609, 0.7777, 0.6)
141
+ turn = (-38.64, -61.19, -9.777)
142
+ turn_waves = (-0.04254, 0.4423, 0.1091)
143
+ turn_start = (0.9465, 0.5705, 0.1094)
144
+ hue = 125.5
145
+ hue_spread = 39.6
146
+ saturation = 0.807
147
+ fade = 0.5481
148
+ }
149
+
150
+ variant member_8 {
151
+ reach = (1.652, 3.021, 6)
152
+ reach_start = (0.5543, 0.2, 0.2804)
153
+ size = (1.213, 1, 1.771)
154
+ size_waves = (0.2111, 0.2099, 0.2074)
155
+ size_start = (0.6, 0.7777, 0.6)
156
+ turn = (103.2, -151.5, 122.1)
157
+ turn_waves = (-0.2791, 0.4423, 0.1091)
158
+ turn_start = (0.1133, 0.5705, 0.0345)
159
+ focus = 0.7608
160
+ hue_spread = 39.6
161
+ fade = 0.5481
162
+ }
163
+
164
+ variant member_9 {
165
+ reach = (1.578, 2.435, 4.37)
166
+ reach_waves = (0.3183, 0.2622, 0.3183)
167
+ reach_start = (0.23, 0.2, 0.7146)
168
+ size = (1, 1, 1)
169
+ size_waves = (0.2332, 0.2069, 0.2629)
170
+ size_start = (0.6, 0.5881, 0.6)
171
+ turn = (-153.8, -31.15, -9.777)
172
+ turn_waves = (0.199, 0.2666, 0.2897)
173
+ turn_start = (0.7121, 0.5705, 0.4296)
174
+ gloss = 0.8282
175
+ hue = 158.1
176
+ hue_spread = 72.13
177
+ fade = 0.559
178
+ }
179
+
180
+ variant member_10 {
181
+ reach = (4.912, 1.177, 4.665)
182
+ reach_waves = (0.3183, 0.1004, 0.3183)
183
+ reach_start = (0.9556, 0.6519, 0.9902)
184
+ size = (1, 1.411, 1.9)
185
+ size_waves = (0.2111, 0.2069, 0.1988)
186
+ size_start = (0.5931, 0.4307, 0.6)
187
+ turn = (-153.8, -61.19, 90.05)
188
+ turn_waves = (0.2729, 0.4423, 0.1091)
189
+ turn_start = (0.8117, 0.5705, 0.2063)
190
+ focus = 0.2511
191
+ hue_spread = 24.29
192
+ fade = 0.7001
193
+ }
194
+
195
+ variant member_11 {
196
+ reach = (4.099, 3, 4.377)
197
+ reach_waves = (0.5567, 0.6664, 0.3183)
198
+ reach_start = (0.9742, 0.2, 0.3135)
199
+ size = (1.659, 0.2358, 1)
200
+ size_waves = (0.3049, 0.2069, 0.2629)
201
+ size_start = (0.558, 0.6892, 0.3527)
202
+ turn = (-141.5, 60.1, -9.777)
203
+ turn_waves = (-0.6525, 0.4423, 0.235)
204
+ turn_start = (0.8601, 0.1078, 0.9322)
205
+ gloss = 0.4384
206
+ hue_spread = 39.6
207
+ saturation = 0.7456
208
+ fade = 0.7283
209
+ }
210
+
211
+ variant member_12 {
212
+ reach = (1.652, 3, 3.855)
213
+ reach_waves = (0.1119, 0.4983, 0.3183)
214
+ reach_start = (0.1581, 0.2, 0.6524)
215
+ size = (0.05234, 1, 1)
216
+ size_waves = (0.2806, 0.3123, 0.2349)
217
+ size_start = (0.7384, 0.3466, 0.6)
218
+ turn = (-153.8, -61.19, 34.25)
219
+ turn_waves = (0.199, 0.4423, 0.1091)
220
+ turn_start = (0.9714, 0.5705, 0.2063)
221
+ focus = 0.4741
222
+ hue_spread = 39.6
223
+ fade = 0.5481
224
+ }
225
+
226
+ variant member_13 {
227
+ reach = (3.469, 2.072, 4.327)
228
+ reach_waves = (0.2276, 0.5072, 0.1879)
229
+ reach_start = (0.161, 0.4874, 0.6643)
230
+ size = (1.654, 0.07875, 1.782)
231
+ size_waves = (0.1945, 0.219, 0.1923)
232
+ size_start = (0.3373, 0.7971, 0.3371)
233
+ turn = (14.45, -8.621, -2.018)
234
+ turn_waves = (0.4897, 0.3131, 0.048)
235
+ turn_start = (0.8346, 0.28, 0.3287)
236
+ gloss = 0.04727
237
+ focus = 0.914
238
+ hue = 216.4
239
+ hue_spread = 56.63
240
+ saturation = 0.7516
241
+ fade = 0.9031
242
+ }
243
+
244
+ variant member_14 {
245
+ reach = (4.74, 2.852, 4.286)
246
+ reach_waves = (0.02082, 0.03943, 0.4061)
247
+ reach_start = (0.4471, 0.1222, 0.1716)
248
+ size = (1.213, 1.201, 1.871)
249
+ size_waves = (0.2314, 0.3077, 0.1923)
250
+ size_start = (0.2635, 0.72, 0.636)
251
+ turn = (103.2, -35.76, 122.1)
252
+ turn_waves = (-0.2791, 0.4423, 0.5274)
253
+ turn_start = (0.3902, 0.4327, 0.0345)
254
+ gloss = 0.2295
255
+ focus = 0.3347
256
+ hue = 5.14
257
+ hue_spread = 72.12
258
+ saturation = 0.7516
259
+ fade = 0.8726
260
+ }
261
+
262
+ variant member_15 {
263
+ reach = (3.312, 1.048, 4.406)
264
+ reach_waves = (0.5877, 0.3071, 0.6263)
265
+ reach_start = (0.24, 0.05911, 0.04241)
266
+ size = (0.9961, 1, 0.1568)
267
+ size_waves = (0.2458, 0.2703, 0.2687)
268
+ size_start = (0.6578, 0.6594, 0.4588)
269
+ turn = (103.2, -73.59, 116.4)
270
+ turn_waves = (0.3516, 0.4423, -0.4668)
271
+ turn_start = (0.1253, 0.5705, 0.0345)
272
+ gloss = 0.06229
273
+ focus = 0.1904
274
+ hue = 191.8
275
+ hue_spread = 39.6
276
+ saturation = 0.9935
277
+ fade = 0.8068
278
+ }
279
+
280
+ variant member_16 {
281
+ reach = (4.849, 2.852, 4.327)
282
+ reach_waves = (0.2276, 0.01119, 0.1879)
283
+ reach_start = (0.0374, 0.411, 0.09288)
284
+ size = (0.5628, 1.007, 1.782)
285
+ size_waves = (0.2798, 0.219, 0.1923)
286
+ size_start = (0.3373, 0.72, 0.5563)
287
+ turn = (14.45, -8.621, -2.018)
288
+ turn_waves = (0.4897, 0.3131, -0.01804)
289
+ turn_start = (0.04221, 0.28, 0.3287)
290
+ gloss = 0.04727
291
+ focus = 0.07164
292
+ hue = 26.12
293
+ hue_spread = 56.63
294
+ saturation = 0.7516
295
+ fade = 0.7807
296
+ }
297
+
298
+ variant member_17 {
299
+ reach = (0.2081, 4.407, 4.4)
300
+ reach_waves = (0.1657, 0.4672, 0.468)
301
+ reach_start = (0.02747, 0.2446, 0.9483)
302
+ size = (1.08, 0.7698, 1.782)
303
+ size_waves = (0.1934, 0.2772, 0.2228)
304
+ size_start = (0.2531, 0.5937, 0.3371)
305
+ turn = (14.45, -8.621, -2.018)
306
+ turn_waves = (0.4912, -0.3, 0.048)
307
+ turn_start = (0.7599, 0.28, 0.3477)
308
+ gloss = 0.2619
309
+ focus = 0.7794
310
+ hue = 181.8
311
+ hue_spread = 50.9
312
+ saturation = 0.5608
313
+ fade = 0.9031
314
+ }
315
+
316
+ variant member_18 {
317
+ reach = (0.2081, 4.583, 4.4)
318
+ reach_waves = (0.1657, 0.2421, 0.468)
319
+ reach_start = (0.02747, 0.2446, 0.9312)
320
+ size = (1.723, 0.3096, 1.388)
321
+ size_waves = (0.1874, 0.2186, 0.1614)
322
+ size_start = (0.3607, 0.5937, 0.3371)
323
+ turn = (100.8, -8.621, 84.24)
324
+ turn_waves = (0.4274, -0.3, 0.6281)
325
+ turn_start = (0.9959, 0.28, 0.3477)
326
+ gloss = 0.2619
327
+ focus = 0.7794
328
+ hue = 181.8
329
+ hue_spread = 50.9
330
+ saturation = 0.5114
331
+ fade = 0.885
332
+ }
333
+
334
+ variant member_19 {
335
+ reach = (0.2636, 3.67, 4.4)
336
+ reach_waves = (0.1657, 0.4671, 0.3169)
337
+ reach_start = (0.04886, 0.3882, 0.5795)
338
+ size = (1.08, 1.42, 1.106)
339
+ size_waves = (0.1934, 0.2315, 0.1943)
340
+ size_start = (0.2813, 0.5937, 0.5145)
341
+ turn = (14.45, -8.621, -2.018)
342
+ turn_waves = (0.4912, -0.3, 0.07287)
343
+ turn_start = (0.745, 0.4432, 0.09259)
344
+ gloss = 0.2619
345
+ focus = 0.7794
346
+ hue = 181.8
347
+ hue_spread = 50.9
348
+ saturation = 0.6284
349
+ fade = 0.8446
350
+ }
351
+
352
+ variant member_20 {
353
+ reach = (0.7671, 3.67, 4.384)
354
+ reach_waves = (0.1657, 0.4671, 0.06568)
355
+ reach_start = (0.368, 0.2096, 0.5795)
356
+ size = (0.5814, 1.309, 0.4483)
357
+ size_waves = (0.2554, 0.2124, 0.2404)
358
+ size_start = (0.4126, 0.5937, 0.4339)
359
+ turn = (58.14, 117.7, 24.45)
360
+ turn_waves = (0.4912, -0.3, -0.03224)
361
+ turn_start = (0.745, 0.3671, 0.101)
362
+ gloss = 0.6054
363
+ focus = 0.6201
364
+ hue = 151.5
365
+ hue_spread = 71.25
366
+ saturation = 0.7824
367
+ fade = 0.8935
368
+ }
369
+
370
+ variant member_21 {
371
+ reach = (0.7671, 3.67, 3.268)
372
+ reach_waves = (0.1142, 0.6753, 0.06568)
373
+ reach_start = (0.158, 0.4256, 0.6634)
374
+ size = (0.5814, 1.877, 0.1458)
375
+ size_waves = (0.2123, 0.2504, 0.1864)
376
+ size_start = (0.3677, 0.7116, 0.3314)
377
+ turn = (-24.79, 71.54, 24.45)
378
+ turn_waves = (0.4912, -0.1401, 0.07287)
379
+ turn_start = (0.9286, 0.7346, 0.4839)
380
+ gloss = 0.2619
381
+ focus = 0.7794
382
+ hue = 135.1
383
+ hue_spread = 50.9
384
+ saturation = 0.8843
385
+ fade = 0.969
386
+ }