BlenderBlender Basics

Curve modifier with Array: bending paths, chains, and rails along a curve

Fill a curve's length with copies of one plank using Fit Curve in Array (Legacy), then bend the row along a Bézier curve with the Curve modifier to make a wooden path. Real screens show what happens with the wrong axis, an object placed away from the curve, a swapped modifier order, or too few points, and how to fix each.

AZTechnology12 min read

한국어English

Based on: Blender 5.2 LTS (screenshots from 5.2.1, English interface, default shortcuts). Checked in November 2026. All images are real Blender screens. Red numbers, boxes, and the labels on comparison images were added for explanation. The Properties editor was widened so the text is easier to read.

Stepping-stone paths in a garden, railway sleepers, a bent chain: the same piece repeated along a curve comes up more often than you might think. If you copy and rotate each piece by hand, you have to start over every time the curve changes. The pair to use here is the Array modifier + Curve modifier.

Think of a train. The Array modifier joins identical cars in a line. The Curve modifier puts that train on the rails. When the rails bend, the line of cars bends with them. Move a point on the rail (the curve) and the whole path follows at once.

When you finish this guide, you will be able to do the following.

  1. Add a Bézier curve and set its size.
  2. Fill the curve's length with copies using Fit Curve in Array (Legacy).
  3. Bend the row along the curve with the Curve modifier.
  4. Tell from the shape of the result whether the axis, object position, modifier order, or point count is wrong.

Before you start

  • If the Array modifier is new to you, read Array modifier first. The Array (Legacy) fields used here are in section 5 of that post. Other modifiers are in Every Blender modifier in one list.
  • In Blender 5.2, the Add Modifier > Generate menu has both Array and Array (Legacy). This guide uses Array (Legacy), because it has Fit Curve, which sets the count from the length of a curve. If you set the new Array's Shape to Curve, it lays copies along the curve and turns them to follow its direction. To bend each plank itself, use the method in this guide.

1. Prepare the plank and the curve

Starting point: the default cube in a new file (File > New > General).

Follow along (plank):

  1. Select the cube. In the Properties editor's Object tab (orange square icon), enter Scale X 0.1, Y 0.6, Z 0.05. You get a plank 0.2 m wide, 1.2 m long, and 0.1 m thick.
  2. With the mouse over the 3D Viewport, press Ctrl+A > Scale. The current size becomes the original size and all Scale fields become 1. If you skip this, the spacing of the array is easily thrown off.

Follow along (curve):

  1. Press Shift+A > Curve > Bézier. If the 3D cursor is at the center (0, 0, 0), it appears in the same place as the plank. Its name is BézierCurve.
  2. Press Tab to enter Edit Mode, select all with A, scale it three times with S > 3 > Enter, then press Tab to leave.

Seen from above at an angle. One orange-outlined plank stands at the origin, with a gentle black S-shaped curve on both sides Figure 1. One plank at the origin and an S-shaped Bézier curve (Blender screenshot)

There is a reason to scale the curve in Edit Mode. If you scale it with S in Object Mode, the curve object's Scale field becomes 3, which makes length and bending harder to reason about. Scaling the points in Edit Mode keeps Scale at 1. It also matters that the plank and the curve share the same origin. If their origins differ, the row lands away from the curve, as in section 4-2.

2. Fill the curve's length with Array (Legacy)

Starting point: the plank and curve from the previous section. Click the plank to select it.

Follow along:

  1. In the Modifiers tab (wrench icon), choose Add Modifier > Generate > Array (Legacy).

The Generate submenu of Add Modifier. Just below Array at the top, the Array (Legacy) row has red box 1 Figure 2. The Generate menu. 1: Array (Legacy) (Blender screenshot)

  1. Change Fit Type to Fit Curve. When the Curve field appears below it, choose BézierCurve.
  2. Change Factor X under Relative Offset to 1.5. That is a step of 1.5 plank widths, which leaves a gap of half a plank between planks.

About twenty planks in a straight row going right from the origin. In the Array panel on the right, the Fit Type Fit Curve and Curve BézierCurve rows have box 1, and Relative Offset Factor X 1.500 has box 2 Figure 3. 1: Fit Type: Fit Curve, Curve: BézierCurve 2: Factor X 1.5 (Blender screenshot)

There are now enough planks to fill the curve's length (about 6.2 m). But they still run straight to the right from the origin, ignoring the curve. Fit Curve only decides "how many to make" from the curve's length. It does not bend anything. Make the curve longer and the plank count goes up. Make it shorter and the count goes down.

Fit TypeWhat sets the count
Fixed Count (default)The number in Count
Fit LengthThe length in Length
Fit CurveThe length of the chosen curve

3. Bend it with the Curve modifier

