The 3D Handbook
Topic

Spline meshes: roads, pipes and cables

Bending straight kit pieces along curves to build roads, pipes, cables, fences and walls; Unreal Spline Mesh components and landscape splines, Blender's Curve modifier and Houdini's Sweep, and how to model a piece that deforms cleanly.

modelingenvironmentunrealblenderhoudiniprocedural

A spline mesh is a straight piece of geometry that is bent along a curve (a spline). You model one short, straight segment of road, pipe, cable, fence or wall, and the engine or modeling tool repeats and deforms it along a path you draw. Epic describes landscape splines as "a powerful toolset for creating roads, paths, fences, and other long, contiguous features" (Unreal Engine 5.8 documentation: Landscape Splines in Unreal Engine).

Splines save modeling time and keep long features editable: you move a control point and the road follows. They also fit the modular way of working, because one well-made piece covers kilometres of path.

#How a spline mesh deforms

A spline is a curve defined by control points and tangents. For each segment between two points, the tool takes the straight mesh, lays it along the segment and moves every vertex sideways and up or down to follow the curve. Only vertices move. The faces between them stay flat, so a piece with few edge loops along its length cuts corners on a bend, while a piece with many loops follows it closely.

Top, a straight rectangular kit piece divided into ten even segments by edge loops, with an orange pivot dot at its left end and an arrow showing +X as forward. Bottom left, the same piece bent along a dashed orange arc with ten segments, following the curve closely. Bottom right, a version with only two segments forms a sharp V that cuts inside the arc.
A kit piece modeled straight along +X with its pivot at one end and even edge loops. Bent along a curve, ten segments follow the path; two segments cut the corner.Diagram by the handbook author

#Spline Mesh components in Unreal Engine

In Unreal, a Blueprint can place Spline Mesh components along a Spline component. World of Level Design's tutorial builds one for cables, walls and roads (World of Level Design: UE5 Blueprint: Create Meshes Along a Spline…):

#Landscape splines

Landscape splines live on the landscape itself. You press "Ctrl + Left-click to set your spline's first control point", and each further click adds a point and connects it "by a spline segment" (Unreal Engine 5.8 documentation: Landscape Splines in Unreal Engine).

#Blender curves

Blender's Curve modifier "provides a simple but efficient method of deforming a mesh along a curve object" (Blender Manual: Curve Modifier). The Deformation Axis sets "the axis that the curve deforms along". The modifier works in global space, so "the actual position of the geometry relative to the curve is determinant to get a correct result"; the manual recommends starting with the object origin at the curve's origin (Blender Manual: Curve Modifier). A curve point's Tilt twists the mesh and its Radius scales it (Blender Manual: Curve Modifier), which is how cables sag thinner or roads bank on corners.

Blender is useful for baking spline geometry into unique meshes, for example a cable bundle for a hero prop, or for previewing a road piece before it goes into the engine.

#Houdini

Houdini builds spline geometry procedurally. The Sweep node "creates a surface by sweeping a cross-section curve along a spine curve"; its Surface Shape can be a round tube, a square tube or a ribbon ("Use a line as the cross-section, producing a ribbon shape") (Houdini 22.0 documentation: Sweep 2.0 geometry node). Compute UVs runs U across the profile and V along the spine, and Length-Weighted UVs keeps them even where edges crowd together; end caps can be open, a single n-gon or a grid (Houdini 22.0 documentation: Sweep 2.0 geometry node).

Houdini tools go further than bending one piece. Nick Owens' asset "creates road, intersection, and bridge geometry from Bezier curves" for Unity (ArtStation: Procedural Streets and Bridges in Houdini &…). At Guerrilla, the Horizon Zero Dawn river tool started from "a curve and a terrain", and a Houdini cable generator grew cables one by one so that they never intersected (80 Level: Horizon Zero Dawn: Procedural Rivers & Wires).

Notice how little input there is: a few curves define every road, junction and bridge in the next image.Nick Owens, via ArtStation
Notice the junction. A single bent road piece cannot make this; procedural tools build intersections as their own geometry.Nick Owens, via ArtStation

#Building a kit piece that deforms cleanly

The same rules apply in Unreal, Unity and Blender:

#How to make one

