# PROMPT.md — Tree Leaves Route

> The prompt below is the reproducible instruction that generated `index.html` for the `/tree-leaves` route of the `deepseek-v4` oneshot catalog.

---

**Prompt:**

Build a single-file seasonal canopy physics simulation as a self-contained HTML file (`index.html`). The artifact must be a calm, meditative, and technically strenuous one-shot benchmark that showcases branch attachment physics, wind response, and a full four-season loop.

**Preset:** Golden avenue maple — warm and luminous tone, dense summer canopy transitioning into a dramatic, satisfying autumn shed with thick crown and colour-banded leaves. Broad canopy sway with gust pulses.

**Systems floor:**

- One rooted deciduous tree with a readable trunk and branching hierarchy (trunk → main branches → secondary branches → tertiary twigs).
- Recursive procedural tree generation producing 200+ leaf attachment points across the canopy.
- Full seasonal loop: spring budburst (buds swelling and small leaves unfurling) → summer canopy (full dense green foliage) → autumn colour turn (leaves shifting through orange, red, and gold) plus progressive shedding → winter bare branches with ground accumulation, then regrowth into spring.
- Leaves must begin attached to branches, react to wind while attached, and detach only when the active season and wind conditions call for it. Detachment is not a simple timer — wind gusts increase detachment probability during autumn.
- Branch physics: secondary motion with spring-like flex anchored to the tree structure. Branches sway in response to wind and recoil. Smaller branches sway more; the trunk sways subtly.
- Wind system with at least 2 modes (calm, breezy) plus a user-triggered gust or shake interaction. Wind must alter both attached leaves and fallen/drifting leaves.
- Fallen leaves accumulate on the ground, drift in light wind, and settle rather than vanishing on contact.
- Ground layer visible for settled and accumulated leaves.
- Simple controls: season cycle indicator, wind mode toggle, manual gust trigger, help overlay.
- Mobile touch support: tap for gust, touch-friendly control buttons.

**Visual direction:**

- Canvas 2D rendering. No external images.
- Warm palette: rich greens for summer, vibrant oranges/reds/golds for autumn, soft browns and muted tones for winter ground.
- Tree centred in frame with visible trunk texture (bark lines) and tapering branches.
- Leaves drawn as pointed ovals with stems, sized proportionally to branch depth.
- Ground plane with subtle gradient and accumulated leaf scatter.
- Snowflake option for winter ambience (sparse, subtle).
- Season indicator and controls in a translucent overlay bar at the bottom.
- Smooth colour interpolation between seasonal states.

**Controls:**

- Season label showing current season and progress.
- Wind mode button cycling: Calm → Breezy.
- Gust button for manual wind burst.
- Season advance button to jump forward in the cycle.
- Info button for help overlay.
- Auto-cycle by default (~75 seconds per full seasonal loop).

**Quality bar:**

- The canopy must read as one living organism, not a confetti emitter with a tree drawn behind it.
- Season changes must be obvious within one viewing loop even before the user touches anything.
- Branch recoil and leaf drag must be legible.
- Touch interactions must work on mobile without relying on hover.
- Bud growth, density changes, detachment, and regrowth all need visible motion — not just colour swaps.

**Output:** A single `index.html` file with all CSS and JS inlined. No trimmed code, no placeholder comments, no external dependencies.
