- HTML 50%
- Kotlin 37.8%
- Python 10.2%
- Shell 2%
| Filename | Latest commit message | Latest commit date |
|---|---|---|
| app | ||
| content | ||
| design | ||
| gradle | ||
| tools | ||
| .gitignore | ||
| build.gradle.kts | ||
| gradle.properties | ||
| gradlew | ||
| gradlew.bat | ||
| HANDOVER.md | ||
| LICENSE | ||
| PLAN.md | ||
| README.md | ||
| settings.gradle.kts | ||
| TODO.md | ||
Bloom
A gentle morning companion for Android.
Qigong, stretching and stillness, guided by a calm voice.
No account, no ads, no pressure.
What Bloom is
Bloom walks you through a short routine in the morning, step by step. A warm voice tells you what to do, a soft gong marks the transitions, and a small figure shows each movement. You can leave your phone on the floor and simply follow along.
It began as a way to replace four favourite YouTube videos with something calmer and offline. It grew into four programs:
| Program | What it is | Time | |
|---|---|---|---|
| 🌅 | Wake | Qigong, five stretches, optional morning yoga, and a short stillness meditation (Kaya Sthairyam) | 25 or 35 min |
| 🏃 | Move | The classic seven-minute workout, twelve exercises with short breathers | about 8 min |
| 🌱 | Grow | A six-week bodyweight build-up for legs, core and arms that adapts to how you are doing | about 20 min (in progress) |
| 🌙 | Settle | Autogenic training, the classic basic course in six formulas | about 13 min |
What makes it different
- It invites, it never nags. No streaks to lose, no "you missed three days", no guilt. If you take a break, Bloom just says "Today is a lovely place to begin again." The wording was written with people with demand avoidance (PDA) in mind.
- Quiet while you practise. Bloom can hold calls and messages for the length of a session and restores everything afterwards. It also sets a comfortable volume and keeps running with the screen locked.
- Private by design. Everything stays on your phone. No account, no analytics, no Google services needed. It runs happily on de-Googled Android such as /e/OS.
- Made with care. Three soft pastel palettes, hand-tuned typography, two voices to choose from, and an icon that changes colour with your palette.
Status
Bloom is in early development. The content and most of the app are written, but there is no public release yet. Releases will be published through a self-hosted Forgejo instance and installed with Obtainium. See TODO.md for what is still missing, PLAN.md for the full concept, and HANDOVER.md if you want to work on Bloom.
Building from source
You need Linux, uv and ffmpeg. Android Studio is not required. A setup script installs JDK 21, the Android SDK, Gradle and the fonts into ~/.local/share/bloom-toolchain, without root.
tools/setup_android.sh # once
tools/build_apk.sh # translate content, run tests, build a debug APK
tools/build_apk.sh --install # also install it on a phone connected over USB
tools/build_apk.sh --release # signed release APK, needs keystore.properties
Requirements on the phone: Android 12 or newer.
Making the voice
All spoken lines are generated ahead of time with Chatterbox on an NVIDIA GPU and shipped as small Opus files, so the app needs no network and no text-to-speech engine. The texts live in content/programs/*.yaml.
tools/tts/run_generate.sh # create three takes per line and voice (first run sets up ~7 GB)
tools/tts/run_rank.sh # let Whisper suggest the best take for each line
tools/tts/review_takes.sh # pick takes on a local page at http://127.0.0.1:8765
The review page works in small batches, shows your progress per voice and can be driven with one hand on the number pad. You can trim a take or mark a line for a new attempt with a short note.
If a short line keeps breaking into two parts, tools/tts/squeeze_pauses.py <voice> <key> <takes> shortens the pause inside those takes and saves the results as new takes.
Project layout
PLAN.md the concept: what Bloom is and why
TODO.md what is left to do
HANDOVER.md start here if you want to work on Bloom
app/ the Android app (Kotlin, Jetpack Compose)
content/ programs as YAML, text drafts, audio choices
tools/ build scripts and the voice pipeline
design/icon/ the app icon in all three palettes
design/figure/ reference drawings of the exercise figure
design/mockup/ a picture of every screen, exported from the design canvas
Credits
Wake retells, in its own words, the routines from these videos:
- Qigong Daily Routine by Qigong Meditation
- Literally 5 Stretches is all you Need by MovementbyDavid
- 10 min Morning Yoga for Beginners by SarahBethYoga
- Kaya Sthairyam (Stillness of the body) by Dr. K / HealthyGamerGG
Move follows Klika & Jordan (2013), Grow builds on current strength training research (see PLAN.md), and Settle follows J. H. Schultz.
The voices are made with Chatterbox (MIT) from short samples of the synthetic Kokoro voices af_bella and af_nicole (Apache-2.0). The fonts are Fraunces and Nunito (SIL Open Font License).
License
Bloom is free software under the GNU General Public License v3.0.