Where vertex-displacement shakes a plane with 2D noise, this demo shakes a sphere with 3D noise. The key line is p = position + normal * noise(position) * amount — nudging each vertex in an arbitrary direction would tear the surface, so pushing and pulling strictly along that vertex’s normal (its outward direction) keeps the sphere lumpy while staying one continuous, unbroken surface.
The noise takes all three of x, y, z as input — the same hash-based 3D value noise used in dissolve-shader. Displacing a sphere with 2D noise shows a visible seam near the poles, where the UV coordinate system folds; 3D noise is defined in space itself rather than on the surface’s folded coordinates, so it has no such seam. Adding uTime into the noise input makes the whole surface writhe slowly.
Like vertex-displacement, this demo doesn’t recompute normals after moving vertices — lighting still uses the original sphere’s normals. That’s an invisible approximation at modest bump depth, but shading can visibly disagree with the actual surface once the displacement gets extreme.
When to use
Procedural planets or asteroids, organic character or creature surfaces, or a living-looking sphere in place of a loading spinner.