@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,339 @@
1
+ creature Star
2
+ // Five arms of interlocking rings, like chains, bending and swelling as they reach out.
3
+ // Inspired by Star, a DancerDNA creature.
4
+
5
+ gene twist = -29.76 in -45.84..45.84 // how far the arms twist
6
+ gene twist_waves = 1.731 in 0.5..4 // how many half-waves the twist makes along an arm
7
+ gene twist_start = 0.2835 in -1..1 // where along the arm the twist starts
8
+ gene rise = -22.87 in -45.84..45.84 // how far the arms bend up and down
9
+ gene rise_waves = 3.569 in 0.5..4
10
+ gene rise_start = 0.7635 in -1..1
11
+ gene sway = -7.982 in -45.84..45.84 // how far the arms bend from side to side
12
+ gene sway_waves = 2.758 in 0.5..4
13
+ gene sway_start = 0.7958 in -1..1
14
+
15
+ gene swell = (0.2831, 0.1906, -0.1473) in (-0.4, -0.4, -0.4)..(0.4, 0.4, 0.4) // how much the links grow and shrink: across, up and along
16
+ gene swell_waves = (4.965, 17.21, 1.795) in (0, 0, 0)..(20, 20, 20) // how many half-waves the swelling makes along an arm
17
+ gene swell_start = (0.1605, -0.7255, -0.9763) in (-1, -1, -1)..(1, 1, 1)
18
+
19
+ // The colours of the links lying flat and of those standing upright, from the middle out, and
20
+ // the gaps between them.
21
+ gene flat_1 = hsv(334, 0.93, 0.02) in hsv(0, 0, 0)..hsv(360, 1, 1)
22
+ gene flat_2 = hsv(145.2, 0.47, 0.01) in hsv(0, 0, 0)..hsv(360, 1, 1)
23
+ gene flat_3 = hsv(96, 0.99, 0.77) in hsv(0, 0, 0)..hsv(360, 1, 1)
24
+ gene flat_4 = hsv(44.5, 0.47, 0.84) in hsv(0, 0, 0)..hsv(360, 1, 1)
25
+ gene flat_gaps = (0.9819, 0.3743, 0.495) in (0.25, 0.25, 0.25)..(1, 1, 1)
26
+
27
+ gene upright_1 = hsv(198, 0.7, 1) in hsv(0, 0.4, 1)..hsv(360, 1, 1)
28
+ gene upright_2 = hsv(56.7, 0.88, 1) in hsv(0, 0.4, 1)..hsv(360, 1, 1)
29
+ gene upright_3 = hsv(114.2, 0.9, 1) in hsv(0, 0.4, 1)..hsv(360, 1, 1)
30
+ gene upright_4 = hsv(319.8, 0.41, 1) in hsv(0, 0.4, 1)..hsv(360, 1, 1)
31
+ gene upright_gaps = (0.2962, 0.3338, 0.4979) in (0.25, 0.25, 0.25)..(1, 1, 1)
32
+
33
+ let flat = spectrum(flat_1, flat_2 at flat_gaps.x, flat_3 at flat_gaps.x + flat_gaps.y, flat_4 at flat_gaps.x + flat_gaps.y + flat_gaps.z)
34
+ let upright = spectrum(upright_1, upright_2 at upright_gaps.x, upright_3 at upright_gaps.x + upright_gaps.y, upright_4 at upright_gaps.x + upright_gaps.y + upright_gaps.z)
35
+
36
+ shine 1
37
+ sharpness 1
38
+ repeat 5 as arm {
39
+ branch {
40
+ chain(arm)
41
+ }
42
+ roll 72
43
+ }
44
+
45
+ part chain(arm) {
46
+ shape ring
47
+ repeat 20 as k {
48
+ let along = k / 20
49
+ // Every other link stands upright. The first arm leaves out its first link, which would
50
+ // overlap the others' in the middle.
51
+ if arm > 0 or k > 0 {
52
+ branch {
53
+ if k % 2 == 0 {
54
+ colour flat(along)
55
+ } else {
56
+ colour upright(along)
57
+ yaw 90
58
+ }
59
+ lay
60
+ }
61
+ }
62
+ move (0, 0.25, 0)
63
+ roll twist * sin(180 * twist_waves * (along + twist_start))
64
+ pitch rise * sin(180 * rise_waves * (along + rise_start))
65
+ yaw sway * sin(180 * sway_waves * (along + sway_start))
66
+ grow (1 + swell.x * sin(180 * swell_waves.x * (along + swell_start.x)), 1 + swell.y * sin(180 * swell_waves.y * (along + swell_start.y)), 1 + swell.z * sin(180 * swell_waves.z * (along + swell_start.z)))
67
+ move (0, 0.25, 0)
68
+ }
69
+ }
70
+
71
+ variant member_2 {
72
+ twist = 45.48
73
+ twist_waves = 0.9779
74
+ twist_start = 0.648
75
+ rise = -8.515
76
+ rise_waves = 1.842
77
+ rise_start = -0.05395
78
+ sway = -45.44
79
+ sway_waves = 3.964
80
+ sway_start = 0.5414
81
+ swell = (0.3538, 0.3306, -0.3017)
82
+ swell_waves = (1.841, 14.81, 6.744)
83
+ swell_start = (-0.6536, 0.01239, -0.08043)
84
+ flat_1 = hsv(323.3, 0.85, 0.03)
85
+ flat_2 = hsv(261.9, 0.72, 0.61)
86
+ flat_3 = hsv(186.8, 0.84, 0.49)
87
+ flat_4 = hsv(168.4, 0.55, 0.76)
88
+ flat_gaps = (0.6707, 0.6461, 0.7932)
89
+ upright_1 = hsv(33.5, 0.95, 1)
90
+ upright_2 = hsv(307.3, 0.49, 1)
91
+ upright_3 = hsv(229.8, 0.8, 1)
92
+ upright_4 = hsv(14.5, 0.62, 1)
93
+ upright_gaps = (0.9068, 0.5627, 0.3953)
94
+ }
95
+
96
+ variant member_3 {
97
+ twist = 32.88
98
+ twist_waves = 1.98
99
+ twist_start = -0.9731
100
+ rise = 34.91
101
+ rise_start = -0.8264
102
+ sway = 21.51
103
+ sway_waves = 3.611
104
+ sway_start = 0.3791
105
+ swell = (0.2831, 0.0673, -0.1398)
106
+ swell_waves = (16.06, 17.21, 1.638)
107
+ swell_start = (0.2231, 0.08812, 0.4532)
108
+ flat_2 = hsv(249.5, 0.97, 0.47)
109
+ flat_3 = hsv(120.3, 0.21, 0.94)
110
+ flat_4 = hsv(159.5, 0.45, 0.87)
111
+ flat_gaps = (0.4711, 0.5315, 0.685)
112
+ upright_2 = hsv(228.4, 0.75, 1)
113
+ upright_3 = hsv(223.4, 0.59, 1)
114
+ upright_4 = hsv(357.7, 0.75, 1)
115
+ upright_gaps = (0.7178, 0.3008, 0.6523)
116
+ }
117
+
118
+ variant member_4 {
119
+ twist = -21.25
120
+ twist_waves = 1.631
121
+ twist_start = -0.9434
122
+ rise = 18.76
123
+ rise_waves = 3.341
124
+ rise_start = 0.02778
125
+ sway = 8.318
126
+ sway_waves = 3.263
127
+ sway_start = -0.07877
128
+ swell = (-0.2262, 0.0357, 0.3958)
129
+ swell_waves = (17.87, 17.76, 13.32)
130
+ swell_start = (0.7625, -0.1508, 0.7646)
131
+ flat_1 = hsv(166.3, 0.97, 0.8)
132
+ flat_2 = hsv(30.4, 0.84, 0.43)
133
+ flat_3 = hsv(80.8, 0.84, 0.43)
134
+ flat_4 = hsv(9.8, 0.07, 0.86)
135
+ flat_gaps = (0.8052, 0.3671, 0.4974)
136
+ upright_1 = hsv(138.6, 0.91, 1)
137
+ upright_2 = hsv(227.3, 0.54, 1)
138
+ upright_3 = hsv(291.8, 0.79, 1)
139
+ upright_4 = hsv(250.4, 0.66, 1)
140
+ upright_gaps = (0.3208, 0.3313, 0.7113)
141
+ }
142
+
143
+ variant member_5 {
144
+ twist = 22.5
145
+ twist_waves = 1.631
146
+ twist_start = 0.822
147
+ rise = -44
148
+ rise_waves = 1.43
149
+ rise_start = 0.2559
150
+ sway = -14
151
+ sway_waves = 1.329
152
+ sway_start = 0.5122
153
+ swell = (0.2999, 0.1816, 0.3011)
154
+ swell_waves = (14.21, 3.647, 7.402)
155
+ swell_start = (-0.9036, 0.535, 0.7646)
156
+ flat_1 = hsv(276.2, 0.81, 0.96)
157
+ flat_2 = hsv(247.6, 0.72, 0.66)
158
+ flat_3 = hsv(353, 0.85, 0.99)
159
+ flat_4 = hsv(87.7, 0.28, 0.91)
160
+ flat_gaps = (0.3527, 0.6461, 0.5309)
161
+ upright_1 = hsv(12.7, 0.98, 1)
162
+ upright_2 = hsv(282.3, 0.7, 1)
163
+ upright_3 = hsv(291.8, 0.79, 1)
164
+ upright_4 = hsv(87.7, 0.41, 1)
165
+ upright_gaps = (0.8277, 0.3664, 0.8541)
166
+ }
167
+
168
+ variant member_6 {
169
+ twist = 5.73
170
+ twist_waves = 1
171
+ twist_start = 0
172
+ rise = 5.73
173
+ rise_waves = 0.9209
174
+ rise_start = 0.2053
175
+ sway = 5.73
176
+ sway_waves = 1
177
+ sway_start = 0
178
+ swell = (0.1, -0.05093, 0.1)
179
+ swell_waves = (1, 1, 1)
180
+ swell_start = (0.02175, 0, 0.2227)
181
+ flat_1 = hsv(226.2, 0.4, 0.07)
182
+ flat_2 = hsv(356.5, 0.79, 0.29)
183
+ flat_3 = hsv(359.9, 1, 1)
184
+ flat_4 = hsv(199.7, 0.67, 0.43)
185
+ flat_gaps = (0.9534, 0.25, 0.25)
186
+ upright_1 = hsv(36.6, 0.68, 1)
187
+ upright_2 = hsv(176.4, 1, 1)
188
+ upright_3 = hsv(63.5, 0.91, 1)
189
+ upright_4 = hsv(316.9, 0.71, 1)
190
+ upright_gaps = (0.25, 0.5906, 0.6515)
191
+ }
192
+
193
+ variant member_7 {
194
+ twist = 18.63
195
+ twist_waves = 1
196
+ twist_start = -0.522
197
+ rise = 5.73
198
+ rise_waves = 1
199
+ rise_start = 0.4323
200
+ sway = 5.73
201
+ sway_waves = 1.419
202
+ sway_start = -0.5552
203
+ swell = (-0.2346, 0.1, -0.3505)
204
+ swell_waves = (11.77, 0.6157, 3.04)
205
+ swell_start = (-0.05229, -0.7118, 0.8688)
206
+ flat_1 = hsv(344.5, 0.8, 0.17)
207
+ flat_2 = hsv(285.2, 0.62, 0.27)
208
+ flat_3 = hsv(68.8, 0.92, 0.74)
209
+ flat_4 = hsv(359.9, 1, 1)
210
+ flat_gaps = (0.982, 0.3743, 0.8162)
211
+ upright_1 = hsv(256.8, 0.83, 1)
212
+ upright_2 = hsv(233.6, 0.67, 1)
213
+ upright_3 = hsv(185.2, 0.84, 1)
214
+ upright_4 = hsv(261.3, 0.78, 1)
215
+ upright_gaps = (0.9329, 0.25, 0.456)
216
+ }
217
+
218
+ variant member_8 {
219
+ twist = 16.42
220
+ twist_waves = 1
221
+ twist_start = 0
222
+ rise = -6.365
223
+ rise_waves = 1
224
+ rise_start = -0.5806
225
+ sway = 5.73
226
+ sway_waves = 1
227
+ sway_start = -0.2325
228
+ swell = (-0.04512, -0.07427, 0.2569)
229
+ swell_waves = (10.77, 6.434, 1)
230
+ swell_start = (0.8062, 0.005035, -0.06574)
231
+ flat_1 = hsv(57.6, 0.64, 0.99)
232
+ flat_2 = hsv(320.6, 0.43, 0.59)
233
+ flat_3 = hsv(270.7, 0.7, 0.26)
234
+ flat_4 = hsv(231.1, 0.21, 0.13)
235
+ flat_gaps = (0.6366, 0.5522, 0.25)
236
+ upright_1 = hsv(182, 0.81, 1)
237
+ upright_2 = hsv(141.2, 0.84, 1)
238
+ upright_3 = hsv(185.2, 0.84, 1)
239
+ upright_4 = hsv(299.1, 0.98, 1)
240
+ upright_gaps = (0.9329, 0.25, 0.6523)
241
+ }
242
+
243
+ variant member_9 {
244
+ twist = 45.48
245
+ twist_waves = 0.9779
246
+ twist_start = 0.5734
247
+ rise = -14.1
248
+ rise_waves = 2.484
249
+ rise_start = 0.9662
250
+ sway = 8.318
251
+ sway_waves = 2.129
252
+ sway_start = 0.3794
253
+ swell = (-0.3417, 0.0811, -0.05453)
254
+ swell_waves = (9.34, 0.8021, 0.2679)
255
+ swell_start = (-0.5902, 0.01239, 0.1435)
256
+ flat_1 = hsv(287.2, 0.56, 0.8)
257
+ flat_2 = hsv(111.9, 0.14, 0.25)
258
+ flat_3 = hsv(97.3, 0.37, 0.78)
259
+ flat_4 = hsv(95, 0.99, 0.75)
260
+ flat_gaps = (0.5955, 0.6461, 0.8258)
261
+ upright_1 = hsv(229.2, 0.85, 1)
262
+ upright_2 = hsv(303.5, 0.59, 1)
263
+ upright_3 = hsv(60, 0.52, 1)
264
+ upright_4 = hsv(199.6, 0.49, 1)
265
+ upright_gaps = (0.6195, 0.5376, 0.5804)
266
+ }
267
+
268
+ variant member_10 {
269
+ twist = -29.2
270
+ twist_waves = 1
271
+ twist_start = 0.7652
272
+ rise = -17.16
273
+ rise_waves = 0.824
274
+ rise_start = 0.6399
275
+ sway = -25.23
276
+ sway_waves = 1.459
277
+ sway_start = 0.1232
278
+ swell = (0.1044, 0.1, 0.2199)
279
+ swell_waves = (15.49, 0.6157, 1)
280
+ swell_start = (0.6905, 0, -0.7192)
281
+ flat_1 = hsv(344.5, 0.8, 0.17)
282
+ flat_2 = hsv(330.1, 0.06, 0.24)
283
+ flat_3 = hsv(278.2, 0.87, 0.33)
284
+ flat_4 = hsv(359.9, 1, 1)
285
+ flat_gaps = (0.25, 0.4782, 0.25)
286
+ upright_1 = hsv(150.2, 0.99, 1)
287
+ upright_2 = hsv(176.4, 1, 1)
288
+ upright_3 = hsv(185.2, 0.84, 1)
289
+ upright_4 = hsv(68.3, 0.98, 1)
290
+ upright_gaps = (0.25, 0.653, 0.468)
291
+ }
292
+
293
+ variant member_11 {
294
+ twist = -3.176
295
+ twist_waves = 3.578
296
+ twist_start = 0.61
297
+ rise = 0.007878
298
+ rise_start = -0.01213
299
+ sway = -31.67
300
+ sway_waves = 1.281
301
+ sway_start = 0.99
302
+ swell = (0.2831, 0.0673, -0.06135)
303
+ swell_waves = (0.8381, 17.21, 1.018)
304
+ swell_start = (0.1149, 0.01215, -0.9763)
305
+ flat_2 = hsv(233.9, 0.53, 0.97)
306
+ flat_3 = hsv(120.3, 0.21, 0.94)
307
+ flat_4 = hsv(132.5, 0.21, 0.29)
308
+ flat_gaps = (0.4711, 0.7836, 0.2573)
309
+ upright_1 = hsv(307.5, 0.79, 1)
310
+ upright_2 = hsv(275.9, 0.88, 1)
311
+ upright_3 = hsv(17.7, 0.8, 1)
312
+ upright_4 = hsv(137.7, 0.98, 1)
313
+ upright_gaps = (0.5544, 0.5734, 0.9883)
314
+ }
315
+
316
+ variant member_12 {
317
+ twist = -29.25
318
+ twist_waves = 1.631
319
+ twist_start = -0.4702
320
+ rise = 6.452
321
+ rise_waves = 1.436
322
+ rise_start = -0.3237
323
+ sway = 8.318
324
+ sway_waves = 3.438
325
+ sway_start = -0.3798
326
+ swell = (-0.3305, 0.0357, -0.2379)
327
+ swell_waves = (1.261, 17.76, 4.237)
328
+ swell_start = (0.9146, -0.144, 0.7646)
329
+ flat_1 = hsv(325.5, 0.45, 0.42)
330
+ flat_2 = hsv(151.4, 0.69, 0.7)
331
+ flat_3 = hsv(220.5, 0.07, 0.91)
332
+ flat_4 = hsv(9.8, 0.07, 0.86)
333
+ flat_gaps = (0.8041, 0.3671, 0.3841)
334
+ upright_1 = hsv(160.5, 0.66, 1)
335
+ upright_2 = hsv(65.2, 0.74, 1)
336
+ upright_3 = hsv(291.8, 0.79, 1)
337
+ upright_4 = hsv(28.3, 0.48, 1)
338
+ upright_gaps = (0.6036, 0.4493, 0.7119)
339
+ }