समयSamay

Six watch faces from Indian life, from Diwali lamps and temple bells to a kids' mango tree and a South Indian cinema hall. Each one has a small physics world that runs on the clock. Tilt, tap, drag and turn the crown to play with them. Every face is scoped to what SwiftUI, SpriteKit and CoreMotion can do on Apple Watch and iPhone.

Drag, tap or scroll on the face · turn the crown · tilt with the pad

Haptics show here when the face taps your wrist
Wrist tilt
Clock speed
Display

Where these can run

watchOS does not let third-party apps ship watch faces. The faces ship as a watch app that the wearer keeps in front, plus static widgets for the system faces. On iPhone the full version runs as a landscape nightstand app.

SurfacePhysics & touchWhat you getHow
Apple Watch system faceNot allowedNo third-party faces. Photos face can show a still of any design.Share a still render to Photos; point people to the app and complications.
watchOS app as the clockFullAll six faces, live physics, crown, tilt and haptics.Canvas + TimelineView, or SpriteView. The wearer sets Settings › General › Return to Clock to keep the app up for up to an hour. Always On via isLuminanceReduced.
Complications & Smart StackStaticA diya count, water level or bell count per timeline entry, with live time text.WidgetKit timeline; Text(date, style: .time) ticks without new entries. No continuous animation or drag.
iPhone nightstand appFullLandscape faces with a big time readout, 60–120 Hz.Same drawing code; isIdleTimerDisabled = true while charging; CoreMotion gravity.
iPhone StandBy & Lock ScreenStaticWidget art that updates on a timeline; taps can run an App Intent.WidgetKit only. StandBy's full-screen clocks are Apple's.

One render loop

TimelineView(.animation(minimumInterval: 1/30)) drives a Canvas. Physics state lives in an @Observable model stepped by the timeline's date delta. The watch runs at 30 fps and iPhone ProMotion can run at 120.

Tilt

CMMotionManager.deviceMotion.gravity gives the same in-screen gravity vector as the tilt pad (x, −y). Stop updates when the scene goes inactive or the wrist drops.

Crown

.digitalCrownRotation(_:from:through:by:sensitivity:isContinuous:isHapticFeedbackEnabled:) on a .focusable() view. Its detents supply the rotation clicks for free.

Haptics

WKInterfaceDevice.current().play(_:) on the watch; UIImpactFeedbackGenerator on iPhone. Fire them only on events like the hour, a splash or a blown-out diya, never once per frame.

Type

Devanagari numerals use Tiro Devanagari Hindi (OFL, bundled). iOS also ships Kohinoor Devanagari. Bundle the font on watchOS rather than relying on system fonts.

Battery

Simulate only when the app is frontmost and the wrist is raised. Always On shows a frozen, dimmed frame and redraws at most once a minute for time changes.