Technical Documentation

02Route 3D Reference Manual

Comprehensive technical and operational manual for 3D multi-criteria routing, biomechanical simulation, spatial accessibility equity, and hardware-accelerated WebGL visualization inside QGIS.

1. System Overview & Architecture

02Route 3D is structured around a multi-tier pipeline designed for high performance and zero external Python dependencies:

  • 1. Core Graph Engine: Builds 3D topological graphs draped with continuous elevation values from digital elevation models (DEMs). Features bicubic Catmull-Rom spline sampling, A* search, and Dijkstra wavefront propagation.
  • 2. Processing Provider: Exposes 15 headless, scriptable algorithms compatible with QGIS Graphical Modeler, batch processing, and pure Python automation.
  • 3. Studio GUI Dock: A 5-tab docked interface for interactive origin-destination picking, live profile switching, AHP weight matrix adjustment, and real-time canvas animation.
  • 4. Embedded WebGL 3D Studio: A dedicated Three.js cockpit embedded within QGIS via QWebEngineView or local browser for hardware-accelerated 3D inspection.

2. Mobility Profiles Reference

The routing engine provides 15 rigorously calibrated mobility profiles categorized into Pedestrian, Micromobility, Vehicle, and Emergency modes:

Key Name Category Base Speed Max Grade Stairs Policy Smoothness
adultStandard AdultPedestrian5.0 km/h25.0%Allowed (1.2× penalty)0.2
seniorSenior / ElderlyPedestrian3.2 km/h10.0%Heavy Penalty (8.0×)0.6
childChild / Safe WalkPedestrian3.5 km/h12.0%Allowed (2.0×)0.4
strollerStroller / PramPedestrian4.0 km/h6.0%Strictly Blocked (100×)0.8
wheelchairWheelchair (ADA)Pedestrian3.8 km/h5.0%Strictly Blocked (1000×)0.9
joggerRunner / JoggerPedestrian9.5 km/h20.0%Allowed (1.5×)0.3
sightseerScenic / PanoramicPedestrian4.2 km/h20.0%Allowed (1.0×)0.3
night_walkIlluminated NightPedestrian4.8 km/h15.0%Allowed (3.0×)0.7
bicycleCommuter BikeMicromobility18.0 km/h15.0%Blocked (50×)0.6
mtbMountain BikeMicromobility16.0 km/h28.0%Allowed (5.0×)0.1
scooterE-ScooterMicromobility20.0 km/h12.0%Blocked (100×)0.85
carPassenger CarVehicle50.0 km/h25.0%Blocked (1000×)0.5
delivery_vanDelivery VanVehicle42.0 km/h18.0%Blocked (1000×)0.6
truckHeavy LogisticsVehicle40.0 km/h7.0%Blocked (1000×)0.7
paramedicEmergency EMSVehicle65.0 km/h22.0%Blocked (1000×)0.4

3. Processing Algorithms Catalog

All algorithms are available in the QGIS Processing Toolbox under the 02Route 3D provider:

1. zero2route3d:compute_3d_route (3D Least-Cost Route)

Calculates single-source shortest path using 3D node elevations. Outputs a LineStringZ layer with cumulative climb, energy expenditure, and slope attributes.

2. zero2route3d:generate_3d_isochrone (3D Isochrones)

Generates multi-tier temporal/metabolic catchments via anisotropic wavefront Dijkstra accounting for slope resistance.

3. zero2route3d:accessibility_equity_scorecard (E2SFCA Equity Score)

Calculates spatial equity scores for healthcare and amenity distribution with Gini coefficient, Lorenz curve, and Palma ratio.

4. zero2route3d:mcda_cost_surface (AHP Friction Surface)

Combines raster layers into a normalized friction surface using Saaty pairwise comparison weights.

5. zero2route3d:pareto_3d_routes (NAMOA* Pareto Routing)

Yields multiple non-dominated routes trading off travel duration, cumulative climb, heat exposure, and metabolic energy.

6. zero2route3d:map_match_3d_track (GPS 3D Map Matching)

Snaps noisy GPX tracks to the 3D road graph via Hidden Markov Models and Viterbi trellis dynamic programming.

7. zero2route3d:walkability_3d_audit (ADA Compliance Audit)

Audits pedestrian paths against ADA cross-slope and maximum gradient thresholds, highlighting non-compliant segments.

8. zero2route3d:emergency_evacuation_3d (Hazard Egress Routing)

Shortest egress routing from an origin to the nearest muster points across the real network.

9. zero2route3d:solar_shade_exposure (Sun / Shade Analysis)

Calculates solar geometry along the route from solar azimuth and altitude. No building massing is used.

10. zero2route3d:batch_3d_routes (Batch Point-Pair Routing)

Calculates least-cost 3D paths for many origin-destination point pairs, paired in feature order.

