NEW ROOTS DEVELOPMENT
HomeTool GuideVDC CivilGrading

Smooth Surface (fix wavy contours)

Fixes wavy (squiggly) TIN contours by editing the surface , not the picture: wavy spans are detected on test contours, then Minimize Flat Areas + region-limited Natural Neighbor (NNI) smoothing are applied as ordinary definition edits. Honest by construction: contours of the smoothed surface cannot cross , and the run reports exactly how far the surface moved.

Command VDCSMOOTHSURF VDCSMOOTHSURF_REFRESH VDCSMOOTHSURF_REMOVE · VDC Civil tab › Grading panel

VDCSMOOTHSURF_REMOVE is part of Smooth Surface (fix wavy contours); the full section follows.

Fixes wavy (squiggly) TIN contours by editing the surface, not the picture: wavy spans are detected on test contours, then Minimize Flat Areas + region-limited Natural Neighbor (NNI) smoothing are applied as ordinary definition edits. Honest by construction: contours of the smoothed surface cannot cross, and the run reports exactly how far the surface moved.
Plan view, contours between two graded feature lines: detect the wavy spans, smooth the surface inside the region only. BEFORE, TIN infill zigzags between breaklines feature line (breakline), preserved exactly flagged wavy spans → padded + merged region AFTER, NNI points densify the infill; contours calm down interpolated NNI grid points (default 5′), region only; original points + breaklines untouched summary reports surface movement: e.g. max 0.06′, mean 0.02′
Wavy contour (before)   Smoothed contour (after)   Region / NNI points   Breakline (never moves)

What it does, per run

  • Extracts test contours at the chosen interval (temporary, read and erased; the drawing is untouched) and flags wavy spans: stretches that keep flipping bend direction, go nowhere on net, and bulge within the amplitude band (default 0.1–3 ft; deeper bends are landform and left alone).
  • Audit only mode stops there, palette (double-click zooms to each span) + CSV.
  • Audit + Smooth: spans are padded (default 25 ft), merged into regions, carved into a protected mosaic, no cell within the keep-clear distance (default 5 ft) of an existing surface vertex, so corridor curb/EOP linework is never touched, and fixed with Minimize Flat Areas (optional) + NNI smoothing in the surviving cells; the surface rebuilds.
  • Re-check + honesty meter: contours re-scanned; surface movement inside the regions measured before/after and reported (max / mean).
  • Smooth + Breaklines mode (the island fix): every span the grid cannot reach, narrow parking islands, protected zones, gets an auto-breakline: the span ironed smooth, drawn as a no-plot 3D polyline at contour grade, added to the surface as a standard breakline. The automated version of tracing a feature line by hand; visible, editable, capped per run, erased by REMOVE, regenerated by REFRESH.
  • Both edits sit in Definition → Edits like any manual edit, visible, saved, rebuilt with the surface. A stamp on the surface records the op GUIDs + settings.

Companions & guidance

  • VDCSMOOTHSURF_REFRESH, after any design change: removes the stamped edits, re-detects on current geometry, re-applies, re-stamps. VDCREFRESHALL chains it as its final step.
  • VDCSMOOTHSURF_REMOVE, takes every stamped edit back out; the surface returns to exactly what its own data builds. Unconditional.
  • Re-running is always a clean re-run, prior VDC edits come out first; edits never stack.
  • Why not style contour smoothing? Spline smoothing redraws the picture over the same jagged TIN, contours can cross and contradict spot elevations. Surface smoothing cannot.
  • Leftover spans = missing data, not insufficient smoothing, add the breakline the TIN is missing.
  • Draft work product, review the movement report; keep hundredth-critical areas in mind (breakline-protected grades never move).
  • Settings %APPDATA%\VDC\SmoothSurf\settings.json (env VDC_SMOOTHSURF_SETTINGS), schema-tolerant.

Dialog

Smooth Surface (fix wavy contours) dialog
Smooth Surface (fix wavy contours), VDCSMOOTHSURF
VDCSMOOTHSURF_REFRESH, No dialog, runs on the whole drawing with no prompt.
VDCSMOOTHSURF_REMOVE, No dialog, runs on the whole drawing with no prompt.

When to use it

  • A PE red-lines the squiggly contours on a grading or road plan.
  • The old fix - tracing a smooth feature line over each bad span - is eating hours and goes stale with every regrade.
  • You want smooth plotted contours WITHOUT style spline smoothing (which can cross and contradicts spot elevations).

How to run it

  1. Run VDCSMOOTHSURF; pick the TIN surface.
  2. Start in Audit only mode - review the flagged spans in the palette (double-click zooms).
  3. Re-run in Audit + Smooth mode; keep Minimize Flat Areas on and the default 5-ft NNI grid.
  4. Read the summary: spans found -> regions smoothed -> points added -> spans remaining -> max surface movement.
  5. Chase any remaining spans with a breakline (usually missing data), and re-run VDCSMOOTHSURF_REFRESH after design changes - VDCREFRESHALL chains it automatically.

Options

  • Mode: Audit only (report, change nothing), Audit + Smooth (apply the surface edits), or Smooth + Breaklines (also draw an auto-breakline at contour grade through every span the grid can't reach - the island fix).
  • Sensitivity: Conservative / Normal / Aggressive - how much alternation it takes to call a span wavy.
  • Amplitude band: wiggles shallower than the floor are invisible; bends deeper than the cap are real landform. Default 0.1-3 ft.
  • NNI grid spacing: interpolated-point spacing inside each region (default 5 ft; finer = smoother + heavier).
  • Region padding: how far the fix extends past each flagged span before regions merge (default 25 ft).
  • Keep clear (protection): no smoothing point within this distance of an existing surface vertex (default 5 ft) - corridor curb/EOP linework is automatically protected.

Watch out for

  • Smoothing re-grades the infill between design features - review the movement report before using the surface where hundredths matter, and run earthwork off the pre-smooth surface if the (microscopic) volume delta matters.
  • Spans that remain after smoothing usually mean MISSING DATA, not insufficient smoothing - add the breakline the TIN is missing instead of tightening the grid.
  • Re-running is always a clean re-run (prior VDC edits come out first); VDCSMOOTHSURF_REMOVE takes everything back out and the surface returns to what its own data builds.
  • Regions are captured at run time - after a regrade the old regions are stale. That is exactly what VDCSMOOTHSURF_REFRESH (and VDCREFRESHALL) exist for.
  • All output is draft work product - review and approval by a qualified professional required.

Related: Auto-Grade Lots · Surface QC · Refresh All · Ground Thin