Skip to content
Hamish Visser

01 / 15ToolsParametric Design / Earthworks / Geotechnical / Computational Design2026

Parametric Earthworks Modelling

Earthworks volumes that recalculate the moment the geometry moves, benchmarked against Civil 3D, InfraWorks, OpenRoads and 12d Model. It is the only one of them that reads borehole logs and puts a number on how much rock sits above formation level before the price goes in.

RhinoGrasshopperExcel

Computational designComplete

Parametric Earthworks Modelling
Organisation
Taylor Woodrow
Role
Digital Engineer
Year
2026
Kind
Computational design
Sector
Early Design / Tender
Status
Complete
Time removed
  • WK
  • DAY
  • HR
  • MIN
  • SEC
2 to 8 hoursWas
Under 30 minutesNow

2 to 8 hours to Under 30 minutes

Background

Tender-stage and temporary works planning need volumes fast and need them to change fast. Detailed design platforms give accurate answers through rebuild and recompute cycles that are too slow to optioneer against.

What I built

A Grasshopper definition supporting three modes: formation earthworks by platform or alignment, stockpile creation, and ground investigation surface comparison. Outputs bake to named Rhino layers for downstream use.

Volumes are computed by raster-style grid sampling of height differences between existing ground and formation surfaces, with grid density user-controlled to trade accuracy against compute time. A calculation toggle lets geometry be manipulated freely before recalculating.

The finished cut and fill mesh turning in the viewport, with live area and volume statistics facing the camera
FIG 01The finished cut and fill mesh turning in the viewport, with live area and volume statistics facing the camera
A pipe corridor draped along an alignment, following the existing ground surface rather than a fixed offset
FIG 02A pipe corridor draped along an alignment, following the existing ground surface rather than a fixed offset
Cut and fill zones resolving across a platform as formation level is set against existing ground, red for cut and green for fill
FIG 03Cut and fill zones resolving across a platform as formation level is set against existing ground, red for cut and green for fill
The interpolated geological surface intersecting formation level, with borehole and trial pit positions labelled
FIG 04The interpolated geological surface intersecting formation level, with borehole and trial pit positions labelled

How it works

Two problems solved on live schemes shaped the tool:

  • On a utility temporary works scheme, pipe depths were known only relative to existing ground rather than as absolute levels. The tool generates pipe geometry offset directly from the surface or the alignment.
  • On a tender project, a mesh-boundary-extraction technique was developed to derive missing boundary curves from TIN meshes, and rock-head removal volumes were quantified by importing GI borehole data from Excel and intersecting an interpolated geological surface with the formation level.
Pipe geometry offset from the existing ground surface, so a depth-below-ground figure is enough to place it
FIG 05Pipe geometry offset from the existing ground surface, so a depth-below-ground figure is enough to place it
The same corridor with the pipe offset from the input alignment instead, and the deeper cut that follows
FIG 06The same corridor with the pipe offset from the input alignment instead, and the deeper cut that follows

Rock head interpretation

The second of those is the part worth drawing out, because it is the one function none of the platforms this was benchmarked against will do for you.

Ground investigation arrives as a borehole log: a scatter of XY positions, each with a depth to the top of a named geological layer. That is a table, and on its own it answers nothing about cost. What a tender team needs to know is whether the formation level being priced cuts into rock, over how much of the platform, and by what volume, because excavating rock is a different rate and a different programme from excavating soil.

The tool closes that gap. The Excel log is imported, depths are converted to levels and interpolated into a continuous geological surface, and that surface is intersected with the formation level. Where rock head sits above formation, the overlap is isolated and reported as two figures: the plan area affected, and the additional cut volume above the layer. Boreholes beyond a set distance from the design area can be filtered out so distant logs do not drag the interpolation, and where coverage does not reach the full extent the surface is extended by a stated offset rather than silently guessing.

The interpolated geological surface in purple, cut by the formation level, with the intersection boundary picked out in dark blue and the borehole and trial pit positions marked
FIG 07The interpolated geological surface in purple, cut by the formation level, with the intersection boundary picked out in dark blue and the borehole and trial pit positions marked

The output is an interpretation, not a measurement, and the geometry says so. The interpolated surface is drawn in the viewport with its own contours, the boreholes it was built from stay visible as labelled points, and the intersection boundary bakes out as a curve. A reader can see how far the nearest log sits from the zone being quantified and judge the number accordingly. That is the second use of the same run: where the surface is being extrapolated a long way from any borehole, the picture is an argument for commissioning more investigation rather than a figure to price against.

One geological layer is processed per run, so a site with rock head and a separate made ground horizon is two runs.

