UYT CLOCK – DETAILED DESCRIPTION 1 ==================================== 1. Overview ----------- The present description relates to a timekeeping system referred to herein as the “UYT Clock” (Universal Yoga Time Clock). The UYT Clock provides a structured, cyclical representation of time based on breath cycles, sets of breaths, and sequences of postures or activities, in contrast to conventional clocks that segment time into hours, minutes, and seconds. In various embodiments, the UYT Clock may be implemented as: - A graphical user interface displayed on a computing device, - A web-based component or widget, - A mobile or wearable application, - An embedded display in a dedicated device. The UYT Clock can function both as a practice clock for guiding yoga or breathing sessions and as a reference clock analogous to a 12-hour clock, but grounded in breath-based units rather than conventional wall-clock units. 2. Temporal Model ----------------- 2.1 Breath as Base Unit ~~~~~~~~~~~~~~~~~~~~~~~ In one embodiment, the smallest unit of time in the UYT Clock is a breath. A breath is defined as a fixed-duration interval, such as 1.8 seconds, although other durations may be used in alternative embodiments. Let: - BREATH_SEC denote the duration of one breath in seconds. - In an example implementation, BREATH_SEC = 1.8. 2.2 Hierarchical Structure: Breaths, Sets, Postures ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Above the breath unit, the UYT Clock defines hierarchical groupings: 1. Breaths per set A set consists of a fixed number of breaths. In an example embodiment, a set consists of 10 breaths. 2. Sets per posture A posture or activity unit consists of a configurable number of sets. This quantity is referred to as SETS_PER_POSTURE. In one embodiment, a default value of SETS_PER_POSTURE = 5 is used, but this value may be changed via user input or configuration. 3. Posture count (sequence length) A full sequence (e.g., a yoga sequence) consists of a configurable number of postures, referred to as POSTURES or postureCount. In one embodiment, a default value of POSTURES = 22 is used, though other counts are possible. Thus, the temporal structure may be summarized as: - 1 Set = BREATHS_PER_SET breaths (e.g., 10 breaths) - 1 Posture = SETS_PER_POSTURE × BREATHS_PER_SET breaths - 1 Sequence = POSTURES × SETS_PER_POSTURE × BREATHS_PER_SET breaths This hierarchy allows the clock to represent time in a form that is meaningful for cyclical practices such as yoga, breathing exercises, or other structured activities. 3. UYT Digital Time Representation ---------------------------------- In addition to the graphical circular display, the UYT Clock provides a digital representation of UYT time using a formatted triplet: NNNN.BB.VV where: - NNNN is a coarse index representing a large-scale progression of breaths, - BB is a breath index within a smaller grouping of breaths, - VV is a sub-breath index representing the phase within a single breath. In an illustrative implementation: - The total elapsed duration since an anchor moment is denoted elapsedMs in milliseconds. - Let BREATH_MS = BREATH_SEC × 1000. - Let SUBDIV = 10 represent the number of subdivisions within a breath. The digital components are computed as follows: 1. totalBreaths = floor(elapsedMs / BREATH_MS) 2. NNNN = floor(totalBreaths / 10) 3. BB = totalBreaths % 10 (i.e., BB ranges from 0 to 9) 4. phase = (elapsedMs % BREATH_MS) / BREATH_MS, where phase ranges from 0.0 to less than 1.0 5. VV = floor(phase × SUBDIV) (e.g., from 0 to 9 when SUBDIV = 10) For user display, zero-padding may be applied so that: - NNNN is displayed as a 4-digit field, - BB is displayed as a 2-digit field, - VV is displayed as a 2-digit field. For example, a UYT time of: 0123.04.07 indicates: - NNNN = 0123 (coarse index), - BB = 04 (breath within the current group of ten breaths), - VV = 07 (sub-phase within the current breath). This representation allows UYT time to be read in a compact, numeric format analogous to hours:minutes:seconds, while reflecting the underlying breath-based structure. 4. Anchoring UYT to Real Time ----------------------------- To map real-world time to UYT time, the system defines an anchor time from which breaths are counted forward. 4.1 Sync Epoch Anchoring ~~~~~~~~~~~~~~~~~~~~~~~~ In one embodiment, the UYT Clock may receive a synchronization epoch (syncEpoch), for example as a Unix timestamp in seconds. When provided, this epoch defines the reference moment at which UYT time is considered to be zero. In this case, the elapsed time in seconds is calculated as: elapsedSec = currentUnixTimeSeconds – syncEpoch elapsedMs = elapsedSec × 1000 The UYT digital representation and the graphical rings are then derived from this elapsed time. This allows different clients (e.g., multiple devices, apps, or browser instances) to remain synchronized to a shared UYT timeline. 4.2 Daily Anchor Anchoring ~~~~~~~~~~~~~~~~~~~~~~~~~~ In other embodiments, when a sync epoch is not explicitly provided, the system may anchor UYT time to a daily reference time, for example 05:00 local time. An illustrative algorithm is as follows: 1. Take the current local date and time. 2. Construct an anchor timestamp at 05:00 of the current day. 3. If the current time is earlier than 05:00 on that day, the anchor is shifted back to 05:00 of the previous day. 4. The elapsed time elapsedSec is then computed as the difference between the current time and this anchor. This approach has the effect of defining a “UYT day,” similar in spirit to a conventional 24-hour day, but expressed in breaths, sets, and postures. The visual rings will therefore indicate “where in the UYT day” the user currently is. 5. Concentric Ring Visualization -------------------------------- In one embodiment, the UYT Clock is rendered as three concentric circular rings, each ring representing a different level of the temporal hierarchy: - Inner ring (Ring A): Breaths within the current set. - Middle ring (Ring B): Sets within the current posture. - Outer ring (Ring C): Postures within the sequence or practice session. Each ring may display: - Discrete radial spokes corresponding to units (breaths, sets, or postures), - A continuous progress arc showing fractional completion, - A visually emphasized current spoke corresponding to the immediate position within that ring. 5.1 Ring Geometry ~~~~~~~~~~~~~~~~~ In a particular implementation, the rings are drawn in an SVG coordinate system centered at (0, 0) with radii: - R_A for the inner ring, - R_B for the middle ring, - R_C for the outer ring. Example values might be: - R_A = 80 units, - R_B = 130 units, - R_C = 180 units. A base circular outline for each ring is drawn as a circle of the corresponding radius. 5.2 Time-to-Angle Mapping ~~~~~~~~~~~~~~~~~~~~~~~~~ Given the elapsed time and the breath-based indices: - breathsTotal (total breaths elapsed), - b0 (current breath index within a set, 0–9), - s0 (current set index within a posture), - p0 (current posture index within the sequence), the system computes fractional progress values for each ring: Afrac = (b0 + breathFraction) / BREATHS_PER_SET Bfrac = (s0 + Afrac) / SETS_PER_POSTURE Cfrac = (p0 + Bfrac) / POSTURES where breathFraction is the fractional progress within the current breath, typically breathFraction = (elapsedWithinBreath / BREATH_SEC) The corresponding angular positions in degrees are: Adeg = Afrac × 360° Bdeg = Bfrac × 360° Cdeg = Cfrac × 360° These angles define the current position on each ring. 5.3 Spokes and Current Position ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ For each ring, discrete spokes may be placed around the circumference: - For the inner ring, there may be BREATHS_PER_SET spokes, - For the middle ring, SETS_PER_POSTURE spokes, - For the outer ring, POSTURES spokes. For spoke index i in a ring with segments units, the spoke angle in radians may be: angle = 2π × i / segments – π/2 The system renders a highlighted spoke at Adeg, Bdeg, and Cdeg for the inner, middle, and outer rings, respectively, to indicate the current breath, set, and posture. The combination of all three rings thus presents a nested, clock-like visualization of the current location within the breath–set–posture hierarchy. 6. Digital Interface Below the Clock ------------------------------------ In one embodiment, a digital display region is positioned beneath the concentric rings. This region provides a textual, high-contrast summary of UYT time and related information. In one example layout (corresponding to version 5 of the design), the region is divided into three rows. 6.1 Row 1 – Date and Timer Label ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Row 1 may display: - On the left: a human-readable calendar date, such as “Sat, Nov 8”. - On the right: a label indicating the mode of an auxiliary timer, e.g., “Stopwatch” or “Timer”. This provides quick context regarding both the calendar date and the type of timing the user has activated. 6.2 Row 2 – UYT Time and Auxiliary Timer ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Row 2 may be devoted to UYT time and a related auxiliary timer: - A label (e.g., “UYT”) identifies the line as the UYT row. - A large numeric value presents the current UYT digital time in NNNN.BB.VV format. - To one side (or adjacent), a cluster may display an extra timer in two forms: 1. A UYT-style timer, e.g. NNNN.BB with a small unit indicator such as “vv”, indicating sub-vibration or sub-breath units. 2. A conventional clock-style timer, e.g. mm:ss with a small unit indicator such as “ss”, indicating seconds. In some embodiments, these two timers represent the same underlying elapsed interval but expressed in two different units, enabling users to correlate traditional time with UYT time. 6.3 Row 3 – Local Time ~~~~~~~~~~~~~~~~~~~~~~ Row 3 may present the user’s local, conventional time: - A label indicating the time zone or a textual indicator such as “Local” (e.g., “ast”, “adt”, or similar). - A standard digital clock readout in hh:mm:ss format. This allows users to orient themselves with respect to familiar wall-clock time while simultaneously viewing their UYT time and practice status. 7. Modes of Operation (Practice Context) ---------------------------------------- The UYT Clock may offer one or more practice modes, which determine which counters and visual elements are emphasized. In some embodiments, the following modes may be provided: 1. Normal mode Displays posture, set, and breath counters. Appropriate for structured sequences with multiple postures and sets. 2. Solo mode Emphasizes a single posture. May hide or de-emphasize the set counter, while maintaining breath tracking and posture context. 3. Free Style mode May hide posture and set counters entirely. Provides a minimal interface focusing primarily on breath-based timing, suitable for free-form breathing or meditation practices. These modes may be selectable via a settings or counters panel and affect the visible components while sharing the same underlying timing logic. 8. Auxiliary Timer Functionality -------------------------------- In addition to core UYT timing, the system may implement an auxiliary timer, configurable by the user. In one embodiment, the auxiliary timer supports at least three modes: - Off (none): no extra timing displayed beyond UYT time. - Stopwatch: a count-up timer starting from zero and increasing while running. - Countdown: a count-down timer starting from a user-specified duration and decreasing toward zero. The auxiliary timer may be displayed in two parallel formats: - A UYT-derived format (NNNN.BB), and - A conventional format (mm:ss). The auxiliary timer may include user controls analogous to VCR controls: - Start – begins or resumes counting, - Pause – temporarily halts counting while retaining the current value, - Stop/Reset – stops and resets the timer to its initial state. This dual-format presentation allows the user to relate an interval measured in minutes and seconds to its equivalent position in UYT units. 9. Counters Panel ----------------- The UYT Clock may include a side panel or “Counters” area that presents and controls additional aspects of the current session. In one embodiment, the counters panel displays: - Mode selection (Normal, Solo, Free Style), - Sound or cue settings (On/Off), - Posture counter: - A primary numeric value showing the current posture index (e.g., 1, 2, 3), - A sub-label showing the total number of postures (e.g., “of 22”), - A progress bar indicating fractional completion of the posture sequence. - Set counter: - A primary numeric value showing the current set index, - A sub-label indicating total sets per posture (e.g., “of 5”), - A progress bar indicating fractional completion of sets. - Breath counter: - A primary numeric value showing the breath index within the current set, displayed as 1–10 in an example embodiment, - A sub-label, e.g., “of 10”, - A progress bar reflecting the fraction of the current set that has been completed. In some embodiments, a large, textual label may also indicate the breathing phase, such as “Inhale” during certain breaths and “Exhale” during others, to guide the practitioner’s breathing pattern visually.