GenoCode Getting startedThe languageCreatures Open the app

Creatures › Cobra

Cobra: Two snakes, mirror images of each other, swaying and twisting as they grow, with fins along their sides and a pearl in a ring between them. Inspired by Cobra, a DancerDNA creature.

Cobra

Two snakes, mirror images of each other, swaying and twisting as they grow, with fins along their sides and a pearl in a ring between them. Inspired by Cobra, a DancerDNA creature.

29 genes · 11 variants · moves by itself · has a dance of its own

Open in GenoCodeDownload Cobra.genie

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.

Cobra, member 2
member 2
Cobra, member 3
member 3
Cobra, member 4
member 4
Cobra, member 5
member 5
Cobra, member 6
member 6
Cobra, member 7
member 7
Cobra, member 8
member 8
Cobra, member 9
member 9
Cobra, member 10
member 10
Cobra, member 11
member 11
Cobra, member 12
member 12

Genes

The values that change when Cobra mutates, breeds and morphs.

GeneWhat it doesRangeValue
scaleshow much its skin and pearl wear their textures0 to 11
swayhow far the body sways from side to side-28.65 to 28.6528.09
sway_waveshow many half-waves the sway makes along the body1 to 32.659
risehow far the body rises and falls-28.65 to 28.65-3.236
rise_waves1 to 31.111
twisthow far the body twists-28.65 to 28.653.975
twist_waves1 to 31
taperhow much bigger each segment is than the last0.9 to 1.11.083
offsetwhere its middle is: each member's keeps them all in the middle of the view(-10, -10, -10) to (10, 10, 10)(0, 2.1, 0.9)
sizehow big it is overall: each member's keeps them all about the same size0.1 to 2, by ratios0.143
finhow far the fins reach: sideways, up and back(-2, -2, -2) to (2, 2, 2)(1.387, 1.316, 0.5628)
fin_waveshow many half-waves the fins make along the body(1, 1, 1) to (3, 3, 3)(2.396, 1.035, 1)
skin_1hues 0° + 356.4°hsv(89.9, 0.49, 1, 1)
skin_2hues 0° + 356.4°hsv(112, 0.45, 1, 1)
skin_3hues 0° + 356.4°hsv(96, 0.59, 1, 1)
skin_4hues 0° + 356.4°hsv(152.7, 0.45, 1, 1)
skin_gaps(0.25, 0.25, 0.25) to (1, 1, 1)(0.5861, 0.3406, 0.25)
fin_1hues 0° + 237.6°hsv(54, 1, 1, 1)
fin_2hues 0° + 237.6°hsv(228.9, 0.98, 0.94, 1)
fin_3hues 0° + 237.6°hsv(103.2, 0.96, 0.74, 1)
fin_4hues 0° + 237.6°hsv(82.4, 0.87, 0.65, 1)
fin_gaps(0.25, 0.25, 0.25) to (1, 1, 1)(0.5613, 0.8866, 0.25)
pearl_colourhues 18° + 36°hsv(40.1, 0.65, 0.95, 1)
ring_colourhues 21.6° + 32.4°hsv(41.3, 0.92, 0.97, 1)
pearl_size1.2 to 32.978
ring_size1.5 to 2.51.787
ring_tilthow the ring turns: up, sideways and round(-343.8, -343.8, -343.8) to (343.8, 343.8, 343.8)(207.7, 52.8, 0)
ball_hue0 to 360125
ball_pulse0 to 9090

The code

creature Cobra
// Two snakes, mirror images of each other, swaying and twisting as they grow, with fins along
// their sides and a pearl in a ring between them.
// Inspired by Cobra, a DancerDNA creature.

gene scales = 1 in 0..1  // how much its skin and pearl wear their textures

