Islamic Pattern*

Preview
Performance Cost 🟢 Low
Space 2D UV Space
Implementation Native Compiled C++
Devices (Cycles) CPU / GPU (1:1)

Islamic Pattern generates a repeating star rosette with alternating filled regions and crisp geometric outlines. Based on the mathematical modeling of symmetric Islamic design (Kaplan et al., 2019), it constructs complex {k, N} star polygons by rotating a point around a circle using alternating angle steps. The result creates the characteristic spiked stars, concave valleys, and interlocking strapwork found in traditional tilework, with full control over the star shape, line thickness, and region coloring.

Usage & Behavior

k, N : 1-8
k, N : 15-54
k, N : 12-78
k, N : 5-44
Other valid k,N values

This node is unique because it is not just a texture lookup; it performs real-time geometric construction. The pattern is defined by two integers: N (the number of vertices) and K (the step interval). By changing these values, you can morph the pattern from simple stars to intricate, self-intersecting webs. The Line Width parameter allows you to create the "strapwork" look (lines separating colored tiles) typical of Alhambra mosaics. Not all k, N parameters will give back a regular pattern, so experiment a bit with those.

Best Used For: Mosque tiles, palace floors, decorative screens (Mashrabiya), intricate rug patterns, and abstract geometric art.

Key Features

  • Geometric Construction: Uses the {k, N} star polygon math for authentic rosette shapes.
  • Strapwork Generation: Automatically creates outline paths between filled regions.
  • Region Coloring: Alternates colors based on even/odd crossing rules.

Parameters

Coords Vector
The input texture coordinates.
N (default: 20)
The number of vertices in the star polygon. Controls the rotational symmetry (e.g., N=8 makes an 8-pointed star system).
K (default: 1)
The step parameter. Controls how "spiky" the star is.
- Low K: Open, convex shapes.
- High K: Sharp, spiky, self-intersecting stars.
Radius (default: 1.0)
Scales the rosette pattern relative to the cell size.
Line Width (default: 0.01)
Thickness of the geometric outlines (straps).
Cell Size Vector (default: 1.0, 1.0, 0.0)
Controls the tiling density and aspect ratio of the underlying grid.
Rotation (default: 0.0)
Global rotation of the pattern.

Colors

Pattern Color Color
The fill color for the "inside" regions of the star.
Background Color Color
The fill color for the "outside" regions (valleys).
Line Color Color
The color of the structural lines (straps).

Quick Recipes

Traditional configurations.

Classic 8-Point Rosette

  • N 8
  • K 2
  • Line Width 0.05
Standard octagonal star found in Andalusian tiling.

Complex 12-Fold

  • N 12
  • K 4
  • Radius 1.2
Intricate 12-pointed star with overlapping strapwork.

Simple Lattice

  • N 6
  • K 1
  • Line Width 0.1
  • Colors Same
Hexagonal grid formed by thick lines; merging colors hides the fill pattern.
Technical Note: The pattern uses a ray-segment intersection algorithm (raySegmentIntersection) to determine if a pixel is inside or outside the star polygon. By counting the number of "crossings" from the center to the pixel, it determines the fill color (even vs odd winding rule). However take care that ray-casting breaks down when applied to self-intersecting polys (ie. here stars) in a tiled domain where boundaries wrap, so coloring in some circumstances won't work correctly.
↑ Back to Top

Leave a Reply