Shohruz Makhmudov — home / Drawing set 2026
W-05 HOOP — Redesigned personal build of the open-source OpenStrap Edge Mobile Private

HOOP

A calmer, data-honest interface on an open-source wearable client: new brand, rebuilt Home and a native backup bridge, on the MIT-licensed OpenStrap Edge engine.

  1. Rings with values inside
  2. Health & Stress monitors
  3. Backup to Files or Drive
  4. New mark & icon system
Discipline
Mobile
Year
2026
Authorship
Customised open source
Status
Private
Role
My layer: redesign, rebrand, UI and contrast work, a native backup bridge, reliability fixes and the iOS build.
Surfaces
iOS app · personal build
Languages
EN · DE · ES · FR · HI · ZH
Stack
Flutter · Dart · Swift · UIKit document picker · SQLite (upstream) · flutter_test · Xcode
W-05.1HOOP Sheet 1 of 7

Survey — context and problem.

The problem

An excellent open-source engine behind a beta-feeling interface — and no easy way to keep a backup off the phone.

OpenStrap Edge is an open-source Flutter app (MIT) that pairs with a WHOOP band over Bluetooth and computes sleep, recovery and strain on the phone — no subscription, no cloud. Its engine, from the reverse-engineered protocol to the analytics and background sync, is the work of the OpenStrap contributors.

Its interface read like a community beta. Home opened with a greeting and a gear button; the rings carried icons while the numbers sat underneath; mascot illustrations, Discord invitations and sponsorship prompts competed with the data. There was no simple way to move the app’s encrypted backup off the phone, so a lost or replaced iPhone could mean lost history.

HOOP is my personal build for daily use. The brief I set myself: keep the upstream engine exactly as it is, and redesign the layer I actually look at every morning — the brand, the Home dashboard, the colour system — and add a way to keep a copy of the data outside the phone.

W-05.2HOOP Sheet 2 of 7

Authorship — who built what.

Customised open sourceMy layer: redesign, rebrand, UI and contrast work, a native backup bridge, reliability fixes and the iOS build.Visibility: Demo data AI-assisted — I build with AI coding agents — Codex, Claude Code, Antigravity. Spec, architecture decisions, review, QA, deployment and handover are mine.
Upstream
OpenStrap Edge
Licence
MIT
Upstream — OpenStrap Edge (MIT) (opens in a new tab)

My layer

  • New brand: geometric H mark, wordmark and icon sets generated from one vector source
  • Rebuilt Home: Sleep → Recovery → Strain rings with values inside, Health and Stress monitors, My Day
  • Graphite palette and score colours, covered by a WCAG contrast test sweep
  • Native Swift bridge to save the encrypted backup to Files or Google Drive
  • Concurrency and lifecycle fixes, and 21 new automated tests
  • Personal iOS signing and build setup

AI in the loop

I build with AI coding agents — Codex, Claude Code, Antigravity. Spec, architecture decisions, review, QA, deployment and handover are mine.

Agents on this project: Codex · Antigravity

Before and after

HOOP’s redesigned Home: date header, the HOOP wordmark, Sleep, Recovery and Strain rings with values inside, Health and Stress monitor cards and My Day (synthetic demo data).
Upstream vs HOOP — dark Drag, or use the arrow keys, to compare
After, light theme: HOOP’s redesigned Home with score rings, Health and Stress monitor cards and My Day activity rows (same demo data).
Upstream vs HOOP — light Drag, or use the arrow keys, to compare
The HOOP app icon at 1024 px: a forward-leaning geometric H mark on graphite. The alternate black-and-white HOOP icon at 1024 px — the same H mark, inverted — which iOS users can switch to.
The HOOP app icon at 1024 px: a forward-leaning geometric H mark on graphite.

Credits & notes

  • Built on OpenStrap Edge by the OpenStrap contributors (MIT). Bluetooth protocol, analytics and sync are upstream work.
  • WHOOP is a trademark of WHOOP, Inc. and is named only as the compatible device. HOOP is a personal build, not affiliated with WHOOP and not distributed.
  • All screens are rendered with synthetic demo data; no personal health data is shown.
W-05.3HOOP Sheet 3 of 7

Plan — the system, drawn first.

The solution

My layer on OpenStrap Edge: a new brand and icon system, a rebuilt Home with honest monitors, a graphite palette with contrast tests, a native Files / Drive backup bridge and reliability fixes.

The rule was simple: don’t touch the engine. Everything below the interface — Bluetooth protocol, on-device analytics, storage — stays upstream. On top of it, HOOP gets its own mark and wordmark, drawn once as vectors and rendered into every iOS and Watch icon size by a small generator with an alpha-free PNG encoder, as App Store icons require. Home is rebuilt around three rings with values inside, followed by two monitors that compare overnight signals with a personal baseline and say “calibrating” rather than guess. A graphite palette with one colour per score replaces the mascots and community prompts, and a contrast test sweep keeps every pairing readable. A native Swift bridge hands the encrypted backup to the iOS document picker, so it can go to Files or Google Drive. Fixes to a queue race, iOS logging and hidden-tab refreshes ship with 21 new tests.

