PMR Session
{{ totalReadable }}
{{ stepsCount }} steps · {{ presetLabel }}
Tense {{ tense_s }}s Relax {{ relax_s }}s Rest {{ rest_s }}s Sides {{ sidesLabel }} {{ strainTargetLabel }} Live Ends ~ {{ finish_time_local }}
{{ centerPhase }}
{{ centerGroup }}
{{ phaseRemainingDisplay }}
{{ elapsedDisplay }} · Step {{ currentStepIndex }} / {{ stepsCount }}
s:
s:
s:
s:
{{ audio_volume }}%
s:
s:
# Phase Group Start Elapsed (s) Duration (s) Copy
{{ r.idx }} {{ r.phase }} {{ r.group }} {{ r.startLocal }} {{ r.elapsed.toFixed(2) }} {{ r.duration.toFixed(2) }}
No data yet. Start a session.
Load bucket Seconds Share Clinical note Copy
{{ row.label }} {{ formatNumber(row.seconds, 2) }} {{ formatNumber(row.share, 1) }}% {{ row.note }}

                
:

Introduction:

Progressive muscle relaxation, usually shortened to PMR, is a body-based relaxation method built on contrast. You deliberately tense a muscle group for a short period, release it, and notice the difference between effort and letting go. This tool turns that sequence into a paced session coach with a central ring, a running progress readout, and a configurable plan that can be used for personal practice, sleep wind-down routines, or structured client sessions.

The core setup is simple: choose a preset, set tense and relax durations, decide whether symmetrical groups should run left then right or together, and optionally add a short rest. The package then expands that into a step list and guides you through the routine with start, pause, and stop controls. If you want more structure, the advanced panel adds beeps, spoken cues, vibration, wake-lock requests, visual easing, strain-target labels, and optional release-breath or body-scan phases.

What makes this more than a simple countdown is the reporting. The app logs each completed phase into a timeline, summarizes phase balance with a composition donut, groups planned load in a phase-burden audit, and exposes the whole session plan as JSON. That makes it useful not only during a live run but also afterward, when you want to compare routines, document pacing for a client, or see whether your session is spending most of its time in tension, recovery, or setup.

The main boundary is physical comfort. PMR is generally taught as a gentle, controlled exercise, not a strength drill, and it should not be painful. This package supports that framing with a strain-target label and recovery-focused timing, but it cannot judge whether a contraction is safe for your body. If a muscle group is injured, cramping, healing, or linked to back or other medical problems, lighten the effort, skip that area, or consult a clinician before relying on a preset routine.

Privacy is mostly local-first, but not invisible. Session timing, exports, and cues run in the browser after the page loads, and the tool has no tool-specific backend. At the same time, the current settings are mirrored into the page address so a copied link can recreate the session setup. If you use sensitive notes, client-facing labels, or custom timing values, treat the URL as shareable session state and clear it when needed.

How This Coach Builds A Session

The package starts from preset muscle-group layouts rather than a blank editor. "Standard 16" is the fullest routine, based on ten base regions with symmetrical arm and leg groups split into separate left and right steps when the session uses split mode. That yields sixteen steps in the default layout. "Quick 8" compresses several regions into larger combined groups, and "Mini 6" reduces the routine even further for shorter sessions. Choosing "Both together" keeps symmetrical groups as single steps, while "Split (L/R)" duplicates them into separate left and right passes.

The phase order for each step begins with Tense and Relax. You can then add an optional Release phase for a settling exhale, an optional Rest phase between groups, and an optional Scan phase for a short body check-in. Those extra phases matter because they change how the routine feels: a session with the same tense and relax settings can become much calmer or much longer once you add extra recovery time after every group.

The advanced controls shape delivery rather than just the clock. Beeps are generated with browser audio, spoken prompts use speech synthesis when the device supports it, vibration uses the device's haptic API, and screen wake-lock is requested only if you turn it on. The easing selector changes the visual pacing curve of the ring, not the underlying duration math. The strain-target setting is also interpretive rather than mathematical; it changes the way the tool frames the routine in the audit and summary instead of altering the actual seconds per phase.

The phrase "Custom" needs careful reading here. The tool does let you create custom timing profiles by changing durations, cues, and optional phases, but it does not expose a separate editor for custom muscle-group lists. In the current package, the custom preset still follows the standard base group map. If you need a radically different body-part sequence, you would have to adapt the standard layout through timing choices rather than by entering your own group names.

