@genocode/core 0.4.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 (56) hide show
  1. package/dist/ast.d.ts +2 -0
  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.js +2 -2
  9. package/dist/checker.js.map +1 -1
  10. package/dist/colour.d.ts +1 -1
  11. package/dist/colour.d.ts.map +1 -1
  12. package/dist/colour.js +8 -4
  13. package/dist/colour.js.map +1 -1
  14. package/dist/format.js +1 -1
  15. package/dist/format.js.map +1 -1
  16. package/dist/genetics.d.ts.map +1 -1
  17. package/dist/genetics.js +3 -1
  18. package/dist/genetics.js.map +1 -1
  19. package/dist/help.d.ts.map +1 -1
  20. package/dist/help.js +4 -0
  21. package/dist/help.js.map +1 -1
  22. package/dist/interpreter.js +1 -1
  23. package/dist/interpreter.js.map +1 -1
  24. package/dist/parser.js +7 -2
  25. package/dist/parser.js.map +1 -1
  26. package/dist/values.d.ts +2 -0
  27. package/dist/values.d.ts.map +1 -1
  28. package/dist/values.js +1 -1
  29. package/dist/values.js.map +1 -1
  30. package/package.json +1 -1
  31. package/reference/LANGUAGE.md +14 -4
  32. package/reference/creatures/Alien.genie +653 -0
  33. package/reference/creatures/Breeze.genie +386 -0
  34. package/reference/creatures/Cobra.genie +386 -0
  35. package/reference/creatures/Flowerball.genie +302 -39
  36. package/reference/creatures/FlyingFish.genie +786 -0
  37. package/reference/creatures/Genes.genie +470 -0
  38. package/reference/creatures/Genie.genie +548 -0
  39. package/reference/creatures/Greenbay.genie +786 -0
  40. package/reference/creatures/Jellyfish.genie +472 -0
  41. package/reference/creatures/Monster.genie +594 -0
  42. package/reference/creatures/Neuron.genie +649 -0
  43. package/reference/creatures/Octoplant.genie +334 -0
  44. package/reference/creatures/Parasite.genie +393 -0
  45. package/reference/creatures/Pesky.genie +473 -0
  46. package/reference/creatures/Phoenix.genie +294 -0
  47. package/reference/creatures/Picstix.genie +1788 -0
  48. package/reference/creatures/Psybat.genie +602 -0
  49. package/reference/creatures/Star.genie +339 -0
  50. package/reference/creatures/Starfish.genie +458 -0
  51. package/reference/creatures/Transformer.genie +297 -0
  52. package/reference/creatures/TwoByTwo.genie +547 -0
  53. package/reference/creatures/Flower.genie +0 -41
  54. package/reference/creatures/Flyer.genie +0 -142
  55. package/reference/creatures/StarBurstShell.genie +0 -102
  56. package/reference/creatures/StarBurstShell9.genie +0 -102
