# Cusp Heart

Wave · y = f(x, t)

`y = abs(x)^(2/3) + 0.9 · sin(51.9x + t) · sqrt(3 − x²)`

[Open in the app](https://www.wavelace.com/app#p=16) · [This page](https://www.wavelace.com/presets/cusp-heart)

### What it draws

Two pieces make the picture. `abs(x)^(2/3)` is a curve with a sharp point at the origin. Its slope is `⅔·abs(x)^(−1/3)`, which runs away as `x → 0`, so both branches arrive vertically and meet in a cusp rather than a rounded minimum.

The second piece is `0.9·sin(51.9x + t)·√(3 − x²)`, a very fast zigzag held inside an envelope. Crests are `2π/51.9 ≈ 0.121` apart. The root is not a real number past `|x| = √3 ≈ 1.73`, so the curve stops there and the outer parts of the plot stay empty. Across the `3.46` it does occupy the line crosses the figure some 57 times, and the eye reads it as a filled shape.

### The heart

The outline is the pair of envelopes `y = abs(x)^(2/3) ± 0.9·√(3 − x²)`. That is an ellipse of half-width `√3 ≈ 1.73` and half-height `1.559`, with every point lifted by the cusp term. Lifting is what makes it a heart. The cusp term adds nothing at `x = 0` and lifts every neighbour, so the top branch is left with a V at `(0, 1.559)`, the dimple. It rises to `2.273` at `x ≈ ±1.03`, the two lobes. The bottom branch keeps its low point at `(0, −1.559)`, the tip, and the two branches meet where the ellipse closes. MathWorld's sixth heart curve, `x² + (y − (x²)^(1/3))² = 1`, is the same construction on a circle.

The clock enters only inside the sine. A point of fixed phase satisfies `51.9x + t = C`, so the zigzag creeps to the left at `1/51.9 ≈ 0.019` units per second. Each point of the line meanwhile completes its cycle in `2π ≈ 6.28` seconds: the outline holds still and the fill shimmers inside it.

### Try

- `Front` in the deck: the heart face on, which is the view the formula is built for.
- Slow the zigzag down to `abs(x)^(2/3) + 0.9·sin(12x + t)·√(3 − x²)`: crests `0.524` apart, few enough to count, and the envelope stops being a fill.
- Draw the outline alone, `abs(x)^(2/3) + 0.9·√(3 − x²)`: the upper envelope, cusp and lobes and all, with no sine to hide it.
- Change the `3` under the root to `3.3`: a wider heart, out to `|x| = 1.82`.
- Set `Ribbon depth` to 1: one curve instead of many, so the zigzag can be followed.

### Read more

- [Heart Curve](https://mathworld.wolfram.com/HeartCurve.html)
- [Cusp (singularity)](https://en.wikipedia.org/wiki/Cusp_(singularity))
- [Envelope (mathematics)](https://en.wikipedia.org/wiki/Envelope_(mathematics))
- [Astroid](https://en.wikipedia.org/wiki/Astroid)