Starting point: the plank (Array (Legacy)) from the previous section.

Follow along:

  1. Choose Add Modifier > Deform > Curve. It is added below the Array panel.

The Deform submenu of Add Modifier. Below Armature and Cast, the Curve row has red box 1 Figure 4. The Add Modifier > Deform menu. 1: Curve (Blender screenshot)

  1. In the Curve panel, choose BézierCurve in the Curve Object field. Leave Deform Axis at the default X.

The row of planks bends along the S-shaped curve from start to end. On the right, a collapsed Array panel and an open Curve panel. The Curve Object BézierCurve and Deform Axis X rows have box 1 Figure 5. 1: Curve Object: BézierCurve, Deform Axis: X. The image shows the Array panel collapsed (Blender screenshot)

The straight row now bends along the curve from start to end. Each plank is also twisted to follow the curve. Now select the curve, press Tab to enter Edit Mode, and move a point or handle with G. The path changes along with the curve. If the curve gets longer, Fit Curve adds more planks.

The Curve panel has three fields.

FieldMeaning
Curve ObjectThe curve object to follow
Deform AxisWhich axis of the object follows the curve. X, Y, Z, and the opposite directions -X, -Y, -Z
Vertex GroupIf set, only that group of points bends

4. When the result looks wrong: find the cause from the shape

4-1. The row heads off in the wrong direction: Deform Axis

Starting point: the bent row of planks from the previous section.

Follow along: change Deform Axis in the Curve panel to Y. After checking, set it back to X.

Two panels. X: the row bends along the curve. Y: the row leaves the curve and runs diagonally to the upper left Figure 6. Deform Axis. Left X, right Y (Blender screenshot)

Deform Axis must match the direction the array runs in. In section 2 we used Factor X, so it is X. If you laid the array out along Y, choose Y. If you want the row to start from the other end of the curve, choose -X.

4-2. The row bends but sits away from the curve: object position

Starting point: the bent row from the previous section (Deform Axis X).

Follow along: select the plank and move it with G > Y > 1.5 > Enter.

The row of planks bends in the same shape as the curve but sits above it, running parallel Figure 7. The plank moved 1.5 m on Y. The bend is the same, but the row sits away from the curve (Blender screenshot)

The Curve modifier uses where the object sits relative to the curve as is. If the object is offset sideways from the curve, it bends in parallel at that distance. Sometimes you want this, like a fence beside a railway. But if the path should sit right on the rail, put the plank's origin at the curve's origin. Press Alt+G to reset the plank's position to 0.

4-3. Planks scattered and tilted: modifier order

Starting point: the plank with its position reset in the previous section.

Follow along: click the down arrow at the top right of the Curve panel > Move to First to move Curve above Array. After checking, use Move to Last in the same menu to put it back.

Two panels. Array > Curve: planks follow the curve closely. Curve > Array: only five planks, scattered above and below the curve and tilted Figure 8. Modifier order. Left Array then Curve, right Curve then Array (Blender screenshot)

Modifiers are calculated from top to bottom. If Curve comes first, a single plank is bent to the curve, and then Array copies that bent plank at fixed steps. So the copies do not follow the curve. They sit scattered with the same tilt. Array first, Curve second makes "the whole row" follow the curve.

4-4. A long object does not bend: point count

Starting point: select the plank from the previous section and hide it with H. Keep the curve.

The plank path bent well because it is made of many short pieces. One long object, like a rail, is different.

Follow along:

  1. Press Shift+A > Mesh > Cube, and set Size to 1 m in the Add Cube panel.
  2. Press Tab > A, then make it long with S > X > 6.2 > Enter, S > Y > 0.1 > Enter, and S > Z > 0.1 > Enter.
  3. Move it with G > X > 3.1 > Enter so the origin is at the rail's left end, then press Tab to leave. This is the same place where the plank row started at the origin and went right.
  4. Add Add Modifier > Deform > Curve and choose BézierCurve as the Curve Object.
  5. Click the arrow next to Viewport Overlays (the two overlapping circles icon) and turn on Wireframe to see the points and edges.

Two panels. 8 vertices: the long bar stays straight, ignoring the curve. Subdivided: the same bar, split into dense lines, bends smoothly along the S-shaped curve Figure 9. Left, a rail with 8 points. Right, the rail split into small pieces (Blender screenshot)

A bar with points only at its ends stays straight, as on the left of Figure 9. The Curve modifier moves points. The faces between points are flat panels and cannot bend. To bend, an object needs many points along the direction of the bend.

  1. Select the rail, press Tab > A, and choose Edge > Subdivide. In the Subdivide panel at the bottom left, set Number of Cuts to 30, then press Tab to leave.