gene sway        = 28.09  in -28.65..28.65                         // how far the body sways from side to side
gene sway_waves  = 2.659  in 1..3                                  // how many half-waves the sway makes along the body
gene rise        = -3.236 in -28.65..28.65                         // how far the body rises and falls
gene rise_waves  = 1.111  in 1..3
gene twist       = 3.975  in -28.65..28.65                         // how far the body twists
gene twist_waves = 1      in 1..3
gene taper       = 1.083  in 0.9..1.1                              // how much bigger each segment is than the last
gene offset      = (0, 2.1, 0.9) in (-10, -10, -10)..(10, 10, 10)  // where its middle is: each member's keeps them all in the middle of the view
gene size        = 0.143  in 0.1..2 log                            // how big it is overall: each member's keeps them all about the same size

gene fin       = (1.387, 1.316, 0.5628) in (-2, -2, -2)..(2, 2, 2)  // how far the fins reach: sideways, up and back
gene fin_waves = (2.396, 1.035, 1) in (1, 1, 1)..(3, 3, 3)          // how many half-waves the fins make along the body

// The snakes' colours, from the ends to the middle, and the gaps between them.
gene skin_1    = hsv(89.9, 0.49, 1) in hsv(0, 0.4, 1)..hsv(356.4, 0.6, 1)
gene skin_2    = hsv(112, 0.45, 1) in hsv(0, 0.4, 1)..hsv(356.4, 0.6, 1)
gene skin_3    = hsv(96, 0.59, 1) in hsv(0, 0.4, 1)..hsv(356.4, 0.6, 1)
gene skin_4    = hsv(152.7, 0.45, 1) in hsv(0, 0.4, 1)..hsv(356.4, 0.6, 1)
gene skin_gaps = (0.5861, 0.3406, 0.25) in (0.25, 0.25, 0.25)..(1, 1, 1)

// The fins' colours, in the same way.
gene fin_1    = hsv(54, 1, 1) in hsv(0, 0.8, 0.6)..hsv(237.6, 1, 1)
gene fin_2    = hsv(228.9, 0.98, 0.94) in hsv(0, 0.8, 0.6)..hsv(237.6, 1, 1)
gene fin_3    = hsv(103.2, 0.96, 0.74) in hsv(0, 0.8, 0.6)..hsv(237.6, 1, 1)
gene fin_4    = hsv(82.4, 0.87, 0.65) in hsv(0, 0.8, 0.6)..hsv(237.6, 1, 1)
gene fin_gaps = (0.5613, 0.8866, 0.25) in (0.25, 0.25, 0.25)..(1, 1, 1)

gene pearl_colour = hsv(40.1, 0.65, 0.95) in hsv(18, 0, 0.4)..hsv(54, 1, 1)
gene ring_colour  = hsv(41.3, 0.92, 0.97) in hsv(21.6, 0, 0.4)..hsv(54, 1, 1)
gene pearl_size   = 2.978 in 1.2..3
gene ring_size    = 1.787 in 1.5..2.5
gene ring_tilt    = (207.7, 52.8, 0) in (-343.8, -343.8, -343.8)..(343.8, 343.8, 343.8)  // how the ring turns: up, sideways and round

gene ball_hue   = 125 in 0..360
gene ball_pulse = 90  in 0..90

let skin = spectrum(skin_1, skin_2 at skin_gaps.x, skin_3 at skin_gaps.x + skin_gaps.y, skin_4 at skin_gaps.x + skin_gaps.y + skin_gaps.z)
let fins = spectrum(fin_1, fin_2 at fin_gaps.x, fin_3 at fin_gaps.x + fin_gaps.y, fin_4 at fin_gaps.x + fin_gaps.y + fin_gaps.z)

// Where the pearl goes: the middle of the first snake, measured as it's drawn.
let middle_y = 0
let middle_z = 0

shine 1
sharpness 1
move -offset
grow size
symmetric x {
  snake(side)
}
pearl_ring

