Build a desktop app called Lull.

ONE-LINE PITCH:

A beautifully minimal ambient music creator — no music theory, no instruments,
no experience needed. Just play, tweak, and lose yourself in sound.

TARGET USER:

- Age & context: Anyone from 10 to 60 — complete beginners with zero music
 production or DAW/MIDI experience
- Pain point: Existing music software (Ableton, Logic, GarageBand) is
 intimidating — full of jargon, knobs, and prerequisites that shut people out
 before they even start
- Behavior: Casual computer user; may also use phone. Comes to Lull to relax,
 explore, or create — not to produce a track for release
- Motivation: Drawn to ambient sound aesthetics; wants creative ownership
 without a learning curve
- Key insight: The user should feel like they're playing with something alive,
 not operating software

SCREENS TO DESIGN:

1. Ambient Composition Screen — Manual Mode

TOP BAR (left to right):
- Far left: App logo — white hexagon with slightly rounded corners, "Lull"
 in Unica One typeface
- Center-left: Master volume dial with a speaker icon to its left
- Dead center: Play/Pause button (primary action — most prominent element)
- Center-right: Restart button (resets all values to default: All of the dial values to 5, and Set 3 sound sources to Ambient, Soft Pad, and Piano
- Far right: Record button — captures real-time audio output


MAIN CANVAS — 3 Hex Sound Channels:

Three equal-sized hexagonal boxes aligned horizontally in the center of
the screen. Each hex is a self-contained sound channel.


Inside each hex:

- 3 black balls of different sizes that bounce physics-based inside the hex:
 · Large ball → low-pitch sound
 · Medium ball → mid-pitch sound
 · Small ball → high-pitch sound
- Each ball emits its sound when it collides with the inner wall of the hex
- Ball motion is continuous and physics-driven — always in motion when playing

Below each hex — Sound Source Dropdown:
Allows the user to choose the timbre/instrument for that channel.
Options: Ambient / Soft Pad / Saxophone / Piano / Pipe Organ / Chiptune / Noise (All of the sound level normalized)

Below the dropdown — 5 Adjustment Dials (per hex):
Dial UI: Circular knob, controlled by mouse drag up (increase) / down (decrease).
Label/Name appears above the dial by default; when actively adjusting, replace label
text with the current numeric value.

 · Gravity (0–10): Higher = balls sink and stick to bottom.
   Lower = balls float and bounce freely.
 · Rotation (0–10): Controls hex rotation speed.
   0 = stationary. 10 = fast spin.
 · Balls (1–10): Number of balls active inside the hex.
 · Roundness (0–10): Corner rounding of the hex shape.
   0 = sharp corners. 10 = fully rounded (approaching oval).
 · Glitch (0–10): Applies a vinyl-skip artifact to the sound.
   0 = clean. Higher = more frequent, irregular skips.


2. Ambient Composition Screen — Auto Mode

IDENTICAL layout to Manual Mode with two differences:
- Sound source dropdowns are hidden
- All 5 adjustment dials are hidden
- The app automatically and slowly varies parameters over time,
 creating an evolving ambient soundscape with no user input needed
- Hex balls and physics remain visible and active


MODE TOGGLE:
A Hex shape toggle switch is located directly below the play/pause button, below the top bar.
to switch between Manual / Auto. Label: " Auto"


TRANSITIONS & INTERACTIONS:

- Manual ↔ Auto toggle: Smooth ease-in/out fade. Dials and dropdowns
 fade out gracefully — not a hard cut. Duration ~300ms.

- Dial interaction: While dragging a dial, hide its text label and show
 the current numeric value in its place. Restore the label on release.

- Ball physics: Continuous, never robotic. Balls should feel alive —
 slightly irregular, not perfectly looped.

- Sound on collision: Each wall-hit triggers the sound.
 The visual bounce and the audio should feel in sync — no perceptible lag.

- Hover states: Dials and dropdown subtly highlight on hover.
 No heavy outlines or shadows — just a gentle opacity shift.


KEY USER STORIES:

- As a user, I can press Play and immediately hear something beautiful,
 so that I feel invited rather than overwhelmed.

- As a user, I can adjust the Gravity dial and hear the sound change in
 real time, so that I feel a direct, tactile connection to the music.

- As a user, I can switch to Auto Mode and walk away,
 so that Lull works as a passive ambient sound environment.

- As a user, I can choose a sound source per hex,
 so that I can layer different timbres (e.g., Soft Pad + Piano + Noise).

- As a user, I can hit Record and capture what I've created,
 so that I can keep and share my composition.


EMOTIONAL GOAL:

Lull should feel like picking up a snow globe — immediately beautiful,
tactile, and a little magical. The user should sense depth is available
without feeling pressure to find it. Easy to start. Rewarding to explore.


VISUAL DIRECTION:

- Aesthetic: Calm minimalism with quiet depth. Like a well-designed
 scientific instrument — precise, clean, but warm. Not cold. Not clinical.

- Typography:
 · Logo wordmark "Lull": Unica One
 · All UI labels, dial values, dropdowns: Figtree

- Animations: Physics-based, organic. Never bouncy-cartoon, never
 mechanical-linear. Ease curves should feel gravitational.

- DO NOT:
 · No gradient backgrounds
 · No skeuomorphic/physical dial imitation
 · No drop shadows on the hex boxes
 · No color-coded channels (keep all 3 hexes visually identical)
 · No onboarding tooltips or tutorial overlays on first launch