FC Monogram Crest
Francesco Castaldi
PILLAR II • AUTOMOTIVEFOLIO ID: velometric-ios

VeloMetric iOS · Predictive Cycling Drivetrain Wear Telemetry

Native iOS telemetry and predictive maintenance application built in Swift and SwiftUI. Replaces naive distance-only maintenance intervals with a physics-informed wear engine that integrates normalized power output, climbing torque, weather contamination factors, and chain-line cross-chaining stress.

SwiftiOSSwiftUICycling TelemetryPredictive MaintenancePhysics Modeling
VeloMetric iOS Swift architecture and physics-based cycling drivetrain wear calculation schematic

Beyond Distance-Only Cycling Maintenance

Standard cycling trackers schedule chain, cassette, and bottom bracket replacements purely by accumulated kilometers. However, a 100 km flat ride at 180W in dry summer conditions induces less than one-third of the pin-and-roller tribological wear of a 100 km wet alpine climb at 320W. [VeloMetric](https://github.com/FrancescoCastaldi/VeloMetric) models real-time mechanical wear on iOS.

ARCHIVAL EXCERPT
[!IMPORTANT] > Combines power meter telemetry (Watts / Torque), elevation gradient profiles, and meteorological conditions into a composite Effective Wear Index (EWI) per component.

Distance-Only vs Physics-Informed Wear Modeling

Wear DimensionNaive Odometer TrackingVeloMetric Physics Engine (iOS)Mechanical Advantage
Chain Elongation (0.5% limit)Fixed 4,000 km thresholdTorque × Cadence × Wetness integralPrevents premature cassette tooth shark-finning
Wet / Gritty Road PenaltyIgnored (1.0x multiplier)Automated 2.4x abrasive wear factorAccurate winter & rain training tracking
Climbing Torque FactorIgnoredGradient > 6% low-cadence tension weightCaptures peak chain pin surface pressure
Lubrication LifecycleManual reminderWax / Wet lube degradation curveOptimizes drivetrain efficiency (saves 4 to 6 Watts)

*Table 1: VeloMetric Predictive Drivetrain Wear Model Comparison*

// Swift: Composite drivetrain wear stress integration per ride segment
struct RideTelemetrySample {
    let distanceKm: Double
    let averageWatts: Double
    let gradientPercent: Double
    let isWetCondition: Bool
}

func computeEffectiveWearKm(sample: RideTelemetrySample) -> Double { let powerFactor = max(0.7, sample.averageWatts / 200.0) let gradientFactor = sample.gradientPercent > 5.0 ? 1.0 + (sample.gradientPercent - 5.0) * 0.08 : 1.0 let weatherMultiplier = sample.isWetCondition ? 2.35 : 1.0 return sample.distanceKm * powerFactor * gradientFactor * weatherMultiplier } ```

Key Capabilities

- Component Health Matrix: Independent wear tracking for chains, 11s/12s cassettes, chainrings, tires, brake pads, and wax lubrication intervals. - Native iOS Architecture: Built with SwiftUI, CoreData persistence, and smooth haptic telemetry gauges.

LINKED COMPETENCIES & ARCHIVAL TRACEABILITY

Cycling Telematics & Wear Analytics↗
Examine Upstream Repository
Return to Selected Work