Main Page

Research · Wiki · Computer graphics

Computer graphics

Using aperiodic monotile patches for scenes, textures, meshes, and sampling studies.

The problem with repeats

Every graphics artist knows the failure mode: a tiled texture or instanced grid looks fine up close, then the camera pulls back and the repetition snaps into view, visible seams, moiré shimmer, wallpaper patterns marching across the frame. The classic fixes all trade something away. Larger textures cost memory; randomized scatter loses structure and is hard to make deterministic; blend-based tiling blurs detail.

An aperiodic monotile patch attacks the root cause. The geometry itself is mathematically incapable of translational repetition,[2] yet it is a single instanced shape, one mesh, one material slot, one draw-call strategy, and every placement is deterministic and seed-stable. You get grid-like production economics with no translational repetition in the generated layout. Memory and draw-call costs still depend on implementation.

Split render: periodic hexagon floor on the left, aperiodic Spectre tile floor on the right, same glazed ceramic material
Periodic vs aperiodic. Same glazed ceramic, same light, one seam. The hexagonal grid (left) repeats identically in every direction; the Spectre floor (right) is equally ordered but has no translational repeat. Finite motifs may recur. Both are real geometry: an equal-area hex grid and a generated Tile(1,1) patch.

Same material, different geometry

The split render above makes the argument visually: identical glazed-ceramic material, identical sun, one seam. The hexagonal floor on the left is calm but visibly repetitive, the eye finds rows quickly, and at some render scales those rows can become aliasing bands. The Spectre floor on the right has the same nominal tile density and one base outline, but lacks a translational repeat. Finite motifs still recur, and the render remains subject to filtering and edge aliasing. For the sampling story, see Aliasing.

Aperiodic monotile floor at sunset with terracotta tones stretching to the horizon
Environmental scatter. Eye-height procedural ground plane, aperiodic monotile instances with warm PBR materials, useful for scenes that need ordered but non-repeating structure.
Brass aperiodic monotile relief panel with beveled edges and dramatic lighting
Material and lighting study. Instanced monotile meshes with metallic shading, the same patch data drives real-time previews, offline renders, and exported GLB assets.
Lumen Vault. Slow orbit of an iridescent circular patch of curvy Spectre tiles, real API geometry, Blender EEVEE materials. Also on the art page.
Ink & Gold. Wet lacquer Spectre disc with molten gold seams and leaf inlays, raking light sweep over real API geometry. Also on the art page.
Rolling terrain, one tile. Eye-height walk across a curvy monotile landscape under moonlight, the same generated patch language used for production scenes. Hero still
City-scale instancing. A Spectre-city flythrough built from deterministic tile transforms, one outline, no translational wallpaper.
Orbit study. Camera circle around a single curvy monotile hill, useful for lighting and silhouette checks before locking a hero shot.
Contact and bounce. A reflective ball rolling on monotile terrain, the layout stays seed-stable while motion reads the surface continuously.

Production pipeline

Start with one canonical polygon and a transform table. Generate beyond the camera footprint, clip only if the asset needs a hard boundary, triangulate the base tile once, and apply each row’s translation and rotation as an instance transform. Keep geometry coordinates, tile ID, hierarchy label, and material class in separate attributes so layout changes do not invalidate shading.

  1. Generate and validate a patch at world scale; retain provenance and units.
  2. Import CSV/JSON transforms for instancing, or GLB for a portable scene; use SVG for masks and decals.
  3. Assign colors or texture offsets from stable IDs or hierarchy labels rather than frame-dependent randomness.
  4. Bake normals, displacement, or albedo only after deciding the camera-distance and texel-density targets.
  5. Test animated cameras with temporal anti-aliasing, mipmapping, and anisotropic filtering enabled.

Interfaces with periodic regions can be designed explicitly when a scene needs both.[18]

Instancing, sampling, and level of detail

For large patches, avoid one object and one draw call per tile. Store the mesh once, batch transforms in an instance buffer, frustum-cull by hierarchy cluster, and merge only distant clusters. A hierarchy gives natural level-of-detail units, but coarse meshes must preserve silhouettes and material statistics or they will pop. Measure frame time, GPU memory, draw calls, overdraw, and visible seam count against a periodic grid and a randomized scatter with the same tile density. Finished scene loops from the same pipeline are collected on the art page.

Aperiodic placement changes the spectrum of the layout; it does not band-limit the texture painted on each tile. Use mipmaps for color, filtered displacement or normal maps, adequate UV gutters, and supersampled vector rasterization. Tile centroids can also serve as deterministic sample points, but reconstruction quality must be measured against grids, jittered grids, and blue noise rather than inferred from appearance.[37]

Limitations

Aperiodicity does not automatically remove texture seams, UV discontinuities, jagged silhouettes, temporal shimmer, clipping artifacts, or poor level-of-detail transitions. A finite patch can still show large-scale bias, and a repeated finite patch is periodic regardless of how it was generated. The safest claim is narrower: canonical monotile transforms provide a deterministic layout without translational repetition, leaving ordinary graphics engineering responsible for filtering and performance.

See also

Moiré, Aliasing, Design, art, and architecture

Categories: Applications