Session planning components in the PMR coach
Component What it controls Why it matters
Preset and sides mode How many groups are visited and whether paired limbs run separately or together These two controls have the biggest effect on total step count and overall session length.
Tense and relax seconds The main contraction and release rhythm for every step They determine the core pacing and should stay comfortable rather than forceful.
Release, rest, and scan Optional recovery phases added after the main tense-relax pair These settings change the recovery share of the session and can make the routine feel less rushed.
Cues Beep, speech, vibration, and wake-lock support Useful when you do not want to watch the screen continuously.
Exports Timeline CSV and DOCX, audit CSV and DOCX, chart image and CSV, and session JSON Helpful for review, coaching notes, or documenting exactly what routine was used.

Technical Details

The live run is phase-driven. Once the countdown ends, the tool enters the first phase of the first step, tracks elapsed time with a monotonic clock, and pushes each completed phase into a timeline row containing phase name, group label, local start time, elapsed seconds, and planned duration. Pause freezes the run and lets you resume the current phase from the remaining time. Stop clears the session state and releases any wake lock the browser granted.

The JSON view exposes the full session model. Inputs include every user-facing setting from phase durations to audio choices. The plan section lists the expanded step order, the per-group timing summary, the total session seconds used by the package's main planner, and the audit rows. Runtime fields track whether the session has started, whether it is actively playing, which step is current, which phase is active, how many seconds have elapsed, and the estimated local finish time. That is useful when you need a machine-readable record rather than a screenshot or plain table.

The composition chart and audit view answer slightly different questions. The donut chart totals time spent in each phase bucket across the whole routine and can be exported as PNG, WebP, JPEG, or CSV. The phase-burden audit groups time into tension load, recovery load, decompression cues, and session setup, then adds package-authored notes about recovery time and strain framing. These views are especially helpful when two routines feel different but the headline tense and relax numbers look similar.

There is one implementation boundary worth knowing before you rely on the headline total. The package's main total-time figure, progress bar, and finish estimate are calculated from tense, relax, and rest only. Optional release-breath and body-scan phases do run during the live session and are included in the audit, the donut, and the JSON payload, but they are not folded into the headline total and finish estimate in the same way. If you add release or scan time to every group, the real guided run can last longer than the large total shown at the top.

Privacy and portability also live in the implementation, not just the interface text. The session settings are mirrored into query parameters in the page address, which is convenient for reopening the same plan or passing it between devices. The tradeoff is that a shared link reveals the timing recipe. Exports are saved locally, cues depend on browser support, and the chart area depends on the bundled chart script loading correctly after the page opens.

Step-By-Step Guide

PMR works best when the session feels deliberate rather than rushed. Start by setting a pace you can maintain without straining, then add optional phases only if they improve the experience instead of turning the routine into another task.

  1. Choose a preset and decide whether paired limbs should run left then right or together.
  2. Set tense and relax seconds first, then add rest only if you want extra transition time between groups.
  3. Open the advanced panel if you want beeps, speech, vibration, wake-lock support, a gentler or firmer strain label, or optional release-breath and body-scan phases.
  4. Start the session and follow the center ring, group label, and remaining-time display rather than watching the overall clock.
  5. After the run, review the timeline, composition donut, audit table, or JSON export to see how the session was actually structured.
Worked example. With the default Standard 16 split routine, 7 seconds of tension, 20 seconds of relaxation, and 5 seconds of rest produce a headline total of 512 seconds, or 8 minutes and 32 seconds. If you also add a 4-second release-breath phase to every step, the guided routine gains another 64 seconds even though the top-line total does not fully reflect that extra time. That makes the audit and timeline worth checking whenever optional phases are enabled.

If any group feels painful, shaky, or wrong for your body, reduce the effort or skip it. PMR is usually taught as a modest contraction followed by an obvious release, not as maximal squeezing. The calm comes from contrast and attention, not from how hard you can tense.

FAQ

Does the custom preset let me edit the muscle-group list?

No. In the current package, custom means custom timing and cue settings on the standard base group map. There is no separate editor for entering your own group names or order.

Why can the real session feel longer than the headline total?

The main total, progress bar, and finish estimate are based on tense, relax, and rest. Optional release-breath and body-scan phases still run and are included in the audit, donut, and JSON, so they can extend the actual guided session.

Do I need to keep watching the screen?

Not necessarily. The tool can add beeps, spoken prompts, and vibration where the device allows it, and the wake-lock option can help keep the display active during a run.

Are sessions stored on a server?

The tool has no tool-specific backend and saves exports locally, but the current timing settings are mirrored into the page address. A shared link can therefore recreate the session plan.

Can I use this for sleep or stress reduction?

Many people use PMR for that purpose, and the timing coach is suitable for steady practice. It is still a pacing aid, not a diagnosis or treatment engine, so persistent sleep or anxiety problems deserve broader clinical context.

What if tensing a group hurts?

Back off immediately. Use a gentler effort, shorten the tense phase, skip the affected area, or get professional advice if the body region is injured, healing, or medically sensitive.

References