Spaces:
Running
Running
Capture the approved Rhythma redesign before implementation
Browse filesRecord the agreed product direction so the upcoming implementation plan and code changes stay aligned on audience, tone, audio depth, and UI intent. This freezes the target experience before execution work begins.
Constraint: The redesign must stay non-clinical for mental health advocate sharing
Rejected: Jump straight into implementation from chat context | too easy to drift on scope and tone
Confidence: high
Scope-risk: narrow
Reversibility: clean
Directive: Preserve the artful wellness companion framing unless product positioning is explicitly reapproved
Tested: Spec self-review for placeholders, contradictions, ambiguity, and scope
Not-tested: No runtime impact; documentation change only
docs/superpowers/specs/2026-04-13-rhythma-ambient-redesign-design.md
ADDED
|
@@ -0,0 +1,263 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# Rhythma Ambient Redesign Design
|
| 2 |
+
|
| 3 |
+
## Goal
|
| 4 |
+
|
| 5 |
+
Transform Rhythma from a functional modulation demo into a meditative ambient instrument that mental health advocates can share confidently as an artful wellness companion. The redesign should materially improve two areas at once:
|
| 6 |
+
|
| 7 |
+
- the emotional depth and legibility of the generated audio
|
| 8 |
+
- the warmth, clarity, and perceived intentionality of the UI
|
| 9 |
+
|
| 10 |
+
The product must stay explicitly non-clinical. It should support reflection, calm, and emotional grounding without implying diagnosis, treatment, or therapeutic efficacy.
|
| 11 |
+
|
| 12 |
+
## Product Positioning
|
| 13 |
+
|
| 14 |
+
Rhythma is an artful wellness companion. A user describes a feeling or intention, and the app responds with a crafted listening session made of ambient layers, a named emotional tone, and light reflective guidance.
|
| 15 |
+
|
| 16 |
+
Approved positioning decisions:
|
| 17 |
+
|
| 18 |
+
- Present the product as supportive and reflective, not diagnostic.
|
| 19 |
+
- Use grounded language such as "listening path," "session," and "crafted from your input."
|
| 20 |
+
- Keep the note that the app is experimental and not medical advice.
|
| 21 |
+
- Avoid framing the output as a clinical recommendation or measured biometric result.
|
| 22 |
+
|
| 23 |
+
## Experience Principles
|
| 24 |
+
|
| 25 |
+
1. Calm first. Every interaction should reduce friction and visual stress.
|
| 26 |
+
2. Emotionally legible output. Sessions should feel intentionally different, not like minor parameter changes.
|
| 27 |
+
3. One primary path. The default experience is describe -> generate -> listen.
|
| 28 |
+
4. Advanced controls remain available, but secondary.
|
| 29 |
+
5. Trust through restraint. No mystical overclaiming, no clinical cosplay, no manipulative language.
|
| 30 |
+
|
| 31 |
+
## Recommended Approach
|
| 32 |
+
|
| 33 |
+
Use a session-driven redesign with two coordinated upgrades:
|
| 34 |
+
|
| 35 |
+
- Audio becomes profile-based and layered rather than single-tone-first.
|
| 36 |
+
- UI becomes session-centric and atmospheric rather than form-centric.
|
| 37 |
+
|
| 38 |
+
Alternatives considered and not chosen:
|
| 39 |
+
|
| 40 |
+
- Cinematic emotional soundscape: higher "wow" factor, but too easy to push into melodrama for the target audience.
|
| 41 |
+
- Interactive resonance lab: interesting as a concept, but too clinical or technical for mental health advocates and weak on warmth.
|
| 42 |
+
|
| 43 |
+
## Architecture Overview
|
| 44 |
+
|
| 45 |
+
The current modular split should remain intact:
|
| 46 |
+
|
| 47 |
+
- `app.py`: Gradio interface composition and interaction wiring
|
| 48 |
+
- `rhythma_analysis.py`: input interpretation and session selection
|
| 49 |
+
- `rhythma_engine.py`: sound generation and visualization
|
| 50 |
+
- `rhythma.py`: compatibility facade
|
| 51 |
+
|
| 52 |
+
The redesign should extend those modules rather than collapse them again.
|
| 53 |
+
|
| 54 |
+
### Planned responsibility changes
|
| 55 |
+
|
| 56 |
+
- `rhythma_analysis.py` should evolve from "emotion and rhythm mapper" into "session profile selector."
|
| 57 |
+
- `rhythma_engine.py` should evolve from "single modulated wave generator" into "layered ambient session renderer."
|
| 58 |
+
- `app.py` should evolve from "parameter form with outputs" into "guided session experience with secondary controls."
|
| 59 |
+
|
| 60 |
+
## Audio Design
|
| 61 |
+
|
| 62 |
+
### Target outcome
|
| 63 |
+
|
| 64 |
+
Each generated result should feel like a coherent listening session with motion, depth, and emotional contour.
|
| 65 |
+
|
| 66 |
+
### Session model
|
| 67 |
+
|
| 68 |
+
Replace the current single-frequency-centered mapping with a session profile model. A session profile defines:
|
| 69 |
+
|
| 70 |
+
- emotional tone label
|
| 71 |
+
- tonal center
|
| 72 |
+
- pulse behavior
|
| 73 |
+
- brightness
|
| 74 |
+
- density
|
| 75 |
+
- modulation motion
|
| 76 |
+
- harmonic warmth
|
| 77 |
+
- suggested session duration range
|
| 78 |
+
- short reflective listening guidance
|
| 79 |
+
|
| 80 |
+
### Audio layering
|
| 81 |
+
|
| 82 |
+
Each session should be rendered from three layers:
|
| 83 |
+
|
| 84 |
+
1. Base drone
|
| 85 |
+
A stable tonal bed that anchors the session.
|
| 86 |
+
|
| 87 |
+
2. Breath pulse layer
|
| 88 |
+
A gentle amplitude or filter movement layer that introduces calm rhythmic motion.
|
| 89 |
+
|
| 90 |
+
3. Air or shimmer layer
|
| 91 |
+
A quieter upper texture that adds spaciousness and prevents the result from feeling flat.
|
| 92 |
+
|
| 93 |
+
### Emotional profile examples
|
| 94 |
+
|
| 95 |
+
- `anxious`
|
| 96 |
+
- lower brightness
|
| 97 |
+
- slower pulse
|
| 98 |
+
- smoother attack
|
| 99 |
+
- more stable drone
|
| 100 |
+
- `focused`
|
| 101 |
+
- cleaner harmonic stack
|
| 102 |
+
- tighter motion
|
| 103 |
+
- more defined pulse contour
|
| 104 |
+
- `relaxed`
|
| 105 |
+
- warmer harmonics
|
| 106 |
+
- slower drift
|
| 107 |
+
- softer shimmer
|
| 108 |
+
- `active`
|
| 109 |
+
- more motion and pulse energy
|
| 110 |
+
- still within a calm ambient palette
|
| 111 |
+
|
| 112 |
+
### Motion over time
|
| 113 |
+
|
| 114 |
+
The audio should evolve during playback. A session should not feel fully static after the first second.
|
| 115 |
+
|
| 116 |
+
Required motion behaviors:
|
| 117 |
+
|
| 118 |
+
- gentle attack at start
|
| 119 |
+
- soft release at end
|
| 120 |
+
- slow movement across pulse depth, filter brightness, or shimmer density
|
| 121 |
+
- small randomized variation inside safe bounds so repeated sessions are not identical
|
| 122 |
+
|
| 123 |
+
### Manual controls
|
| 124 |
+
|
| 125 |
+
Manual controls remain, but their role changes:
|
| 126 |
+
|
| 127 |
+
- `Tone Center` replaces `Override Frequency`
|
| 128 |
+
- `Session Pattern` replaces `Override Rhythm Pattern`
|
| 129 |
+
- the default path still uses automatic session selection
|
| 130 |
+
|
| 131 |
+
Manual overrides should shape a session profile, not break the session concept.
|
| 132 |
+
|
| 133 |
+
## UI Design
|
| 134 |
+
|
| 135 |
+
### Target outcome
|
| 136 |
+
|
| 137 |
+
The interface should feel like a calm listening room rather than a settings panel.
|
| 138 |
+
|
| 139 |
+
### Layout
|
| 140 |
+
|
| 141 |
+
Top:
|
| 142 |
+
|
| 143 |
+
- stronger title treatment
|
| 144 |
+
- short trust-building product description
|
| 145 |
+
- visible non-clinical support note
|
| 146 |
+
|
| 147 |
+
Main area:
|
| 148 |
+
|
| 149 |
+
- left column: prompt input, examples, and generate action
|
| 150 |
+
- right column: a session card showing the result
|
| 151 |
+
|
| 152 |
+
Lower area:
|
| 153 |
+
|
| 154 |
+
- richer visualization
|
| 155 |
+
- "about this session" explanation
|
| 156 |
+
|
| 157 |
+
### Session card
|
| 158 |
+
|
| 159 |
+
The output area should be redesigned around a session card containing:
|
| 160 |
+
|
| 161 |
+
- session name
|
| 162 |
+
- emotional tone
|
| 163 |
+
- listening path text
|
| 164 |
+
- audio player
|
| 165 |
+
- short session reflection
|
| 166 |
+
- visual accent or motion panel
|
| 167 |
+
|
| 168 |
+
### Copy changes
|
| 169 |
+
|
| 170 |
+
Rename utility labels to human-centered labels:
|
| 171 |
+
|
| 172 |
+
- `Rhythma Analysis & Guidance` -> `Your Listening Path`
|
| 173 |
+
- `Symbolic Interpretation` -> `Session Reflection`
|
| 174 |
+
- `Override Frequency (Hz)` -> `Tone Center`
|
| 175 |
+
- `Override Rhythm Pattern` -> `Session Pattern`
|
| 176 |
+
|
| 177 |
+
### Visual direction
|
| 178 |
+
|
| 179 |
+
The interface should use:
|
| 180 |
+
|
| 181 |
+
- warm atmospheric gradients
|
| 182 |
+
- subtle glows and layered background texture
|
| 183 |
+
- restrained contrast
|
| 184 |
+
- more intentional spacing and hierarchy
|
| 185 |
+
- typography that feels designed rather than default
|
| 186 |
+
|
| 187 |
+
The final look should feel calm, shareable, and emotionally credible.
|
| 188 |
+
|
| 189 |
+
### Examples
|
| 190 |
+
|
| 191 |
+
Examples should read like invitations into sessions, not test prompts. They should demonstrate distinct emotional intents and a few intentional non-default session patterns.
|
| 192 |
+
|
| 193 |
+
## Data Flow
|
| 194 |
+
|
| 195 |
+
1. User enters text or audio.
|
| 196 |
+
2. Analysis maps input to a session profile.
|
| 197 |
+
3. Session profile is optionally shaped by advanced controls.
|
| 198 |
+
4. Engine renders a layered audio session and supporting visualization.
|
| 199 |
+
5. UI presents the result as a named listening session with guidance and reflection.
|
| 200 |
+
|
| 201 |
+
## Error Handling
|
| 202 |
+
|
| 203 |
+
The redesign should preserve graceful fallback behavior:
|
| 204 |
+
|
| 205 |
+
- If Groq is unavailable, text-only local analysis still works.
|
| 206 |
+
- If embeddings are unavailable, keyword matching still works.
|
| 207 |
+
- If audio export fails, the UI should return a clear user-facing error.
|
| 208 |
+
- If optional features are disabled, the UI should degrade cleanly without broken controls.
|
| 209 |
+
|
| 210 |
+
User-facing errors should stay calm, specific, and non-technical where possible.
|
| 211 |
+
|
| 212 |
+
## Testing Strategy
|
| 213 |
+
|
| 214 |
+
The redesign must keep a regression-tests-first posture.
|
| 215 |
+
|
| 216 |
+
Required coverage areas:
|
| 217 |
+
|
| 218 |
+
- session profile selection for representative emotional inputs
|
| 219 |
+
- layered audio render output shape and normalization bounds
|
| 220 |
+
- deterministic behavior for profile construction defaults
|
| 221 |
+
- override behavior for tone center, modulation type, and session pattern
|
| 222 |
+
- app-level wiring for renamed controls and example values
|
| 223 |
+
|
| 224 |
+
Verification expectations:
|
| 225 |
+
|
| 226 |
+
- compile checks for edited Python modules
|
| 227 |
+
- targeted regression tests for analysis and engine behavior
|
| 228 |
+
- one real Gradio runtime smoke check in an environment with installed dependencies
|
| 229 |
+
- post-change manual check of the examples table and session output UX
|
| 230 |
+
|
| 231 |
+
## Scope Boundaries
|
| 232 |
+
|
| 233 |
+
Included in this redesign:
|
| 234 |
+
|
| 235 |
+
- stronger ambient audio generation
|
| 236 |
+
- session-based emotional mapping
|
| 237 |
+
- calmer, more intentional interface
|
| 238 |
+
- label and examples rewrite
|
| 239 |
+
- non-clinical positioning polish
|
| 240 |
+
|
| 241 |
+
Not included in this redesign:
|
| 242 |
+
|
| 243 |
+
- authentication or user accounts
|
| 244 |
+
- saved session history
|
| 245 |
+
- clinical claims or mental health outcomes tracking
|
| 246 |
+
- biometric sensing or real biofeedback
|
| 247 |
+
- mobile-native app packaging
|
| 248 |
+
|
| 249 |
+
## Risks
|
| 250 |
+
|
| 251 |
+
- The UI can become visually nicer without actually improving the listening experience if the audio redesign is shallow.
|
| 252 |
+
- The audio can become more complex without becoming more emotionally legible if profiles are not tightly defined.
|
| 253 |
+
- Mental health advocates may disengage if the language feels either too mystical or too clinical.
|
| 254 |
+
|
| 255 |
+
## Success Criteria
|
| 256 |
+
|
| 257 |
+
The redesign is successful when:
|
| 258 |
+
|
| 259 |
+
- first-time users can understand the main flow immediately
|
| 260 |
+
- generated sessions sound noticeably more immersive and differentiated
|
| 261 |
+
- the app feels emotionally intentional without overclaiming
|
| 262 |
+
- the examples and output card are polished enough to share publicly
|
| 263 |
+
- the app remains stable when optional dependencies are missing
|