Outcome

Benchmarked directly against Civil 3D, InfraWorks, OpenRoads Designer and 12d Model. Main advantages are near-instant recalculation rather than rebuild cycles, acceptance of any closed curve type including splines, a dedicated topsoil strip output, and native GI surface comparison, none of which the compared platforms offer directly. It does not replace those tools for detailed design.

Against the free Grasshopper terrain plugins Docofossor and Bison, the difference is that those deform terrain meshes directly rather than projecting earthworks extents, and lack civil-specific outputs such as topsoil strip and GI comparison.

The commercial case is the rock. Rock above formation level is the item most likely to move an earthworks price, and putting a number on it while the tender is being priced, rather than finding it once the machines are on site, is where the tool earns its place.

Where it goes next

Known limitations are resolution-dependent volume accuracy and an offset-based rather than fully geometric alignment workflow.

Technical reference

Everything above is the short version. What follows is the working documentation: inputs, the full parameter set, what the tool bakes out, how the volumes are actually calculated, and how it measures against the platforms it sits alongside.

Inputs

Two inputs are required. The existing ground surface is accepted as a mesh, a BRep, or raster DEM or DTM data. Raster is referenced externally rather than converted to Rhino geometry, with a resolution slider on import controlling terrain mesh density. Mesh and BRep surfaces can be built inside Rhino from contour lines or point data.

The second is the design geometry, and the tool toggles between two modes for it. A closed curve is treated as a platform boundary, and any closed curve type is accepted including polylines, splines and bezier curves. An alignment or 3D polyline is treated as a road, trench or utility corridor.

Two inputs are optional: a 2D closed curve setting the maximum extent of a stockpile, and an Excel file of borehole XY coordinates with depth to a named geological layer.

Output layers

All geometry bakes to named Rhino layers at a button click, with line and mesh geometry baked separately. Along the earthworks perimeter, cut projects as red lines and fill as green, running from the gold projection curve to the existing ground surface. Inside it, the volume calculation grid is visible as vertical lines off the formation surface, red downward in cut and green upward in fill.

What bakes out is a set of curves, meshes and flags, each on its own layer and colour coded by what it is. The curves are the formation level line, the projected earthworks extent on existing ground, the extent line at the specified grade, the original input, and an easement boundary draped on existing ground at a set offset. Two of them matter more than the rest: the formation line and the projected extent are closed 3D polylines, and they work directly as Civil 3D breaklines to rebuild the same surface in a detailed design platform, which is what stops the tool being a dead end.

Stockpiles bake as three curves, the 2D input boundary, that boundary draped on existing ground and the top of stockpile at the specified height and grade. Pipes bake as 3D mesh or BRep at the specified diameter, following the surface at an offset when the alignment is draped and offset from the alignment directly when it is not, alongside a run of rectangular blocks above ground on the same line. That last one exists because a buried route disappears in 3D viewers that hide it behind the terrain, and a route nobody can see does not get coordinated.

Meshes bake in two parts, formation surface separately from batter slopes, so each carries its own material for rendering or for 4D sequencing. Contours bake as 3D polylines at the interval asked for. A final layer flags points where the projected earthworks curve has problems worth fixing before the geometry goes into other software, which is the difference between finding a bad projection here and finding it three steps downstream.

The two-part mesh bake, formation surface and batter slopes separated so each can carry its own material
FIG 08The two-part mesh bake, formation surface and batter slopes separated so each can carry its own material

Live statistics

Volume figures are calculated per active workflow and drawn in the Rhino viewport, centred on the geometry and facing the camera, updating as parameters change. Formation earthworks reports 2D area, topsoil strip volume, total cut, total fill, net volume, and the highest and lowest points of formation level. Stockpile reports 2D area and total fill. Ground investigation comparison reports impact area, being the plan area where the geological surface intersects formation level, and the additional cut volume above it.

Live viewport statistics on a stockpile, centred on the geometry and turned to face the camera
FIG 09Live viewport statistics on a stockpile, centred on the geometry and turned to face the camera

Parameters

Everything below stays live. That is the whole argument for building this parametrically rather than modelling it: a tender team can move any one of these and have the volumes back before the conversation moves on. They group into four sets, and what is worth noticing is which ones carry engineering judgement rather than preference.

