# Extruded profile (gusset / plate)

> Component kind `profile` (category `static`, DSL name `profile`, API v1)

A custom 2D polygon extruded along local Z — for gussets, brackets, mão-francesa braces and cut plates. Points are [x, y] pairs in mm, authored counter-clockwise; the shape is centered and extruded by `thickness`.

## Parameters

- **`points`** — Array of [x, y] points (mm) tracing the outline counter-clockwise, at least 3. Do NOT repeat the first point (the shape closes automatically). No holes, no self-intersections (rejected with E_STATIC_PROFILE).
- **`thickness`** — Extrusion depth along the local Z axis (mm).

## Parameters schema

| Parameter | Type | Default | Constraints |
| --- | --- | --- | --- |
| `points` | Array | 0,0,100,0,0,100 |  |
| `thickness` | Number | 4 | min: 0.5 |
| `material` | String | — | allowed: steel |
| `color` | String | — |  |

## Ports

| Port | Type | Description |
| --- | --- | --- |
| `body` | `rigid` | Rigid structural port. Weld the profile between two members as a gusset/brace; carries no motion. |

## Example

```
// A right-triangle gusset, 120 x 120 mm, 5 mm steel:
statics.profile({
  id: 'gusset',
  points: [[0, 0], [120, 0], [0, 120]],
  thickness: 5,
  transform: { position: [0, 0, 0], rotation: [0, 0, 0] },
});
```