part snake(side) {
  let total_y = 0
  let total_z = 0
  shape ball
  repeat 29 as k {
    let along = (k + 1) / 30
    forward 0.45
    yaw sway * sin(180 * sway_waves * along)
    pitch rise * sin(180 * rise_waves * along)
    roll twist * sin(180 * twist_waves * (along - 1))
    grow taper
    forward 0.45
    colour skin(bump(along))
    texture mixed(pattern(kaleidoscope, 47, 35, jewel, pearl), blend, lightning, 0.5)
    wear scales
    total_y += turtle.position.y
    total_z += turtle.position.z
    lay
    branch {
      pitch 90
      let reach = (fin.x * sin(180 * fin_waves.x * along), fin.y * sin(180 * fin_waves.y * along), fin.z * sin(180 * fin_waves.z * (along - 1)))
      move reach
      texture none
      colour fins(bump(along))
      lay { grow reach * 3 }
    }
  }
  if side > 0 {
    middle_y = total_y / 30
    middle_z = total_z / 30
  }
}

part pearl_ring {
  // The middle was measured as drawn: moved by offset and grown by size.
  move (0, middle_y - turtle.position.y, middle_z - turtle.position.z) / size
  shape ball
  colour pearl_colour
  texture mixed(pattern(kaleidoscope, ball_hue + ball_pulse * music.bass, 19, pastel, pearl), blend, lightning, 0.6)
  wear scales
  grow pearl_size
  lay
  pitch ring_tilt.x
  yaw ring_tilt.y
  roll ring_tilt.z
  grow ring_size
  shape ring
  texture none
  colour ring_colour
  lay
}

// Its own dance: Wanderer, the style DancerDNA's Cobra was saved with (as far as can be told).
dance {
  morph   follows music.mid  speed 1.2  settle 0.38
  zoom    follows music.mid_hit  amount 0.5  settle 50
  spin    follows music.level  from 45.8 to 229  smooth 0
  turn    on music.bass changes  by 1
  reverse on music.bass drops  by 1  on 4 off 4
}

variant member_2 {
  offset       = (0, 0.8, -1.4)
  size         = 0.309
  sway         = 28.08
  sway_waves   = 1.739
  rise         = 10.86
  rise_waves   = 2.813
  twist        = 16.53
  twist_waves  = 2.456
  taper        = 1.029
  fin          = (-1.916, -0.03022, 1.676)
  fin_waves    = (1.513, 1.383, 2.326)
  skin_1       = hsv(97.2, 0.54, 1)
  skin_2       = hsv(148.4, 0.52, 1)
  skin_3       = hsv(336.8, 0.53, 1)
  skin_4       = hsv(273, 0.54, 1)
  skin_gaps    = (0.7273, 0.9973, 0.5318)
  fin_1        = hsv(27.4, 0.81, 0.66)
  fin_2        = hsv(12.1, 0.93, 0.68)
  fin_3        = hsv(193.5, 0.9, 0.62)
  fin_4        = hsv(135.5, 0.85, 0.69)
  fin_gaps     = (0.725, 0.8858, 0.4811)
  pearl_colour = hsv(33, 0.86, 0.59)
  ring_colour  = hsv(35.8, 0.92, 0.77)
  pearl_size   = 2.462
  ring_size    = 2.455
  ring_tilt    = (-29.95, 106.2, 331.7)
}

variant member_3 {
  offset       = (0, 0, 4.8)
  size         = 1.6
  sway         = 11.04
  sway_waves   = 1.798
  rise         = 15.61
  rise_waves   = 1
  twist        = -28.37
  taper        = 0.9028
  fin          = (1.415, 1, 1.501)
  fin_waves    = (2.225, 1.035, 1.22)
  skin_1       = hsv(248, 0.58, 1)
  skin_2       = hsv(112.5, 0.59, 1)
  skin_3       = hsv(125.5, 0.47, 1)
  skin_4       = hsv(85.7, 0.44, 1)
  skin_gaps    = (0.6383, 0.8783, 0.25)
  fin_2        = hsv(54, 1, 1)
  fin_3        = hsv(33.2, 0.99, 0.97)
  fin_4        = hsv(146.4, 0.9, 0.74)
  fin_gaps     = (0.25, 0.25, 0.5209)
  pearl_colour = hsv(18, 1, 1)
  ring_colour  = hsv(51.1, 0.3, 0.68)
  pearl_size   = 1.2
  ring_size    = 1.5
  ring_tilt    = (-65.44, 52.8, 0)
}