System schematic · Not to scale W-05.3
Users & surfaces iOS app · personal build EN · DE · ES · FR · HI · ZH
04 · Interface Flutter · custom painters · graphite theme
02 · Logic Dart · monitor and day-data models
03 · Intelligence Upstream Upstream on-device analytics (unchanged)
01 · Data Upstream on-device SQLite (OpenStrap Edge)
00 · Infra Swift MethodChannel · UIDocumentPicker · flutter_test goldens

Module key

  1. Compact header: date switcher and a device badge with battery and status
  2. Sleep, Recovery and Strain rings with values inside
  3. Health Monitor: four overnight signals against a personal baseline
  4. Stress Monitor with a 7-night chart that keeps gaps visible
  5. My Day with sleep periods, naps and sessions; My Dashboard tiles
  6. Graphite dark theme and a light theme, both contrast-tested
  7. Encrypted backup to Files or Google Drive, and restore
  8. Dark and light alternate app icons

Key decisions

  1. Why fork the interface, not the engine

    The upstream engine is mature and actively maintained. Leaving it untouched keeps a clear line between the contributors’ work and mine, and leaves the door open to upstream updates.

  2. Why the monitors abstain

    A health number shown with false confidence is worse than none. The monitors compare against a trusted personal baseline, show “calibrating” until one exists, and keep gaps in the 7-night chart visible.

  3. Why icons come from one vector

    The mark, the splash screen and every icon size are rendered from the same paths, so the brand never drifts between sizes — and the no-alpha rule for App Store icons is enforced in code.

  4. Why backups go through the Files picker

    The user chooses the destination — iCloud Drive, Google Drive or any Files provider — and the app passes a file path across the bridge, never the database bytes in memory.

W-05.5HOOP Sheet 5 of 7

Details — the mobile screens.

Every mobile screen 04

HOOP’s redesigned Home: date header, the HOOP wordmark, Sleep, Recovery and Strain rings with values inside, Health and Stress monitor cards and My Day (synthetic demo data).
Fig. 5.1 HOOP’s redesigned Home: date header, the HOOP wordmark, Sleep, Recovery and Strain rings with values inside, Health and Stress monitor cards and My Day (synthetic demo data).
My Dashboard in the light theme: HRV, resting heart rate, steps and active energy tiles, and a 7-night Stress Monitor chart that leaves a gap for a night without data.
Fig. 5.2 My Dashboard in the light theme: HRV, resting heart rate, steps and active energy tiles, and a 7-night Stress Monitor chart that leaves a gap for a night without data.
The Your data screen with the added “Keep a copy outside this iPhone” group, for saving an encrypted backup to Files or Google Drive and restoring it on a new phone.
Fig. 5.3 The Your data screen with the added “Keep a copy outside this iPhone” group, for saving an encrypted backup to Files or Google Drive and restoring it on a new phone.
After, light theme: HOOP’s redesigned Home with score rings, Health and Stress monitor cards and My Day activity rows (same demo data).
Fig. 5.4 After, light theme: HOOP’s redesigned Home with score rings, Health and Stress monitor cards and My Day activity rows (same demo data).
1 / 4
W-05.6HOOP Sheet 6 of 7

Materials schedule — the stack, and why.

W-05.6 · Materials schedule
LayerMaterialWhy
01DataUpstream: on-device SQLite (OpenStrap Edge)Health data stays on the phone; HOOP adds a user-controlled copy outside it.
02LogicDart · monitor and day-data modelsNew monitor logic reads the stored confidence and abstains below a threshold.
03IntelligenceUpstream on-device analytics (unchanged)Sleep, recovery, strain and stress come from OpenStrap’s engine — credited, not claimed.
04InterfaceFlutter · custom painters · graphite themeOne vector source for brand and icons; a calmer, data-first Home.
05InfraSwift MethodChannel · UIDocumentPicker · flutter_test goldensNative backup export, and golden renders with synthetic data for every screen shown here.

Stack

  • Flutter
  • Dart
  • Swift
  • UIKit document picker
  • SQLite (upstream)
  • flutter_test
  • Xcode
W-05.7HOOP Sheet 7 of 7

Completion — outcome and links.

Verified facts

new automated tests
21
Source: local working tree, Sep 2026
icon sets rendered from one vector source
3
Source: local working tree, Sep 2026

Want to see it running?

I can walk you through the live system on demo data and explain the decisions behind it.

Request a walkthrough
Next sheet W-06 “1%” market board Real-time multi-chart market board (Screener) AI & automation 2026