Surface

A parametric surface, as mesh or points, from a base preset over a UV domain. Wire a function into Position to deform it and into Color to paint it.

What it does

Surface turns a function into a shape. Pick a Base (Plane, Sphere, Torus, Tube, or Disc) and a grid of points is laid out across it. On its own that gives a plain primitive canvas. Wire a Field into Position and the function drives every point, bending, rippling, and growing the canvas into a shape.

The wired function is polymorphic. A single-value field, a Noise or a greyscale ramp, reads as height and pushes each point out along the surface, giving a heightfield or a bumpy sphere. A multi-value field, an Evolve pattern or an RGB image, replaces each point outright with its own coordinates, which is the full parametric surface. Wire a Field into Color the same way to paint every point from the graph. Leave both unwired for the plain base primitive.

Function Preset supplies a built-in deformation with nothing wired: Ripple and Wave lift the surface like a height field, Bloom blossoms it into a five-petal flower. Presets are tuned for the Plane canvas and work on any base. A wired Position always takes over from a preset.

U Resolution and V Resolution set how finely the grid is subdivided along each direction, and can be re-dialled at any time without rebuilding. Output switches between a triangulated Mesh and a raw point cloud (Points).

When to use it

ParameterTypeDefaultWhat it does
positionField"None"Function driving vertex position f(u,v). A single-value field lifts the surface as a height; a colour or image field (e.g. Noise) lifts it by brightness — a bump map; a vector field replaces each vertex outright (the parametric math-animal). A time-reading field animates over the timeline. Picking Wave or Ripple drops the Pattern node that generates it into the graph, wired here — edit it like any other node. Unwired: the pure base preset. One of: None, Wave, Ripple.
colorField—Function driving per-vertex color f(u,v), sampled where each vertex sits. Unwired: uses Fill.
fillColor or Color Field or Color[] or Field or Material or Material[] or Frame Sequence——
baseString"Plane"Base shape. Plane: a flat (u,v) domain reinterpreted by Coordinate System. Sphere/Torus: identical to the respective primitive. Tube: an open lateral cylinder (u wraps the circumference, v runs the height; no caps). Disc: a filled flat circle in the XZ plane (u wraps the circumference, v runs from the center to the rim). One of: Plane, Sphere, Torus, Tube, Disc.
u_resolutionNumber32Subdivisions along u (grid columns). Runtime uniform — a drag re-tessellates without recompiling.
v_resolutionNumber32Subdivisions along v (grid rows). Runtime uniform — a drag re-tessellates without recompiling.
coordinate_systemString"Cartesian"How the Plane (u,v) domain is embedded. Cartesian: flat grid. Spherical / Cylindrical: parametric shell. (Fixed presets emit their own shape and ignore this.). One of: Cartesian, Spherical, Cylindrical.
outputString"Mesh"Output form. Mesh: a triangulated surface. Points: the raw vertex point cloud (skips triangulation), carrying @P/@N/@Cd/@uv per point. Field: an analytical Field::Record(geometry_surface) instead of a baked mesh — Sphere/Torus become a closed-form CSG-able SDF (identical to the primitive's), while Plane/Tube/Disc (or ANY base with a wired Position) become an analytic-parametric surface: lazily re-tessellatable at any resolution, but with no signed distance (an open/flat/freely-drawn surface has no inside/outside, so SDF booleans decline honestly). Mesh consumers get the tessellation spliced transparently. One of: Mesh, Points, Field.
obj_positionVec3(0, 0, 0)Translation (X, Y, Z)
obj_rotationVec3(0, 0, 0)Rotation in degrees (X, Y, Z)
obj_scaleVec3(1, 1, 1)Scale (X, Y, Z)
obj_anchorVec3(0, 0, 0)Pivot offset (X, Y, Z) — rotation/scale orbit this point
opacityNumber1Layer opacity (0 = transparent, 1 = opaque). Editable, wirable, keyframable.

Gotchas

A wired Color drives the mesh's per-point colour, and has no home in the Analytical Sphere or Torus shape, which carries no colour of its own. Use Color with Analytical off, or drive the analytic shape's appearance from a Material or Fill downstream.

Analytical is available only when Output is Mesh. With it on, a Sphere or Torus becomes an equation-defined shape: resolution-independent and ready for Distance Field booleans, exactly like the Sphere and Torus primitives. A Plane, Tube, or Disc, and any base carrying a wired Position function, becomes an analytic-parametric surface: still re-tessellatable at any resolution, but with no signed distance, so a Distance Field boolean declines rather than inventing a solid from an open or freely-drawn surface.

Coordinate System applies only to the Plane base. Plane is the raw grid that Cartesian, Spherical, and Cylindrical reinterpret into a flat sheet, a spherical shell, or a cylinder. The other bases (Sphere, Torus, Tube, Disc) carry their own shape, so Coordinate System is hidden for them, and a function wired onto those bases is applied on top of the base shape.

A single-value field into Position lifts the surface along its normal; a multi-value field, a vector or a colour, replaces the surface outright. Both are valid on every base, so the same noise gives a bumpy sphere or a rolling plane depending on the Base.

Function Preset and a wired Position drive the same thing, so a wired Position wins and the preset dropdown hides once Position is connected. Use a preset to sketch, then wire Position for full control.

Worked example

  1. Add a Surface node. Leave Base on Plane for a flat grid. Try a Function Preset (Ripple, Wave, or Bloom) for an immediate deformed surface.

  2. For full control, add an Evolve node and wire it into Position (this takes over from any preset). The plane deforms into a surface driven by the pattern.

  3. Wire a second Evolve (or the same one) into Color to paint every point from the graph.

  4. Set Coordinate System to Spherical to wrap the parametric surface around a shell instead of a flat sheet.

  5. Play the timeline: if the wired pattern changes with time, the surface animates as the playhead moves. Raise U Resolution and V Resolution for a smoother result.

  6. Switch Output to Points for a sampled point cloud, or turn Analytical on (Sphere/Torus) for a resolution-independent analytic shape.

See also

Evolve · Sphere · Torus · Plot