GenoCode Getting startedThe languageCreatures Open the app

Creatures › Parasite

Parasite: A segmented worm with a pair of legs on every segment, which can curl up into a ring with its legs splayed out. Inspired by Parasite, a DancerDNA creature.

Parasite

A segmented worm with a pair of legs on every segment, which can curl up into a ring with its legs splayed out. Inspired by Parasite, a DancerDNA creature.

23 genes · 11 variants

Open in GenoCodeDownload Parasite.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.

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

Genes

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

GeneWhat it doesRangeValue
legs_awayhow far the legs stand off from the body; at 0 or below they're attached-5 to 1-3.683
curl_uphow far the body curls into a ring: 0 not at all, 1 all the way-5 to 2-1.923
leg_reachhow far off the legs are when they stand off1 to 304.18
stridehow long the body's segments are0.8 to 1.050.9559
wigglehow far the body wiggles: up, sideways and round(-17.19, -17.19, -17.19) to (17.19, 17.85, 17.19)(-2.755, 10.34, -1.77)
wiggle_waveshow many half-waves the wiggles make along it(1, 1, 1) to (3, 3, 3)(2.65, 2.298, 2.554)
swellhow much the segments grow and shrink-0.15 to 0.150.02704
swell_waves0.1 to 40.7213
leg_lengthhow many beads the longest legs have0 to 1511.54
leg_waveshow many times the legs grow and shrink along the body0.5 to 101.912
leg_start0 to 10.668
leg_turnhow far the legs turn as the body curls up-57.3 to 57.3-0.1754
leg_spreadhow far apart the beads of the inner legs are as it curls up0 to 30.9165
bead_length0.2 to 31.829
bead_taperhow much bigger each bead is than the last0.8 to 1.10.9351
leg_curl-1.5 to 1.51.092
leg_curl_waves0.5 to 41.349
body_1any huehsv(72.7, 0.83, 1, 1)
body_2any huehsv(70.9, 0.89, 1, 1)
body_3any huehsv(49.8, 0.81, 1, 1)
body_4any huehsv(79.9, 0.65, 1, 1)
body_gaps(0.25, 0.25, 0.25) to (1, 1, 1)(0.5113, 0.4083, 0.5948)
leg_tipany huehsv(219.4, 0.51, 1, 1)

The code

creature Parasite
// A segmented worm with a pair of legs on every segment, which can curl up into a ring with its
// legs splayed out.
// Inspired by Parasite, a DancerDNA creature.

gene legs_away = -3.683 in -5..1  // how far the legs stand off from the body; at 0 or below they're attached
gene curl_up   = -1.923 in -5..2  // how far the body curls into a ring: 0 not at all, 1 all the way
gene leg_reach = 4.18   in 1..30  // how far off the legs are when they stand off

gene stride       = 0.9559  in 0.8..1.05                                                       // how long the body's segments are
gene wiggle       = (-2.755, 10.34, -1.77) in (-17.19, -17.19, -17.19)..(17.19, 17.85, 17.19)  // how far the body wiggles: up, sideways and round
gene wiggle_waves = (2.65, 2.298, 2.554) in (1, 1, 1)..(3, 3, 3)                               // how many half-waves the wiggles make along it
gene swell        = 0.02704 in -0.15..0.15                                                     // how much the segments grow and shrink
gene swell_waves  = 0.7213  in 0.1..4

gene leg_length     = 11.54   in 0..15        // how many beads the longest legs have
gene leg_waves      = 1.912   in 0.5..10      // how many times the legs grow and shrink along the body
gene leg_start      = 0.668   in 0..1
gene leg_turn       = -0.1754 in -57.3..57.3  // how far the legs turn as the body curls up
gene leg_spread     = 0.9165  in 0..3         // how far apart the beads of the inner legs are as it curls up
gene bead_length    = 1.829   in 0.2..3
gene bead_taper     = 0.9351  in 0.8..1.1     // how much bigger each bead is than the last
gene leg_curl       = 1.092   in -1.5..1.5
gene leg_curl_waves = 1.349   in 0.5..4

