Vector
A resolution-independent path pipeline. Import an SVG, clone and deform it as vector data, recolor it, then either rasterize it to a 2D texture or extrude it into 3D geometry.
Vector nodes pass a vector scene between each other (the teal port), so transforms like Repeat, Trim and Effector stay crisp at any output size. The chain always starts with Vector Import and ends with either Vector Render (to the 2D pipeline) or Vector Extrude (to a 3D scene).
Vector Import
vectorImportVectorLoads an SVG file from disk and exposes the parsed vector scene on its output port.
| Port | Type | Default | Range | Notes |
|---|---|---|---|---|
| vector | vector | , | , | Parsed scene; re-loads when the file path changes. |
The source of every vector chain. The SVG path is set from the inspector (not a port) and registered with the media library, so it travels with saved projects. Outputs an empty scene when no file is set or loading fails. Feed its vector output into Effector, Repeat, Trim, Random Color, Render or Extrude.
Vector Effector
vectorEffectorVectorMograph-style effector applying jitter, wave displacement and an affine transform to a vector scene.
| Port | Type | Default | Range | Notes |
|---|---|---|---|---|
| vector | vector | , | , | Scene to transform. |
| translateX | float | 0 | -500 – 500 | |
| translateY | float | 0 | -500 – 500 | |
| rotation | float | 0 | -3.14159 – 3.14159 | About the scene center (radians). |
| scale | float | 1 | 0 – 4 | Uniform scale about the center. |
| jitter | float | 0 | 0 – 100 | Seeded per-vertex random displacement. |
| jitterSeed | float | 0 | 0 – 1000 | |
| waveAmp | float | 0 | 0 – 100 | Sine displacement amplitude along Y. |
| waveFreq | float | 0.02 | 0 – 0.5 | |
| wavePhase | float | 0 | 0 – 6.28319 | Animate to scroll the wave. |
| Port | Type | Default | Range | Notes |
|---|---|---|---|---|
| vector | vector | , | , | Transformed scene; viewBox passed through. |
Operations apply in order: seeded per-vertex jitter, a sine wave along Y modulated by X, then an affine scale→rotate→translate about the scene center. Bezier control points get the affine but not the jitter, so curves stay smooth. Chain several effectors to stack motion.
Vector Repeat
vectorRepeatVectorClones the input scene N times in a grid or radial pattern with progressive per-clone transforms.
| Port | Type | Default | Range | Notes |
|---|---|---|---|---|
| vector | vector | , | , | Scene to clone. |
| mode | float | 0 | 0 – 1 | 0 = grid, 1 = radial. |
| count | float | 8 | 1 – 256 | Number of clones. |
| cols | float | 4 | 1 – 64 | Columns (grid mode). |
| spacingX | float | 120 | 0 – 1000 | Horizontal spacing (grid). |
| spacingY | float | 120 | 0 – 1000 | Vertical spacing (grid). |
| radius | float | 200 | 0 – 2000 | Ring radius (radial). |
| startAngle | float | 0 | -3.14159 – 3.14159 | Start angle, radians (radial). |
| spanAngle | float | 6.28319 | 0 – 6.28319 | Angular span; default is a full circle. |
| alignToRadius | bool | false | , | Rotate each clone to face outward. |
| scaleStep | float | 0 | -1 – 1 | Scale added progressively across clones. |
| rotationStep | float | 0 | -3.14159 – 3.14159 | Rotation per clone index (radians). |
| Port | Type | Default | Range | Notes |
|---|---|---|---|---|
| vector | vector | , | , | Cloned scene; viewBox grows to fit every clone. |
Each clone receives an additive per-index transform (progressive scale and rotation) around the center, and the output viewBox expands to the union of all clones so nothing gets cropped. Pair with Vector Random Color for cloner / confetti looks.
Vector Trim
vectorTrimVectorCrops every path to an arc-length window for drawn-line and traveling-dash effects.
| Port | Type | Default | Range | Notes |
|---|---|---|---|---|
| vector | vector | , | , | Scene to trim. |
| start | float | 0 | 0 – 1 | Window start, fraction of path length. |
| end | float | 1 | 0 – 1 | Window end, fraction of path length. |
| offset | float | 0 | -1 – 1 | Wraps start/end together; animate for marching dashes. |
| flattenSamples | float | 16 | 4 – 64 | Bezier flattening resolution. |
| Port | Type | Default | Range | Notes |
|---|---|---|---|---|
| vector | vector | , | , | Trimmed paths become open polylines. |
Each path is flattened, measured, and only the portion inside [start, end] is emitted, splitting partial segments to land exactly on the requested fraction. When start > end the window wraps the seam. Animating end 0→1 gives the classic self-drawing line.
Vector Random Color
vectorRandomColorVectorRandomizes each path's fill (and optionally stroke) along a gradient between two colors.
| Port | Type | Default | Range | Notes |
|---|---|---|---|---|
| vector | vector | , | , | Scene to recolor. |
| colorA | color | (0.95, 0.30, 0.65, 1) | , | Gradient endpoint A. |
| colorB | color | (0.40, 0.75, 1.00, 1) | , | Gradient endpoint B. |
| amount | float | 1 | 0 – 1 | Blend toward the random color vs. the original. |
| seed | float | 0 | 0 – 1000 | Deterministic per-path seed. |
| affectFill | bool | true | , | Recolor each path's fill. |
| affectStroke | bool | false | , | Recolor each path's stroke. |
| hsvBlend | bool | true | , | Interpolate in HSV instead of RGB. |
| Port | Type | Default | Range | Notes |
|---|---|---|---|---|
| vector | vector | , | , | Recolored scene; geometry unchanged. |
A random t per path picks a color along colorA→colorB (HSV-aware when hsvBlend is on), blended into the path’s existing color by amount. Pairs naturally with Vector Repeat for mograph-cloner color variety.
Vector Render
vectorRenderVectorRasterizes a vector scene into an sRGB texture for the regular 2D pipeline.
| Port | Type | Default | Range | Notes |
|---|---|---|---|---|
| vector | vector | , | , | Scene to rasterize. |
| background | color | (0, 0, 0, 0) | , | Painted only when alpha > 0; otherwise transparent. |
| useFillOverride | bool | false | , | Override each path's baked SVG fill. |
| fillColor | color | (1, 1, 1, 1) | , | |
| useStrokeOverride | bool | false | , | Override each path's baked SVG stroke. |
| strokeColor | color | (0, 0, 0, 1) | , | |
| strokeWidth | float | 0 | 0 – 20 | Extra width on top of baked; 0 = none. |
| lineCap | float | 1 | 0 – 2 | 0 butt, 1 round, 2 square. |
| lineJoin | float | 1 | 0 – 2 | 0 miter, 1 round, 2 bevel. |
| dashLength | float | 0 | 0 – 200 | Dash & gap both 0 = solid. |
| gapLength | float | 0 | 0 – 200 | |
| dashOffset | float | 0 | -1000 – 1000 | Animate for marching dashes. |
| Port | Type | Default | Range | Notes |
|---|---|---|---|---|
| texture | texture | , | , | sRGB premultiplied, square at the node's resolution. |
The bridge back into the 2D world. Draws the scene fit to its viewBox with aspect preserved, re-rasterizing only when the scene or a parameter changes. Output resolution is set from the inspector (default 1024). Pipe its texture into Post-FX or straight to an output.
Vector Extrude
vectorExtrudeVectorExtrudes each closed path of a vector scene along Z into a 3D mesh.
| Port | Type | Default | Range | Notes |
|---|---|---|---|---|
| vector | vector | , | , | Only closed paths with ≥3 points are used. |
| depth | float | 0.2 | 0 – 4 | Extrusion depth along Z. |
| bezierSegments | float | 8 | 1 – 32 | Bezier flattening resolution. |
| smoothSides | bool | false | , | Normalize side-wall normals. |
| albedoColor | color | (0.95, 0.30, 0.65, 1) | , | Mesh albedo. |
| Port | Type | Default | Range | Notes |
|---|---|---|---|---|
| geometry | geometry | , | , | Extruded mesh for a Scene3D geo slot. |
Turns flat SVG art into solid geometry: each closed path is triangulated into a front face, mirrored to a back face, and joined by side walls, normalized into a unit cube via the viewBox. Connect its geometry output to a Scene3D geo_* slot. Compound paths with holes are filled (no cutouts yet).