variant member_4 {
  offset       = (0, -1.2, 4.7)
  size         = 1.26
  sway         = -15.35
  sway_waves   = 1.777
  rise         = -9.783
  rise_waves   = 1.552
  twist        = -22.68
  taper        = 0.9146
  fin          = (0.6473, -0.9955, 1.947)
  fin_waves    = (1.244, 1.714, 1.091)
  skin_1       = hsv(189.5, 0.44, 1)
  skin_2       = hsv(17, 0.53, 1)
  skin_3       = hsv(106, 0.6, 1)
  skin_4       = hsv(199.9, 0.45, 1)
  skin_gaps    = (0.5861, 0.3406, 0.6599)
  fin_1        = hsv(214.2, 0.91, 0.69)
  fin_2        = hsv(68.5, 0.94, 0.73)
  fin_4        = hsv(44.5, 0.84, 0.79)
  fin_gaps     = (0.5656, 0.4626, 0.6632)
  pearl_colour = hsv(49.1, 0.76, 0.92)
  ring_colour  = hsv(50.6, 0.46, 0.8)
  pearl_size   = 2.025
  ring_size    = 2.074
  ring_tilt    = (-329.9, -327, 271.2)
}

variant member_5 {
  offset       = (0, -4, 5.2)
  size         = 1.72
  sway         = -10.2
  sway_waves   = 1.717
  rise         = 10.86
  rise_waves   = 1.558
  twist        = -10.85
  twist_waves  = 1.09
  taper        = 0.9026
  fin          = (1.707, -1.324, -0.1833)
  fin_waves    = (2.265, 2.117, 2.874)
  skin_1       = hsv(36.9, 0.48, 1)
  skin_2       = hsv(307.3, 0.49, 1)
  skin_3       = hsv(336.8, 0.53, 1)
  skin_4       = hsv(23.9, 0.58, 1)
  skin_gaps    = (0.4188, 0.8804, 0.3988)
  fin_1        = hsv(158.8, 0.94, 0.88)
  fin_2        = hsv(100.1, 0.94, 0.84)
  fin_3        = hsv(69, 0.97, 0.72)
  fin_4        = hsv(8.4, 0.86, 0.75)
  fin_gaps     = (0.8984, 0.5857, 0.92)
  pearl_colour = hsv(21.8, 0.02, 0.74)
  ring_colour  = hsv(29.7, 0.58, 0.66)
  pearl_size   = 1.573
  ring_size    = 2.385
  ring_tilt    = (-283, 91.47, 149.5)
}

variant member_6 {
  offset       = (0, -1.4, 3.5)
  size         = 1.05
  sway         = -17.1
  sway_waves   = 1
  rise         = 7.915
  rise_waves   = 1.552
  twist        = 5.808
  twist_waves  = 1.516
  taper        = 0.954
  fin          = (0.6715, -1.744, -1.961)
  fin_waves    = (2.351, 1.714, 2.251)
  skin_1       = hsv(324, 0.58, 1)
  skin_2       = hsv(230.5, 0.45, 1)
  skin_3       = hsv(25, 0.45, 1)
  skin_4       = hsv(175.5, 0.5, 1)
  skin_gaps    = (0.54, 0.9157, 0.5872)
  fin_1        = hsv(15.4, 0.9, 0.66)
  fin_2        = hsv(136.3, 0.84, 0.6)
  fin_3        = hsv(42.1, 0.91, 0.79)
  fin_4        = hsv(185.9, 0.86, 0.64)
  fin_gaps     = (0.9168, 0.794, 0.6632)
  pearl_colour = hsv(41.2, 0.13, 0.5)
  ring_colour  = hsv(44.6, 0.4, 0.78)
  pearl_size   = 2.08
  ring_size    = 2.163
  ring_tilt    = (-219.4, 106.2, 0)
}

