Sweep
Sweep a 2D profile along Z (Linear), around an axis (Revolve), along an input curve (Path), or as a tube wrapping an input curve (Tube / Polywire).
What it does
Sweep turns a 2D profile into a 3D shape. Mode drives the build: Linear pushes the profile straight out along Z, Revolve spins it around an axis into a lathe, Path drags a cross-section along an input curve, and Tube wraps an automatic N-sided pipe around an input curve with no profile at all.
Every mode can come out as an analytic shape, crisp at any zoom, ray-marched, and suited to flat 2D-feeling results, or as a tessellated triangle mesh for the conventional 3D pipeline: shadows, mesh operations, subdivision downstream. Analytical toggles between them. Revolve is the exception and always produces an analytic shape today.
When to use it
A flat outline turned into a solid: a logo, a badge, or a UI icon extruded into a 3D slab (Linear)
A lathe-style object spun from a cross-section profile: a bottle, a wheel, a vase (Revolve)
A cross-section following a curve: a moulding, a rail, a custom-profile pipe (Path)
A round tube or cable wrapped around a curve with no profile authoring: wiring, rope, piping (Tube)
| Parameter | Type | Default | What it does |
|---|---|---|---|
profile | Primitives or Curve | — | Linear / Revolve: 2D CRC profile to sweep. Path: cross-section profile. Tube: curve to wrap a tube around (no profile needed — auto-generated circle). |
path | Curve or Primitives | — | Curve to sweep along (Path mode only). |
scale | Any | 1 | Cross-section scale. Wire an easing curve or NumberArray for a taper profile along the path (multiplies the slider); a per-anchor @scale channel on the path also multiplies. |
mode | String | "Linear" | Linear: along Z. Revolve: around an axis. Path: sweep profile along input curve. Tube: auto-circle wrapped around input curve (Polywire). One of: Linear, Revolve, Path, Tube. |
depth | Number | 50 | Extrusion depth along Z. |
rounding | Number | 0 | Rounded bevel radius on top/bottom edges. |
center | Boolean | true | Center the extrusion around Z=0 instead of running 0..depth. |
cap | Boolean | true | Cap end faces. Linear: pending — always capped. Path/Tube: ear-clip triangulation, handles convex and concave profiles. |
segments | Number | 32 | Number of cross-section rings sampled along the sweep path. |
profile_tolerance | Number | 0.500 | Bezier flattening tolerance for the profile outline (smaller = smoother). |
twist | Any | 0 | Total twist (degrees) distributed across the sweep rings. Wire an easing curve or NumberArray for a per-ring twist profile (adds to the slider's linear ramp); a per-anchor @twist channel on the path also adds. |
revolve_angle | Number | 360 | Revolve angle in degrees (around Y). |
revolve_offset | Number | 0 | Radial offset of the profile from the rotation axis. |
revolve_axis | String | "Y" | Revolution axis. X / Z pre-rotate the profile so the same Y-axis lathe primitive produces the requested orientation. One of: X, Y, Z. |
radius | Any | 5 | Tube radius in world units. Wire an easing curve or NumberArray for a radius profile along the curve (multiplies the slider); a per-anchor @width channel on the curve replaces the base radius. |
sides | Number | 8 | Number of sides on the tube cross-section. Houdini Polywire default is 8. |
analytical | Boolean | false | Emit Value::Crc (analytical extruded shape, ray-marched) instead of a tessellated triangle mesh. Linear / Path / Tube modes support both; Revolve always emits CRC regardless of this toggle. |
strength | Number | 1 | Effect strength / wet-dry (0 = no effect, 1 = full). Editable, wirable, keyframable. |
Gotchas
Revolve always outputs an analytic shape. The Analytical toggle has no effect there, since no mesh path is wired for revolve yet, so turning it off is silently ignored.
On Tube with Analytical on, the output is the variable-radius analytic tube, and Twist and Cap stop doing anything. A swept circle is the same shape at every twist angle, and the analytic tube always renders its own end caps. Both only matter with Analytical off, on the tessellated mesh path.
Scale, Twist, and Radius each accept more than a number. Leave one as a plain number for a uniform value, or wire in an easing curve or number array for a per-ring profile along the sweep: a taper, a gradual twist, a radius profile. A per-point width or scale channel on the curve being swept along rides along too and combines with whatever is wired in.
Radius behaves differently by source: a wired curve or array multiplies the slider value, while a width channel authored on the input curve is treated as an absolute radius and replaces the slider outright.
Worked example
Add a Sweep and wire a 2D profile (from Circle, Rectangle, or Pen) into Profile.
Leave Mode on Linear and raise Depth to push the profile into a solid. Turn on Center to straddle the origin rather than run from 0 forward.
Switch Mode to Path, wire a curve into Path, and the profile follows it. Raise Segments for a smoother sweep on tight curves.
Try Tube mode instead: remove the profile, wire only a curve, and adjust Radius and Sides for a pipe or cable with no profile authoring.
Toggle Analytical to compare the ray-marched shape against the tessellated mesh, and pick whichever suits your downstream needs (mesh operations against crisp analytic edges).
See also
Circle · Pen · Mesh · Geometry (meshes)