// The body's colours, from head to tail, and the gaps between them; and the legs' tips.
gene body_1    = hsv(72.7, 0.83, 1) in hsv(0, 0.4, 1)..hsv(360, 1, 1)
gene body_2    = hsv(70.9, 0.89, 1) in hsv(0, 0.4, 1)..hsv(360, 1, 1)
gene body_3    = hsv(49.8, 0.81, 1) in hsv(0, 0.4, 1)..hsv(360, 1, 1)
gene body_4    = hsv(79.9, 0.65, 1) in hsv(0, 0.4, 1)..hsv(360, 1, 1)
gene body_gaps = (0.5113, 0.4083, 0.5948) in (0.25, 0.25, 0.25)..(1, 1, 1)
gene leg_tip   = hsv(219.4, 0.51, 1) in hsv(0, 0.4, 1)..hsv(360, 1, 1)

let body = spectrum(body_1, body_2 at body_gaps.x, body_3 at body_gaps.x + body_gaps.y, body_4 at body_gaps.x + body_gaps.y + body_gaps.z)

let away = max(legs_away, 0)
let attached = 1 - away
let circle = clamp(curl_up, 0, 1)
let loose = (1 - circle) * attached

yaw 90
sharpness 1
shine 1
worm

part worm {
  branch {
    shape donut
    colour body(0)
    lay
    forward -0.3
    shape tube
    repeat 30 as k {
      let along = k / 30
      forward stride / 2
      yaw loose * wiggle.y * sin(180 * wiggle_waves.y * along)
      pitch 12 * circle + loose * wiggle.x * sin(180 * wiggle_waves.x * along)
      roll loose * wiggle.z * sin(180 * wiggle_waves.z * (along - 1))
      grow 1 + loose * swell * sin(180 * swell_waves * along)
      forward stride / 2
      colour body(along)
      lay
      branch {
        let beads = leg_length * sin(180 * leg_waves * (along + leg_start))
        leg(beads, body(along), stride_out(true))
        mirror y
        leg(beads, body(along), stride_out(false))
      }
    }
    forward stride - 0.4
    shape donut
    lay
  }
}

// How far apart a leg's beads are: the inner legs spread as the body curls up.
function stride_out(inner) {
  if inner {
    return 0.4 + circle * leg_spread
  }
  return 0.4
}

part leg(beads, base, spacing) {
  branch {
    pitch 90
    yaw circle * attached * leg_turn
    forward away * leg_reach
    shape ball
    grow (0.5, 0.5, bead_length)
    forward -0.2
    let size = bead_taper
    repeat ceil(beads) as k {
      forward spacing
      let along = k / beads
      colour spectrum(base, leg_tip)(along)
      // The last bead is cut short by what's left of the count.
      if k + 1 > beads {
        size *= beads % 1
      }
      grow size
      yaw degrees(attached * (leg_curl * sin(180 * leg_curl_waves * along)) ^ 3)
      forward spacing
      lay
    }
  }
}

variant member_2 {
  legs_away      = -4.382
  curl_up        = -2.532
  leg_reach      = 4.889
  stride         = 0.977
  wiggle         = (-7.057, 17.85, 1.837)
  wiggle_waves   = (2.832, 2.438, 2.983)
  swell          = 0.05078
  swell_waves    = 0.6305
  leg_length     = 13.56
  leg_waves      = 1.798
  leg_start      = 0.8668
  leg_turn       = -0.6955
  leg_spread     = 1.052
  bead_length    = 1.498
  bead_taper     = 0.9466
  leg_curl       = 1.045
  leg_curl_waves = 0.8635
  body_1         = hsv(88.9, 0.83, 1)
  body_2         = hsv(12, 0.88, 1)
  body_3         = hsv(62.9, 0.77, 1)
  body_4         = hsv(60.4, 0.65, 1)
  body_gaps      = (0.4423, 0.3939, 0.5718)
  leg_tip        = hsv(218.5, 0.5, 1)
}

variant member_3 {
  legs_away      = -3.753
  curl_up        = -1.534
  leg_reach      = 12.92
  stride         = 0.9741
  wiggle         = (-16.93, 10.06, -11.67)
  wiggle_waves   = (2.975, 2.704, 1.633)
  swell          = 0.02304
  swell_waves    = 1.723
  leg_length     = 3.845
  leg_waves      = 0.6921
  leg_start      = 0.3731
  leg_turn       = 7.014
  leg_spread     = 1.938
  bead_length    = 2.173
  bead_taper     = 0.8282
  leg_curl       = -1.165
  leg_curl_waves = 1.736
  body_1         = hsv(312.3, 0.49, 1)
  body_2         = hsv(189.4, 0.59, 1)
  body_3         = hsv(260.5, 0.77, 1)
  body_4         = hsv(52.3, 0.99, 1)
  body_gaps      = (0.2819, 0.488, 0.9365)
  leg_tip        = hsv(112.6, 0.93, 1)
}