ParameterUnitEffect
Cut slope grade1:xHorizontal to vertical ratio for cut slopes.
Fill slope grade1:xHorizontal to vertical ratio for fill slopes.
Formation cut depthmDepth of cut applied to formation level.
Topsoil strip thicknessmThickness stripped before earthworks, reported as its own volume rather than folded into the bulk figure, because it is a separate rate and often a separate contractor.
Level formation to low pointToggleDrops formation to the lowest point of the input geometry. The fastest way to test a level platform against a sloping site.
Contour intervalmSpacing of the contours generated across the result.
Earthworks geometry, the shape of the thing being priced
ParameterUnitEffect
Volume calculation suspendToggleHolds the volume calculation while geometry is manipulated, then updates on release. Without it, dragging a boundary across a large site recalculates on every mouse move.
Volume grid densityDensityDensity of the sampling grid. Higher is more accurate and slower. Exposed rather than fixed, so the accuracy of the answer is visible to the person quoting it.
Stockpile calculation suspendToggleSuspends the stockpile calculation independently, so stockpile geometry can be reworked without recomputing the main earthworks.
Calculation control, which exists because the tool is used interactively
ParameterUnitEffect
Boundary smoothing strengthStrengthRounds sharp corners and reduces errors where the input curve is complex. The parameter a new user gets wrong first, because over-smoothing a boundary changes the area being priced.
Projection line spacingmAdds projection lines to sharpen the earthworks extent curve where it is being derived across variable ground.
Projection join tolerancemCloses small gaps in the projected curve by closest-point matching, rather than leaving an open curve that fails downstream.
Raster import resolutionSliderResolution of a raster surface on import, equivalent to heightmap pixel size. Lower is finer.
Input conditioning, which exists because real input geometry is messy
ParameterUnitEffect
Corridor widthmWidth used to generate the offset boundary from an alignment, for a road or a trench.
Alignment smoothing0 to 1Smooths the alignment and everything downstream of it, for rough input ground.
Drape alignment to groundToggleProjects a 2D alignment onto existing ground where it carries no Z value.
Depth to top of pipemOffset to top of pipe, taken from the ground surface when the alignment is draped and from the alignment itself when it is not.
Pipe diametermPipe diameter, and the width of the above-ground marker representation.
Surface marker heightmHeight of the above-ground blocks that follow the pipe run, so a buried route stays visible in 3D.
Easement offsetmOffset from formation level or input curve to the easement boundary.
Stockpile heightmHeight of the stockpile above existing ground.
Stockpile batter grade1:xGrade of the stockpile side slopes.
Stockpile inward offsetmInward offset from the 2D boundary to the effective extent.
Borehole distance filterToggle + mFilters out boreholes beyond a set distance from the design area, so distant logs do not drag the interpolation.
Geological surface extensionmExtends the interpolated geological surface by a stated amount where borehole coverage falls short of the design extent, rather than silently guessing.
Feature controls, one set per thing the tool can generate

The two ground investigation parameters are the ones that decide whether the rock figure can be defended. Both are deliberately explicit: a filter distance that says which logs were trusted, and an extension distance that says how far the surface was carried beyond them. A tool that interpolated silently across the whole extent would produce the same number with none of the basis attached to it.

How the volumes are calculated

A raster-style method. A grid of rectangular cells is projected across the earthworks extent, covering both the existing ground surface and the formation surface. For each cell the height difference between the two is multiplied by the cell plan area to give a volume increment, and the increments are summed into total cut and fill. Net volume is the difference between them.

Grid density is set by the calculation resolution parameter, and the grid itself is drawn in the viewport as the pattern of vertical lines off the formation surface. The accuracy setting is therefore visible rather than buried in a dialog, which matters because the accuracy is resolution-dependent: coarse settings will misstate volumes where the topography varies sharply.

Cut projection lines in red and fill in green, with the volume calculation grid standing off the formation surface between them
FIG 10Cut projection lines in red and fill in green, with the volume calculation grid standing off the formation surface between them

The two output curves have been used as Civil 3D breaklines to rebuild the same earthworks surface, and volumes derived that way have been checked against the tool's own figures on test cases with equivalent results.

Mesh boundary extraction

Where design geometry arrives as a complete TIN with no boundary curves, a prerequisite step recovers them. The TIN is exploded to individual triangles, face normal angles are analysed to filter out the batter triangles, leaving the near-horizontal top surface, and further filtering by triangle size and edge length removes artefacts. The remaining boundary is extracted as a closed curve and used as the earthworks input.

A TIN exploded to triangles and filtered by face normal, leaving the near-horizontal top surface the boundary is read from
FIG 11A TIN exploded to triangles and filtered by face normal, leaving the near-horizontal top surface the boundary is read from

Against the civil CAD platforms

