Formas Primitivas (13 total)

Geometrías base que sirven como punto de partida para la generación de diseños.

Formas Básicas

cube

Cubo básico - forma fundamental para arquitecturas rectangulares

cylinder

Cilindro básico - ideal para componentes circulares y tubulares

sphere

Esfera básica - forma orgánica para elementos redondeados

cone

Cono básico - perfecto para elementos cónicos y puntiagudos

torus

Toro/dona - forma toroidal para elementos con agujero central

pentagon

Pentágono extruido - forma poligonal de cinco lados

dome_cut

Corte de cúpula - media esfera para elementos dome

tube_square

Tubo con sección cuadrada - tubo hueco rectangular

Formas Paramétricas

Requieren configuración aleatoria específica

polygon

Polígono irregular con número variable de vértices

Parámetros:
"max_vertice": 12

quadrilateral

Cuadrilátero irregular con desplazamientos controlados

Parámetros:
"fixed_axis": "z",
"max_displacement": 0.8

cube_loft

Cubo con deformación loft para formas orgánicas

Parámetros:
"max_displacement": 0.7,
"factor": 0.5,
"shape": "convex"

revolution

Forma de revolución generada por rotación de perfil

Parámetros:
"factor": 0.4

swept

Forma extruida con perfil personalizado a lo largo de un eje

Parámetros:
"depth_factor": 0.6,
"extrude_factor": 0.5,
"axis": "z",
"max_displacement": 0.4

Transformaciones (14 total)

Operaciones que modifican las formas primitivas para crear variaciones complejas.

shade

Sombreado (Flat/Smooth) - controla la suavidad de superficies

"shade_type": "random"

twist

Torsión sobre un eje - crea deformaciones helicoidales

"axis": "x",
"max_twist": 0.8

taper

Afilado sobre un eje - reduce el grosor gradualmente

"axis": "z"

bend

Doblado sobre un eje - curva la geometría

"axis": "z"

bevel

Biselado de bordes - suaviza aristas y esquinas

"factor": 0.7,
"max_segments": 7

scale

Escalado en un eje - modifica proporciones direccionalmente

"axis": "x",
"factor": 0.8

rotation

Rotación en un eje - gira la geometría

"axis": "x",
"factor": 0.8

mirror

Espejo en un eje - crea simetría reflectiva

"axis": "x"

array_rotation

Array rotacional - duplica objetos en patrón circular

"max_count": 10

array

Array lineal - duplica objetos en línea recta

"relative_offset_displace": 1.1,
"max_count": 5,
"axis": "x",
"scale_factor": 1

expand

Expandir geometría - aumenta el volumen direccionalmente

"axis": "x"

contract

Contraer geometría - reduce el volumen direccionalmente

"axis": "x"

pull

Tirar vértices - desplaza puntos en dirección específica

"factor": 0.7,
"direction": "up"

texture

Aplicar textura procedural - añade rugosidad superficial

"strength_factor": 0.8,
"location_factor": 0.7,
"scale_factor": 0.5

Sistema de Reglas

Control avanzado sobre cuándo y cómo se aplican las transformaciones.

only_with

Aplicar transformación solo con forma específica

Ejemplo: "twist only_with cube"

La transformación twist solo se aplicará cuando la forma sea un cubo.

except

No aplicar transformación a forma específica

Ejemplo: "rotation except cube"

La transformación rotation se aplicará a todas las formas excepto cubos.

always

Aplicar siempre transformación (usar * para todas las formas)

Ejemplo: "bevel always *"

La transformación bevel se aplicará siempre, independientemente de la forma.

Estructura JSON Básica

Formato de configuración estándar para definir productos Shape Grammar.

{
  "product": "Examples/lamp.blend",
  "samples": 10,
  "savepath": "/path/to/output/",
  "form_detail": {
    "Base": {
      "number_transf": 2,
      "max_number_forms": 2,
      "optional": false,
      "forms": {
        "cube": {"use": true},
        "cylinder": {"use": false}
      },
      "transformations": {
        "bevel": {"factor": 0.3},
        "twist": {"axis": "z"}
      },
      "rules": [
        "twist only_with cube"
      ]
    }
  }
}

Explicación de campos:

  • product: Ruta al archivo .blend base
  • samples: Número de variaciones a generar
  • savepath: Directorio de salida de los archivos
  • form_detail: Configuración por componente del producto
  • number_transf: Número máximo de transformaciones por parte
  • max_number_forms: Número máximo de formas por parte
  • optional: Si la parte es opcional (true/false)
  • forms: Formas disponibles y su configuración
  • transformations: Transformaciones disponibles y parámetros
  • rules: Reglas específicas de aplicación