This builds a cable that sags between two poles in Blender and Unreal Engine 5, following the World of Level Design method (World of Level Design: UE5 Blueprint: Create Meshes Along a Spline…).

  1. Model the segment in Blender. Make an 8-sided cylinder 150 cm long along +X, with an edge loop every 10–15 cm. Put the origin at one end.
  2. UV it. Unwrap so U goes around the cable and V runs the full length, tiling end to end.
  3. Export to FBX and import into Unreal.
  4. Create the Blueprint. Make an Actor Blueprint and add a Spline component (not a Spline Mesh) (World of Level Design: UE5 Blueprint: Create Meshes Along a Spline…).
  5. Measure the mesh. In the construction script, use Get Bounding Box on the mesh and store the X size as Mesh Length (World of Level Design: UE5 Blueprint: Create Meshes Along a Spline…).
  6. Loop over segments. Divide spline length by Mesh Length, truncate, subtract 1, and loop that many times (World of Level Design: UE5 Blueprint: Create Meshes Along a Spline…).
  7. Add and place each piece. Add a Spline Mesh component, set its mesh, forward axis and material, then Set Start and End from location and tangent at index × Mesh Length and (index + 1) × Mesh Length (World of Level Design: UE5 Blueprint: Create Meshes Along a Spline…).
  8. Clamp tangents to Mesh Length to avoid stretching (World of Level Design: UE5 Blueprint: Create Meshes Along a Spline…).
  9. Shape the sag. Place the actor and Alt-drag spline points to add control points (World of Level Design: UE5 Blueprint: Create Meshes Along a Spline…); drop the middle point to make the sag.
  10. Set collision. Cables usually need No Collision; walls and road barriers need Query and Physics (World of Level Design: UE5 Blueprint: Create Meshes Along a Spline…). See collision meshes.

For a road on a landscape, use landscape splines instead: assign a road piece in Spline Meshes, add a Spline edit layer so the terrain conforms, set Side Falloff, and paint a gravel layer with Layer Name (Unreal Engine 5.8 documentation: Landscape Splines in Unreal Engine).

#Video tutorials

#Use in recent games

  • Hogwarts Legacy (Avalanche Software, 2023). Molly Warner, an environment artist at Certain Affinity on the Lower Hogsfield castle ruins, lists "spline placement" alongside set dressing, kitbashing, terrain painting and decal placement (ArtStation: Hogwarts Legacy - Castle Ruins). Splines are part of everyday world-building work, not only a tech-art task. See set dressing and art passes.
  • Horizon Zero Dawn (Guerrilla Games, 2017). Rivers were built from a curve snapped to the terrain, with width driven by a ramp, scale and slope, and delivered to environment artists through a Houdini plugin inside Maya; a Houdini cable generator built non-intersecting cables (80 Level: Horizon Zero Dawn: Procedural Rivers & Wires).

#In different tools

Tool Feature Notes
Unreal Engine Spline + Spline Mesh components (Blueprint) Fully custom; spacing, collision and materials per piece (World of Level Design)
Unreal Engine Landscape splines Random mesh lists, terrain deformation, layer painting (Unreal Engine 5.8 documentation); can write to RVT (Unreal Engine 5.8 documentation)
Blender Curve modifier Deformation axis, tilt and radius; works in global space (Blender Manual)
Houdini Sweep and custom tools Profiles along a spine, UVs, end caps (Houdini 22.0 documentation); full road networks (ArtStation)

Related tools for scattering along curves are in procedural placement and scattering and vegetation and procedural tools.

#Further reading and watching

Related pages: modular kits, trim sheets, pivot point, edge loop, procedural modeling, terrain and landscapes, blending meshes into terrain, mesh decals.

References

  1. Epic Games · Landscape Splines in Unreal Engine · Unreal Engine 5.8 documentation · docs · accessed 2026-10-22
  2. AlexG · UE5 Blueprint: Create Meshes Along a Spline Procedurally (Seamless and with Spacing) · World of Level Design, 2026 · course · accessed 2026-10-22
  3. Epic Games · Runtime Virtual Texturing in Unreal Engine · Unreal Engine 5.8 documentation · docs · accessed 2026-10-22
  4. Blender Foundation · Curve Modifier · Blender Manual (source on projects.blender.org) · docs · accessed 2026-10-22
  5. SideFX · Sweep 2.0 geometry node · Houdini 22.0 documentation · docs · accessed 2026-10-22
  6. Nick Owens · Procedural Streets and Bridges in Houdini & Unity · ArtStation · web · accessed 2026-10-22
  7. Arti Sergeev · Horizon Zero Dawn: Procedural Rivers & Wires · 80 Level, 2017 · article · accessed 2026-10-22
  8. Molly Warner · Hogwarts Legacy - Castle Ruins · ArtStation, 2023 · web · accessed 2026-10-22

Also consulted

Last updated 2026-10-22