Substitution tilings

Edit polygon replacement rules and generate tiled patches.

About this tool

Choose a preset and substitution depth; the pattern updates automatically. Presets also choose a suitable drawing grid. Pinwheel uses five similar right triangles; Penrose uses two Robinson triangle types. The golden rectangle has separate rectangle and square rules.

Drag the pattern to pan. Ctrl/Meta + wheel zooms about the view centre; the plain wheel scrolls the page. With the pattern focused, use +, −, arrows and Home. Fit restores the whole patch. PNG saves the current view; SVG, PDF and Print export the whole generated patch.

Edit rules opens the prototype and child editors. Add child starts a polygon: click at least three vertices, then Enter. Select a child and assign its prototype type. Drag vertices or polygons; Coordinates and measurements edits their geometry. Enter finishes drawing; Delete removes the selected vertex or child. Inputs, including unfinished polygons, are retained automatically. The camera and computed patch are not saved. JSON imports or exports editable rule source.

Computation runs in a worker with real stage progress. At most 50,000 tiles are retained; when a level exceeds this limit, its largest tiles are kept and the result is marked partial. Custom affine rules are not certified as self-similar, gap-free or aperiodic. Area warnings cannot prove coverage. Imported depth-specific rules remain in the source; the editor changes the first level.

JSON imports: up to 512,000 bytes, 16 prototypes, 128 vertices per polygon, 128 children per rule and 8,192 vertices in total, coordinates within ±1,000,000. Depth is 1–8. Polygons must have nonzero signed area; full self-intersection validation is not provided. Computation stays in the browser.

Reference: Uni Bielefeld: Pinwheel.