User Rating 0.0
Total Usage 0 times
Base polygon shape
Higher = more detail (slower)
Bump height relative to segment
Negative = inward bumps
Rotate entire fractal
Presets:
Initializing...
Vertices
Segments
Fractal Dim.
Render Time
Is this tool helpful?

Your feedback helps us improve.

About

Cesaro polyflakes belong to a family of self-similar fractals constructed by recursive edge subdivision. The generation process starts with a regular n-gon and applies the Cesaro curve transformation to each edge: every straight segment is replaced by a bent polyline with a controlled "bump" whose height is determined by the scale factor s. After d iterations, the boundary explodes into 3d segments per original edge, creating intricate snowflake-like patterns. The fractal dimension D depends on the subdivision ratio and lies between 1 and 2 for most configurations. Incorrect parameter choices produce either visually uninteresting blobs (scale too low) or computationally intractable vertex counts (depth too high). This generator computes vertex coordinates using affine transformations in a Web Worker, preventing browser freezes even at depth 7 with 10,000+ vertices.

Real-world applications include procedural texture generation for games, laser-cut artwork templates, and educational demonstrations of iterated function systems. The classic Koch snowflake is a special case: a 3-sided polyflake with scale factor 1/3 and bump angle 60°. Cesaro variants generalize this by allowing arbitrary bump angles and polygon bases. Note: at depth 8 with a hexagon base, the generator produces over 1.5 million line segments - expect render times of several seconds.

fractal generator cesaro curve polyflake mathematical art recursive geometry fractal art polygon fractal canvas drawing

Formulas

The Cesaro polyflake is generated by recursively applying an edge-replacement rule to a regular polygon. Each line segment AB is replaced by a three-segment polyline APQB, where P and Q lie at fractional positions along the segment and the midpoint is displaced perpendicular to the original line.

M = A + B2

The bump point C is computed by rotating the vector from M perpendicular to segment AB and scaling by factor s:

C = M + s |AB| n

where n is the unit normal to segment AB. The perpendicular direction is computed via 90° rotation:

n = 1|AB| (dy, dx)

For the classic Cesaro curve with bump angle θ, the intermediate points P and Q are positioned at fractions along AB:

P = A + t (B A), Q = A + (1 t) (B A)

where t = 12 (1 + cosθ). The fractal dimension D of the resulting curve is:

D = log(4)log(2 + 2cosθ)

where D = fractal dimension, θ = bump angle in radians. For Koch snowflake (θ = π/3), this yields D 1.2619. Vertex count after d iterations starting from an n-gon:

Vd = n 4d

Reference Data

Configuration NamePolygon Sides (n)Scale Factor (s)Bump Angle (θ)Fractal DimensionVisual Character
Koch Snowflake30.33360°1.2619Classic triangular snowflake
Cesaro Triangle30.585°1.7848Spiky, aggressive peaks
Quadratic Koch40.33390°1.5Square-based snowflake
Cesaro Square40.470°1.6309Rounded square pattern
Pentagon Flake50.38272°1.4404Golden ratio harmony
Hexagonal Flake60.33360°1.2619Honeycomb snowflake
Cesaro Hexagon60.4555°1.5812Dense organic pattern
Heptagonal Flake70.3551.43°1.3562Seven-fold symmetry
Octagonal Flake80.33345°1.2619Eight-pointed star
Cesaro Octagon80.567.5°1.7712Highly intricate rosette
Nonagonal Flake90.340°1.1949Nine-fold subtle pattern
Decagonal Flake100.3536°1.3219Ten-pointed complexity
Anti-Snowflake30.333-60°1.2619Inward-facing bumps
Shallow Cesaro40.1580°1.0875Nearly smooth polygon
Deep Cesaro50.650°1.8617Maximum complexity
Minimal Triangle30.130°1.0269Barely perturbed triangle
Dodecagonal Flake120.33330°1.2619Twelve-fold mandala
Asymmetric Cesaro60.475°1.6781Irregular organic feel
Low-Depth Sharp40.590°1.5Bold angular at depth 2
High-Depth Smooth80.245°1.1292Subtle detail at depth 6

Frequently Asked Questions

A scale factor s below 0.15 produces bumps too small to be visually distinct. Additionally, if the bump angle θ is very shallow (under 20°), the displacement becomes negligible. Increase scale factor to at least 0.25 and bump angle to 45° - 90° for pronounced fractal features.
Vertex count grows exponentially as V = n 4d. A hexagon at depth 7 produces 6 × 16,384 = 98,304 vertices. At depth 8, this reaches 393,216 vertices. The generator uses a Web Worker to prevent UI freezing, but canvas rendering of this many line segments requires 2 - 5 seconds on typical hardware.
A negative bump angle inverts the displacement direction, creating inward-facing bumps instead of outward ones. This produces "anti-snowflake" patterns where the fractal boundary intrudes into the polygon interior rather than expanding outward. The classic example is the anti-Koch curve with θ = 60°.
The scale factor s determines bump height relative to segment length. Higher scale factors create more pronounced bumps, which increases the fractal dimension D toward 2 (space-filling). The dimension formula D = log(4)/log(2 + 2cosθ) shows that bump angle is the primary dimension driver. Scale affects visual density but not the mathematical dimension directly.
Yes. The mathematical algorithms (Cesaro curve, Koch construction) are public domain. The specific output image you generate is your creation. Export at high resolution via the SVG option for vector-based scaling suitable for print production, laser cutting, or CNC routing. SVG export preserves exact vertex coordinates without rasterization artifacts.
When the scale factor s exceeds approximately 0.5 and the bump angle is large (over 80°), the bump points displace far enough to cross adjacent segments. This is mathematically valid but produces overlapping geometry. For non-intersecting results, keep s 0.45 and θ 75°.