variant member_4 {
  legs_away      = 0.6745
  curl_up        = -1.247
  leg_reach      = 5.742
  stride         = 0.8983
  wiggle         = (2.312, 1.527, -16.95)
  wiggle_waves   = (2.677, 1.789, 1.53)
  swell          = -0.08456
  swell_waves    = 1.012
  leg_length     = 7.466
  leg_waves      = 1
  leg_start      = 0.006293
  leg_turn       = 1.897
  leg_spread     = 1.95
  bead_length    = 1.68
  bead_taper     = 0.8679
  leg_curl       = 1.251
  leg_curl_waves = 1.724
  body_1         = hsv(36.5, 0.89, 1)
  body_2         = hsv(88.9, 0.6, 1)
  body_3         = hsv(199.1, 0.97, 1)
  body_4         = hsv(307.8, 0.78, 1)
  body_gaps      = (0.9105, 0.8472, 0.7169)
  leg_tip        = hsv(77.8, 0.69, 1)
}

variant member_5 {
  legs_away      = -0.141
  curl_up        = -0.07943
  leg_reach      = 4.174
  stride         = 0.8064
  wiggle         = (0.7381, -17.14, 4.941)
  wiggle_waves   = (1.802, 1.923, 1.328)
  swell          = 0.04841
  swell_waves    = 1.647
  leg_length     = 9.225
  leg_waves      = 1.336
  leg_start      = 0.006293
  leg_turn       = 1.955
  leg_spread     = 2.257
  bead_length    = 1.397
  bead_taper     = 0.9783
  leg_curl       = 1.086
  leg_curl_waves = 1.97
  body_1         = hsv(179.4, 0.9, 1)
  body_2         = hsv(210.8, 0.63, 1)
  body_3         = hsv(224, 0.91, 1)
  body_4         = hsv(304.9, 0.78, 1)
  body_gaps      = (0.8318, 0.4984, 0.4518)
  leg_tip        = hsv(346.1, 0.87, 1)
}

variant member_6 {
  legs_away      = -0.09681
  curl_up        = 0.3121
  leg_reach      = 7.436
  stride         = 0.8134
  wiggle         = (-1.911, -0.7886, -6.438)
  wiggle_waves   = (1.294, 2.244, 1.765)
  swell          = -0.01532
  swell_waves    = 1.158
  leg_length     = 6.078
  leg_waves      = 0.9258
  leg_start      = 0.1634
  leg_turn       = -12.14
  leg_spread     = 1.316
  bead_length    = 2.518
  bead_taper     = 0.8511
  leg_curl       = 0.6355
  leg_curl_waves = 2.083
  body_1         = hsv(300.7, 0.95, 1)
  body_2         = hsv(256.2, 0.76, 1)
  body_3         = hsv(240.1, 0.9, 1)
  body_4         = hsv(322.5, 0.64, 1)
  body_gaps      = (0.9713, 0.9284, 0.5469)
  leg_tip        = hsv(139.6, 0.67, 1)
}

variant member_7 {
  legs_away      = 0.5801
  curl_up        = 0.7719
  leg_reach      = 17.18
  stride         = 0.9407
  wiggle         = (0.8597, 10.02, 4.283)
  wiggle_waves   = (1.464, 1.345, 1.394)
  swell          = 0.05637
  swell_waves    = 1.677
  leg_length     = 5.746
  leg_waves      = 0.5307
  leg_start      = 0.6712
  leg_turn       = -35.63
  leg_spread     = 1.765
  bead_length    = 0.7007
  bead_taper     = 0.9745
  leg_curl       = -1.334
  leg_curl_waves = 2.248
  body_1         = hsv(46.4, 0.5, 1)
  body_2         = hsv(129.2, 0.5, 1)
  body_3         = hsv(336, 0.56, 1)
  body_4         = hsv(156.7, 0.99, 1)
  body_gaps      = (0.4612, 0.8361, 0.7589)
  leg_tip        = hsv(291, 0.42, 1)
}

