Breathing Sphere
Shape · (x, y, z) = f(u, v, t)
(cos(u) · sin(v) · (1 + 0.1 · sin(2t)), cos(v), sin(u) · sin(v) · (1 + 0.1 · sin(2t)))
Open in the app The dials and keys named below are the app's.
What it draws
This is the standard sphere, with u as longitude and v as the angle down from the north pole. The second expression is the height, cos(v): it is 1 at the top, 0 at the equator and −1 at the bottom. The other two spread sin(v), the distance from the vertical axis, round that axis as cos(u) and sin(u).
The pulse
The factor 1 + 0.1·sin(2t) is the only place the clock enters. It sits on the width and the depth but not on the height, so the poles never move while the waist swings between 1.1 and 0.9 times its resting radius.
The ball is a true sphere only at the two instants per cycle when sin(2t) is zero. In between it is a spheroid, flattened when the waist is wide and drawn out when it is narrow. The 2 on t sets the timing: the cycle repeats every 2π/2 = π ≈ 3.14 seconds at Speed 1.
Try
- Put the same factor on the height, cos(v)·(1 + 0.1·sin(2t)): now every direction breathes together and the whole ball grows and shrinks instead of changing shape.
- Change 0.1 to 0.4 in the width and depth for a swing between 1.4 and 0.6, well past a sphere.
- Change 2t to 6t: three times as fast, a cycle every 2π/6 ≈ 1.05 seconds.
- Set Span of v (×π) to 0.5: v stops at the equator, so only the top half of the ball is drawn.
- Set Turns of u to 0.5 instead: half the longitudes, the sphere cut open along a meridian.