@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,297 @@
1
+ creature Transformer
2
+ // Tubes, cubes, cones, balls and rings, scattered in waves and copied into all eight corners of
3
+ // space, each copy a slightly stretched mirror image of the next.
4
+ // Inspired by Transformer, a DancerDNA creature.
5
+
6
+ gene mirror_x = (-0.9654, 1.076, 1.073) in (-1.1, 0.9, 0.9)..(-0.9, 1.1, 1.1) // how the left half is made from the right: -1 is an exact mirror image
7
+ gene mirror_y = (1.058, -1.061, 1.011) in (0.9, -1.1, 0.9)..(1.1, -0.9, 1.1) // the lower quarter from the upper
8
+ gene mirror_z = (1.006, 0.9291, -1.085) in (0.9, 0.9, -1.1)..(1.1, 1.1, -0.9) // the back eighth from the front
9
+
10
+ gene reach = (4.991, 11.64, 19.04) in (3, 3, 3)..(20, 20, 20) // how far the shapes wander: across, up and forward
11
+ gene reach_waves = (0.5784, 0.7485, 0.4928) in (0, 0, 0)..(0.7958, 0.7958, 0.7958) // how many waves they wander in, from the first shape to the last
12
+ gene reach_start = (0.5995, 0.3055, 0.9678) in (0, 0, 0)..(1, 1, 1) // where the waves start
13
+ gene size = (1.855, 4.302, 7.492) in (1, 1, 1)..(8, 8, 8) // how big the shapes grow
14
+ gene size_waves = (0.556, 0.4642, 0.7644) in (0, 0, 0)..(0.7958, 0.7958, 0.7958)
15
+ gene size_start = (0.8292, 0.1354, 0.7251) in (0, 0, 0)..(1, 1, 1)
16
+ gene turn = (315.7, -137.7, 163.3) in (-343.8, -343.8, -343.8)..(343.8, 343.8, 343.8) // how far the shapes turn: up, sideways and round
17
+ gene turn_waves = (0.5032, 0.4259, 0.1233) in (0, 0, 0)..(0.7958, 0.7958, 0.7958)
18
+ gene turn_start = (0.145, 0.6595, 0.1057) in (0, 0, 0)..(1, 1, 1)
19
+
20
+ gene gloss = 0.4599 in 0..1 // how strong the highlights are
21
+ gene focus = 0.1187 in 0..1 // how tight the highlights are
22
+ gene centre = hsv(238.9, 1, 1) in hsv(0, 1, 1)..hsv(252, 1, 1) // the colour of shapes near the middle
23
+ gene edge = hsv(56.6, 0.64, 0.3) in hsv(0, 0, 0)..hsv(252, 1, 0.5) // the colour of the farthest shapes
24
+
25
+ let skin = spectrum(centre, edge)
26
+
27
+ halves
28
+
29
+ part halves {
30
+ branch {
31
+ quarters
32
+ grow mirror_x
33
+ quarters
34
+ }
35
+ }
36
+
37
+ part quarters {
38
+ branch {
39
+ eighths
40
+ grow mirror_y
41
+ eighths
42
+ }
43
+ }
44
+
45
+ part eighths {
46
+ branch {
47
+ shapes
48
+ grow mirror_z
49
+ shapes
50
+ }
51
+ }
52
+
53
+ part shapes {
54
+ shine gloss
55
+ sharpness focus
56
+ let farthest = length(reach)
57
+ repeat 10 as k {
58
+ branch {
59
+ let along = k / 9
60
+ shape k % 5
61
+ 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)))
62
+ move place
63
+ 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))))
64
+ pitch turn.x * wave(turn_waves.x * (along - turn_start.x))
65
+ yaw turn.y * wave(turn_waves.y * (along - turn_start.y))
66
+ roll turn.z * wave(turn_waves.z * (along - turn_start.z))
67
+ colour skin(length(place) / farthest)
68
+ lay
69
+ }
70
+ }
71
+ }
72
+
73
+ variant member_2 {
74
+ mirror_x = (-1.06, 0.9671, 1.084)
75
+ mirror_y = (1.1, -0.9745, 0.9777)
76
+ mirror_z = (1.013, 0.913, -0.9129)
77
+ reach = (4.025, 15.83, 18.68)
78
+ reach_waves = (0.7818, 0.2807, 0.4275)
79
+ reach_start = (0.07705, 0.3785, 0.9331)
80
+ size = (6.876, 1.011, 1.365)
81
+ size_waves = (0.6611, 0.2257, 0.1127)
82
+ size_start = (0.1241, 0.3186, 0.1496)
83
+ turn = (324.9, -149.6, 184.7)
84
+ turn_waves = (0.1668, 0.05536, 0.5407)
85
+ turn_start = (0.01349, 0.4675, 0.5868)
86
+ gloss = 0.5637
87
+ focus = 0.1768
88
+ centre = hsv(10, 1, 1)
89
+ edge = hsv(109.8, 0.37, 0.02)
90
+ }
91
+
92
+ variant member_3 {
93
+ mirror_x = (-0.9373, 1.044, 1.008)
94
+ mirror_y = (0.9419, -0.984, 0.9964)
95
+ mirror_z = (1.013, 0.913, -0.9129)
96
+ reach = (18.37, 10.93, 16.83)
97
+ reach_waves = (0.7818, 0.4295, 0.6803)
98
+ reach_start = (0.2068, 0.2129, 0.9331)
99
+ size = (5.746, 1.011, 6.167)
100
+ size_waves = (0.3424, 0.5866, 0.7126)
101
+ size_start = (0.5269, 0.2152, 0.1496)
102
+ turn = (-146.9, -341.2, 324.1)
103
+ turn_waves = (0.1895, 0.5734, 0.2598)
104
+ turn_start = (0.6295, 0.4012, 0.2795)
105
+ gloss = 0.3502
106
+ focus = 0.1155
107
+ centre = hsv(196, 1, 1)
108
+ edge = hsv(47, 0.85, 0.41)
109
+ }
110
+
111
+ variant member_4 {
112
+ mirror_x = (-1.047, 1.029, 0.9231)
113
+ mirror_y = (1.048, -0.9481, 0.9494)
114
+ mirror_z = (1.025, 1.016, -1.007)
115
+ reach = (16.43, 8.257, 9.228)
116
+ reach_waves = (0.7818, 0.4313, 0.7088)
117
+ reach_start = (0.1874, 0.6913, 0.4858)
118
+ size = (6.313, 1.011, 7.477)
119
+ size_waves = (0.6172, 0.5657, 0.6571)
120
+ size_start = (0.7918, 0.9021, 0.7712)
121
+ turn = (124.4, 269.5, -182.8)
122
+ turn_waves = (0.7268, 0.08601, 0.4895)
123
+ turn_start = (0.9133, 0.8689, 0.893)
124
+ gloss = 0.08317
125
+ focus = 0.2864
126
+ centre = hsv(106.7, 1, 1)
127
+ edge = hsv(143.6, 0.69, 0.02)
128
+ }
129
+
130
+ variant member_5 {
131
+ mirror_x = (-0.9291, 1.017, 1.038)
132
+ mirror_y = (1.063, -0.9561, 0.9594)
133
+ mirror_z = (1.002, 1.069, -0.9437)
134
+ reach = (10.5, 18.96, 10.28)
135
+ reach_waves = (0.7173, 0.7297, 0.2097)
136
+ reach_start = (0.8442, 0.08285, 0.9803)
137
+ size = (2.708, 3.845, 1.151)
138
+ size_waves = (0.2968, 0.619, 0.7384)
139
+ size_start = (0.9469, 0.2041, 0.6565)
140
+ turn = (-339, -94.13, -4.362)
141
+ turn_waves = (0.7268, 0.743, 0.2628)
142
+ turn_start = (0.1985, 0.7353, 0.07249)
143
+ gloss = 0.274
144
+ focus = 0.1092
145
+ centre = hsv(68.3, 1, 1)
146
+ edge = hsv(207.9, 0.41, 0.12)
147
+ }
148
+
149
+ variant member_6 {
150
+ mirror_x = (-1.052, 1.004, 0.9425)
151
+ mirror_y = (1.026, -1.038, 1.004)
152
+ mirror_z = (1.083, 0.9781, -0.9648)
153
+ reach = (16.64, 19.89, 10.28)
154
+ reach_waves = (0.3952, 0.1807, 0.06855)
155
+ reach_start = (0.06055, 0.04899, 0.5075)
156
+ size = (4.08, 3.845, 3.357)
157
+ size_waves = (0.3831, 0.619, 0.5222)
158
+ size_start = (0.8008, 0.6039, 0.7527)
159
+ turn = (-219.9, -183.6, -4.362)
160
+ turn_waves = (0.7268, 0.08093, 0.04366)
161
+ turn_start = (0.4766, 0.8133, 0.07249)
162
+ gloss = 0.8038
163
+ focus = 0.1373
164
+ centre = hsv(29.8, 1, 1)
165
+ edge = hsv(143.6, 0.69, 0.02)
166
+ }
167
+
168
+ variant member_7 {
169
+ mirror_x = (-0.9246, 1.011, 0.9714)
170
+ mirror_y = (1.026, -1.038, 1.004)
171
+ mirror_z = (1.037, 1.098, -0.9385)
172
+ reach = (16.64, 15.34, 18.77)
173
+ reach_waves = (0.09293, 0.6435, 0.3298)
174
+ reach_start = (0.6673, 0.2066, 0.9903)
175
+ size = (2.192, 4.867, 7.477)
176
+ size_waves = (0.3109, 0.1811, 0.1919)
177
+ size_start = (0.9634, 0.9415, 0.7527)
178
+ turn = (-316.8, 269.5, 296.3)
179
+ turn_waves = (0.0966, 0.1139, 0.07768)
180
+ turn_start = (0.9666, 0.6862, 0.07249)
181
+ gloss = 0.999
182
+ focus = 0.1555
183
+ centre = hsv(110, 1, 1)
184
+ edge = hsv(143.6, 0.69, 0.02)
185
+ }
186
+
187
+ variant member_8 {
188
+ mirror_x = (-0.9095, 1.011, 1.094)
189
+ mirror_y = (1.026, -1.038, 1.004)
190
+ mirror_z = (1.002, 1.069, -0.9437)
191
+ reach = (16.3, 19.89, 10.28)
192
+ reach_waves = (0.3952, 0.3343, 0.7537)
193
+ reach_start = (0.6314, 0.8465, 0.679)
194
+ size = (2.972, 3.845, 7.477)
195
+ size_waves = (0.2281, 0.619, 0.4828)
196
+ size_start = (0.679, 0.05621, 0.7527)
197
+ turn = (-41.39, 269.5, -4.362)
198
+ turn_waves = (0.7268, 0.06998, 0.7638)
199
+ turn_start = (0.9666, 0.377, 0.07249)
200
+ gloss = 0.7963
201
+ focus = 0.144
202
+ centre = hsv(214.9, 1, 1)
203
+ edge = hsv(225.8, 0.41, 0.2)
204
+ }
205
+
206
+ variant member_9 {
207
+ mirror_x = (-0.9413, 1.08, 1.075)
208
+ mirror_y = (0.9097, -1.054, 1.019)
209
+ mirror_z = (0.9761, 0.9896, -0.9724)
210
+ reach = (19.85, 14.98, 19.95)
211
+ reach_waves = (0.1938, 0.3314, 0.7036)
212
+ reach_start = (0.8911, 0.9183, 0.1837)
213
+ size = (5.03, 6.723, 2.976)
214
+ size_waves = (0.5795, 0.7332, 0.6247)
215
+ size_start = (0.7882, 0.3163, 0.8494)
216
+ turn = (-338.4, 113.6, 86.89)
217
+ turn_waves = (0.2204, 0.06403, 0.313)
218
+ turn_start = (0.2123, 0.4689, 0.1855)
219
+ gloss = 0.5721
220
+ focus = 0.834
221
+ centre = hsv(11.4, 1, 1)
222
+ edge = hsv(8.9, 0.31, 0.32)
223
+ }
224
+
225
+ variant member_10 {
226
+ mirror_x = (-1.062, 1.001, 0.9411)
227
+ reach = (14.98, 14.31, 5.856)
228
+ reach_waves = (0.1102, 0.1865, 0.5766)
229
+ reach_start = (0.9617, 0.2026, 0.5352)
230
+ size = (5.08, 1.543, 3.873)
231
+ size_waves = (0.4502, 0.6127, 0.4629)
232
+ size_start = (0.618, 0.3652, 0.808)
233
+ turn = (-173.1, -137.7, 145.2)
234
+ turn_waves = (0.7171, 0.3895, 0.6106)
235
+ turn_start = (0.4704, 0.4458, 0.9969)
236
+ gloss = 0.8652
237
+ focus = 0.7228
238
+ centre = hsv(47.4, 1, 1)
239
+ edge = hsv(189.6, 0.41, 0.02)
240
+ }
241
+
242
+ variant member_11 {
243
+ mirror_x = (-0.9413, 1.08, 1.075)
244
+ mirror_y = (1.061, -1.024, 0.9389)
245
+ mirror_z = (0.9362, 0.9342, -1.039)
246
+ reach = (19.85, 3.001, 18.66)
247
+ reach_waves = (0.1904, 0.4032, 0.3616)
248
+ reach_start = (0.9916, 0.07116, 0.03809)
249
+ size = (2.844, 2.675, 2.745)
250
+ size_waves = (0.2702, 0.1133, 0.2891)
251
+ size_start = (0.07638, 0.1702, 0.5224)
252
+ turn = (-338.4, -130.5, 86.89)
253
+ turn_waves = (0.2679, 0.2536, 0.06887)
254
+ turn_start = (0.909, 0.07045, 0.1855)
255
+ gloss = 0.02105
256
+ focus = 0.7658
257
+ centre = hsv(116.2, 1, 1)
258
+ edge = hsv(42.7, 0.15, 0.25)
259
+ }
260
+
261
+ variant member_12 {
262
+ mirror_x = (-1.084, 0.9818, 0.9569)
263
+ mirror_y = (1.037, -1.025, 0.9851)
264
+ mirror_z = (0.9334, 0.9378, -0.9445)
265
+ reach = (17.88, 18.2, 12.18)
266
+ reach_waves = (0.06961, 0.3664, 0.7608)
267
+ reach_start = (0.4042, 0.4254, 0.5262)
268
+ size = (7.368, 2.488, 6.649)
269
+ size_waves = (0.311, 0.6345, 0.2357)
270
+ size_start = (0.2111, 0.7011, 0.8735)
271
+ turn = (-111.3, -176, 86.89)
272
+ turn_waves = (0.1928, 0.7837, 0.3386)
273
+ turn_start = (0.4741, 0.5516, 0.5962)
274
+ gloss = 0.8493
275
+ focus = 0.569
276
+ centre = hsv(2, 1, 1)
277
+ edge = hsv(188.3, 0.31, 0.12)
278
+ }
279
+
280
+ variant member_13 {
281
+ mirror_x = (-0.9291, 1.017, 1.038)
282
+ mirror_y = (0.9082, -1.003, 1.004)
283
+ mirror_z = (1.027, 1.089, -1.037)
284
+ reach = (13.95, 8.257, 14.34)
285
+ reach_waves = (0.7818, 0.5895, 0.6817)
286
+ reach_start = (0.2068, 0.304, 0.279)
287
+ size = (4.494, 1.011, 7.72)
288
+ size_waves = (0.09837, 0.7605, 0.1247)
289
+ size_start = (0.7691, 0.9021, 0.124)
290
+ turn = (31.18, 27.53, 151.2)
291
+ turn_waves = (0.09903, 0.02196, 0.4895)
292
+ turn_start = (0.03072, 0.1364, 0.2159)
293
+ gloss = 0.298
294
+ focus = 0.1155
295
+ centre = hsv(156.8, 1, 1)
296
+ edge = hsv(76, 0.41, 0.35)
297
+ }