# GeoCard

> GeoCard node.

| Node | GeoCard |
|---|---|
| Menu | 3D › GeoCard |
| **Names in each format** | |
| .oink comp (JSON) | `"type": "OC_N_geocard"` |
| .nk script | `GeoCard`, also imports `Card`, `Card2` ([how .nk import works](/docs/nuke-users/nk-import)) |
| Python | `nuke.createNode("GeoCard")` |
| Assistant (MCP) | `create_node(type="GeoCard")` |
| Tab search | `geocard`, or its initials `gc` |

![GeoCard properties](/shots/nodes/geocard@2x.webp)

## Inputs and outputs

| Port | Name | Type |
|---|---|---|
| input 0 | scene | scene |
| input 1 | mat | image |
| output 0 | scene | scene |

## Knobs

Panel tab **Geocard**, in panel order.

| Knob | Label | Type | Default | Range / values | .nk knob | Description |
|---|---|---|---|---|---|---|
| `orientation` | orientation | menu | `XY` | XY, YZ, ZX | `orientation` |  |
| `image_aspect` | image aspect | bool | `true` |  | `image_aspect` |  |
| `rows` | rows | float | `8` | 1 to 512 (integer) | `rows` |  |
| `columns` | columns | float | `8` | 1 to 512 (integer) | `columns` |  |
| `z` | z | float | `1` | 0 to 100 | `z` |  |
| `lens_in_focal` | lens-in focal | float | `1` | 0.001 to 100 | `lens_in_focal` |  |
| `lens_in_haperture` | lens-in h.aperture | float | `1` | 0.001 to 100 | `lens_in_haperture` |  |
| `display_color` | display color | colour ×3 | `1, 1, 1` | 0 to 1 | `display_color` |  |
| `display_opacity` | display opacity | float | `1` | 0 to 1 | `display_opacity` |  |
| `double_sided` | double sided | bool | `false` |  | `double_sided` |  |
| `prim_path` | prim path | text |  |  | `prim_path` |  |
| `xform_order` | transform order | menu | `SRT` | SRT, STR, RST, RTS, TSR, TRS | `xform_order` |  |
| `rot_order` | rotation order | menu | `ZXY` | XYZ, XZY, YXZ, YZX, ZXY, ZYX | `rot_order` |  |
| `translate` | translate | vector ×3 | `0, 0, 0` | -100 to 100 | `translate` |  |
| `rotate` | rotate | vector ×3 | `0, 0, 0` | -180 to 180 | `rotate` |  |
| `scaling` | scale | vector ×3 | `1, 1, 1` | 0 to 10 | `scaling` |  |
| `uniform_scale` | uniform scale | float | `1` | 0 to 10 | `uniform_scale` |  |
| `skew` | skew | vector ×3 | `0, 0, 0` | -1 to 1 | `skew` |  |
| `pivot_translate` | pivot translate | vector ×3 | `0, 0, 0` | -100 to 100 | `pivot_translate` |  |
| `pivot_rotate` | pivot rotate | vector ×3 | `0, 0, 0` | -180 to 180 | `pivot_rotate` |  |

### Other knobs (Python, .nk and the assistant; not on the panel)

| Knob | Label | Type | Default | Range / values | .nk knob | Description |
|---|---|---|---|---|---|---|
| `gl_color` | Viewer Controls Color | float ×3 | `0, 0, 0` | 0 to 1 |  |  |
| `postage_stamp_frame` | Static Frame | int | `1` | -2147483648 to 2147483647 |  |  |
| `lifetimeStart` | Lifetime Start | int | `0` | -2147483648 to 2147483647 |  |  |
| `lifetimeEnd` | Lifetime End | int | `100` | -2147483648 to 2147483647 |  |  |
| `useLifetime` | Use Lifetime | boolean | `false` |  |  |  |
| `cached` | Cached | boolean | `false` |  |  |  |
| `bookmark` | Bookmark | boolean | `false` |  |  |  |
| `dope_sheet` | Dope Sheet | boolean | `false` |  |  |  |
| `clone_group` | Clone Group | string |  |  |  |  |
| `link_source` | Link Source | string |  |  |  |  |
| `link_overrides` | Link Overrides | string |  |  |  |  |
| `split_views` | Split Views | string |  |  |  |  |

## Knob names in .nk scripts

| .nk knob | Knob here |
|---|---|
| `pivot` | `pivot_translate` |

Other .nk knobs use the same name here. See [.nk import](/docs/nuke-users/nk-import).

## Examples

Open these from **Help › Examples…**, or from the **?** menu in this node's Properties panel.

- **ScanlineRender: a textured card and a camera** (`examples/3d/scanline_card_camera.oink`): The classic Nuke 3D setup: a photo textures a Card, the Scene gathers geometry, a Camera looks at it and ScanlineRender draws it over a background. Move the Camera or the Card to see the perspective change.


---
Sources: opencomp_core/nodes/three_d/geo.py, opencomp_electron/src/components/properties/knobSchema.ts, opencomp_core/nk/mapping.py
