@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.
- package/dist/ast.d.ts +2 -0
- package/dist/ast.d.ts.map +1 -1
- package/dist/ast.js.map +1 -1
- package/dist/builtins.d.ts +1 -1
- package/dist/builtins.d.ts.map +1 -1
- package/dist/builtins.js +5 -2
- package/dist/builtins.js.map +1 -1
- package/dist/checker.js +2 -2
- package/dist/checker.js.map +1 -1
- package/dist/colour.d.ts +1 -1
- package/dist/colour.d.ts.map +1 -1
- package/dist/colour.js +8 -4
- package/dist/colour.js.map +1 -1
- package/dist/format.js +1 -1
- package/dist/format.js.map +1 -1
- package/dist/genetics.d.ts.map +1 -1
- package/dist/genetics.js +3 -1
- package/dist/genetics.js.map +1 -1
- package/dist/help.d.ts.map +1 -1
- package/dist/help.js +4 -0
- package/dist/help.js.map +1 -1
- package/dist/interpreter.js +1 -1
- package/dist/interpreter.js.map +1 -1
- package/dist/parser.js +7 -2
- package/dist/parser.js.map +1 -1
- package/dist/values.d.ts +2 -0
- package/dist/values.d.ts.map +1 -1
- package/dist/values.js +1 -1
- package/dist/values.js.map +1 -1
- package/package.json +1 -1
- package/reference/LANGUAGE.md +14 -4
- package/reference/creatures/Alien.genie +653 -0
- package/reference/creatures/Breeze.genie +386 -0
- package/reference/creatures/Cobra.genie +386 -0
- package/reference/creatures/Flowerball.genie +302 -39
- package/reference/creatures/FlyingFish.genie +786 -0
- package/reference/creatures/Genes.genie +470 -0
- package/reference/creatures/Genie.genie +548 -0
- package/reference/creatures/Greenbay.genie +786 -0
- package/reference/creatures/Jellyfish.genie +472 -0
- package/reference/creatures/Monster.genie +594 -0
- package/reference/creatures/Neuron.genie +649 -0
- package/reference/creatures/Octoplant.genie +334 -0
- package/reference/creatures/Parasite.genie +393 -0
- package/reference/creatures/Pesky.genie +473 -0
- package/reference/creatures/Phoenix.genie +294 -0
- package/reference/creatures/Picstix.genie +1788 -0
- package/reference/creatures/Psybat.genie +602 -0
- package/reference/creatures/Star.genie +339 -0
- package/reference/creatures/Starfish.genie +458 -0
- package/reference/creatures/Transformer.genie +297 -0
- package/reference/creatures/TwoByTwo.genie +547 -0
- package/reference/creatures/Flower.genie +0 -41
- package/reference/creatures/Flyer.genie +0 -142
- package/reference/creatures/StarBurstShell.genie +0 -102
- 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
|
+
}
|