Skip to content

Repository files navigation

Parametric Road

Parametric Road is a FreeCAD workbench for parametric road corridor design, review, and output preparation.

Support Parametric Road

Parametric Road is developed as an open-source road design workbench for FreeCAD. If this project saves you time, helps your civil design workflow, or you want to support continued v1 development, please consider sponsoring the project:

Sponsorship helps fund focused work on the v1 workflow, documentation, testing, and practical road-design features that are difficult to sustain through spare-time development alone.

For commercial use, project-specific requirements, or custom workflow questions, please contact me.

The current public release is Parametric Road 1.1.0. This is a refactoring and defect-fix release: the v1 code was reorganized along the Source -> Evaluation -> Result -> Output -> Presentation boundaries, and seven product defects were fixed, including roundabout surface clipping that ran without its boundary and a Regions tab that could not create surface transitions. v1 focuses on source-driven corridor modeling: design intent is stored in source models, evaluated results are generated from those sources, and review/output panels expose diagnostics without turning generated geometry into the editing source.

This project is evolving toward fully watertight solid-based infrastructure geometry, enabling future CFD, FEM, and simulation-ready engineering workflows. The long-term goal is to generate topology-consistent parametric models suitable not only for design visualization, but also for computational analysis, digital twin pipelines, and advanced engineering simulation.

What This Project Does

Parametric Road v1 provides a staged road corridor workflow:

  1. Prepare project and TIN terrain data.
  2. Edit Alignment.
  3. Generate Stations.
  4. Edit Profile.
  5. Review Plan/Profile and generate the shared 3D Centerline.
  6. Optionally define Superelevation crossfall controls.
  7. Define Assembly and Regions.
  8. Define Intersections where multiple Alignments meet.
  9. Add Structures and Drainage source rows.
  10. Generate Applied Sections.
  11. Build Corridor preview surfaces.
  12. Review Cross Sections, Drainage, Plan/Profile, and Earthwork.
  13. Prepare structure output and exchange handoff data; existing Watertight Solid behavior is compatibility-only while development is paused.

The workbench is built around a v1 source -> evaluation -> result -> output -> presentation structure.

  • Source intent belongs in Alignment, Profile, Superelevation, Assembly, Region, Structure, and Drainage models.
  • Applied Sections and Corridor surfaces are generated results.
  • Review panels expose context, diagnostics, and handoff actions.
  • Output packages preserve source traceability.

Wiki Documentation

For v1 design and implementation planning, see docsV1/.

Important v1 references:

  • docsV1/V1_MASTER_PLAN.md
  • docsV1/V1_RELEASE_CURRENT_PREP.md
  • docsV1/V1_SECTION_MODEL.md
  • docsV1/V1_REGION_MODEL.md
  • docsV1/V1_STRUCTURE_GEOMETRY_CONTRACT.md
  • docsV1/V1_EARTHWORK_IMPLEMENTATION_PLAN.md
  • docsV1/V1_DRAINAGE_IMPLEMENTATION_PLAN.md

Questions And Support

Latest Release

1.1.0 keeps the public Parametric Road name while preserving the internal Python package, FreeCAD Mod folder, command ids, and v1 source ids for compatibility.

Main Commands

  • New/Project Setup
  • TIN
  • Alignment
  • Stations
  • Profile
  • Review Plan/Profile
  • 3D Centerline
  • Superelevation
  • SubAssembly Designer
  • Assembly / Subassembly
  • Regions
  • Intersection
  • Structures
  • Drainage
  • Drainage Review
  • Applied Sections
  • Build Parametric
  • Review Cross Sections
  • Review Earthwork
  • Outputs & Exchange
  • Import LandXML
  • Structure Output
  • AI Assist
  • Watertight Solids (paused compatibility surface)

Current toolbar order is organized around the v1 workflow:

Project -> TIN -> Alignment -> Stations/Profile/3D Centerline/Superelevation -> SubAssembly Designer/Assembly/Regions/Intersection/Structures -> Drainage -> Applied Sections -> Build Parametric -> Review -> Outputs/Import/Structure Output -> AI Assist

Current V1 Areas

  • Project setup and v1 project tree routing
  • TIN editing and review
  • Alignment editing
  • Station generation
  • Profile editing with PVI rows, CSV support, and auto interpolation
  • shared 3D Centerline review for downstream station/offset/elevation context
  • Superelevation source editing, station sample review, and Applied Sections / Build Parametric handoff
  • Assembly editor with ditch, side slope, bench, and preset support
  • Structure editor for bridge, culvert, retaining wall, and related source intent
  • Structure connection points, native inlet/outlet/culvert preview details, and Structure Output packages
  • Region editor with continuous station spans and Assembly assignment
  • Drainage editor with Elements, Policies, Flow Routes, Structure refs, and Flow Network preview
  • Drainage Review for source rows, pipeline candidates, pipeline segments, networks, and junctions
  • Applied Sections result generation
  • Build Corridor preview surfaces and diagnostics
  • Cross Section Viewer
  • Plan/Profile Connection Review
  • Earthwork Viewer and v1-native earthwork report path
  • Outputs & Exchange entry point
  • AI Assist entry point
  • Existing Watertight Solids panel retained for compatibility; development is paused

In Progress

  • Advanced hydraulic analysis and automatic pipe sizing are future work.
  • Complete drawing-sheet production and full exchange output coverage remain incremental.
  • Watertight Solid development is paused; existing compatibility behavior is preserved without feature expansion.

Install And Run

  1. Place this folder under your FreeCAD Mod directory.
  2. Restart FreeCAD.
  3. Select the Parametric Road workbench.

FreeCAD version policy:

  • minimum package compatibility: FreeCAD 1.0.3
  • recommended and validated: FreeCAD 1.1.1
  • Python 3.10+

Release And Versioning Policy

  • main is the release/stable branch.
  • Development work may continue on a separate development branch.
  • Package metadata is stored in package.xml.
  • Release notes are recorded in CHANGELOG.md.
  • Release tags should use vX.Y.Z, for example v1.0.0.

Release procedure summary:

  1. Freeze feature work.
  2. Run automated and manual validation.
  3. Update package.xml.
  4. Update CHANGELOG.md.
  5. Update Wiki pages.
  6. Tag the release.
  7. Publish the GitHub Release.

Developer Notes

Important code entry points:

  • freecad/Corridor_Road/init_gui.py
  • freecad/Corridor_Road/v1/commands/
  • freecad/Corridor_Road/v1/models/source/
  • freecad/Corridor_Road/v1/models/result/
  • freecad/Corridor_Road/v1/models/output/
  • freecad/Corridor_Road/v1/services/
  • freecad/Corridor_Road/v1/ui/

Testing guidance:

  • Use the FreeCAD Python executable when tests depend on FreeCAD modules.
  • Prefer focused v1 contract tests and service tests for release validation.

License

  • This project is licensed under LGPL-2.1-or-later.
  • See LICENSE.

Video

Screenshots

Parametric Road screenshot 01 Parametric Road screenshot 02 Parametric Road screenshot 03 Parametric Road screenshot 04 Parametric Road screenshot 05 Parametric Road screenshot 06 Parametric Road screenshot 07 Parametric Road screenshot 08 Parametric Road screenshot 09 Parametric Road screenshot 10 Parametric Road screenshot 11 Parametric Road screenshot 12 Parametric Road screenshot 13 Parametric Road screenshot 14

About

a FreeCAD workbench for road design. It covers a practical pipeline from alignment to sections, corridor geometry, design terrain, and cut/fill analysis

Topics

Resources

Stars

11 stars

Watchers

0 watching

Forks

Releases

Sponsor this project

Packages

Contributors

Languages