MbM - Salty - The Aquarium Watch

Here’s one of my new watchfaces. If you knew me, you’d know the salt-water aquarium had to become a reality eventually. 14 fish in the tank - some clowns, triggers, koran angels, and yellow tangs. Probably a huge CPU hog but fun to make regardless LOL.

1 Like

Would you share what’s under the hood? Or at least to show how to get an element to get across? Thank u in advance

DWFSS is my move engine. I used this minute cycle (0-360) to set when to start the cross. For example:
So some fish start before 60: #DWFSS#<60.
Some start after 60: DWFSS>60
One starts at 210: DWFSS>210
One starts after 180: DWFSS>180. and so on…

There are 360 units in #DWFSS# and there are 320 pixels across the watchface… Close enough, I didn’t bother to scale #DWFSS# units to watchface size.

The formulas for the fish moves are obviously in the X position field of each fish. If you let the fish move at the rate of #DWFSS# it is basically taking an entire minute to cross the screen which is way too slow. So you have to multiply to go faster. #DWFSS# * 9 is fast. #DWFSS# * 4 is kinda slow. #DWFSS# * 6 is a good pace, but I wanted some fish to go fast and others slower so I mixed up these multiplying values.

Formulas look like this:
which says: when DWFSS gets to 210 start moving from zero left side (subtract 210 first), then move at DWFSS * 6 speed. When the fish is not supposed to move yet, then just push the fish way off-screen (x = 400).

Move right-to-left is similar:
Same thing but subtract everything from 360 so X gets smaller instead of bigger. This fish crosses after 145 units of DWFSS.

Each fish only has a one-condition formula. The same fish (ie: orange clownfishes) are the same image added multiple times. I used PhotoShop to cut fish out of photos and to flip them left and right as separate images. I’m sure there’s multiple ways to do this but this worked for me.



thank you so much! gosh there is so much i need to learn to improve in this platform

Cool Aquarium!

Have you seen my Frogs Life? Cool water effect:

I’m going to try your code for my 2d animation illusion.Right now it just goes backwards and forwards, but your code should help a constant stream forward. Thanks!

Fun stuff, guys!!!
Keep in mind that you can enable your watch faces for inspection if you’d like other people to see how they’re made! You can then share the faces with the “inspect” at the end for everybody to see:


This is really cool!

So I made a train scene with a train moving from left to right. Currently it takes the train +/- 45 seconds to reappear. How do I make it appear every 10 seconds?

This is the code $#DWFSS#>1?((#DWFSS#-50)*6):200$

Here is the test: : zibom - Animated Railroad Train - watch face for Apple Watch, Samsung Gear S3, Huawei Watch, and more - Facer

Also, 5 seconds before the train officially runs it flashes on the track…any ideas? anyone?

any help would be appreciated :slight_smile:

hey Zibom,
That water effect is very cool. Is that two layers? I’ve been thinking of some kaleidoscope ideas and this technique would be perfect with 2 or three layers. Awesome.


1 Like

Hey Zibom - TRAIN CODE:
So every 10 seconds means 6 times per minute, yes? Since you are using DWFSS, you want to cross to start going at 0, 60, 120, 180, 240, and 300 of DWFSS. The cheater answer is to just load your train.png 6 times (lol) and rename them train 1, train 2, train 3… etc. :smile:
Then each train copy gets it’s own simple formula - no brain melting on some giant nested conditional statement.

$#DWFSS#<60?(#DWFSS#*6):400$ …train1
$#DWFSS#>60?((#DWFSS#-60)*6):400$ …train2
$#DWFSS#>120?((#DWFSS#-120)*6):400$ …train3
$#DWFSS#>180?((#DWFSS#-180)*6):400$ …train4
$#DWFSS#>240?((#DWFSS#-240)*6):400$ …train5
$#DWFSS#>300?((#DWFSS#-300)*6):400$ …train6

You’ll have to test if *6 is fast enough. For faster, just use larger number like *9 in each formula. Right? so the first train has to get across and out of the way before the second train starts crossing, etc.


1 Like

(so much to learn…)
I learned everything I know right here in the community. There’s tons and tons of cool stuff and people building crazy things. Just stay involved and help with posts and other’s questions when you can.

You may also want to keep a little separate txt file “diary”. When you come across a cool post that has some awesome formula for example, add it to your diary. You may not need it today, but when you do you may struggle to find that one post again. :smile: Just build up your own custom library of cool math work.


1 Like

Awesome, thanks John!

that’s awesome Facer!
“/inspect” in the URL - I had no idea…


I wonder if there is a way to count down when the next train arrives and just leave it at 1 minute intervals. Example "Next train arives in 00

This is so amazing! I’m learning so much from you guys! Thank you!

1 Like

Yes, two layers, first layer opacity reduced to 50% and spinning clockwise, the bottom layer spinning counterclockwise. I’ve unlocked it so you can take a look.

(Next train arrives…)

Couldn’t you just subtract from the max DWFSS?

Text: Next train arrives in (360 - #DWFSS#)


1 Like

Hi John,

I found this one better to use “Next train arrives in (60 - #DUs#)” so the average user doesn’t get confused with extra nums.:slight_smile:

ah right… the decimals. Good point

1 Like