A circular orbit ring with an inner core that scales up on inhale and down on exhale. Driven by a phase machine in meditation.js – inhale, hold, exhale, hold – and CSS transitions do the actual easing. Three seconds in, two-second hold, three out, two-second hold by default.
Audio is the Web Audio API – no audio files. A short oscillator burst with an envelope per phase. Saves the upload payload and the chime is consistent across devices.
Phase-locked subtitles slide in below the orbit as phases change. Content is editable from a settings page built on the WP Settings API – phase durations, subtitle strings, audio toggles. The settings page itself was the most boring part to build but it’s the bit you’d actually use.
Honest bit – this one came out of breathwork that actually helped me through a rough patch with my mental health. I’d been doing the routine without any UI for ages and it occurred to me it’d make a decent little Institute module. Just wanted to build it without it feeling like a therapy app tbh.