Skip to content

girih

6 motifs. Import them from geomotif.motifs, or build one by name with registry.create("girih.hex-star").

girih.hex-star

girih.hex-star

Six-pointed stars on a triangular lattice, rhombi filling the gaps.

from geomotif import save_svg
from geomotif.core import registry

# This motif's example takes values that are themselves objects, so it
# reads better through the registry than as a constructor call.
motif = registry.create("girih.hex-star", **registry.describe("girih.hex-star").example)
save_svg(motif.build(), "girih.hex-star.svg", width=320, height=320)
geomotif render girih.hex-star --out girih.hex-star.svg
{
  "geomotif": "1.3.1",
  "motif": "girih.hex-star",
  "params": {
    "region": {
      "$type": "geomotif.core.types.Bounds",
      "min_x": -150.0,
      "min_y": -150.0,
      "max_x": 150.0,
      "max_y": 150.0
    },
    "clip": true,
    "size": 30.0
  }
}
Parameters
Name Type Default
size float 30.0
region Bounds required
clip bool True

girih.interlocking-decagons

girih.interlocking-decagons

The pattern the tenfold tiling carries: ten-pointed stars, interlocked.

from geomotif import save_svg
from geomotif.core import registry

# This motif's example takes values that are themselves objects, so it
# reads better through the registry than as a constructor call.
motif = registry.create("girih.interlocking-decagons", **registry.describe("girih.interlocking-decagons").example)
save_svg(motif.build(), "girih.interlocking-decagons.svg", width=320, height=320)
geomotif render girih.interlocking-decagons --out girih.interlocking-decagons.svg
{
  "geomotif": "1.3.1",
  "motif": "girih.interlocking-decagons",
  "params": {
    "region": {
      "$type": "geomotif.core.types.Bounds",
      "min_x": -150.0,
      "min_y": -150.0,
      "max_x": 150.0,
      "max_y": 150.0
    },
    "clip": true,
    "size": 26.0,
    "contact": 1.2566370614359172
  }
}
Parameters
Name Type Default
size float 26.0
contact float 1.2566370614359172
region Bounds required
clip bool True

girih.rosette

girih.rosette

The shamsa: a star, a blunter star inside it, and so on inward.

from geomotif import save_svg
from geomotif.motifs import Rosette

motif = Rosette()
save_svg(motif.build(), "girih.rosette.svg", width=320, height=320)
geomotif render girih.rosette --out girih.rosette.svg
{
  "geomotif": "1.3.1",
  "motif": "girih.rosette",
  "params": {
    "points": 12,
    "sharpness": 3,
    "layers": 3,
    "radius": 140.0,
    "rotation": 1.5707963267948966,
    "center": [
      0.0,
      0.0
    ]
  }
}
Parameters
Name Type Default
points int 12
sharpness int 3
layers int 3
radius float 140.0
rotation float 1.5707963267948966
center Point (0.0, 0.0)

girih.rosette-tiling

girih.rosette-tiling

A field of rosettes, touching point to point.

from geomotif import save_svg
from geomotif.core import registry

# This motif's example takes values that are themselves objects, so it
# reads better through the registry than as a constructor call.
motif = registry.create("girih.rosette-tiling", **registry.describe("girih.rosette-tiling").example)
save_svg(motif.build(), "girih.rosette-tiling.svg", width=320, height=320)
geomotif render girih.rosette-tiling --out girih.rosette-tiling.svg
{
  "geomotif": "1.3.1",
  "motif": "girih.rosette-tiling",
  "params": {
    "region": {
      "$type": "geomotif.core.types.Bounds",
      "min_x": -150.0,
      "min_y": -150.0,
      "max_x": 150.0,
      "max_y": 150.0
    },
    "clip": true,
    "points": 6,
    "sharpness": 2,
    "layers": 2,
    "radius": 45.0,
    "lattice": "hex"
  }
}
Parameters
Name Type Default
points int 6
sharpness int 2
layers int 2
radius float 45.0
lattice Literal['hex', 'square'] 'hex'
region Bounds required
clip bool True

girih.tenfold

girih.tenfold

Regular decagons laid edge to edge, with a bowtie in every gap.

from geomotif import save_svg
from geomotif.core import registry

# This motif's example takes values that are themselves objects, so it
# reads better through the registry than as a constructor call.
motif = registry.create("girih.tenfold", **registry.describe("girih.tenfold").example)
save_svg(motif.build(), "girih.tenfold.svg", width=320, height=320)
geomotif render girih.tenfold --out girih.tenfold.svg
{
  "geomotif": "1.3.1",
  "motif": "girih.tenfold",
  "params": {
    "region": {
      "$type": "geomotif.core.types.Bounds",
      "min_x": -150.0,
      "min_y": -150.0,
      "max_x": 150.0,
      "max_y": 150.0
    },
    "clip": true,
    "size": 26.0
  }
}
Parameters
Name Type Default
size float 26.0
region Bounds required
clip bool True

girih.tile

girih.tile

One of the five girih tiles, with the strapwork it carries.

from geomotif import save_svg
from geomotif.motifs import GirihTile

motif = GirihTile(size=90.0)
save_svg(motif.build(), "girih.tile.svg", width=320, height=320)
geomotif render girih.tile --out girih.tile.svg
{
  "geomotif": "1.3.1",
  "motif": "girih.tile",
  "params": {
    "shape": "decagon",
    "size": 90.0,
    "contact": 1.2566370614359172,
    "strapwork": true,
    "outline": true,
    "rotation": 0.0,
    "center": [
      0.0,
      0.0
    ]
  }
}
Parameters
Name Type Default
shape GirihShape 'decagon'
size float 60.0
contact float 1.2566370614359172
strapwork bool True
outline bool True
rotation float 0.0
center Point (0.0, 0.0)