This toolInfraWorksCivil 3DOpenRoads12d Model
Volume calculationParametric, real timeTerrain gradingGrading objectsEarthworks toolsPurpose-built
Feedback speedInstant, with a calculation toggleFull map refreshRebuild or recomputeRebuild or recomputeRebuild or recompute
Input curve typesAny closed curve, splines and beziers includedSketched or imported grading polygonsPolylines and alignmentsPolylines and alignmentsPolylines and alignments
Topsoil stripDedicated volume outputNoManual setupManual setupManual setup
Stockpile modellingParametric, with mesh bakeLimitedManualManualLimited
GI surface comparisonExcel borehole importNoManual surface comparisonManual surface comparisonManual surface comparison
Raster surface inputExternal reference, no conversionNative terrainImport requiredImport requiredImport required
Time per scenarioUnder 30 minutes30 minutes to several hours2 to 8 hours2 to 8 hours1 to 4 hours
Feature comparison. Timings are indicative, based on internal project experience and workflow familiarity, and are not vendor benchmarks.

InfraWorks is the closest of the four, since both offer interactive grading with visual feedback. The differences that matter in practice are update speed, input flexibility and calculation control. InfraWorks restricts grading boundaries to polylines, so a smooth boundary means adding and adjusting vertices by hand. It requires a separately drawn calculation area, and where that area overlaps other grading objects or roads their volumes are pulled into the result, whereas this calculates for the exact input geometry. Its calculation triggers automatically after each edit and cannot be deferred. It has no dedicated topsoil strip output and no equivalent ground investigation workflow.

Set against that, InfraWorks has a far more complete road design environment, including superelevation and crossfall. The alignment workflow here is a simple offset and is not a substitute for detailed road geometric design. None of this replaces Civil 3D or OpenRoads for detailed design either, and it is not meant to.

Against the Grasshopper terrain plugins

The two plugins with real functional overlap are Docofossor and Bison, both free and both written for landscape architecture rather than civil engineering. A third, RhinoCivil Engineering, targeted civil earthworks directly but appears no longer to be maintained.

This toolDocofossorBison
Primary audienceCivil and infrastructure engineeringLandscape architecture and researchLandscape architecture
ApproachProjects extent curves onto an unmodified surfaceDeforms terrain using signed distance functionsEdits the terrain mesh with curve and point operations
Surface inputMesh, BRep or rasterXYZ point cloud, regular grid spacing onlyMesh
Topsoil stripYesNoNo
GI surface comparisonYesNoNo
Stockpile creationParametric, with mesh bakeRelative fill operations onlyLimited
Pipe modellingYesNoNo
Live viewport statisticsYesNoNo
Terrain analysisLimitedSlope, aspect, drainage, visibilitySlope, aspect, watershed, flow
Last updatedMaintained20192022
Comparison with the free Grasshopper terrain plugins

The difference is one of approach rather than quality. Both plugins physically deform the terrain, where this leaves the surface unmodified and derives volumes from the geometric relationship between it and the formation surface. Neither has civil-specific outputs. Docofossor needs XYZ point clouds at regular grid spacing, so raster data has to be pre-processed first. Bison is stronger on terrain analysis than this tool is, and its raster import is used inside this tool's own raster workflow, so for that function the two are complementary rather than competing.

Where it applies

Volume verification against contractor or designer figures from the same input geometry. Early-stage optioneering across platform locations, formation depths and cut-to-fill balances in one session. Tender and bid work needing indicative volumes without standing up a full civil CAD model. Temporary works planning, including clash assessment where only depth-below-ground data exists. Ground investigation risk, quantifying geological exposure at formation level or showing where further investigation is worth commissioning. Stockpile and materials management for site logistics and material balance. Two-part mesh output into 4D sequencing with different materials per construction phase, or textured for client presentations, planning applications and design reviews. As-built survey compared against design formation to find discrepancies in cut depth or batter grade. Cut, fill and topsoil volumes feeding carbon and cost calculations directly.

Limitations

Complex or highly irregular input geometry can produce problems in the projected earthworks curve, which is why the errors layer exists. Volume accuracy is resolution-dependent, and coarse settings will misstate volumes across sharply varying topography. Ground investigation comparison handles one geological layer per run, so multiple layers mean multiple runs. Very large surfaces or high resolution settings affect real-time performance, which the calculation toggle and resolution parameter exist to manage. The alignment workflow is offset-based and not a substitute for detailed road geometric design.

It is also not a product. The tool is run by the digital engineering team on behalf of project teams rather than distributed for individual use.

Tools and disciplines

Built with

RhinoGrasshopperExcel

Discipline

Parametric DesignEarthworks / GeotechnicalComputational Design

Related projects