This is quite cheesy for now. It's just three hard-coded, primary colors.
(Much nicer would be to take N evenly-spaced colors from a percpetually
linear space.) But this gives us parity with the functionality of the
original motorsim plot, so it's enough for getting us closer to being
able to replace that.
     cairo_t *cr = acre->cr;
     unsigned int d, i;
     acre_data_t *data;
+#define NUM_COLORS 3
+    struct {
+       double r;
+       double g;
+       double b;
+    } colors [NUM_COLORS] = {
+       {1, 0, 0},
+       {0, 1, 0},
+       {0, 0, 1}
+    };
 
     cairo_save (cr);
 
     _set_transform_to_data_space (acre);
 
     for (d = 0; d < acre->num_data; d++) {
+       int color = d % NUM_COLORS;
+       cairo_set_source_rgb (cr,
+                             colors[color].r,
+                             colors[color].g,
+                             colors[color].b);
        data = acre->data[d];
        cairo_new_path (cr);
        for (i = 0; i < data->num_points; i++) {