Creatures › Genes
Genes
Two strands, each a ladder of beaded curves, side by side like the strands of DNA. Inspired by Genes, a DancerDNA creature.
21 genes · 18 variants
Its family
Each one is the same program with different genes. In the app, Morph glides from one to the next, and Breed starts from them.


















Genes
The values that change when Genes mutates, breeds and morphs.
| Gene | What it does | Range | Value |
|---|---|---|---|
swing | which way the strands point: sideways | 0 to 360 | 51.98 |
tilt | and up | 0 to 360 | 51.92 |
apart | where the second strand is from the first | (10, 0, 0) to (10, 25, 25) | (10, 9.795, 10) |
step_1 | how far apart the first strand's curves are | (1, 0, 0) to (5, 10, 10) | (1.202, 0.1621, 0) |
turn_1 | how far each of its curves turns from the last | 0 to 51.57 | 0 |
bend_1 | how far each bead of a curve bends from the last | -179.9 to 179.9 | -38.13 |
gap_1 | how far apart the beads are | 1 to 10 | 1 |
step_2 | the same for the second strand | (1, 0, 0) to (5, 10, 10) | (1.425, 0, 0.1562) |
turn_2 | 0 to 51.57 | 0 | |
bend_2 | -179.9 to 179.9 | -1.146 | |
gap_2 | 1 to 10 | 1.167 | |
first_1 | any hue | hsv(111.4, 0.81, 0.88, 1) | |
first_2 | any hue | hsv(3.3, 0.92, 1, 1) | |
first_3 | any hue | hsv(252, 0.57, 0.85, 1) | |
first_4 | any hue | hsv(283.1, 0.58, 1, 1) | |
first_gaps | (0.25, 0.25, 0.25) to (1, 1, 1) | (0.2977, 0.7326, 0.7914) | |
second_1 | any hue | hsv(108, 0.5, 1, 1) | |
second_2 | any hue | hsv(144, 0.4, 0.95, 1) | |
second_3 | any hue | hsv(180, 0.4, 0, 1) | |
second_4 | any hue | hsv(257, 0.55, 1, 1) | |
second_gaps | (0.01, 0.01, 0.01) to (1, 1, 1) | (0.5, 0.6, 0.7323) |
The code
creature Genes
// Two strands, each a ladder of beaded curves, side by side like the strands of DNA.
// Inspired by Genes, a DancerDNA creature.
gene swing = 51.98 in 0..360 // which way the strands point: sideways
gene tilt = 51.92 in 0..360 // and up
gene apart = (10, 9.795, 10) in (10, 0, 0)..(10, 25, 25) // where the second strand is from the first
gene step_1 = (1.202, 0.1621, 0) in (1, 0, 0)..(5, 10, 10) // how far apart the first strand's curves are
gene turn_1 = 0 in 0..51.57 // how far each of its curves turns from the last
gene bend_1 = -38.13 in -179.9..179.9 // how far each bead of a curve bends from the last
gene gap_1 = 1 in 1..10 // how far apart the beads are
gene step_2 = (1.425, 0, 0.1562) in (1, 0, 0)..(5, 10, 10) // the same for the second strand
gene turn_2 = 0 in 0..51.57
gene bend_2 = -1.146 in -179.9..179.9
gene gap_2 = 1.167 in 1..10
// Each strand's colours, from the ends of its curves to the middle, and the gaps between them.
gene first_1 = hsv(111.4, 0.81, 0.88) in hsv(0, 0, 0)..hsv(360, 1, 1)
gene first_2 = hsv(3.3, 0.92, 1) in hsv(0, 0.4, 1)..hsv(360, 1, 1)
gene first_3 = hsv(252, 0.57, 0.85) in hsv(0, 0, 0)..hsv(360, 1, 1)
gene first_4 = hsv(283.1, 0.58, 1) in hsv(0, 0.4, 1)..hsv(360, 1, 1)
gene first_gaps = (0.2977, 0.7326, 0.7914) in (0.25, 0.25, 0.25)..(1, 1, 1)
gene second_1 = hsv(108, 0.5, 1) in hsv(0, 0.4, 1)..hsv(360, 1, 1)
gene second_2 = hsv(144, 0.4, 0.95) in hsv(0, 0.4, 0.93)..hsv(360, 1, 1)
gene second_3 = hsv(180, 0.4, 0) in hsv(0, 0.4, 0)..hsv(360, 1, 1)
gene second_4 = hsv(257, 0.55, 1) in hsv(0, 0.4, 1)..hsv(360, 1, 1)
gene second_gaps = (0.5, 0.6, 0.7323) in (0.01, 0.01, 0.01)..(1, 1, 1)
let first = spectrum(first_1, first_2 at first_gaps.x, first_3 at first_gaps.x + first_gaps.y, first_4 at first_gaps.x + first_gaps.y + first_gaps.z)
let second = spectrum(second_1, second_2 at second_gaps.x, second_3 at second_gaps.x + second_gaps.y, second_4 at second_gaps.x + second_gaps.y + second_gaps.z)
yaw swing
pitch tilt
shape ball
strand(step_1, turn_1, bend_1, gap_1, first)
move apart
strand(step_2, turn_2, bend_2, gap_2, second)
part strand(stride, turn, bend, gap, colours) {
branch {
repeat 15 {
curve(bend, gap, colours)
pitch turn
move stride
}
}
}
part curve(bend, gap, colours) {
branch {
repeat 10 as k {
pitch bend
forward gap
colour colours(bump(k / 20))
lay
}
}
}
variant member_2 {
swing = 18
tilt = 18
apart = (10, 10, 10)
step_1 = (1.341, 0.2323, 0.09092)
bend_1 = -14.07
gap_1 = 2.078
step_2 = (1.057, 0.3929, 0)
turn_2 = 6.121
bend_2 = 12.58
gap_2 = 1.932
first_1 = hsv(111.9, 0.69, 0.83)
first_2 = hsv(13.1, 0.99, 1)
first_3 = hsv(258, 0.63, 0.9)
first_4 = hsv(266.8, 0.59, 1)
first_gaps = (0.3253, 0.7106, 0.8022)
second_4 = hsv(247.7, 0.53, 1)
second_gaps = (0.5904, 0.5028, 0.7)
}
variant member_3 {
swing = 29.31
tilt = 38.85
apart = (10, 10, 12.25)
step_1 = (1.379, 2.144, 0.9068)
turn_1 = 12.39
bend_1 = -9.21
gap_1 = 1.261
step_2 = (1.387, 1.436, 2.261)
turn_2 = 4.132
bend_2 = 86.96
gap_2 = 1.617
first_1 = hsv(116.5, 0.6, 0.82)
first_2 = hsv(35, 0.88, 1)
first_3 = hsv(217.2, 0.44, 0.87)
first_4 = hsv(311.5, 0.54, 1)
first_gaps = (0.3142, 0.7106, 0.7732)
second_1 = hsv(67.6, 0.51, 1)
second_2 = hsv(151.4, 0.44, 0.96)
second_3 = hsv(169.5, 0.45, 0.08)
second_4 = hsv(242.8, 0.55, 1)
second_gaps = (0.3424, 0.6515, 0.6464)
}
variant member_4 {
swing = 37.55
tilt = 103.2
apart = (10, 23.97, 3.896)
step_1 = (2.775, 2.475, 8.99)
turn_1 = 18.1
bend_1 = 9.496
gap_1 = 1.156
step_2 = (4.781, 1.465, 1.796)
turn_2 = 29.2
bend_2 = -158.1
gap_2 = 8.092
first_1 = hsv(43.5, 0.17, 0.15)
first_2 = hsv(38.2, 0.62, 1)
first_3 = hsv(348.4, 0.86, 0.55)
first_4 = hsv(195.7, 0.84, 1)
first_gaps = (0.768, 0.3366, 0.6917)
second_1 = hsv(77.4, 0.65, 1)
second_2 = hsv(240.3, 0.91, 0.97)
second_3 = hsv(195.4, 0.57, 0.89)
second_4 = hsv(128.9, 0.81, 1)
second_gaps = (0.8006, 0.3105, 0.02254)
}
variant member_5 {
swing = 72.02
tilt = 68.13
apart = (10, 10.03, 16.59)
step_1 = (1.42, 2.704, 5.388)
turn_1 = 37.89
bend_1 = 48.31
gap_1 = 4.439
step_2 = (4.861, 3.331, 1.869)
turn_2 = 15.48
bend_2 = -158.1
gap_2 = 5.17
first_1 = hsv(241.1, 0.15, 0.89)
first_2 = hsv(60, 0.87, 1)
first_3 = hsv(341.1, 0.5, 0.57)
first_4 = hsv(264.6, 0.92, 1)
first_gaps = (0.7488, 0.3197, 0.6989)
second_1 = hsv(53.1, 0.74, 1)
second_2 = hsv(277.5, 1, 0.99)
second_3 = hsv(93, 0.51, 0.99)
second_4 = hsv(23.7, 0.58, 1)
second_gaps = (0.7325, 0.8603, 0.2507)
}
variant member_6 {
swing = 163.3
tilt = 302.5
apart = (10, 6.943, 22.92)
step_1 = (2.227, 4.856, 9.164)
turn_1 = 30.84
bend_1 = 101.5
gap_1 = 1.452
step_2 = (1.126, 8.205, 4.339)
turn_2 = 7.827
bend_2 = -20.66
gap_2 = 2.599
first_1 = hsv(120.8, 0.24, 0.46)
first_2 = hsv(53.4, 0.88, 1)
first_3 = hsv(203.9, 0.13, 0.92)
first_4 = hsv(274.6, 0.53, 1)
first_gaps = (0.7403, 0.9589, 0.6556)
second_1 = hsv(48.8, 0.57, 1)
second_2 = hsv(353.4, 0.64, 0.96)
second_3 = hsv(19.4, 0.69, 0.63)
second_4 = hsv(203, 0.67, 1)
second_gaps = (0.4511, 0.2996, 0.3285)
}
variant member_7 {
swing = 172.1
tilt = 65.36
apart = (10, 16.72, 5.531)
step_1 = (1.332, 7.672, 7.865)
turn_1 = 17.99
bend_1 = 9.792
gap_1 = 1.654
step_2 = (4.395, 8.119, 2.553)
turn_2 = 20.11
bend_2 = -40.96
gap_2 = 2.282
first_1 = hsv(49, 0.1, 0.57)
first_2 = hsv(37.9, 0.69, 1)
first_3 = hsv(125.2, 0.08, 0.82)
first_4 = hsv(249.4, 0.49, 1)
first_gaps = (0.3306, 0.3937, 0.7056)
second_1 = hsv(53.9, 0.9, 1)
second_2 = hsv(198.1, 0.96, 0.96)
second_3 = hsv(133.2, 0.57, 0.74)
second_4 = hsv(172.9, 0.86, 1)
second_gaps = (0.4019, 0.6351, 0.1891)
}
variant member_8 {
swing = 42.97
tilt = 103.2
apart = (10, 16.72, 3.425)
step_1 = (2.775, 6.042, 9.485)
turn_1 = 29.9
bend_1 = 9.496
gap_1 = 3.531
step_2 = (3.565, 1.954, 1.796)
turn_2 = 29.2
bend_2 = -158.1
gap_2 = 6.36
first_1 = hsv(91.8, 0.28, 0.48)
first_2 = hsv(37.9, 0.69, 1)
first_3 = hsv(348.4, 0.86, 0.55)
first_4 = hsv(235, 0.86, 1)
first_gaps = (0.768, 0.3366, 0.4958)
second_1 = hsv(77.4, 0.65, 1)
second_2 = hsv(240.3, 0.91, 0.97)
second_3 = hsv(195.4, 0.57, 0.89)
second_4 = hsv(91.7, 0.58, 1)
second_gaps = (0.9582, 0.2996, 0.035)
}
variant member_9 {
swing = 42.97
tilt = 138.2
apart = (10, 15.96, 6.417)
step_1 = (2.775, 5.261, 6.476)
turn_1 = 9.657
bend_1 = 79
gap_1 = 1.452
step_2 = (4.011, 5.011, 4.648)
turn_2 = 10.63
bend_2 = -158.1
gap_2 = 8.469
first_1 = hsv(91.8, 0.28, 0.48)
first_2 = hsv(38.2, 0.62, 1)
first_3 = hsv(348.4, 0.86, 0.55)
first_4 = hsv(235, 0.86, 1)
first_gaps = (0.5, 0.3366, 0.4958)
second_1 = hsv(81.7, 0.67, 1)
second_2 = hsv(240.3, 0.91, 0.97)
second_3 = hsv(298.1, 0.46, 0.76)
second_4 = hsv(18.1, 0.63, 1)
second_gaps = (0.8769, 0.08766, 0.035)
}
variant member_10 {
swing = 42.97
tilt = 65.07
apart = (10, 15.96, 1.584)
step_1 = (2.775, 2.475, 5.784)
turn_1 = 30.83
bend_1 = 9.496
gap_1 = 3.586
step_2 = (3.67, 5.011, 1.796)
turn_2 = 10.14
bend_2 = -105.3
gap_2 = 3.813
first_1 = hsv(91.8, 0.28, 0.48)
first_2 = hsv(38.2, 0.62, 1)
first_3 = hsv(348.4, 0.86, 0.55)
first_4 = hsv(235, 0.86, 1)
first_gaps = (0.768, 0.6513, 0.4958)
second_1 = hsv(111.9, 0.64, 1)
second_2 = hsv(240.3, 0.91, 0.97)
second_3 = hsv(224, 0.73, 0.99)
second_4 = hsv(171.7, 0.48, 1)
second_gaps = (0.8464, 0.5122, 0.3403)
}
variant member_11 {
swing = 18
tilt = 18
apart = (10, 10, 8.798)
step_1 = (1.098, 0.02962, 0)
turn_1 = 4.503
bend_1 = 31.82
gap_1 = 1.209
step_2 = (1.136, 0, 0.2571)
turn_2 = 1.18
bend_2 = 1.895
gap_2 = 1
first_1 = hsv(106.1, 0.74, 0.87)
first_2 = hsv(18.1, 1, 1)
first_3 = hsv(258, 0.63, 0.9)
first_4 = hsv(297.4, 0.57, 1)
first_gaps = (0.3253, 0.7106, 0.8568)
second_2 = hsv(145.7, 0.42, 0.95)
second_3 = hsv(217.3, 0.42, 0.05)
second_4 = hsv(216, 0.5, 1)
second_gaps = (0.44, 0.7092, 0.7)
}
variant member_12 {
swing = 18
tilt = 38.85
apart = (10, 10, 12.25)
step_1 = (1.083, 1.036, 0.1272)
bend_1 = -1.146
gap_1 = 1.684
step_2 = (1.387, 0, 1.222)
turn_2 = 2.879
bend_2 = 39.73
gap_2 = 1.617
first_1 = hsv(106.1, 0.74, 0.87)
first_2 = hsv(35, 0.88, 1)
first_3 = hsv(258, 0.63, 0.9)
first_4 = hsv(286.1, 0.52, 1)
first_gaps = (0.3991, 0.7106, 0.8568)
second_4 = hsv(248.9, 0.55, 1)
second_gaps = (0.4221, 0.6733, 0.6302)
}
variant member_13 {
step_1 = (1.202, 0.1621, 0.005933)
bend_1 = -38.52
step_2 = (1.388, 0, 0.1562)
turn_2 = 5.115
gap_2 = 1.872
first_1 = hsv(71.2, 0.91, 0.78)
first_3 = hsv(256.9, 0.59, 0.8)
first_gaps = (0.2684, 0.6374, 0.7914)
second_3 = hsv(174.2, 0.42, 0.11)
second_gaps = (0.5268, 0.6939, 0.7323)
}
variant member_14 {
swing = 211.7
tilt = 34.24
apart = (10, 16.72, 3.425)
step_1 = (2.11, 6.042, 7.865)
turn_1 = 29.9
bend_1 = 9.792
gap_1 = 1.414
step_2 = (3.785, 8.119, 1.796)
turn_2 = 29.2
bend_2 = -40.96
gap_2 = 1.773
first_1 = hsv(49, 0.1, 0.57)
first_2 = hsv(37.9, 0.69, 1)
first_3 = hsv(191.8, 0.07, 0.85)
first_4 = hsv(314.7, 0.48, 1)
first_gaps = (0.3418, 0.5706, 0.8062)
second_1 = hsv(69.2, 0.77, 1)
second_2 = hsv(230.6, 0.84, 0.98)
second_3 = hsv(217.1, 0.59, 0.56)
second_4 = hsv(106.9, 0.72, 1)
second_gaps = (0.4019, 0.7933, 0.1891)
}
variant member_15 {
swing = 204.5
tilt = 0.646
apart = (10, 18.54, 7.509)
step_1 = (1.173, 6.042, 9.388)
turn_1 = 17.56
bend_1 = -2.146
gap_1 = 3.339
step_2 = (4.642, 8.119, 1.796)
turn_2 = 32.66
bend_2 = -40.96
gap_2 = 1.773
first_1 = hsv(133.3, 0.18, 0.43)
first_2 = hsv(47.3, 0.65, 1)
first_3 = hsv(191.8, 0.07, 0.85)
first_4 = hsv(253.1, 0.47, 1)
first_gaps = (0.3159, 0.454, 0.9462)
second_1 = hsv(80.6, 0.91, 1)
second_2 = hsv(240.3, 0.91, 0.97)
second_3 = hsv(180.5, 0.72, 0.78)
second_4 = hsv(106.9, 0.72, 1)
second_gaps = (0.435, 0.5499, 0.1825)
}
variant member_16 {
swing = 336.5
tilt = 248.2
apart = (10, 13.82, 11.13)
step_1 = (1.558, 7.062, 4.047)
turn_1 = 45.95
bend_1 = 51.66
gap_1 = 1.414
step_2 = (4.068, 9.159, 3.303)
turn_2 = 44.76
bend_2 = -26.69
gap_2 = 2.377
first_1 = hsv(259.3, 0.5, 0.91)
first_2 = hsv(0.1, 0.69, 1)
first_3 = hsv(298.3, 0.11, 1)
first_4 = hsv(280.9, 0.53, 1)
first_gaps = (0.2706, 0.764, 0.9908)
second_1 = hsv(40.2, 0.73, 1)
second_2 = hsv(51.3, 0.56, 0.97)
second_3 = hsv(349.8, 0.4, 0.54)
second_4 = hsv(5.2, 0.61, 1)
second_gaps = (0.04833, 0.468, 0.2429)
}
variant member_17 {
swing = 234.6
tilt = 152.2
apart = (10, 13.82, 6.453)
step_1 = (3.444, 9.321, 6.806)
turn_1 = 25.42
bend_1 = 51.66
gap_1 = 1.414
step_2 = (3.455, 7.388, 2.488)
turn_2 = 30.73
bend_2 = 7.142
gap_2 = 2.632
first_1 = hsv(199.2, 0.06, 0.87)
first_2 = hsv(66, 0.74, 1)
first_3 = hsv(275.1, 0.01, 0.94)
first_4 = hsv(346.6, 0.53, 1)
first_gaps = (0.3199, 0.764, 0.8511)
second_1 = hsv(131, 0.96, 1)
second_2 = hsv(174.4, 0.86, 0.97)
second_3 = hsv(357.3, 0.48, 0.5)
second_4 = hsv(41.5, 0.7, 1)
second_gaps = (0.2907, 0.6051, 0.304)
}
variant member_18 {
swing = 230.3
tilt = 71.15
apart = (10, 16.58, 8.764)
step_1 = (3.695, 6.799, 7.959)
turn_1 = 38.01
bend_1 = -8.495
gap_1 = 1.414
step_2 = (4.068, 6.884, 2.488)
turn_2 = 38.35
bend_2 = -51.65
gap_2 = 2.466
first_1 = hsv(199.2, 0.06, 0.87)
first_2 = hsv(83.1, 0.6, 1)
first_3 = hsv(206.7, 0.24, 0.73)
first_4 = hsv(314.7, 0.48, 1)
first_gaps = (0.2967, 0.6135, 0.6997)
second_1 = hsv(60.8, 0.94, 1)
second_2 = hsv(267.4, 0.78, 0.97)
second_3 = hsv(357.3, 0.48, 0.5)
second_4 = hsv(118.3, 0.84, 1)
second_gaps = (0.5914, 0.7933, 0.08921)
}
variant member_19 {
swing = 72.38
tilt = 38.85
apart = (10, 11.07, 12.25)
step_1 = (1.379, 2.144, 0.9068)
turn_1 = 10.27
bend_1 = 10.09
gap_1 = 1.237
step_2 = (1.387, 1.125, 1.637)
turn_2 = 2.879
bend_2 = 61.74
gap_2 = 1.123
first_1 = hsv(144.9, 0.7, 0.78)
first_2 = hsv(37.2, 0.94, 1)
first_3 = hsv(235.4, 0.52, 0.92)
first_4 = hsv(256.5, 0.57, 1)
first_gaps = (0.3142, 0.7106, 0.7732)
second_1 = hsv(59.6, 0.56, 1)
second_2 = hsv(186.1, 0.48, 0.96)
second_4 = hsv(208.2, 0.59, 1)
second_gaps = (0.4221, 0.6365, 0.5386)
}