variant member_7 {
  offset       = (0, -3.5, 5.4)
  size         = 1.38
  sway         = -16.94
  sway_waves   = 1.765
  rise         = 14.89
  rise_waves   = 1.552
  twist        = -27.04
  taper        = 0.9146
  fin          = (-1.982, -0.3833, -0.8202)
  fin_waves    = (2.959, 1.106, 1.197)
  skin_1       = hsv(125.7, 0.47, 1)
  skin_2       = hsv(103.3, 0.44, 1)
  skin_3       = hsv(328.4, 0.59, 1)
  skin_4       = hsv(134.1, 0.47, 1)
  skin_gaps    = (0.54, 0.5239, 0.9948)
  fin_1        = hsv(17.1, 0.88, 0.82)
  fin_2        = hsv(136.3, 0.84, 0.6)
  fin_3        = hsv(184.8, 0.89, 0.64)
  fin_4        = hsv(185.9, 0.86, 0.64)
  fin_gaps     = (0.5656, 0.9155, 0.7515)
  pearl_colour = hsv(48.5, 0.33, 0.48)
  ring_colour  = hsv(42.4, 0.29, 0.79)
  pearl_size   = 1.815
  ring_size    = 2.3
  ring_tilt    = (231.6, -4.957, 102.7)
}

variant member_8 {
  offset       = (0, -2, 2.8)
  size         = 1.23
  sway         = 25.55
  sway_waves   = 1.107
  rise         = 16.99
  rise_waves   = 1.552
  twist        = 15.8
  twist_waves  = 2.512
  taper        = 0.9175
  fin          = (-0.1563, -1.138, 1.464)
  fin_waves    = (2.488, 1.714, 2.387)
  skin_1       = hsv(36.9, 0.48, 1)
  skin_2       = hsv(44.9, 0.4, 1)
  skin_3       = hsv(343.3, 0.56, 1)
  skin_4       = hsv(134.1, 0.47, 1)
  skin_gaps    = (0.6919, 0.6565, 0.8628)
  fin_1        = hsv(101.9, 0.82, 0.87)
  fin_2        = hsv(83.9, 0.86, 0.7)
  fin_3        = hsv(12, 0.84, 0.6)
  fin_4        = hsv(158.3, 0.85, 0.64)
  fin_gaps     = (0.3448, 0.8581, 0.3088)
  pearl_colour = hsv(32.7, 0.94, 0.97)
  ring_colour  = hsv(50, 0.49, 0.74)
  pearl_size   = 2.08
  ring_size    = 2.299
  ring_tilt    = (-29.95, -15.93, 6.956)
}

variant member_9 {
  offset       = (0, 3.7, 4.1)
  size         = 1.29
  sway         = 23.13
  sway_waves   = 1.031
  rise         = -8.053
  rise_waves   = 2.344
  twist        = -10.85
  twist_waves  = 2.83
  taper        = 0.955
  fin          = (0.5994, 1.917, -1.896)
  fin_waves    = (1.916, 2.229, 1.947)
  skin_1       = hsv(36.9, 0.48, 1)
  skin_2       = hsv(307.3, 0.49, 1)
  skin_3       = hsv(247.7, 0.58, 1)
  skin_4       = hsv(312.2, 0.49, 1)
  skin_gaps    = (0.5323, 0.4826, 0.9444)
  fin_1        = hsv(27.4, 0.81, 0.66)
  fin_2        = hsv(214.3, 0.93, 0.64)
  fin_3        = hsv(3.4, 0.89, 0.89)
  fin_4        = hsv(113.4, 0.83, 0.77)
  fin_gaps     = (0.3322, 0.407, 0.8198)
  pearl_colour = hsv(45.8, 0.46, 0.48)
  ring_colour  = hsv(33.4, 0.93, 0.94)
  pearl_size   = 1.705
  ring_size    = 2.394
  ring_tilt    = (-254.6, -158.2, 104.1)
}

