Live demo

Perturbations

The whole input is encoded as a single partition, one embedding on the latent hypersphere, which is turned toward a random direction, by a little or by a lot. Since every point of the sphere decodes to a valid field, the perturbed fields stay plausible.

Checking the server…
Input a preset field, your own image, or a painted field
The reconstruction and eight perturbations appear here.
How it works

Random directions on the hypersphere

On the sphere: eight random directions ξ tangent at ζm, and the embedding turned by the angle atan(s) toward each, back onto the sphere (shown at s = 0.3).
1

Encode

The input is encoded as a single partition: its position, extent and value range go to the static frame, its shape to one 128-dimensional embedding. Its reconstruction sits at the center of the result.

2

A random direction

For every perturbation, a random unit direction ξ is drawn in the 128-dimensional space, the same for every color channel.

3

Turn the embedding

The embedding ζm is turned toward each random direction by an angle set by the strength s (s = 1 is about 45 degrees) and back onto the sphere; the static frame is kept, colors and brightness with it.

4

Decode

Eight fixed random directions, the same for every input, decoded on a 256 × 256 pixel grid around the reconstruction.

Small strengths give subtle changes of shape; large ones replace the shape while keeping the position, extent and value range. With one partition, a detailed input is reconstructed coarsely: the embedding holds its overall shape.