variant member_8 {
  legs_away      = -1.676
  curl_up        = 0.9599
  leg_reach      = 2.142
  stride         = 0.8953
  wiggle         = (9.607, -11.23, -12.13)
  wiggle_waves   = (2.126, 1.572, 1.698)
  swell          = 0.04742
  swell_waves    = 0.2133
  leg_length     = 5.752
  leg_waves      = 0.9077
  leg_start      = 0.09175
  leg_turn       = 1.319
  leg_spread     = 0.4972
  bead_length    = 2.322
  bead_taper     = 0.9142
  leg_curl       = 0.7406
  leg_curl_waves = 2.745
  body_1         = hsv(81.5, 0.77, 1)
  body_2         = hsv(240.2, 0.94, 1)
  body_3         = hsv(12.2, 0.93, 1)
  body_4         = hsv(135.9, 0.66, 1)
  body_gaps      = (0.5767, 0.4498, 0.6609)
  leg_tip        = hsv(160.2, 0.48, 1)
}

variant member_9 {
  legs_away      = -1.676
  curl_up        = -0.1719
  leg_reach      = 9.848
  stride         = 0.8953
  wiggle         = (9.607, -11.23, -12.13)
  wiggle_waves   = (2.126, 1.847, 1.319)
  swell          = -0.07622
  swell_waves    = 1.975
  leg_length     = 5.752
  leg_waves      = 4.549
  leg_start      = 0.09681
  leg_turn       = 1.319
  leg_spread     = 0.5285
  bead_length    = 2.782
  bead_taper     = 0.832
  leg_curl       = 1.227
  leg_curl_waves = 2.745
  body_1         = hsv(6.7, 0.93, 1)
  body_2         = hsv(173.8, 0.88, 1)
  body_3         = hsv(119.2, 0.89, 1)
  body_4         = hsv(98.7, 0.56, 1)
  body_gaps      = (0.8976, 0.4498, 0.6609)
  leg_tip        = hsv(306.3, 0.62, 1)
}

variant member_10 {
  legs_away      = -0.141
  curl_up        = -3.471
  leg_reach      = 10.78
  stride         = 0.84
  wiggle         = (5.01, -16.76, 4.941)
  wiggle_waves   = (2.719, 1.294, 1.328)
  swell          = 0.04841
  swell_waves    = 1.647
  leg_length     = 13.66
  leg_waves      = 0.8843
  leg_start      = 0.1326
  leg_turn       = 42.68
  leg_spread     = 2.257
  bead_length    = 1.575
  bead_taper     = 1.019
  leg_curl       = 1.34
  leg_curl_waves = 0.5153
  body_1         = hsv(43, 0.84, 1)
  body_2         = hsv(208.6, 0.77, 1)
  body_3         = hsv(224, 0.91, 1)
  body_4         = hsv(127.1, 0.82, 1)
  body_gaps      = (0.543, 0.4755, 0.4391)
  leg_tip        = hsv(346.1, 0.87, 1)
}

variant member_11 {
  legs_away      = -0.141
  curl_up        = -1.937
  leg_reach      = 8.821
  stride         = 0.824
  wiggle         = (-1.015, -17.14, 4.941)
  wiggle_waves   = (2.571, 1.294, 1.494)
  swell          = 0.04841
  swell_waves    = 1.924
  leg_length     = 13.66
  leg_waves      = 2.535
  leg_start      = 0.1905
  leg_turn       = 46.48
  leg_spread     = 2.257
  bead_length    = 1.527
  bead_taper     = 0.9783
  leg_curl       = 1.384
  leg_curl_waves = 0.5153
  body_1         = hsv(43, 0.84, 1)
  body_2         = hsv(208.6, 0.77, 1)
  body_3         = hsv(242.6, 0.98, 1)
  body_4         = hsv(127.1, 0.82, 1)
  body_gaps      = (0.543, 0.4755, 0.4518)
  leg_tip        = hsv(346.1, 0.87, 1)
}

variant member_12 {
  legs_away      = -4.382
  curl_up        = -3.903
  leg_reach      = 4.889
  stride         = 1.046
  wiggle         = (-7.057, 17.85, -5.462)
  wiggle_waves   = (2.832, 2.438, 2.983)
  swell          = 0.1402
  swell_waves    = 0.7648
  leg_length     = 11.86
  leg_waves      = 1.798
  leg_start      = 0.8668
  leg_turn       = -16.87
  leg_spread     = 1.052
  bead_length    = 1.886
  bead_taper     = 0.9517
  leg_curl       = 1.045
  leg_curl_waves = 1.81
  body_1         = hsv(179.1, 0.68, 1)
  body_2         = hsv(12, 0.88, 1)
  body_3         = hsv(3.5, 0.88, 1)
  body_4         = hsv(81.8, 0.78, 1)
  body_gaps      = (0.4423, 0.3939, 0.7437)
  leg_tip        = hsv(134.1, 0.45, 1)
}

← OctoplantAll creaturesPesky →