@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,547 @@
1
+ creature TwoByTwo
2
+ // A ball with two arms of petals, buds and beads curling away from it, one the mirror image of
3
+ // the other.
4
+ // Inspired by 2by2, a DancerDNA creature.
5
+
6
+ gene ball_stretch = 0.1725 in -0.33..13.68 // how long the ball is drawn out
7
+ gene arm_start = 0.7768 in 0.09..11.27 // how far from the ball the arms start
8
+ gene arm_1_length = 48.32 in 2..50 // how many petals each arm has; the last is cut short to fit
9
+ gene arm_2_length = 20.11 in 2..50
10
+ gene first_offset = (-6.349, -2.84, -2.804) in (-44.35, -15, -15)..(15, 15, 15) // where the arms' second petal is from the first
11
+ gene splay = -16.57 in -40.11..40.11 // how far each petal turns out to the side
12
+ gene lean = -15.12 in -50..50 // how far each petal tips up
13
+ gene petal_tip = -1.711 in -50..50 // how far it tips again, towards its bud
14
+ gene petal_length = 5.908 in -0.33..13.68
15
+ gene bud_out = 3.096 in -4..4.09 // how far out along the petal its bud is
16
+ gene bead_out = -4 in -13.38..4.09 // how far out its bead is
17
+ gene taper = 0.9457 in 0.9..1.1 // how much bigger each petal is than the last
18
+ gene curl = 19.37 in -50..50 // how far each petal turns from the last
19
+ gene colour_run = 2.708 in 1..3 // how far along its colours each arm goes
20
+
21
+ // The petals', buds' and beads' colours, from the ball out, and the gaps between them.
22
+ gene petal_1 = hsv(48, 0.6, 1) in hsv(0, 0.4, 1)..hsv(360, 1, 1)
23
+ gene petal_2 = hsv(355.2, 0.75, 1) in hsv(0, 0.4, 1)..hsv(360, 1, 1)
24
+ gene petal_3 = hsv(81.6, 0.63, 1) in hsv(0, 0.4, 1)..hsv(360, 1, 1)
25
+ gene petal_4 = hsv(35.9, 0.54, 1) in hsv(0, 0.4, 1)..hsv(360, 1, 1)
26
+ gene petal_gaps = (0.4494, 0.8102, 0.5531) in (0.25, 0.25, 0.25)..(1, 1, 1)
27
+ gene bud_1 = hsv(211.9, 0.55, 1) in hsv(0, 0.4, 1)..hsv(360, 1, 1)
28
+ gene bud_2 = hsv(347.1, 0.53, 1) in hsv(0, 0.4, 1)..hsv(360, 1, 1)
29
+ gene bud_3 = hsv(259.7, 0.73, 1) in hsv(0, 0.4, 1)..hsv(360, 1, 1)
30
+ gene bud_4 = hsv(288.2, 0.52, 1) in hsv(0, 0.4, 1)..hsv(360, 1, 1)
31
+ gene bud_gaps = (0.8816, 0.6087, 0.9347) in (0.25, 0.25, 0.25)..(1, 1, 1)
32
+ gene bead_1 = hsv(28.6, 0.74, 0.12) in hsv(0, 0, 0)..hsv(360, 1, 1)
33
+ gene bead_2 = hsv(247.1, 0.65, 0.83) in hsv(0, 0, 0)..hsv(360, 1, 1)
34
+ gene bead_3 = hsv(150, 0.59, 0.23) in hsv(0, 0, 0)..hsv(360, 1, 1)
35
+ gene bead_4 = hsv(260.4, 0.97, 1) in hsv(0, 0, 0)..hsv(360, 1, 1)
36
+ gene bead_gaps = (0.6324, 0.8043, 0.9976) in (0.25, 0.25, 0.25)..(1, 1, 1)
37
+
38
+ // Each band of colours is stretched to end where the original's did: at its first colour at
39
+ // or beyond 1.
40
+ let petal_end = band_end(petal_gaps)
41
+ let bud_end = band_end(bud_gaps)
42
+ let bead_end = band_end(bead_gaps)
43
+ let petals = spectrum(petal_1, petal_2 at petal_gaps.x / petal_end, petal_3 at (petal_gaps.x + petal_gaps.y) / petal_end, petal_4 at (petal_gaps.x + petal_gaps.y + petal_gaps.z) / petal_end)
44
+ let buds = spectrum(bud_1, bud_2 at bud_gaps.x / bud_end, bud_3 at (bud_gaps.x + bud_gaps.y) / bud_end, bud_4 at (bud_gaps.x + bud_gaps.y + bud_gaps.z) / bud_end)
45
+ let beads = spectrum(bead_1, bead_2 at bead_gaps.x / bead_end, bead_3 at (bead_gaps.x + bead_gaps.y) / bead_end, bead_4 at (bead_gaps.x + bead_gaps.y + bead_gaps.z) / bead_end)
46
+
47
+ colour petals(0.51 / petal_end)
48
+ pitch -90
49
+ roll 40.107
50
+ yaw 40.107
51
+ branch {
52
+ shape ball
53
+ lay { grow (1, 1, ball_stretch) }
54
+ forward arm_start
55
+ branch {
56
+ arm(arm_1_length)
57
+ }
58
+ branch {
59
+ mirror x
60
+ arm(arm_2_length)
61
+ }
62
+ }
63
+
64
+ part arm(count) {
65
+ shape ball
66
+ repeat floor(count) + 2 as k {
67
+ let along = k / count * colour_run
68
+ // The last petal is cut short by what's left of the count.
69
+ let size = 1
70
+ if k > count {
71
+ size = count % 1
72
+ }
73
+ branch {
74
+ yaw splay
75
+ pitch lean
76
+ branch {
77
+ pitch petal_tip
78
+ colour petals(along / petal_end)
79
+ lay { grow (1, 1, petal_length) * size }
80
+ forward bud_out
81
+ colour buds(along / bud_end)
82
+ lay { grow size }
83
+ }
84
+ forward bead_out
85
+ colour beads(along / bead_end)
86
+ lay { grow size }
87
+ }
88
+ if k == 0 {
89
+ move first_offset
90
+ }
91
+ grow taper
92
+ pitch curl
93
+ }
94
+ }
95
+
96
+ // Where a band's colours end: the original added colours until one reached 1, so later ones
97
+ // are never seen.
98
+ function band_end(gaps) {
99
+ let end = gaps.x
100
+ if end < 1 {
101
+ end += gaps.y
102
+ }
103
+ if end < 1 {
104
+ end += gaps.z
105
+ }
106
+ return end
107
+ }
108
+
109
+ variant member_2 {
110
+ ball_stretch = 5.666
111
+ arm_start = 1.269
112
+ arm_1_length = 36.15
113
+ arm_2_length = 27.63
114
+ first_offset = (14.27, 13.74, 14.3)
115
+ splay = -24.89
116
+ lean = -6.297
117
+ petal_length = 1.169
118
+ bud_out = 2.893
119
+ bead_out = -3.855
120
+ taper = 0.9707
121
+ curl = 29.26
122
+ colour_run = 2.348
123
+ petal_1 = hsv(234.9, 0.81, 1)
124
+ petal_2 = hsv(227.6, 0.56, 1)
125
+ petal_3 = hsv(62.1, 0.68, 1)
126
+ petal_4 = hsv(309.4, 0.9, 1)
127
+ petal_gaps = (0.6387, 0.9842, 0.5213)
128
+ bud_1 = hsv(83.6, 0.89, 1)
129
+ bud_2 = hsv(37.2, 0.63, 1)
130
+ bud_3 = hsv(320.6, 0.62, 1)
131
+ bud_4 = hsv(242.2, 0.58, 1)
132
+ bud_gaps = (0.3744, 0.8222, 0.9137)
133
+ bead_1 = hsv(308, 0.55, 0.35)
134
+ bead_2 = hsv(216, 0.14, 0.88)
135
+ bead_3 = hsv(25.3, 0.47, 0.65)
136
+ bead_4 = hsv(84.1, 0.6, 0.87)
137
+ bead_gaps = (0.4189, 0.5692, 0.8996)
138
+ }
139
+
140
+ variant member_3 {
141
+ ball_stretch = 7.681
142
+ arm_start = 1.343
143
+ arm_1_length = 46
144
+ arm_2_length = 45.46
145
+ first_offset = (8.676, -8.464, 11.37)
146
+ splay = -26.44
147
+ lean = 17.82
148
+ petal_tip = -14.73
149
+ petal_length = 3.133
150
+ bud_out = 3.752
151
+ bead_out = -1.606
152
+ taper = 1.052
153
+ curl = -5.048
154
+ colour_run = 2.567
155
+ petal_1 = hsv(21.5, 0.44, 1)
156
+ petal_2 = hsv(359, 0.7, 1)
157
+ petal_3 = hsv(87.9, 0.7, 1)
158
+ petal_4 = hsv(260.6, 0.52, 1)
159
+ petal_gaps = (0.5718, 0.8466, 0.6466)
160
+ bud_1 = hsv(324, 0.51, 1)
161
+ bud_2 = hsv(324.8, 0.67, 1)
162
+ bud_3 = hsv(54.4, 0.47, 1)
163
+ bud_4 = hsv(67.4, 0.57, 1)
164
+ bud_gaps = (0.5526, 0.6931, 0.7434)
165
+ bead_1 = hsv(142.1, 0.44, 0.42)
166
+ bead_2 = hsv(3.9, 0.81, 0.29)
167
+ bead_3 = hsv(105.4, 0.63, 0.29)
168
+ bead_4 = hsv(328.9, 0.01, 0.79)
169
+ bead_gaps = (0.5129, 0.7115, 0.864)
170
+ }
171
+
172
+ variant member_4 {
173
+ arm_start = 1.033
174
+ arm_2_length = 22.64
175
+ first_offset = (-14.35, -2.84, -2.804)
176
+ splay = -35.95
177
+ lean = -16.76
178
+ petal_length = 9.011
179
+ bead_out = -12.63
180
+ taper = 0.9032
181
+ curl = 28.05
182
+ colour_run = 2.663
183
+ petal_1 = hsv(21, 0.46, 1)
184
+ petal_3 = hsv(114.2, 0.67, 1)
185
+ petal_gaps = (0.5718, 0.8102, 0.646)
186
+ bud_2 = hsv(324.8, 0.67, 1)
187
+ bud_gaps = (0.7379, 0.6087, 0.9347)
188
+ bead_2 = hsv(267, 0.67, 0.63)
189
+ bead_gaps = (0.6062, 0.8043, 0.8333)
190
+ }
191
+
192
+ variant member_5 {
193
+ ball_stretch = 7.681
194
+ arm_start = 1.033
195
+ arm_1_length = 18.38
196
+ arm_2_length = 44.91
197
+ first_offset = (-3.279, 0.7611, -7.54)
198
+ splay = -40
199
+ lean = 3.997
200
+ petal_tip = -10.03
201
+ petal_length = 2.217
202
+ bud_out = 2.589
203
+ bead_out = -3.142
204
+ taper = 0.9438
205
+ curl = 6.221
206
+ colour_run = 2.912
207
+ petal_1 = hsv(21, 0.46, 1)
208
+ petal_2 = hsv(176.3, 0.54, 1)
209
+ petal_3 = hsv(59.4, 0.48, 1)
210
+ petal_4 = hsv(260.6, 0.52, 1)
211
+ petal_gaps = (0.5718, 0.8102, 0.646)
212
+ bud_1 = hsv(324, 0.51, 1)
213
+ bud_2 = hsv(322.2, 0.5, 1)
214
+ bud_3 = hsv(28.8, 0.74, 1)
215
+ bud_4 = hsv(358.8, 0.55, 1)
216
+ bud_gaps = (0.3573, 0.9444, 0.8562)
217
+ bead_1 = hsv(229.5, 0.8, 0.93)
218
+ bead_2 = hsv(356.8, 0.84, 0.64)
219
+ bead_3 = hsv(283.4, 0.68, 0.86)
220
+ bead_4 = hsv(328.9, 0.01, 0.79)
221
+ bead_gaps = (0.5711, 0.8229, 0.7716)
222
+ }
223
+
224
+ variant member_6 {
225
+ ball_stretch = 5.716
226
+ arm_start = 1.033
227
+ arm_2_length = 32.75
228
+ first_offset = (-44.35, -2.84, -2.804)
229
+ splay = -35.95
230
+ lean = -16.76
231
+ petal_length = 7.984
232
+ bud_out = 2.879
233
+ bead_out = -12.63
234
+ taper = 1.032
235
+ curl = -13.33
236
+ colour_run = 2.663
237
+ petal_1 = hsv(122.5, 0.81, 1)
238
+ petal_3 = hsv(112.6, 0.68, 1)
239
+ petal_4 = hsv(309.4, 0.9, 1)
240
+ petal_gaps = (0.5718, 0.9842, 0.5739)
241
+ bud_1 = hsv(136.3, 0.66, 1)
242
+ bud_2 = hsv(306.1, 0.69, 1)
243
+ bud_gaps = (0.3232, 0.6087, 0.9347)
244
+ bead_1 = hsv(65.6, 0.74, 0.16)
245
+ bead_2 = hsv(261.3, 0.4, 0.69)
246
+ bead_gaps = (0.5535, 0.8043, 0.8333)
247
+ }
248
+
249
+ variant member_7 {
250
+ ball_stretch = 4.75
251
+ arm_start = 1.105
252
+ arm_1_length = 37.75
253
+ arm_2_length = 27.63
254
+ first_offset = (0.09834, 12, 7.304)
255
+ splay = -35.95
256
+ lean = -16.76
257
+ petal_tip = 14.01
258
+ petal_length = 4.061
259
+ bud_out = 0.0247
260
+ bead_out = -3.299
261
+ taper = 0.9707
262
+ curl = 2.728
263
+ colour_run = 2.713
264
+ petal_1 = hsv(266.4, 0.98, 1)
265
+ petal_2 = hsv(258.2, 0.56, 1)
266
+ petal_3 = hsv(125.8, 0.46, 1)
267
+ petal_4 = hsv(309.4, 0.9, 1)
268
+ petal_gaps = (0.6705, 0.8567, 0.7442)
269
+ bud_1 = hsv(41.8, 0.73, 1)
270
+ bud_2 = hsv(40.4, 0.72, 1)
271
+ bud_3 = hsv(264.8, 0.73, 1)
272
+ bud_4 = hsv(188.2, 0.41, 1)
273
+ bud_gaps = (0.3744, 0.8969, 0.9137)
274
+ bead_1 = hsv(284.9, 0.69, 0.42)
275
+ bead_2 = hsv(198.2, 0.2, 0.96)
276
+ bead_3 = hsv(99.6, 0.15, 0.62)
277
+ bead_4 = hsv(99.3, 0.79, 0.74)
278
+ bead_gaps = (0.3838, 0.5692, 0.8996)
279
+ }
280
+
281
+ variant member_8 {
282
+ arm_start = 1.708
283
+ arm_1_length = 38.36
284
+ first_offset = (-13.46, -3.305, -5.651)
285
+ splay = -22.27
286
+ lean = -20.77
287
+ petal_tip = -7.434
288
+ petal_length = 4.806
289
+ bud_out = 3.202
290
+ bead_out = -9.026
291
+ taper = 0.9745
292
+ petal_1 = hsv(69.1, 0.62, 1)
293
+ petal_2 = hsv(321.7, 0.77, 1)
294
+ petal_4 = hsv(69.9, 0.66, 1)
295
+ petal_gaps = (0.4494, 0.8102, 0.7389)
296
+ bud_1 = hsv(226.2, 0.58, 1)
297
+ bud_2 = hsv(291.3, 0.62, 1)
298
+ bud_gaps = (0.8816, 0.4274, 0.9978)
299
+ bead_1 = hsv(90.7, 0.65, 0.05)
300
+ bead_3 = hsv(183.2, 0.64, 0.26)
301
+ bead_4 = hsv(221.1, 0.84, 0.85)
302
+ bead_gaps = (0.762, 0.9863, 0.9288)
303
+ }
304
+
305
+ variant member_9 {
306
+ ball_stretch = 1.194
307
+ arm_start = 1.622
308
+ arm_1_length = 35.92
309
+ first_offset = (13.46, 3.305, 5.651)
310
+ splay = -30.27
311
+ lean = -3.505
312
+ petal_tip = -7.434
313
+ petal_length = 2.213
314
+ bud_out = 3.202
315
+ bead_out = -9.026
316
+ taper = 0.9745
317
+ petal_1 = hsv(69.1, 0.62, 1)
318
+ petal_2 = hsv(234.2, 0.81, 1)
319
+ petal_3 = hsv(142.4, 0.49, 1)
320
+ petal_4 = hsv(97.2, 0.53, 1)
321
+ petal_gaps = (0.6289, 0.8144, 0.7389)
322
+ bud_1 = hsv(226.2, 0.58, 1)
323
+ bud_2 = hsv(277.8, 0.69, 1)
324
+ bud_3 = hsv(202.8, 0.8, 1)
325
+ bud_4 = hsv(290.8, 0.56, 1)
326
+ bud_gaps = (0.8816, 0.2676, 0.9408)
327
+ bead_1 = hsv(90.7, 0.65, 0.05)
328
+ bead_2 = hsv(272, 0.75, 0.96)
329
+ bead_3 = hsv(183.2, 0.64, 0.26)
330
+ bead_4 = hsv(221.1, 0.84, 0.85)
331
+ bead_gaps = (0.8192, 0.9863, 0.9632)
332
+ }
333
+
334
+ variant member_10 {
335
+ ball_stretch = 3.458
336
+ arm_start = 0.3438
337
+ arm_1_length = 45.8
338
+ arm_2_length = 29.81
339
+ first_offset = (0.2507, -0.1696, -0.1916)
340
+ splay = -21.7
341
+ lean = -0.8534
342
+ petal_tip = 22.22
343
+ petal_length = 8.69
344
+ bud_out = 3.06
345
+ bead_out = -11.88
346
+ taper = 0.9069
347
+ curl = 25.11
348
+ colour_run = 2.663
349
+ petal_1 = hsv(19.3, 0.57, 1)
350
+ petal_3 = hsv(114.2, 0.67, 1)
351
+ petal_gaps = (0.5718, 0.9894, 0.5521)
352
+ bud_2 = hsv(281.3, 0.6, 1)
353
+ bud_3 = hsv(230.3, 0.76, 1)
354
+ bud_4 = hsv(250.8, 0.49, 1)
355
+ bud_gaps = (0.5934, 0.7211, 0.9347)
356
+ bead_1 = hsv(90.7, 0.5, 0.07)
357
+ bead_2 = hsv(259.3, 0.88, 0.34)
358
+ bead_3 = hsv(127.3, 0.51, 0.24)
359
+ bead_4 = hsv(204.5, 0.88, 0.95)
360
+ bead_gaps = (0.5288, 0.9245, 0.7846)
361
+ }
362
+
363
+ variant member_11 {
364
+ ball_stretch = 9.933
365
+ arm_start = 11.27
366
+ arm_1_length = 47
367
+ arm_2_length = 27.63
368
+ first_offset = (15, 15, 14.85)
369
+ splay = -35.95
370
+ lean = -33.42
371
+ petal_tip = 26.05
372
+ petal_length = 1.169
373
+ bud_out = 1.664
374
+ bead_out = -3.299
375
+ taper = 0.9707
376
+ curl = -21.25
377
+ colour_run = 2.418
378
+ petal_1 = hsv(195.9, 0.88, 1)
379
+ petal_2 = hsv(227.6, 0.56, 1)
380
+ petal_3 = hsv(227.4, 0.54, 1)
381
+ petal_4 = hsv(341.9, 0.8, 1)
382
+ petal_gaps = (0.6007, 0.9842, 0.557)
383
+ bud_1 = hsv(41.8, 0.73, 1)
384
+ bud_2 = hsv(21.3, 0.86, 1)
385
+ bud_3 = hsv(293.9, 0.6, 1)
386
+ bud_4 = hsv(242.2, 0.58, 1)
387
+ bud_gaps = (0.3744, 0.8351, 0.9137)
388
+ bead_1 = hsv(343.3, 0.8, 0.2)
389
+ bead_2 = hsv(257, 0.34, 0.99)
390
+ bead_3 = hsv(25.3, 0.47, 0.65)
391
+ bead_4 = hsv(99.3, 0.79, 0.74)
392
+ bead_gaps = (0.5941, 0.7296, 0.8996)
393
+ }
394
+
395
+ variant member_12 {
396
+ ball_stretch = 9.933
397
+ arm_start = 11.27
398
+ arm_1_length = 47
399
+ arm_2_length = 27.63
400
+ first_offset = (-15, -15, -14.85)
401
+ splay = -35.95
402
+ lean = -33.42
403
+ petal_tip = 26.05
404
+ petal_length = 1.169
405
+ bud_out = 1.664
406
+ bead_out = -13.3
407
+ taper = 0.9707
408
+ curl = -21.25
409
+ colour_run = 2.418
410
+ petal_1 = hsv(195.9, 0.88, 1)
411
+ petal_2 = hsv(227.6, 0.56, 1)
412
+ petal_3 = hsv(227.4, 0.54, 1)
413
+ petal_4 = hsv(341.9, 0.8, 1)
414
+ petal_gaps = (0.6007, 0.9842, 0.557)
415
+ bud_1 = hsv(41.8, 0.73, 1)
416
+ bud_2 = hsv(21.3, 0.86, 1)
417
+ bud_3 = hsv(293.9, 0.6, 1)
418
+ bud_4 = hsv(242.2, 0.58, 1)
419
+ bud_gaps = (0.3744, 0.8351, 0.9137)
420
+ bead_1 = hsv(343.3, 0.8, 0.2)
421
+ bead_2 = hsv(257, 0.34, 0.99)
422
+ bead_3 = hsv(25.3, 0.47, 0.65)
423
+ bead_4 = hsv(99.3, 0.79, 0.74)
424
+ bead_gaps = (0.5941, 0.7296, 0.8996)
425
+ }
426
+
427
+ variant member_13 {
428
+ ball_stretch = 5.716
429
+ arm_start = 1.033
430
+ arm_2_length = 39.22
431
+ first_offset = (10.67, 6.465, 7.432)
432
+ splay = -35.95
433
+ lean = -16.76
434
+ petal_length = 1.169
435
+ bud_out = 1.221
436
+ bead_out = -3.299
437
+ taper = 1.032
438
+ curl = -25.63
439
+ colour_run = 2.663
440
+ petal_1 = hsv(171.7, 0.98, 1)
441
+ petal_2 = hsv(227.6, 0.56, 1)
442
+ petal_3 = hsv(109.9, 0.71, 1)
443
+ petal_4 = hsv(309.4, 0.9, 1)
444
+ petal_gaps = (0.6055, 0.9842, 0.3831)
445
+ bud_1 = hsv(136.3, 0.66, 1)
446
+ bud_2 = hsv(68.9, 0.94, 1)
447
+ bud_3 = hsv(213.6, 0.65, 1)
448
+ bud_gaps = (0.3232, 0.8222, 0.9137)
449
+ bead_1 = hsv(269.3, 0.72, 0.4)
450
+ bead_2 = hsv(257.9, 0.24, 0.73)
451
+ bead_3 = hsv(25.3, 0.47, 0.65)
452
+ bead_4 = hsv(6.5, 0.53, 0.72)
453
+ bead_gaps = (0.3838, 0.8043, 0.8333)
454
+ }
455
+
456
+ variant member_14 {
457
+ ball_stretch = 12.09
458
+ arm_start = 3.376
459
+ arm_1_length = 19.9
460
+ arm_2_length = 27.54
461
+ first_offset = (14.39, 3.443, -9.012)
462
+ splay = 25.79
463
+ lean = -27.42
464
+ petal_tip = 44.1
465
+ petal_length = 7.405
466
+ bud_out = -1.366
467
+ bead_out = -13.38
468
+ taper = 1.049
469
+ curl = -10.48
470
+ colour_run = 1.997
471
+ petal_1 = hsv(29.5, 0.6, 1)
472
+ petal_2 = hsv(77.7, 0.71, 1)
473
+ petal_3 = hsv(12.7, 0.48, 1)
474
+ petal_4 = hsv(354, 0.54, 1)
475
+ petal_gaps = (0.7952, 0.6146, 0.8148)
476
+ bud_1 = hsv(60, 0.46, 1)
477
+ bud_2 = hsv(328.9, 0.56, 1)
478
+ bud_3 = hsv(213.6, 0.65, 1)
479
+ bud_4 = hsv(22.2, 0.59, 1)
480
+ bud_gaps = (0.371, 0.7038, 0.5831)
481
+ bead_1 = hsv(276.3, 0.44, 0.76)
482
+ bead_2 = hsv(15.4, 0.77, 0.85)
483
+ bead_3 = hsv(159.8, 0.54, 0.52)
484
+ bead_4 = hsv(144.8, 0.03, 0.86)
485
+ bead_gaps = (0.85, 0.7118, 0.9154)
486
+ }
487
+
488
+ variant member_15 {
489
+ arm_start = 1.708
490
+ arm_1_length = 45.62
491
+ arm_2_length = 8.201
492
+ first_offset = (-8.144, -0.8248, -5.13)
493
+ splay = -22.27
494
+ lean = -12.61
495
+ petal_tip = -7.434
496
+ petal_length = 4.403
497
+ bud_out = 3.202
498
+ bead_out = -9.026
499
+ taper = 0.9894
500
+ curl = 39.99
501
+ petal_1 = hsv(69.1, 0.62, 1)
502
+ petal_2 = hsv(325, 0.8, 1)
503
+ petal_3 = hsv(55, 0.55, 1)
504
+ petal_4 = hsv(69.9, 0.66, 1)
505
+ petal_gaps = (0.4494, 0.8102, 0.7389)
506
+ bud_1 = hsv(259.7, 0.51, 1)
507
+ bud_2 = hsv(291.3, 0.62, 1)
508
+ bud_3 = hsv(334.1, 0.71, 1)
509
+ bud_gaps = (0.8963, 0.5256, 0.9978)
510
+ bead_1 = hsv(45.3, 0.89, 0.17)
511
+ bead_2 = hsv(250.9, 0.82, 0.6)
512
+ bead_3 = hsv(147.3, 0.53, 0.43)
513
+ bead_4 = hsv(146.2, 0.73, 0.86)
514
+ bead_gaps = (0.7602, 0.9701, 0.8895)
515
+ }
516
+
517
+ variant member_16 {
518
+ ball_stretch = 1.487
519
+ arm_start = 1.544
520
+ arm_1_length = 49.01
521
+ arm_2_length = 14.9
522
+ first_offset = (8.577, 1.928, 0.4946)
523
+ splay = -14.18
524
+ lean = 0.3985
525
+ petal_tip = -9.069
526
+ petal_length = 4.783
527
+ bud_out = 2.844
528
+ bead_out = -10.38
529
+ taper = 0.9894
530
+ curl = 29.97
531
+ colour_run = 2.732
532
+ petal_1 = hsv(69.1, 0.62, 1)
533
+ petal_2 = hsv(335, 0.9, 1)
534
+ petal_3 = hsv(55, 0.51, 1)
535
+ petal_4 = hsv(84.9, 0.75, 1)
536
+ petal_gaps = (0.4872, 0.8102, 0.6564)
537
+ bud_1 = hsv(199.4, 0.49, 1)
538
+ bud_2 = hsv(228.1, 0.6, 1)
539
+ bud_3 = hsv(214.6, 0.64, 1)
540
+ bud_4 = hsv(234.2, 0.66, 1)
541
+ bud_gaps = (0.8983, 0.46, 0.9909)
542
+ bead_1 = hsv(68.2, 0.85, 0.29)
543
+ bead_2 = hsv(293.1, 0.64, 0.59)
544
+ bead_3 = hsv(133.3, 0.59, 0.31)
545
+ bead_4 = hsv(138.9, 0.71, 0.85)
546
+ bead_gaps = (0.8189, 0.9224, 0.8022)
547
+ }
@@ -1,41 +0,0 @@
1
- creature Flower
2
- // Petals laid round the centre, each a squashed cone, in rings that shrink and turn.
3
-
4
- gene rings = 3 in 1..6 step 1 // how many rings of petals
5
- gene shrink = 0.7 in 0.4..0.95 // each ring's size compared with the ring outside it
6
- gene twist = 29 in 0..180 // how far each ring turns from the last
7
- gene heart = hsv(47, 0.9, 1) in hsv(0, 0.3, 0.5)..hsv(360, 1, 1)
8
-
9
- branch {
10
- shape ball
11
- colour heart
12
- grow 1.6
13
- lay
14
- }
15
-
16
- let size = 1
17
- repeat rings {
18
- roll twist
19
- whorl(size)
20
- size *= shrink
21
- }
22
-
23
- part whorl(scale) {
24
- gene petals = 7 in 3..16 step 1
25
- gene reach = 4 in 1.5..7 // how long each petal is
26
- gene width = 1.4 in 0.3..3
27
- gene cup = 23 in -57..69 // how far the petals curl
28
- gene petal = hsv(324, 0.7, 1) in hsv(0, 0.3, 0.5)..hsv(360, 1, 1)
29
-
30
- colour petal
31
- shape cone
32
- repeat petals as i {
33
- branch {
34
- roll 360 * i / petals
35
- pitch 90 - cup
36
- grow scale
37
- forward reach / 2
38
- lay { grow (width, width * 0.3, reach) }
39
- }
40
- }
41
- }