11. zero2route3d:od_matrix_3d (3D OD Cost Matrix)

Computes N×M travel times, distances, and calorie matrices across the 3D network.

12. zero2route3d:generate_route_report_html (HTML Scorecard)

Generates a publication-grade HTML audit scorecard with embedded SVG elevation profiles.

13. zero2route3d:export_3d_route_dxf (AutoCAD DXF Exporter)

Exports 3D Polyline (AC1009) and longitudinal elevation profile drawings directly to DXF format.

14. zero2route3d:export_3d_html_report (Standalone 3D HTML)

Bundles data, Three.js, and GLSL shaders into a self-contained offline 3D WebGL viewer.

15. zero2route3d:audit_routing_network (Routing Network Readiness Audit)

Annotates every network segment with profile-specific access, surface quality, one-way status, weak-component membership, and overall connectivity diagnostics.

4. Biomechanical Kinematics & Mathematical Formulations

02Route 3D uses peer-reviewed mathematical formulations rather than arbitrary penalty constants:

Tobler's Hiking Velocity Function

Predicts walking velocity based on fractional slope $s = \frac{\Delta z}{\Delta x}$:

$$W(s) = 6.0 \cdot \exp\left(-3.5 \cdot |s + 0.05|\right) \cdot \frac{v_{\text{base}}}{5.0} \quad [\text{km/h}]$$

Minetti 5th-Order Metabolic Energy Polynomial

Calculates energy expenditure $C_w(s)$ in Joules per kilogram per meter traveled:

$$C_w(s) = 280.5s^5 - 58.7s^4 - 228.1s^3 - 10.3s^2 + 233.5s + 2.155 \quad [\text{J}/(\text{kg}\cdot\text{m})]$$ $$E_{\text{kcal}} = \frac{C_w(s) \cdot m_{\text{kg}} \cdot d_{\text{m}}}{4184.0}$$

Keys' Bicubic Convolution Spline ($a = -0.5$)

Ensures continuous first derivatives ($\mathcal{C}^1$) across discrete DEM raster pixels:

$$W(x) = \begin{cases} (a+2)|x|^3 - (a+3)|x|^2 + 1 & |x| \le 1 \\ a|x|^3 - 5a|x|^2 + 8a|x| - 4a & 1 < |x| < 2 \\ 0 & \text{otherwise} \end{cases}$$

9. PyQGIS Automation & Batch Scripting

You can script 02Route 3D directly from the QGIS Python Console or standalone headless scripts:

import processing

# 1. Compute 3D Least Cost Route
result = processing.run("zero2route3d:compute_3d_route", {
    'NETWORK_LAYER': 'streets_network',
    'DEM_LAYER': 'copernicus_dem_30m',
    'START_POINT': '27.1428,38.4237',
    'END_POINT': '27.1550,38.4350',
    'PROFILE': 'wheelchair',
    'OUTPUT': 'memory:wheelchair_route'
})

route_layer = result['OUTPUT']
QgsProject.instance().addMapLayer(route_layer)
print("Route generated with length:", route_layer.featureCount())

10. Troubleshooting & FAQ

Q: Does 02Route 3D require external pip dependencies?

No. 02Route 3D is designed strictly using core QGIS (PyQt, qgis.core, qgis.gui, the Python standard library) and has zero pip dependencies.

Q: How does the plugin handle areas without a local DEM?

You can use the built-in "Fetch Real Copernicus 30m Topography" button in the Dock panel. It queries real elevation for the canvas extent from the Open-Elevation API and clips it to the route corridor.

Q: Are the 3D exports compatible with CAD software?

Yes. The DXF exporter produces AC1009 standard 3D Polylines that open natively in AutoCAD, Civil 3D, Rhino, and SketchUp with real elevations.

11. Research Inspiration & Citations

Inclusive UX Mobility Inspiration

The persona-based, multi-profile user experience in 02Route 3D is inspired by the research and methodology of Transform Transport / Systematica:

🌐 Transform Transport: UX-Mobility Multi-User Walkability Route Planner

Academic Citations

  • Tobler, W. (1993). Three Presentations on Geographical Analysis and Modeling. NCGIA, Tech Report 93-1.
  • Minetti, A.E. et al. (2002). Energy cost of walking and running at extreme uphill and downhill slopes. J. Appl. Physiol., 93(3), 1039-1046.
  • Keys, R.G. (1981). Cubic convolution interpolation for digital image processing. IEEE Trans. ASSP, 29(6), 1153-1160.
  • Saaty, T.L. (1980). The Analytic Hierarchy Process. McGraw-Hill.
  • Luo, W. & Qi, Y. (2009). An enhanced two-step floating catchment area (E2SFCA) method. Health & Place, 15(4), 1100-1107.