Create POP geometry
create_pop_geometryCreate procedural POP geometry by building a SOP chain from primitive to render, with optional subdivision and noise displacement, and expose control knobs.
Instructions
Procedural Op Pattern (POP) geometry generator: build a SOP chain inside a Geometry COMP — primitive (box/sphere/tube/torus/grid/line/text) → Transform SOP (translate/rotate/scale) → optional Subdivide SOP → optional per-point Noise SOP displacement → Material SOP (Constant MAT) → Null SOP — then render through a Camera + Light + Render TOP to a Null TOP. Creates a new baseCOMP under parent_path. Exposes a RotateY control; NoiseAmount + NoisePeriod are exposed only when noise_amount > 0 (otherwise the Noise SOP is omitted and those knobs would be inert). Use build_sop_geometry for a fully declarative SOP chain without a render rig; use create_3d_scene for instanced primitives, create_pbr_scene for PBR shading.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| primitive | No | Base geometry primitive. Each maps to its stock SOP (boxSOP/sphereSOP/tubeSOP/torusSOP/gridSOP/lineSOP/textSOP). | box |
| translate | No | Translation [tx,ty,tz] applied via a Transform SOP after the primitive. | |
| rotate | No | Rotation [rx,ry,rz] in degrees applied via the same Transform SOP. | |
| scale | No | Per-axis scale [sx,sy,sz] applied via the same Transform SOP. [1,1,1] = unchanged. | |
| subdivisions | No | Optional subdivision count. When > 0 a Subdivide SOP runs after the Transform SOP at this depth, then a per-point Noise SOP works on the denser mesh. | |
| noise_amount | No | Displacement amount of the per-point Noise SOP (0 = bypassed; ~0.1..1 typical for organic warp). | |
| noise_period | No | Spatial period of the displacement noise. Larger = wider/softer ripples; smaller = tighter detail. | |
| text_string | No | When `primitive` is 'text', the string fed into the textSOP. Ignored for other primitives. | tdmcp |
| expose_controls | No | When true (default), expose live knobs on the container: RotateY always, plus NoiseAmount + NoisePeriod only when noise_amount > 0 (otherwise the Noise SOP is omitted and exposing the knobs would be inert). | |
| base_name | No | Optional base name for the container (defaults to 'pop_geometry'). Final container path is `<parent_path>/<base_name>` with TD's auto-suffix. | |
| parent_path | No | Parent network where the POP geometry container is created (default '/project1'). | /project1 |