variant member_10 {
  offset       = (0, -4, 3.5)
  size         = 0.994
  sway         = 9.906
  sway_waves   = 2.299
  rise         = 10.86
  rise_waves   = 1.948
  twist        = -10.85
  twist_waves  = 1.254
  taper        = 0.955
  fin          = (1.256, 1.917, -1.896)
  fin_waves    = (2.255, 2.117, 2.393)
  skin_1       = hsv(36.9, 0.48, 1)
  skin_2       = hsv(307.3, 0.49, 1)
  skin_3       = hsv(286.4, 0.49, 1)
  skin_4       = hsv(300.2, 0.54, 1)
  skin_gaps    = (0.5323, 0.8591, 0.438)
  fin_1        = hsv(78.6, 0.9, 0.83)
  fin_2        = hsv(169.4, 0.94, 0.6)
  fin_3        = hsv(178.6, 0.94, 0.83)
  fin_4        = hsv(113.4, 0.83, 0.77)
  fin_gaps     = (0.3684, 0.407, 0.8198)
  pearl_colour = hsv(32.6, 0.1, 0.42)
  ring_colour  = hsv(24.3, 0.29, 0.66)
  pearl_size   = 1.351
  ring_size    = 1.996
  ring_tilt    = (-314.4, 165.8, 104.1)
}

variant member_11 {
  offset       = (0, -2.8, 0.9)
  size         = 0.841
  sway         = -19.08
  sway_waves   = 2.375
  rise         = 10.86
  rise_waves   = 2.187
  twist        = 12.57
  twist_waves  = 1.254
  taper        = 0.955
  fin          = (0.337, -0.293, -1.142)
  fin_waves    = (2.447, 2.117, 1.814)
  skin_1       = hsv(17.3, 0.49, 1)
  skin_2       = hsv(307.3, 0.49, 1)
  skin_3       = hsv(160.1, 0.43, 1)
  skin_4       = hsv(334, 0.58, 1)
  skin_gaps    = (0.8014, 0.7994, 0.3908)
  fin_1        = hsv(154.7, 0.82, 0.73)
  fin_2        = hsv(38.8, 0.92, 0.75)
  fin_3        = hsv(18.1, 0.93, 0.97)
  fin_4        = hsv(192, 1, 0.92)
  fin_gaps     = (0.7173, 0.2909, 0.2917)
  pearl_colour = hsv(39.2, 0.74, 0.67)
  ring_colour  = hsv(33.4, 0.93, 0.94)
  pearl_size   = 2.824
  ring_size    = 2.434
  ring_tilt    = (-104.1, -120.1, 219.2)
}

variant member_12 {
  offset       = (0, -4.6, 5)
  size         = 1.56
  sway         = 10.06
  sway_waves   = 1.956
  rise         = 3.727
  rise_waves   = 1.055
  twist        = -16.55
  twist_waves  = 1.371
  taper        = 0.9416
  fin          = (0.4251, -0.293, -0.1528)
  fin_waves    = (2.148, 2.789, 1.987)
  skin_1       = hsv(267.9, 0.49, 1)
  skin_2       = hsv(5.4, 0.51, 1)
  skin_3       = hsv(73.6, 0.53, 1)
  skin_4       = hsv(334, 0.58, 1)
  skin_gaps    = (0.5596, 0.9194, 0.7834)
  fin_1        = hsv(158.9, 0.96, 1)
  fin_2        = hsv(2.6, 0.94, 0.91)
  fin_3        = hsv(207.2, 0.92, 0.9)
  fin_4        = hsv(182.3, 0.96, 0.68)
  fin_gaps     = (0.528, 0.2598, 0.7941)
  pearl_colour = hsv(38.3, 0.44, 0.8)
  ring_colour  = hsv(48, 0.37, 0.87)
  pearl_size   = 1.526
  ring_size    = 1.826
  ring_tilt    = (-0.7805, -101, -184.1)
}

← BreezeAll creaturesFlapper →