Garmin WatchFaces Online Builder

Watchface Builder for Garmin

Version 7.3.2

  • Added: global variables
  • Added: code block

You can declare global variables under widget’s global section. Choose the variable name carefully, make sure it will not conflict with others. I suggest you add a prefix “g_” for the global variable name.

A new code block data field was added under data field menu. It replaces the custom code data field. You can access your global variables declared under global section, as well as local variables like:
1. x, y: the code block’s position
2. now: the current time

Version 7.3.1

  • Updated: AOD pixel estimation

New estimation algorithm for AOD mode. Click “AOD” tab on the top left corn, then under global widget section, you will see a button to calculate the percentage of on-pixel in AOD mode.

Half of the on-pixels in AOD screen will be toggled on/off by app automatically, so if the estimated percentage is less than 20%, the message will be green. But because some characters could light up more pixels than others (ex. letter M vs . (dot)), you should give yourself a little bit of wiggle room when designing your watch face.

Version 7.3.0

  1. Added: InstallGWF 1.0.0
  2. Added: SVG-like rotating hand
  3. Added: Data fields from Activity Monitor heart rate history
  4. Added: Expression on the background color
  5. Added: Expression on min/max values for chart
  6. Fixed: a bug on empty expression
  7. Fixed: a bug on SVG id
  8. Fixed: a bug on updating color

You can install your watch face app using the new released program InstallGWF. Please check this post about how to install, and how to use it. How to install watchface : watchfacebuilder (

Rotating hand from svg path shape will not count toward 256 image limit for Garmin app. So you can add a lot more rotating hands in your design.

Background color can use the expression now. Now you can set the background color based on the data field’s value.

I overlooked those data fields from the heart rate history from activity monitor. It’s different from the heart rate history from sensor history. It seems to get updates every seconds during the high power mode.

Version 7.2.3

  • Update: UI re-organized

Most static objects (image, svg shape, etc.) can be set to the layer objects. A layer object is an image stored separated in your app, so you can place it on top of other object (including data field object). Because it’s a separated image, it counts against the total 256 image one app could have at most.

This demo shows how to add a dust layer object on top of the time object.
Watchface – Watchface Builder for Garmin

Version 7.2.2

  • Added: Export to Connect IQ store

If you want to have the iq file, so you can publish your design to the Connect IQ store, please send me your requests in email. Compiling to iq file takes up too much resources, so it will be manual steps.

Version 7.2.1

  • Added: Expression to fields: position and color
  • Added: alignment indicator
  • Updated: daily tide predications to 7 days
  • Fixed: bugs when set object’s position in widget section

Version 7.2.0

  • Added: sun events in one arc or line
  • Changed: no color quantization is on by default

You can add all (or partial) sun events in one widget. Click goal->sun events on arc / line.

You can turn on or off certain segment between sun events, like the following:

This will draw the arc/line starting from Civic dawn.

The above settings will draw a segment from Blur hour AM to Sunrise end with blue color.

Version 7.1.0

  • Updated: line goal, arc goal, and rotating hand goal
  • Added: dynamic location for widgets (WIP, more coming)
  • Added: line segment, arc segment, image layer
  • Changed: top menu bar
  • Fixed: bugs
  1. When you want to add a goal field, first, select the shape from goal menu, then you can select a preset (like steps, battery, floor, etc.), it will update the necessary data fields for value, min, and max fields.
  2. Dynamic objects
    • Line: you can set the line’s color, length, width, angle, and position, based on the value from watch’s datafield, or a static value. The line will not be merged to background with other static objects. So you can set the layer’s order to make it visible on top of another object.
    • Arc/Circle: you can control radius, line width, stroke color, fill color, angles, and position, based on a value from watch’s datafield, or a static value.
    • Image: you can control image’s position, based on the value from watch’s datafield. Use this one to replace layer mask image. This should save a little bit of watch’s memory.
  3. Static objects: basic shape, text, image, and other shapes are moved here

Version 7.0.0

  • Added: grid lines
  • Added: remove color button
  • Added: triangle shape indicator for arc goal field
  • Changed: one coordinate system
  • Fixed: too many to list

You can now toggle the grid lines in the status bar:

All color input box has an eraser button. When you click it, the widget will either draw itself with a transparent color or be skip (without drawing).

Arc goal field has a triangle indicator

it will render the widget like this:

You can use this instead to replace the point goal field in case you have 256 images limit error.