Vector fields
A formula that hands you an arrow — a direction and a length — at every point in space.
What it is
A vector field answers one question, everywhere: which way, and how hard?
Ask it at any point and it gives back an arrow. The arrow's direction is where to go; its length is how strongly. Wind blowing left-to-right, water swirling down a drain, heat rising off a surface — all of these are vector fields.
Like every Fields, it's a formula, not stored data. There's nothing baked in a grid until you ask for it, so it has no fixed resolution and costs no memory. Sample it at a million points or one — same field.
A vector field is the close cousin of a Scalar fields (one number per point) and a Colour fields (a colour per point). Same idea, different payload: here the payload is an arrow.
An arrow needs three numbers (an x, y and z amount), so a vector field naturally lives in 3D. In a flat 2D scene the third amount simply stays at zero.
When to reach for it
Reach for a vector field whenever you want to push, flow, or steer something:
Drive a simulation. Wind, currents, turbulence, attractors and vortices are all vector fields. In the simulation world these show up as forces — see simulation.force_field and Forces & collisions.
Carry particles along. Feed a field to a particle system and each particle reads the arrow under it and drifts that way. Curl noise makes beautiful smoke-like swirls because it never sources or sinks — the flow only curls.
Displace geometry with direction. A scalar field can only say how far to push; a vector field says which way and how far at once. Great for directional bulges, combing, and flow-aligned detail with effect.displace.
Paint directions onto points. Sample a field onto a collection to fill in a velocity or facing attribute (
@v,@N) per point — see Attributes.
How to use it
Make one. A few common starting points:
Curl noise — turbulent, swirling flow that's perfect for smoke, dust, and organic drift. This is the default look of a fresh vector field.
Force shapes — a uniform directional push, a point attractor or repulsor, a swirling vortex around an axis, or turbulence. Each can fade out with distance using a falloff and radius.
Gradient of a scalar field — point a scalar field at it and you get arrows pointing "uphill" (toward higher values). This is how you turn a shape or a height into a flow that pushes away from it.
An Expression — write the arrow directly as a formula of position and time.
From a texture or a Volume — read stored direction data (a flow map, a baked simulation grid) back as a field.
Combine them. Add fields together, blend between two, or scale one up — layer a steady wind with a little turbulence and you get gusty, believable motion.
Read it. Anything downstream samples the field at its own points: a particle reads the arrow at its position, a displace reads the arrow at each vertex, a sample node reads it onto a collection.
A force field and a vector field are the same idea seen from two sides. A directional, point, vortex, or turbulence force is a vector field with a falloff envelope around it — so you can build a force, or build a raw field and wire it in as one.
Gotcha
Most vector fields are pure formulas and run anywhere, instantly. But a field built from painted strokes, a texture, or a Volume carries real stored data — when something needs it on the GPU it gets automatically converted (baked) into a grid first. That's seamless, but it does pin the field to a resolution at that moment, so pick a bake resolution that matches the detail you need.
Also remember the arrow has a length, not just a direction. If your push feels too weak or too violent, you're usually tuning the field's strength, not its shape.
See also
Forces & collisions · simulation.force_field
effect.displace · The Expression language