API

Mask in, patch out. JPG/PNG free. SVG and 3D need a key.

Downloads

Reference

Expand a topic when you need it.

Endpoint POST /v1/patch

Create a deterministic patch job from a mask and output formats. The backend assumes an infinite aperiodic monotile tiling, clips it to your requested shape, and chooses the atlas/core depth automatically.

curl -X POST https://api.aperiodicgenerator.com/v1/patch \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: demo-001" \
  -d '{
    "mask": {"type": "circle", "radius": 50},
    "formats": ["png"],
    "png_width_px": 1200,
    "png_height_px": 1200
  }'
# JPG/PNG: no API key. For SVG/GLB/STL, add: -H "X-API-Key: YOUR_API_KEY"
Supported masks Shape-first requests

Shape sizes are in canonical units. Masks are centered automatically, so the request only needs the shape type and dimensions.

  • Circle {"type":"circle","radius":50}
  • Rectangle {"type":"rectangle","width":90,"height":40}
  • Triangle {"type":"triangle","side_length":50}
  • Square {"type":"square","half_side":6.25}
  • Hexagon {"type":"regular_hexagon","circumradius":50}
  • Rounded rectangle {"type":"rounded_rect","width":90,"height":40,"corner_radius":5}
Boundary behavior Fully tiled clipped panel

Default is clip: edge tiles trim to the mask so the export reads as a crop from a fully tiled plane.

  • Clipped edge tiles Outline lands exactly where you asked.
  • Whole-tile modes Internal/advanced — most users can ignore them.
  • Future polygons Arbitrary polygons are feasible with validation and examples.
Color and labels White fill, black stroke by default

Each tile carries a label such as Gamma or Psi for palettes and filtering.

  • Default White fill, black stroke — good for CAD and clean previews.
  • Deterministic palette Stable per-tile colors from tile IDs.
  • Palette by label Planned: fill/stroke/opacity by label, with * fallback.
{
  "style": {
    "fill": "#ffffff",
    "stroke": "#000000",
    "palette_by_label": {
      "Gamma": {"fill": "#ff6600", "opacity": 1},
      "Psi": {"fill": "#3366ff", "opacity": 0.25},
      "*": {"fill": "#ffffff", "opacity": 1}
    }
  }
}
Outputs Images, vectors, data, 3D
  • JPG / PNG Free raster previews from the API.
  • SVG / CSV / JSON Paid vectors and tile metadata for pipelines.
  • GLB / STL Paid 3D — stl_extrusion_mm defaults to 0 (flat caps).
  • STL_ZIP / OBJ_ZIP Paid one-file-per-tile packs.
  • instance_json Paid transform manifest for custom importers.
Capabilities What free vs paid unlocks
  • Free JPG or PNG Small preview patches, raster only — no API key.
  • Paid SVG or 3D Production exporters and larger jobs — key from Pricing.
  • Queue and downloads Status, wait estimates, signed artifact URLs.

Live limits: GET /v1/capabilities · Pricing

Job lifecycle Poll, then signed URLs

POST /v1/patch returns a job_id. Poll until complete, then fetch signed download URLs.

GET /v1/jobs/{job_id}
GET /v1/jobs/{job_id}/urls
GET /v1/downloads/{job_id}/{filename}?exp=...&sig=...
Outputs & ownership You own your pipeline

Plain geometry snapshots are closer to encyclopedic mathematics than expressive authorship — like plotting a Cartesian grid or hex lattice.

We do not assert ownership simply because you exported a patch. Your protectable creativity starts where you add design: materials, art direction, composites, branding, tools, games, textiles, and so on.

Report a bug

If you saw an error, this form auto-attaches the last request_id we returned. Add anything that would help us reproduce it.