> ## Documentation Index
> Fetch the complete documentation index at: https://docs.aliengh.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Create

> Describe a thing, a symbol, a finish or a look, and a model makes it for you at real size.

The Create components are generators. You describe what you want in a sentence, or show a picture, and a model makes it: a 3D object, a 2D drawing, an annotation symbol, a material, a display mode.

<Tip>Only the **Generate** button spends credit. Everything a generator makes is cached, so sliders, sizes and reopening the file are free.</Tip>

| Component | What it's for |
| - | - |
| [3D object](#3d-object) | Describe a thing (“a dining chair”, “a wall basin”) or drop in a picture, press **Generate**, and get it as solids at real size, with named parts and materials. |
| [2D object](#2d-object) (next beta) | Flat things drawn for you at real size: a car or a bed in plan, a person in elevation, a tree canopy. |
| [Symbol](#symbol) (next beta) | North arrows, section and level markers, tags, scale bars. |
| [Material](#material) | Name a finish (“board-formed concrete”) and get a seamless texture and a Rhino material mapped at real-world scale. |
| [Display mode](#display-mode) (next beta) | Describe a look (“white clay with soft shadows”, “blueprint”) or show a picture, and get it as a Rhino display mode. |

***

## 3D object

`object_3d`

Describe a thing (“a dining chair”, “a wall basin”) or drop in a picture, press **Generate**, and get it as solids at real size, with named parts and materials. Resize it afterwards for free.

**Cost:** US\$0.01-0.02 per design (Sonnet 5.5); free from the cache.

### Inputs

| Input | Type | On the component | Default | What it does |
| - | - | - | - | - |
| `thing` | Text | Text field | `a dining chair` | what to model |
| `style` | Text | Text field | blank | style, materials, details (optional) |
| `image` | Text | Image drop | blank | reference image: drop one on the component, or a file path or URL (optional) |
| `detail` | Text | Dropdown | `detailed` | how much to model. One of `simple`, `detailed` |
| `variant` | Integer | Slider 0–50 | `0` | another design for the same request |
| `generate` | Boolean | Button | — | build it with the model (paid); a design built before comes back free from the cache |
| `width` | Number | Slider 0–10 | `0` | width (m); 0 = as built |
| `depth` | Number | Slider 0–10 | `0` | depth (m); 0 = as built |
| `height` | Number | Slider 0–10 | `0` | height (m); 0 = as built |
| `plane` | Plane | Wire | — | where it stands, front facing the plane's -Y (default: world origin) |

### Outputs

| Output | Type | What it gives you |
| - | - | - |
| `parts` | list of Brep | the object's solids |
| `names` | list of Text | part names |
| `materials` | list of Text | material per part |
| `colours` | list of Colour | preview colour per part |
| `size` | Text | width x depth x height (m) |
| `info` | Text | model, cost, attempts |
| `code` | Text | the generated build code |

<AccordionGroup>
  <Accordion title="How it works">
    * Only the generate button calls the model. Changing thing, style, image, detail or variant waits for it ('Press Generate to build ...'); nothing is sent until then.
    * A design built before comes back free from the cache (\<repo>/.alien/cache/objects), with or without the button. The default request ('a dining chair') ships with its design.
    * The model (setting model3d, default anthropic/claude-sonnet-5.5) writes def build(rg, math) returning (name, material, brep) tuples in metres, Z up, standing on z = 0, front facing -Y, from robust primitives (no booleans or fillets). Alien runs it with only rg and math, checks the parts and that the size is plausible (3 cm to 8 m), and sends any error back: up to 3 attempts.
    * Width, depth and height never call the model: each axis scales the built design on its own; 0 or unset means as built. After a build the sliders show the design's size and span half to twice it (NODE\_CONTROLS); sizes set for one design reset when the design changes.
    * Each design is saved once to the asset library at its built size (geometry.3dm, build.py, thumbnail, the reference image); resizing never makes a new asset.
  </Accordion>
</AccordionGroup>

***

## 2D object

`object_2d`

<Info>New since 0.02-alpha: arrives in the next beta.</Info>

Flat things drawn for you at real size: a car or a bed in plan, a person in elevation, a tree canopy. Describe it or show a picture, press **Generate**, and it lands as lines, fills and hatches.

**Cost:** About US\$0.01-0.02 per design; free from the cache.

### Inputs

| Input | Type | On the component | Default | What it does |
| - | - | - | - | - |
| `thing` | Text | Text field | `a queen bed with pillows, in plan` | what to draw, and in plan or elevation |
| `style` | Text | Text field | blank | drawing style (optional): fills, hatches, how much detail |
| `image` | Text | Image drop | blank | reference image: drop one on the component, or a file path or URL (optional) |
| `detail` | Text | Dropdown | `detailed` | how much to draw. One of `simple`, `detailed` |
| `variant` | Integer | Slider 0–50 | `0` | another design for the same request |
| `generate` | Boolean | Button | — | draw it with the model (paid); a design drawn before comes back free from the cache |
| `width` | Number | Slider 0–30 | `0` | width (m, along X); 0 = as drawn |
| `depth` | Number | Slider 0–30 | `0` | depth (m, along Y: length in plan, height in elevation); 0 = as drawn |
| `plane` | Plane | Wire | — | where it goes (default: world XY at the origin; an XZ plane stands an elevation up) |

### Outputs

| Output | Type | What it gives you |
| - | - | - |
| `curves` | list of Curve | all linework, outlines of fills and hatches included |
| `fills` | list of Brep | filled areas (planar) |
| `hatches` | list of Geometry | a solid hatch per fill and the pattern hatches, for baking |
| `colours` | list of Colour | preview colour per fill |
| `names` | list of Text | element name per curve |
| `size` | Text | width x depth (m) |
| `info` | Text | model, cost, attempts, elements |
| `code` | Text | the generated build code |

<AccordionGroup>
  <Accordion title="How it works">
    * build(rg, math) returns (name, kind, geometry\[, style]) with kind line, fill (tone or colour) or hatch (pattern, spacing, angle), in metres.
    * Plans are centred on the plane; elevations (starting at y = 0) stand on it; width and depth resize the cached design without a call.
    * Only Generate calls the model (setting model2d, else model3d, else Claude Sonnet 5.5); cached by request; saved once to the library as a drawing.
  </Accordion>
</AccordionGroup>

***

## Symbol

`symbol`

<Info>New since 0.02-alpha: arrives in the next beta.</Info>

North arrows, section and level markers, tags, scale bars. Describe the symbol and get it drawn at paper size with text slots, placed at your drawing scale, and ready to bake as a Rhino block.

**Cost:** About US\$0.01 per symbol; free from the cache.

### Inputs

| Input | Type | On the component | Default | What it does |
| - | - | - | - | - |
| `description` | Text | Text field | `north arrow: a circle with a solid arrow and a bold N` | the annotation symbol to draw |
| `text` | Text | Text field | blank | text for the symbol, values separated by \| (e.g. A \| A201); empty = the sample text |
| `image` | Text | Image drop | blank | reference image: drop one on the component, or a file path or URL (optional) |
| `variant` | Integer | Slider 0–50 | `0` | another design for the same request |
| `generate` | Boolean | Button | — | draw it with the model (paid); a design drawn before comes back free from the cache |
| `site` | Data | Wire | — | site record from bim\_site (optional): drawing scale, and true north for north arrows |
| `scale` | Text | Dropdown | `site` | drawing scale: the symbol is drawn at paper size and scaled to the model (1:1 = paper mm). One of `site`, `1:1`, `1:20`, `1:50`, `1:100`, `1:200`, `1:250`, `1:500`, `1:1000` |
| `size` | Number | Slider 0–150 | `0` | size on paper (mm, the longer side); 0 = as designed |
| `points` | list of Point3d | Wire | — | where to place copies (default: the plane's origin) |
| `rotation` | Number | Slider -180–180 | `0` | rotation (degrees, CCW) |
| `plane` | Plane | Wire | — | orientation, and the position when no points are given (default: world XY) |
| `block` | Boolean | Button | — | define or update the Rhino block 'Alien · symbol · \<name>' and insert it at the points |

### Outputs

| Output | Type | What it gives you |
| - | - | - |
| `curves` | list of Curve | linework, text and outlines, placed and scaled to the model |
| `fills` | list of Brep | solid areas (arrows, text, filled halves) |
| `hatches` | list of Geometry | a solid hatch per fill and the pattern hatches, for baking |
| `info` | Text | name, text slots, paper and model size, model, cost |
| `code` | Text | the generated build code |

<AccordionGroup>
  <Accordion title="How it works">
    * build(rg, math, text, label) in paper mm; text slots filled from 'A | A201'; SCALE available for scale bars.
    * Placed at points with rotation, scaled by the site's or a chosen drawing scale; north arrows turn to the site's true north.
    * block defines or updates 'Alien · symbol · \<name>' (paper mm) and replaces its tagged instances; saved to the library as a symbol.
  </Accordion>
</AccordionGroup>

***

## Material

`material_texture`

Name a finish (“board-formed concrete”) and get a seamless texture and a Rhino material mapped at real-world scale.

**Cost:** About US\$0.034 per texture; free from the cache.

### Inputs

| Input | Type | On the component | Default | What it does |
| - | - | - | - | - |
| `finish` | Text | Text field | `board-formed concrete` | the material finish |
| `size` | Number | Slider 0.05–20 | `1.2` | real-world size one tile covers (m) |
| `variant` | Integer | Slider 0–50 | `0` | another texture for the same finish |
| `seamless` | Boolean | Switch | on | blend the edges so tiles repeat without seams |
| `generate` | Boolean | Button | — | paint it with the image model (paid); a texture painted before comes back free |
| `add` | Boolean | Button | — | add (or update) the material in the Rhino document |
| `name` | Text | Text field | blank | material name (default: the finish) |

### Outputs

| Output | Type | What it gives you |
| - | - | - |
| `material` | Data | display material: wire into Custom Preview |
| `preview` | list of Brep | 3 x 3 tiles at real size, to see the repeat |
| `texture` | Text | texture image file |
| `name` | Text | material name |
| `info` | Text | model, cost, seam check |

<AccordionGroup>
  <Accordion title="How it works">
    * Only the generate button calls the image model: a new finish or variant waits for it; a texture painted before comes back free. The texture is keyed by finish and variant, never by size.
    * size is the real-world size of one tile: moving it re-tiles the same texture for free; Generate again repaints at the new scale.
    * The image model paints a flat, evenly lit swatch about size metres across.
    * Seam check: if the wrap-around edges jump more than 1.35 x the texture's own detail, the image is rolled half a tile and cross-faded over the seam cross; already-tiling patterns are left as drawn (blending them ghosts).
    * add (a button) creates or replaces a PBR render material: base colour + bump, WCS box mapping, one tile per size metres, so it needs no UV mapping.
    * Textures are cached in \<repo>/.alien/cache/textures; each painted texture is saved once to the asset library (its seamless version).
  </Accordion>

  <Accordion title="Limits of this version">
    * Display textures don't show in captures of a backgrounded Rhino: check them by eye.
  </Accordion>
</AccordionGroup>

***

## Display mode

`display_mode`

<Info>New since 0.02-alpha: arrives in the next beta.</Info>

Describe a look (“white clay with soft shadows”, “blueprint”) or show a picture, and get it as a Rhino display mode. Built-in modes are never touched.

**Cost:** About US\$0.005 per look; free from the cache.

### Inputs

| Input | Type | On the component | Default | What it does |
| - | - | - | - | - |
| `description` | Text | Text field | `white clay model with soft shadows and thin black edges` | the look you want |
| `image` | Text | Image drop | blank | reference image (optional): a render or drawing whose look to copy |
| `base` | Text | Dropdown | `auto` | built-in mode to start from (auto = the model's pick). One of `auto`, `Shaded`, `Rendered`, `Arctic`, `Technical`, `Pen`, `Ghosted` |
| `name` | Text | Text field | blank | mode name: Rhino lists it as 'Alien · \<name>' (empty = the model's name) |
| `variant` | Integer | Slider 0–50 | `0` | another take on the same request |
| `generate` | Boolean | Button | — | ask the model for the look (paid, about US\$0.01); a look made before comes back free |
| `install` | Boolean | Button | — | create or update the Rhino display mode 'Alien · \<name>' from the look |
| `apply` | Boolean | Button | — | show the mode in the active viewport (installs it first) |

### Outputs

| Output | Type | What it gives you |
| - | - | - |
| `mode` | Text | the display mode's name in Rhino |
| `spec` | Text | the look as JSON, checked and clamped |
| `info` | Text | what the look sets, model, cost, install state |

<AccordionGroup>
  <Accordion title="How it works">
    * The model returns a JSON look (background, shading, lighting, shadows, edges, silhouettes, curves, isocurves, grid, xray), checked and clamped.
    * install copies a built-in base (auto, Shaded, Rendered, Arctic, Technical, Pen, Ghosted) once, then updates the same mode in place; typed RhinoCommon attributes plus .ini edits for the material colour and technical lines. Built-in modes are never changed.
    * apply shows it in the active viewport; saved to the library as a display\_mode (spec, .ini, capture). Setting modelDisplay picks the model.
  </Accordion>
</AccordionGroup>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.