   s.onchange = ->
     sp.innerHTML = s.value
     values[0] = Number.parseInt s.value
+madeGeneCharts = false
 makeUniverse = ->
   p = convertParams()
   p.callback = collectData
   u = new Universe 'universe', p
+  unless madeGeneCharts
+    for type in [ 'plant', 'herbivore', 'carnivore' ]
+      tab = byId "#{type}-chart"
+      for gene, v of u.urThing(type).genes
+        id = "#{type}-#{gene}"
+        div = create 'div', 'chart'
+        div.id = id
+        tab.appendChild div
+        charts = evoData.charts[type] ||= {}
+        charts[gene] = geneChartSpec type, gene, id
 evoData =
   resetNum: 1
   generation: 0

      Energy:
        id: 'energy'
        htitle: 'Time (ticks)'
        vtitle: 'Net energy embodied by indviduals'
        collector: (stats, rows) ->
          counts = Plant: 0, Herbivore: 0, Carnivore: 0
          counts[description.type] += description.hp for description in stats

      e.parentNode.replaceChild div, e
drawChart = ->
  for title, specs of evoData.charts[chartType] || {}
    rows = trimData specs.rows
    return unless rows.length && rows[0].length
    id     = specs.id
    chart  = specs.chart
    htitle = specs.htitle
    vtitle = specs.vtitle
    width  = specs.width || 1000
    height = specs.height || 400
    data = new google.visualization.DataTable()
    data.addColumn 'number', 'X'
    options =
      title: titlize decamelize(title)
      width: width
      height: height
      hAxis:
        title: htitle
      vAxis:
        title: vtitle
    if specs.type == 'interval'
      data.addColumn 'number', 'values'
      ids = []
      for i in [2...5]
        data.addColumn id: "i#{i}", type: 'number', role: 'interval'
      options.interval =
            i2: style: 'line', color:'green' # mean
            i3: style: 'line', color:'black' # min
            i4: style: 'line', color:'red' # max
      options.lineWidth = 2
      options.curveType = 'function'
      options.legend    = 'none'
    else
      names  = specs.names
      colors = specs.colors
      if colors
        for c, i in colors
          colors[i] = c() if typeof c == 'function'
        options.colors = colors
      data.addColumn 'number', n for n in names
    data.addRows rows
    if chart
      chart.clearChart()
    else
