← Back to generator

Nonlinear graph paper transformations

Start with a familiar grid and change where its points are drawn. This is how to make a wave grid, fisheye graph paper or a custom curved coordinate system.

How coordinate warping works

Each point on the sheet begins at a position (x, y). A transformation maps it to a new position (x′, y′). When the mapping is nonlinear, straight grid lines can become curves and circular lines can change shape. Gridfunction evaluates the mapping at many points along every line before rendering the result.

Wave transform

A simple wave bends vertical lines according to the sine of y. Try entering x + 0.2*sin(4*pi*y) for x′ and y for y′. Increasing the coefficient makes the wave deeper, while increasing the number inside the sine changes how frequently it oscillates.

Fisheye transform

The built-in fisheye preset changes the scale around the middle of the page. Positive strength enlarges the center region and negative strength compresses it. Try it on a square grid or select the polar paper tool and apply the same warp to its circles.

Signed logarithmic transform

Logarithms are normally defined for positive inputs. A signed logarithmic map applies logarithmic compression to absolute distances while preserving the original sign. It can create dramatic spacing effects on both sides of the grid's center. This is not the same as using ordinary log-log paper, where gridlines are deliberately placed at logarithmic values.

Radial ripple and swirl

A radial ripple changes distance from the center depending on radius. A swirl changes angle depending on radius. These can create circular waves or spiraling patterns. The tool also has barrel, pinch, radial power and nonlinear shear presets.

Writing your own x′ and y′ functions

Choose Nonlinear transformation → Custom functions in the generator. You can use x, y, r (radial distance), theta (angle in radians), a (strength), b (frequency) and c (phase). Supported functions include sin, cos, tan, log, log10, exp, sqrt, abs, atan2 and pow. The input uses a restricted math parser and cannot execute arbitrary JavaScript.

Example:

x′ = x + 0.16*sin(5*pi*y)
y′ = y + 0.12*sin(5*pi*x)

This pattern produces a woven grid. Try the same function on polar coordinates to see a different effect.

Warp an uploaded image

You can upload a photo or image from your device. The tool divides it into a small triangular mesh and moves each vertex using the selected transformation. Because each triangle is transformed approximately, extreme curves may show minor seams or stretching. Uploads are processed in your browser; the editor does not send the image to a server.

Exporting your result

SVG retains the transformed grid as vector paths. If you include a photo, the warped image layer is rasterized inside the SVG. PNG gives you a high-resolution file, while Print / Save PDF creates a printable page through your browser's print dialog.

Open transformation tool →