Acerca de la API
La API Generador de Monotiles Aperiodicos es un servicio REST alojado para geometría de monotiles aperiodicos sin huecos utilizando Spectre Tile 1,1 (monotile de Einstein). Llena una región con un mosaico no repetitivo, se adapta a una forma de máscara, asigna IDs y etiquetas de mosaicos estables, y exporta artefactos listos para producción. Construido para desarrolladores y agentes de IA que necesitan mosaicos reales sin ejecutar profundidad de sustitución, construcción de atlas o herramientas de iteración fractal en el cliente. Soporta gráficos por computadora, mundos procedimentales, Blender y motores de juegos, Adobe y CAD, impresión 3D, arte generativo, visualización científica, metamateriales, diseños de ondas y acústicos, experimentos de rejillas adyacentes a la criptografía, y tuberías de datos que requieren geometría determinista.
Lo que esta API recibe y lo que su API proporciona (entrada/salida)
Envía JSON con una máscara y formatos de salida. Las máscaras incluyen círculo, rectángulo, cuadrado, triángulo, hexágono regular y rectángulo redondeado, centrados automáticamente en unidades de mosaico canónicas. Escala opcional, rotación, semilla, opciones de trazo SVG y paleta, dimensiones raster, y profundidad de extrusión 3D. Autenticarse con la cabecera X-API-Key. El flujo de trabajo es asíncrono: crea un trabajo de parche, consulta el estado del trabajo hasta que se complete o falle, luego obtiene URLs de descarga firmadas. Los formatos incluyen png, jpg, jpeg, svg, csv, json, stl, glb, stl_zip, obj_zip, y instance_json. GLB proporciona un nodo nombrado por mosaico. STL ZIP y OBJ ZIP proporcionan mallas independientes por mosaico. Las claves gratuitas permiten solo pequeñas vistas previas raster. Las claves comerciales y Solo de pago desbloquean vectores, 3D, paquetes zip y trabajos más grandes. La cabecera opcional Idempotency-Key previene envíos duplicados al reintentar. Llama al endpoint de capacidades para inspeccionar límites de nivel en vivo, máscaras soportadas, formatos y profundidad de cola antes de trabajos grandes.
¿Cuáles son los casos de uso más comunes de esta API?
Anti-moire y muestreo no periódico para renderizado y texturas. Mallas procedimentales y decoración del mundo en Unity, Godot y Three.js a través de GLB. Integración de add-ons de Blender y tuberías para superficies en mosaico. Salida vectorial para Illustrator, Inkscape y flujos de trabajo de láser o plotter a través de SVG. Impresión 3D de un solo panel con STL o mosaicos imprimibles separados con STL ZIP y OBJ ZIP. Escultura generativa y diseño ornamental. Investigación y educación sobre mosaicos aperiodicos. CSV, JSON y manifiestos de instancia para importadores personalizados, indexación espacial y conjuntos de datos de aprendizaje automático. Los agentes deberían iniciar a los usuarios en png o jpg, pasar a svg para herramientas de diseño, glb para 3D en tiempo real, stl para paneles de fabricación, y stl_zip cuando cada mosaico debe ser un objeto separado.
¿Existen algunas limitaciones con sus planes?
El nivel gratuito está limitado a pequeñas vistas previas en PNG y JPG. Trabajos pesados como grandes exportaciones GLB o zip están clasificados como pequeños, estándar o pesados y pueden estar en cola; las respuestas incluyen tiempo de espera estimado y posición en cola, así que los clientes deben consultar en lugar de reenviar. Las URLs de descarga firmadas caducan; los usuarios deben guardar los artefactos que les importan. No pida a los usuarios finales el grupo de mosaicos, centro de máscara, modo de retención, versión del parche, profundidad de sustitución o extensión de cobertura. La guía completa de integración legible por máquina para agentes de IA está disponible en el sitio de documentación del proveedor configurado en este listado.
{"status":"ok","ts":1779302690.671844}
curl --location --request GET 'https://zylalabs.com/api/12628/aperiodic+monotile+generator+api/24439/health+check' --header 'Authorization: Bearer YOUR_API_KEY'
{"patch_engine_semver":"1.0.0","supported_tile_families":["spectre_tile_1_1"],"roadmap":{"tile_families":[{"id":"spectre_tile_1_1","status":"supported","label":"Spectre / Tile(1,1)"},{"id":"einstein_hat_tile","status":"planned","label":"Einstein Hat monotile (same API hooks)"},{"id":"turtle_tile","status":"planned","label":"Companion turtle monotile family"}]},"free_tier_formats":["jpeg","jpg","png"],"supported_masks":["square","rectangle","circle","regular_hexagon","triangle","rounded_rect"],"supported_formats":["svg","csv","json","stl","stl_zip","obj_zip","glb","instance_json","png","jpg","jpeg"],"output_notes":{"glb":"3D tiled scene with one named, movable node per retained tile.","stl":"Whole-panel mesh output.","stl_zip":"Independent STL files, one per tile.","obj_zip":"Independent OBJ files, one per tile."},"boundary_behavior":"clip","visual_styling":{"side_styles":["flat","curvy","wavy","jagged","blocky"],"side_style_aliases":{"curved":"curvy","curve":"curvy"},"side_style_amplitude":{"min":0.0,"max":0.75,"default":0.12},"tile_edge_ratio":{"min":0.25,"max":4.0,"default":1.0,"note":"Anisotropic stretch of export geometry only; substitution placement remains canonical Tile(1,1). Not a true Tile(a,b) two-family substitution."},"side_style_wavy_segments":{"min":4,"max":64,"default":10},"palette_by_label":{"supported":true,"keys_per_label":["fill","stroke","opacity","stroke_width"],"wildcard_label":"*"},"request_fields":["side_style","side_style_amplitude","tile_edge_ratio","side_style_wavy_segments","palette_by_label"]},"limits":{"max_supertile_iterations":26,"max_tiles_per_job":500000,"sync_max_tiles":8000,"svg_max_tiles_hard":25000,"png_max_dimension_px":16000,"png_max_pixels":50000000,"max_output_bytes_soft":32212254719,"max_wall_time_sec":3600.0,"job_gc_hours":24,"stl_tile_instancing_floor":50000,"svg_max_chars":400000000,"redis_url":null},"atlas":{"available":true,"max_canonical_half_side":1544.0511060838514,"max_canonical_full_side":3088.102212167703,"cores":[{"tile_family":"spectre_tile_1_1","iterations":5,"tile_count":34649,"inscribed_half_side":72.85611373427516,"inscribed_center":[180.85884907869263,-190.4637563106116],"patch_version":"0.1.0"},{"tile_family":"spectre_tile_1_1","iterations":6,"tile_count":272791,"inscribed_half_side":197.20129785929603,"inscribed_center":[611.0929636810714,-457.26130132202326],"patch_version":"0.1.0"},{"tile_family":"spectre_tile_1_1","iterations":7,"tile_count":2147679,"inscribed_half_side":516.3669015101796,"inscribed_center":[1297.8529395021253,-1742.7605795910576],"patch_version":"0.1.0"},{"tile_family":"spectre_tile_1_1","iterations":8,"tile_count":16908641,"inscribed_half_side":1544.0511060838514,"inscribed_center":[4553.311273135866,-4060.276908476975],"patch_version":"1.0.0"}]},"coordinate_convention":"Canonical Tile(1,1) planar coordinates (unit-edge reference). Global client scale ∈ ℝ⁺ and rotation_deg are similarity transforms applied after substitution.","operational":{"run_jobs_in_process":false,"rate_limit_post_patch":"30/minute","queue_max_active_jobs":2000,"queue_max_active_jobs_per_key":100,"queue_max_heavy_jobs":300,"queue_max_heavy_jobs_per_key":10,"download_ttl_seconds_max":3600,"artifact_retention_note":"Generated artifacts are kept for roughly one hour after the job completes. Download or copy them to your own storage if you need them longer."}}
curl --location --request GET 'https://zylalabs.com/api/12628/aperiodic+monotile+generator+api/24440/capabilities' --header 'Authorization: Bearer YOUR_API_KEY'
{"job_id":"bfb87a47-6910-462c-86ec-2bb63ca9bba7","status":"queued","tier":"tier_free","size_class":"small","estimated_seconds":5.0,"request_id":"2c7470cc-b96f-4725-b419-41826e2871e5","queue":{"status":"queued","size_class":"small","position":1,"estimated_wait_seconds":0.0}}
curl --location --request POST 'https://zylalabs.com/api/12628/aperiodic+monotile+generator+api/24441/create+patch+job' --header 'Authorization: Bearer YOUR_API_KEY'
--data-raw '{
"mask": {"type": "circle", "radius": 16},
"formats": ["png", "jpg"],
"png_width_px": 512,
"png_height_px": 512,
"jpg_width_px": 512,
"jpg_height_px": 512
}'
{"job_id":"bfb87a47-6910-462c-86ec-2bb63ca9bba7","status":"completed","ttl_seconds":900,"urls":{"patch.jpg":"/v1/downloads/bfb87a47-6910-462c-86ec-2bb63ca9bba7/patch.jpg?exp=1779375751&sig=d61d646a3e3893ba4bd7c753a46cb9af2e8eca4178467ec19f62a2481ad3d39a","patch.png":"/v1/downloads/bfb87a47-6910-462c-86ec-2bb63ca9bba7/patch.png?exp=1779375751&sig=c6c4732a4874653588673c05fe14fb4570047b05603da7318d701d7694ec5064"}}
curl --location --request GET 'https://zylalabs.com/api/12628/aperiodic+monotile+generator+api/24442/get+job+download+urls&job_id=Required' --header 'Authorization: Bearer YOUR_API_KEY'
| Encabezado | Descripción |
|---|---|
Autorización
|
[Requerido] Debería ser Bearer access_key. Consulta "Tu Clave de Acceso a la API" arriba cuando estés suscrito. |
Sin compromiso a largo plazo. Mejora, reduce o cancela en cualquier momento. La Prueba Gratuita incluye hasta 50 solicitudes.
Cada punto final devuelve datos JSON El punto final de verificación de estado confirma el estado de la API mientras que el punto final de capacidades proporciona detalles sobre los formatos compatibles las máscaras y los límites de nivel El punto final para crear trabajos de parche devuelve el estado y la identificación del trabajo y el punto final de obtener URL de descarga de trabajos proporciona URL para descargar archivos generados
Los campos clave incluyen `status`, `job_id`, `urls`, `estimated_seconds` y `ttl_seconds`. Por ejemplo, la respuesta de Crear Trabajo de Parche incluye `job_id` y `status`, mientras que la respuesta de Obtener URLs de Descarga de Trabajo incluye `urls` para acceder a archivos generados
Los parámetros incluyen la forma del contorno (máscara), paleta de colores, escala, rotación y propiedades de los azulejos como estilo de lado y relación de aspecto Los usuarios pueden personalizar sus solicitudes especificando estos parámetros en la carga útil JSON
Los datos de respuesta están estructurados en formato JSON con campos organizados jerárquicamente Por ejemplo la respuesta de Obtener URL de descargas de trabajos incluye un `job_id` `status` y un objeto anidado `urls` que contiene enlaces de archivos descargables
El endpoint de Capacidades proporciona información sobre los formatos de salida soportados, tipos de máscaras, límites de nivel y configuraciones de cola. Ayuda a los usuarios a entender qué formatos y tamaños son permisibles para sus trabajos de parcheo
Los usuarios pueden utilizar los datos devueltos comprobando el campo `status` para monitorear el progreso del trabajo utilizando `job_id` para referirse a trabajos específicos y accediendo a `urls` para descargar archivos generados una vez que el trabajo esté completo
Los casos de uso típicos incluyen la generación de texturas no repetitivas para gráficos, la creación de mallas procedimentales para el desarrollo de juegos y la producción de archivos STL para impresión 3D. Los usuarios también pueden aprovechar la API con fines educativos en el estudio de los mosaicos aperiodicos
La precisión de los datos se mantiene mediante el uso de algoritmos avanzados que generan patrones de mosaico deterministas La API garantiza una salida consistente al asignar ID y etiquetas de mosaicos estables permitiendo una integración confiable en diversas aplicaciones
Nivel de Servicio:
100%
Tiempo de Respuesta:
0ms
Nivel de Servicio:
100%
Tiempo de Respuesta:
0ms
Nivel de Servicio:
100%
Tiempo de Respuesta:
0ms
Nivel de Servicio:
100%
Tiempo de Respuesta:
0ms
Nivel de Servicio:
100%
Tiempo de Respuesta:
0ms
Nivel de Servicio:
100%
Tiempo de Respuesta:
523ms
Nivel de Servicio:
100%
Tiempo de Respuesta:
302ms
Nivel de Servicio:
100%
Tiempo de Respuesta:
13.020ms
Nivel de Servicio:
100%
Tiempo de Respuesta:
2.938ms
Nivel de Servicio:
100%
Tiempo de Respuesta:
863ms
Nivel de Servicio:
100%
Tiempo de Respuesta:
74ms
Nivel de Servicio:
100%
Tiempo de Respuesta:
2.450ms
Nivel de Servicio:
100%
Tiempo de Respuesta:
486ms
Nivel de Servicio:
100%
Tiempo de Respuesta:
706ms
Nivel de Servicio:
100%
Tiempo de Respuesta:
33ms
Nivel de Servicio:
100%
Tiempo de Respuesta:
14ms
Nivel de Servicio:
100%
Tiempo de Respuesta:
32ms
Nivel de Servicio:
100%
Tiempo de Respuesta:
10ms
Nivel de Servicio:
100%
Tiempo de Respuesta:
325ms
Nivel de Servicio:
100%
Tiempo de Respuesta:
235ms