anchor.diff:      if (heartbeatMod > 0.8 * beat) {
         radius = radius + (1000 * heartbeatMod / beat - 800) * mod;
       }
  -
  -    sizes[index] = radius * 2;
  -
  -    positions[index * 2] = position.x;
  -    positions[index * 2 + 1] = position.y;
  -
  -    colors[index * 4] = red;
  -    colors[index * 4 + 1] = green;
  -    colors[index * 4 + 2] = blue;
  -    colors[index * 4 + 3] = color.alpha;
  +    for (int triangle = 0; triangle < maxTriangles; triangle++) {
  +      for (int vertex = 0; vertex < vertices; vertex++) {
  +        var colorIndex = ((index * maxTriangles + triangle) * vertices + vertex) * 4;
  +
  +        colors[colorIndex] = red;
  +        colors[colorIndex + 1] = green;
  +        colors[colorIndex + 2] = blue;
  +        colors[colorIndex + 3] = color.alpha;
  +      }
  +      var posIndex = (index * maxTriangles + triangle) * 2 * vertices;
  +      positions[posIndex] = position.x;
  +      positions[posIndex + 1] = position.y;
  +      positions[posIndex + 2] = position.x + radius * cos(2 * PI * triangle / maxTriangles);
  +      positions[posIndex + 3] = position.y + radius * sin(2 * PI * triangle / maxTriangles);
  +      positions[posIndex + 4] = position.x + radius * cos(2 * PI * (triangle+1) / maxTriangles);
  +      positions[posIndex + 5] = position.y + radius * sin(2 * PI * (triangle+1) / maxTriangles);
  +    }
     }
   
   
     @override
     void render(int length) {
  -    buffer('a_Size', sizes, 1);
       buffer('a_Position', positions, 2);
       buffer('a_Color', colors, 4);
   
  
positive.code:     var color = colorMapper[entity];
      var hb = hbMapper[entity];
  
      var beat = 60000 / hb.frequency;
      var mod = 0.01;
      var red = color.red;
      var green = color.green;
  
negative.code: 
    Float32List positions;
    Float32List colors;
  
    int maxTriangles = 16;
    int vertices = 3;
  
    CircleRenderingSystem(RenderingContext gl)
        : super(gl, Aspect.getAspectForAllOf([Position, Circle, Color, Heartbeat]));
  