Now it bends smoothly, as on the right of Figure 9. But Subdivide splits in every direction, so the point count grows a lot (this rail has more than 5,000). To split only along the length, adding loops on the long side with Ctrl+R (Loop Cut) is lighter. For a chain made of link pieces, joining short pieces with Array as in section 2 is easier, because the points are even from the start.

Practice

  1. Select the curve, and in Edit Mode drag one end point far away with G. Check whether the number of planks goes up.
  2. Instead of a plank, add Shift+A > Mesh > Torus and make a chain the same way. With Relative Offset Factor X below 1, the links overlap.
  3. Change Deform Axis to -X and see which end of the curve the row starts from.

Common mistakes and fixes

SymptomCauseFix
Planks line up straight and do not bendNo Curve modifier (Fit Curve only sets the count)Add Deform > Curve (section 3)
The row leaves the curve and heads offDeform Axis does not match the array directionIf the array runs along X, use X (section 4-1)
The row sits beside the curveThe object is in a different place from the curvePut the origins together, Alt+G (section 4-2)
Copies are scattered with the same tiltCurve is above ArrayArray first, Curve second (section 4-3)
A long object does not bend along the curveNo points along the bendAdd points with Subdivide or Loop Cut (section 4-4)
Fit Type has no Fit CurveThe new Array was addedAdd Generate > Array (Legacy)
Plank spacing looks wrongThe plank's scale was not appliedCtrl+A > Scale on the plank, then check again

Summary

Plank and curve share the same origin, apply scale, fill the count with Array (Legacy) Fit Curve, add Curve below it, set Deform Axis to the array direction, and add points to long objects first.

In the next guide, Displace and Shrinkwrap modifiers, you make bumpy ground and stick a path onto it.

Previous: Screw modifier · Next: Displace and Shrinkwrap modifiers · Whole series: Every Blender modifier in one list

References

KEEP EXPLORING

Read next

EEVEE render of a red cloth pinned at three points along its top edge, hanging down over a gray floor (Blender render)Blender
Blender Basics15 min read

Blender 5.2 LTS hands-on: node physics, new geometry nodes, EEVEE, and online assets

We try the big changes in Blender 5.2 LTS, released in July 2026, on real 5.2.1 screens: node-based cloth physics, the Mesh Bevel and Sample Sound Frequencies nodes, EEVEE settings, online asset libraries, and the now built-in To Circle. We also list what changed for older files and scripts.

Cup model with Face Orientation on. Two areas, lower left and upper right, are red and the rest is grey, with a handle on the rightBlender
Blender Basics14 min read

Checking a model before 3D printing: find and fix holes, flipped faces and overlaps with built-in Blender tools

Use one deliberately broken cup to find holes, flipped faces and overlapping parts with Face Orientation, Non Manifold selection and the Intersect check in Mesh Analysis, then fix them with Recalculate Outside, Fill Holes and Boolean, and run a final check.

The same night scene rendered twice side by side. Left: the original with three street lamps, a house, a box, and a blue ball. Right: the composited version, with a soft glow around the lamps and windows and darker edges (Blender render)Blender
Blender Basics14 min read

Blender compositor basics: color grading, glow, and vignette after rendering

In the Compositing workspace of Blender 5.2, we create a new node tree, adjust the colors of a rendered image with Color Balance, add a glow around lights with Glare, darken the edges with Vignette, and save the result to a file.

blender.org download page. Top: LATEST RELEASE Blender 5.2.3 LTS. Bottom: UPCOMING RELEASE Blender 5.3 and Expected November 10, 2026Blender
Blender Basics8 min read

Blender LTS or the regular release: how the 4-month cycle and 2-year support work

Learn from the official documents how Blender ships a new version every four months and picks one per year as an LTS fixed for two years, which of 5.2 LTS and the coming 5.3 to choose now, and how settings stay separate when you install both.

Twelve cubes standing in a circle with a 6 m radius. Red numbers on the Shape Circle, Count 12 and Radius 6 m rows of the Array panelBlender
Blender Basics10 min read

Array modifier: rows, stairs and circles from a single object

Use the new Array modifier (new since Blender 5.0) to line up the default cube, set spacing and build stairs with Offset, and arrange copies in a circle with Shape Circle. Also see how the Array (Legacy) panel from older tutorials maps to the new one.

A cube with only the four top edges rounded and the vertical side edges still sharp. Red numbers on the Limit Method Weight and Edge Weight bevel_weight_edge rows of the Bevel panelBlender
Blender Basics11 min read

Bevel modifier: round edges, and only the ones you want by angle or weight

Round edges with Amount and Segments in the Bevel modifier, choose which edges to bevel with the Angle and Weight limit methods, and see how Clamp Overlap keeps the shape clean when the bevel is too wide, using the default cube and a cylinder.