IFS Explorer

Affine iterated function systems: edit transforms, presets, and render fractal attractors in 2D.

About this tool

Explore affine iterated systems

Select a preset and Render. The matrix editor is optional. Each line is a b c d e f weight, applying x′=ax+by+e and y′=cx+dy+f simultaneously to the previous point. Use decimal points and whitespace or seven comma-separated fields; empty CSV fields are errors. Lines beginning with # are comments. Coefficients retain their precision.

Weights and finite sampling

Nonnegative weights are relative, not required to sum to100. Zero disables a map; at least one is positive. The details table shows normalized probabilities and the largest Euclidean singular value σ of each active matrix. σ<1 is the supported contraction condition, sufficient rather than a characterization of every possible IFS. A disabled finite matrix need not be contractive. Very small probabilities are limited by floating-point and the finite32-bit random generator.

The orbit starts at(0,0), discards the selected warm-up, then retains exactly the requested number of samples. Seed strings, including empty strings, reproduce the sequence. A finite warm-up cannot certify convergence to the limit set, especially when σ is near1. Colour is sample order, not probability density. Presets are illustrative affine examples, not measured plants or dimensions.

Views and exports

The2D plot preserves equal axis scale. The WebGL viewer displays the same2D points on z=0, centred and uniformly scaled for numerical robustness; it does not compute a3D IFS or invent heights. Drag rotates, Ctrl/Meta-wheel zooms, ordinary wheel scrolls. Fit view restores the camera. All requested samples are retained, including300000 in WebGL.

Render advances in short batches with actual progress and Cancel. Editing parameters clears the old result and exports; changing palette or view preserves the computed data. PNG captures current pixels with seed, warm-up and matrices. CSV contains raw Double coordinates, sample/map indices; its first data row records seed, warm-up and all transforms, with those metadata columns blank on later rows. Matrix drafts and numeric settings are preserved on tool reentry; results start empty. Numeric overflow reports an error. Finite precision, finite samples and point overlap limit what a rendered picture proves.