@@ -0,0 +1,458 @@
1
+ creature Starfish
2
+ // Four arms, each a wobbling stem of rings ending in a spiral of long petals with a bead at the
3
+ // end of each.
4
+ // Inspired by Starfish, a DancerDNA creature.
5
+
6
+ gene stem_start = -1.961 in -15..15 // how far from the middle the stems start
7
+ gene stride = 0.5112 in -1.5..2 // how far apart the stem's rings are
8
+ gene ring_stretch = 3.633 in 2..5 // how long the rings are drawn out along the stem
9
+ gene ripples = 3.789 in 2.387..3.979 // how many times the rings swell and shrink along the stem
10
+ gene bend = -1.724 in -5.73..5.73 // how far each ring turns sideways from the last
11
+ gene wobbles = 1.58 in 0.955..1.91 // how many times the stem wobbles up and down
12
+ gene wobble_start = 0.02209 in -0.5..0.5
13
+
14
+ gene flower_tilt = 35.67 in -114.6..114.6 // how far the flowers tip up from their stems
15
+ gene flower_out = 16.37 in 15..35 // how far out the flowers are
16
+ gene flower_turn = 12.82 in -57.3..85.94 // how far they turn to the side
17
+ gene petals = 11.18 in 4..15 // how many petals
18
+ gene petal_length = 8.511 in 4..12
19
+ gene petal_rise = 1.944 in -5.73..17.19 // how far each petal tips up from the last
20
+ gene petal_turn = 9.983 in -5.73..85.94 // how far each turns sideways from the last
21
+ gene bud_out = 7.041 in 4..9 // how far out the beads are
22
+
23
+ // The rings' colours, from the middle out, and the petals' with the gaps between them.
24
+ gene ring_1 = hsv(92.8, 0.66, 0.97) in hsv(0, 0, 0.7)..hsv(360, 1, 1)
25
+ gene ring_2 = hsv(239.3, 0.4, 0.38) in hsv(0, 0, 0)..hsv(360, 1, 1)
26
+ gene ring_3 = hsv(190.3, 0.71, 0.91) in hsv(0, 0, 0.7)..hsv(360, 1, 1)
27
+ gene petal_1 = hsv(283, 0.93, 0.87) in hsv(0, 0, 0)..hsv(360, 1, 1)
28
+ gene petal_2 = hsv(244.7, 0.75, 1) in hsv(0, 0.4, 1)..hsv(360, 1, 1)
29
+ gene petal_3 = hsv(183, 0.31, 0.24) in hsv(0, 0, 0)..hsv(360, 1, 1)
30
+ gene petal_4 = hsv(193.7, 0.76, 1) in hsv(0, 0.4, 1)..hsv(360, 1, 1)
31
+ gene petal_gaps = (0.4193, 0.8327, 0.6268) in (0.25, 0.25, 0.25)..(1, 1, 1)
32
+
33
+ let rings = spectrum(ring_1, ring_2, ring_3)
34
+ let blooms = spectrum(petal_1, petal_2 at petal_gaps.x, petal_3 at petal_gaps.x + petal_gaps.y, petal_4 at petal_gaps.x + petal_gaps.y + petal_gaps.z)
35
+
36
+ shine 1
37
+ sharpness 1
38
+ pitch -90
39
+ // The arms in the original's order: ahead, behind, then to each side.
40
+ arm
41
+ yaw 180
42
+ arm
43
+ yaw 90
44
+ arm
45
+ yaw 180
46
+ arm
47
+
48
+ part arm {
49
+ stem
50
+ branch {
51
+ pitch flower_tilt
52
+ flower
53
+ }
54
+ }
55
+
56
+ part stem {
57
+ branch {
58
+ shape ring
59
+ forward stem_start
60
+ reshape { grow (1, 1, ring_stretch) }
61
+ repeat 30 as k {
62
+ let along = k / 29
63
+ let swell = 1 + wave(ripples * along) / 2
64
+ colour rings(along)
65
+ forward stride
66
+ reshape { grow (swell, swell, 1.05) }
67
+ yaw bend
68
+ pitch degrees(wave(wobbles * along + wobble_start) / 14)
69
+ lay
70
+ }
71
+ }
72
+ }
73
+
74
+ part flower {
75
+ branch {
76
+ shape ball
77
+ forward flower_out
78
+ grow 1.2
79
+ yaw flower_turn
80
+ reshape { grow (1, 1, petal_length) }
81
+ repeat ceil(petals) as k {
82
+ grow 1.05
83
+ pitch petal_rise
84
+ yaw petal_turn
85
+ colour blooms(k / (petals - 1))
86
+ lay
87
+ branch {
88
+ reshape { grow (1, 1, 1 / petal_length) }
89
+ forward bud_out
90
+ lay
91
+ }
92
+ }
93
+ }
94
+ }
95
+
96
+ variant member_2 {
97
+ stem_start = -3.863
98
+ stride = 0.8487
99
+ ring_stretch = 3.669
100
+ ripples = 3.82
101
+ bend = -2.414
102
+ wobbles = 1.493
103
+ wobble_start = -0.1639
104
+ flower_tilt = 4.136
105
+ flower_out = 15.1
106
+ flower_turn = 40.79
107
+ petals = 9.623
108
+ petal_length = 8.772
109
+ petal_rise = 0.2405
110
+ petal_turn = 17.13
111
+ bud_out = 6.764
112
+ ring_1 = hsv(128.9, 0.8, 0.97)
113
+ ring_2 = hsv(230.5, 0.31, 0.14)
114
+ ring_3 = hsv(173.4, 0.6, 0.98)
115
+ petal_1 = hsv(268.7, 0.98, 0.95)
116
+ petal_2 = hsv(342.5, 0.63, 1)
117
+ petal_3 = hsv(172, 0.38, 0.32)
118
+ petal_4 = hsv(259.8, 0.64, 1)
119
+ petal_gaps = (0.4614, 0.9823, 0.5445)
120
+ }
121
+
122
+ variant member_3 {
123
+ stem_start = 14.25
124
+ stride = -1.107
125
+ ring_stretch = 2.295
126
+ ripples = 2.807
127
+ bend = 3.543
128
+ wobbles = 1.704
129
+ wobble_start = -0.4026
130
+ flower_tilt = -80.55
131
+ flower_out = 15.81
132
+ flower_turn = -14.08
133
+ petals = 10.12
134
+ petal_length = 6.982
135
+ petal_rise = -0.8544
136
+ petal_turn = 50.84
137
+ bud_out = 6.767
138
+ ring_1 = hsv(39.4, 0.56, 0.89)
139
+ ring_2 = hsv(21.3, 0.91, 0.95)
140
+ ring_3 = hsv(273.4, 0.33, 0.87)
141
+ petal_1 = hsv(220.4, 0.73, 0.83)
142
+ petal_2 = hsv(221.6, 0.49, 1)
143
+ petal_3 = hsv(275.2, 0.2, 0.56)
144
+ petal_4 = hsv(319.3, 0.54, 1)
145
+ petal_gaps = (0.675, 0.3129, 0.3009)
146
+ }
147
+
148
+ variant member_4 {
149
+ stem_start = 2.749
150
+ stride = 1.119
151
+ ring_stretch = 3.692
152
+ ripples = 3.064
153
+ bend = 3.197
154
+ wobbles = 1.116
155
+ wobble_start = 0.4841
156
+ flower_tilt = 34.86
157
+ flower_out = 21.14
158
+ flower_turn = 50.89
159
+ petals = 11.38
160
+ petal_length = 5.246
161
+ petal_rise = 0.9676
162
+ petal_turn = 6.16
163
+ bud_out = 7.861
164
+ ring_1 = hsv(336.4, 0.86, 0.85)
165
+ ring_2 = hsv(148.4, 0.3, 0.07)
166
+ ring_3 = hsv(70.5, 0.56, 0.99)
167
+ petal_1 = hsv(124.8, 0.8, 0.91)
168
+ petal_2 = hsv(215.7, 0.67, 1)
169
+ petal_3 = hsv(318.2, 0.62, 0.88)
170
+ petal_4 = hsv(259.8, 0.64, 1)
171
+ petal_gaps = (0.8628, 0.9302, 0.7001)
172
+ }
173
+
174
+ variant member_5 {
175
+ stem_start = 2.749
176
+ stride = 1.119
177
+ ring_stretch = 3.349
178
+ ripples = 3.064
179
+ bend = 3.197
180
+ wobbles = 1.116
181
+ wobble_start = -0.0318
182
+ flower_tilt = 1.816
183
+ flower_out = 19.43
184
+ flower_turn = 50.89
185
+ petals = 11.38
186
+ petal_length = 11.71
187
+ petal_rise = -5.587
188
+ petal_turn = 6.16
189
+ bud_out = 7.861
190
+ ring_1 = hsv(336.4, 0.86, 0.85)
191
+ ring_2 = hsv(148.4, 0.3, 0.07)
192
+ ring_3 = hsv(70.5, 0.56, 0.99)
193
+ petal_1 = hsv(124.8, 0.8, 0.91)
194
+ petal_2 = hsv(224.3, 0.65, 1)
195
+ petal_3 = hsv(225.8, 0.59, 0.11)
196
+ petal_4 = hsv(259.8, 0.64, 1)
197
+ petal_gaps = (0.7386, 0.3568, 0.7001)
198
+ }
199
+
200
+ variant member_6 {
201
+ stem_start = 2.749
202
+ stride = -0.6118
203
+ ring_stretch = 4.787
204
+ ripples = 3.064
205
+ bend = -0.192
206
+ wobbles = 1.116
207
+ wobble_start = 0.4841
208
+ flower_tilt = 34.86
209
+ flower_out = 29.33
210
+ flower_turn = 2.224
211
+ petals = 11.38
212
+ petal_length = 5.749
213
+ petal_rise = 13.01
214
+ petal_turn = 6.16
215
+ bud_out = 7.373
216
+ ring_1 = hsv(336.4, 0.86, 0.85)
217
+ ring_2 = hsv(142.2, 0.55, 0.39)
218
+ ring_3 = hsv(70.5, 0.56, 0.99)
219
+ petal_1 = hsv(124.8, 0.8, 0.91)
220
+ petal_2 = hsv(18.5, 0.72, 1)
221
+ petal_3 = hsv(318.2, 0.62, 0.88)
222
+ petal_4 = hsv(259.8, 0.64, 1)
223
+ petal_gaps = (0.8628, 0.9302, 0.67)
224
+ }
225
+
226
+ variant member_7 {
227
+ stem_start = 14.25
228
+ stride = -1.076
229
+ ring_stretch = 2.914
230
+ ripples = 2.533
231
+ bend = 5.363
232
+ wobbles = 1.712
233
+ wobble_start = -0.21
234
+ flower_tilt = -17.13
235
+ flower_out = 15.73
236
+ flower_turn = -37.2
237
+ petals = 10.12
238
+ petal_length = 7.901
239
+ petal_rise = -0.9835
240
+ petal_turn = 32.03
241
+ bud_out = 7.865
242
+ ring_1 = hsv(61.9, 0.33, 0.95)
243
+ ring_2 = hsv(21.3, 0.91, 0.95)
244
+ ring_3 = hsv(273.4, 0.33, 0.87)
245
+ petal_1 = hsv(237.8, 0.64, 0.84)
246
+ petal_2 = hsv(214.1, 0.65, 1)
247
+ petal_3 = hsv(284.3, 0.64, 0.94)
248
+ petal_4 = hsv(252.7, 0.66, 1)
249
+ petal_gaps = (0.7793, 0.3129, 0.3009)
250
+ }
251
+
252
+ variant member_8 {
253
+ stem_start = 2.749
254
+ stride = 1.119
255
+ ring_stretch = 3.349
256
+ ripples = 2.947
257
+ bend = 0.5653
258
+ wobbles = 1.116
259
+ wobble_start = 0.1169
260
+ flower_tilt = 1.816
261
+ flower_out = 24.65
262
+ flower_turn = -50.74
263
+ petals = 11.13
264
+ petal_length = 11.71
265
+ petal_rise = -4.728
266
+ petal_turn = 11.7
267
+ bud_out = 7.512
268
+ ring_1 = hsv(336.4, 0.86, 0.85)
269
+ ring_2 = hsv(232.3, 0.38, 0.89)
270
+ ring_3 = hsv(116.9, 0.48, 0.91)
271
+ petal_1 = hsv(24.1, 0.73, 0.85)
272
+ petal_2 = hsv(138.5, 0.91, 1)
273
+ petal_3 = hsv(225.8, 0.59, 0.11)
274
+ petal_4 = hsv(260.3, 0.5, 1)
275
+ petal_gaps = (0.7386, 0.6882, 0.2591)
276
+ }
277
+
278
+ variant member_9 {
279
+ stem_start = 9.001
280
+ stride = -0.1912
281
+ ring_stretch = 3.615
282
+ ripples = 3.091
283
+ bend = 2.916
284
+ wobbles = 1.401
285
+ wobble_start = 0.1295
286
+ flower_tilt = 13.02
287
+ flower_out = 16.31
288
+ flower_turn = -4.83
289
+ petals = 14.14
290
+ petal_length = 11.43
291
+ petal_rise = 8.701
292
+ petal_turn = 5.353
293
+ bud_out = 5.474
294
+ ring_1 = hsv(278.2, 0.19, 0.97)
295
+ ring_2 = hsv(301.4, 0.13, 0.9)
296
+ ring_3 = hsv(195.4, 0.42, 0.83)
297
+ petal_1 = hsv(233.3, 0.5, 0.16)
298
+ petal_2 = hsv(115.6, 0.9, 1)
299
+ petal_3 = hsv(140.2, 0.51, 0.75)
300
+ petal_4 = hsv(226.4, 0.52, 1)
301
+ petal_gaps = (0.8438, 0.3663, 0.7746)
302
+ }
303
+
304
+ variant member_10 {
305
+ stem_start = 9.001
306
+ stride = -0.1912
307
+ ring_stretch = 3.615
308
+ ripples = 3.751
309
+ bend = 2.916
310
+ wobbles = 1.401
311
+ wobble_start = 0.1295
312
+ flower_tilt = 101.3
313
+ flower_out = 22.98
314
+ flower_turn = 25.73
315
+ petals = 13.08
316
+ petal_length = 11.43
317
+ petal_rise = 8.701
318
+ petal_turn = 5.188
319
+ bud_out = 5.432
320
+ ring_1 = hsv(129.8, 0.03, 0.88)
321
+ ring_2 = hsv(301.4, 0.13, 0.9)
322
+ ring_3 = hsv(195.4, 0.42, 0.83)
323
+ petal_1 = hsv(233.3, 0.5, 0.16)
324
+ petal_2 = hsv(46.1, 0.75, 1)
325
+ petal_3 = hsv(208.6, 0.21, 0.43)
326
+ petal_4 = hsv(91.9, 0.52, 1)
327
+ petal_gaps = (0.9623, 0.3369, 0.9221)
328
+ }
329
+
330
+ variant member_11 {
331
+ stem_start = 14.29
332
+ stride = -0.8658
333
+ ring_stretch = 2.954
334
+ ripples = 3.003
335
+ bend = 3.327
336
+ wobbles = 1.647
337
+ wobble_start = 0.1046
338
+ flower_tilt = 32
339
+ flower_out = 15.73
340
+ flower_turn = -3.481
341
+ petals = 11.55
342
+ petal_length = 10.56
343
+ petal_rise = 5.842
344
+ petal_turn = 7.895
345
+ bud_out = 6.717
346
+ ring_1 = hsv(40.1, 0.12, 0.91)
347
+ ring_2 = hsv(21.3, 0.91, 0.95)
348
+ ring_3 = hsv(275.9, 0.31, 0.84)
349
+ petal_1 = hsv(234.5, 0.63, 0.81)
350
+ petal_2 = hsv(200.9, 0.65, 1)
351
+ petal_3 = hsv(227.8, 0.32, 0.56)
352
+ petal_4 = hsv(186, 0.6, 1)
353
+ petal_gaps = (0.9623, 0.3129, 0.379)
354
+ }
355
+
356
+ variant member_12 {
357
+ stem_start = 6.345
358
+ stride = -0.5627
359
+ ring_stretch = 3.558
360
+ ripples = 3.724
361
+ bend = -2.754
362
+ wobbles = 1.401
363
+ wobble_start = 0.1521
364
+ flower_tilt = 58.43
365
+ flower_out = 26.57
366
+ flower_turn = -26.72
367
+ petals = 12.14
368
+ petal_length = 5.061
369
+ petal_rise = 5.488
370
+ petal_turn = 5.188
371
+ bud_out = 7.618
372
+ ring_1 = hsv(19.4, 0.53, 0.98)
373
+ ring_2 = hsv(273, 0.25, 0.5)
374
+ ring_3 = hsv(312.6, 0.11, 0.78)
375
+ petal_1 = hsv(329.9, 0.86, 0.66)
376
+ petal_2 = hsv(25.9, 0.95, 1)
377
+ petal_3 = hsv(212.9, 0.53, 0.46)
378
+ petal_4 = hsv(110.6, 0.76, 1)
379
+ petal_gaps = (0.5681, 0.5911, 0.6596)
380
+ }
381
+
382
+ variant member_13 {
383
+ stem_start = 14.28
384
+ stride = -0.7079
385
+ ring_stretch = 3.084
386
+ ripples = 2.644
387
+ bend = 5.259
388
+ wobbles = 1.712
389
+ wobble_start = 0.2649
390
+ flower_tilt = 3.72
391
+ flower_out = 15.73
392
+ flower_turn = 25.73
393
+ petals = 11.5
394
+ petal_length = 9.635
395
+ petal_rise = 5.351
396
+ petal_turn = 9.162
397
+ bud_out = 6.634
398
+ ring_1 = hsv(43.8, 0.16, 0.92)
399
+ ring_2 = hsv(21.3, 0.91, 0.95)
400
+ ring_3 = hsv(282.8, 0.26, 0.78)
401
+ petal_1 = hsv(194.2, 0.59, 0.48)
402
+ petal_2 = hsv(46.1, 0.75, 1)
403
+ petal_3 = hsv(234, 0.35, 0.6)
404
+ petal_4 = hsv(186, 0.6, 1)
405
+ petal_gaps = (0.858, 0.4019, 0.337)
406
+ }
407
+
408
+ variant member_14 {
409
+ stem_start = -9.948
410
+ stride = 0.5762
411
+ ring_stretch = 4.284
412
+ ripples = 3.445
413
+ bend = -1.924
414
+ wobbles = 1.318
415
+ wobble_start = 0.2904
416
+ flower_tilt = 40.73
417
+ flower_out = 33.18
418
+ flower_turn = 84.3
419
+ petals = 7.743
420
+ petal_length = 4.72
421
+ petal_rise = 12.61
422
+ petal_turn = 24.93
423
+ bud_out = 4.882
424
+ ring_1 = hsv(267.3, 0.79, 0.96)
425
+ ring_2 = hsv(27, 0.58, 0.68)
426
+ ring_3 = hsv(270.6, 0.08, 0.92)
427
+ petal_1 = hsv(314.8, 0.3, 0.62)
428
+ petal_2 = hsv(243.5, 0.72, 1)
429
+ petal_3 = hsv(227.3, 0.45, 0.43)
430
+ petal_4 = hsv(259.8, 0.64, 1)
431
+ petal_gaps = (0.5431, 0.7159, 0.8019)
432
+ }
433
+
434
+ variant member_15 {
435
+ stem_start = 2.749
436
+ stride = -1.04
437
+ ring_stretch = 4.787
438
+ ripples = 3.064
439
+ bend = -0.192
440
+ wobbles = 1.116
441
+ wobble_start = 0.4841
442
+ flower_tilt = 34.86
443
+ flower_out = 17.6
444
+ flower_turn = 2.224
445
+ petals = 11.38
446
+ petal_length = 5.749
447
+ petal_rise = 13.01
448
+ petal_turn = 1.826
449
+ bud_out = 7.373
450
+ ring_1 = hsv(111.1, 0.96, 0.77)
451
+ ring_2 = hsv(24.1, 0.78, 0.86)
452
+ ring_3 = hsv(299.7, 0.58, 0.75)
453
+ petal_1 = hsv(143.1, 0.04, 0.88)
454
+ petal_2 = hsv(69.6, 0.95, 1)
455
+ petal_3 = hsv(31.3, 0.66, 0.14)
456
+ petal_4 = hsv(259.8, 0.64, 1)
457
+ petal_gaps = (0.8628, 0.9302, 0.4369)
458
+ }