Hi everyone!
Recently, I’ve acquired a new smartwatch (Mobvoi Ticwatch Pro 3). I was really keen to designing my own watchfaces. Yesterday, I finally succeeded in doing so, but not without a ton of hassle and trial and error.
To give some context: My method of loading sketches is through the APDE app on my phone, and then selecting ‘Watchface’ to send the sketch from my phone to the watch (having the APDE Wear Companion installed on my watch). My first sketches didn’t work all, and the Wear Companion App kept refusing them (by not showing anything or by sporadically closing). I thought that was the end of the story, and that the Wear Companion App was probably still too buggy to work correctly (as it is in 1.0).
However, as said, I have finally created a decent watchface that works correctly, upon realising that some standard Processing utilities could be the cause of the problem (I am not 100% on this though). Using any of the following in any sketch sent to my watch will cause problems:
- The random() function
- The translate() function
- The stroke(), strokeWeight() and noStroke() function
- Any color() (I believe these have to be converted to hexadecimal).
Note: Previewing sketches that use these functions on my phone goes perfectly. I really think the watch is limited in some way, but I don’t have the knowledge yet (I am merely a code-based visuals fanatic (Processing and openFrameworks), not by any means a software engineer).
Example:
This works fine:
int x = 0;
void setup() {
fullScreen();
frameRate(30);
}
void draw() {
fill(#000000, 255);
ellipse(width/2, height/2, width, height);
fill(#ffffff, 255);
ellipse(x, height/2, 50, 50);
x += 5;
x %= width;
}
And this won’t load (using any other function listed above will give the same problem):
int x = 0;
void setup() {
fullScreen();
frameRate(30);
}
void draw() {
fill(#000000, 255);
pushMatrix();
translate(width/2, height/2);
ellipse(0, 0, width, height);
popMatrix();
pushMatrix();
translate(x, height/2);
fill(#ffffff, 255);
ellipse(0,0, 50, 50);
popMatrix();
x += 5;
x %= width;
}
Does anyone have an idea of what’s going on here? I have a certain style that greatly depends on these functions and I would love to know what others think.