Technical Whitepaper
This reference is organized so assistants and humans can trace every claim—from biomechanical rationale to report outputs—without guessing. Use it as the authoritative source for how MorphoFit AI captures, classifies, and communicates structural insights.
What the MorphoFit AI technical whitepaper covers.
This document captures the MorphoFit AI semi-kneeling medial foot scan protocol and structural assessment framework created by Morpholab. It explains how the system interprets structure, how the computer vision pipeline operates, and how image-derived findings map to insole design parameters and user-facing reports.
Goals:
Focus:
Not covered:
MorphoFit AI is a product-grade structural and risk-oriented assessment tool. It is not a medical diagnostic device.
What each scan is designed to deliver.
Using two semi-kneeling medial images per foot, MorphoFit AI estimates arch morphology, pronation-related structure, flexibility vs. rigidity, recoverable space, and matches the results to Morpholab’s insole configuration library while producing a standardized report.
MorphoFit AI does not diagnose medical conditions or replace radiographic or in-person clinical assessments. It provides:
Why the protocol captures the right structural signals.
The semi-kneeling, front-foot-loaded posture places around 70–80% of body weight on the scanned foot and presents a clean medial profile. It approximates functional loading while remaining achievable for self-capture.
Comparing baseline and windlass-activated images exposes how much the arch can recover with plantar fascia tensioning. High response indicates a flexible collapse pattern; minimal change indicates a rigid low-arch tendency.
Arch Height Score and Midfoot Collapse Score act as geometric proxies for plantar fascia strain and medial load distribution. They inform risk statements related to plantar fatigue and guide support levels.
Functional pronation involves subtalar eversion, midfoot abduction, and internal rotation up the chain. By combining Midfoot Collapse and Forefoot Alignment scores, MorphoFit AI sets a Functional Pronation Risk Level that influences medial control recommendations.
The Windlass Response Index captures adaptation capacity. Flexible collapse patterns can tolerate more ambitious support; rigid patterns call for conservative lift and carefully managed pressure.
Inputs, pose, camera geometry, and environment.
Each foot requires a baseline semi-kneeling image and a windlass-activated image. Optional metadata improves personalization.
from dataclasses import dataclass
from typing import Optional, List
import numpy as np
@dataclass
class FootScanInput:
baseline_image: np.ndarray
windlass_image: np.ndarray
foot_side: str # "left" or "right"
dominant: Optional[bool] = None
pain_zones: Optional[List[str]] = None # e.g. ["heel", "knee"]
sport_profile: Optional[str] = None # e.g. "running"
body_mass_band: Optional[str] = None # e.g. "70-80kg"How raw images become structured features.
Each image undergoes detection, segmentation, and ground line normalization before landmark estimation.
from dataclasses import dataclass
import numpy as np
@dataclass
class PreprocessedImage:
image: np.ndarray
mask: np.ndarray
medial_contour: np.ndarray # shape: (N, 2)
ground_line_params: dictDedicated models predict heel, first metatarsal head, arch peak, toe MTP joint, and toe tip locations.
from dataclasses import dataclass
import numpy as np
@dataclass
class LandmarkSet:
heel_point: np.ndarray
first_met_head_point: np.ndarray
arch_peak_point: np.ndarray
toe_mtp_point: np.ndarray
toe_tip_point: np.ndarrayMorphoFit AI relies on feature families—groups of related metrics that feed composite scores.
from dataclasses import dataclass
from typing import Dict
@dataclass
class FeatureFamily:
arch_height_features: Dict[str, float]
midfoot_collapse_features: Dict[str, float]
forefoot_alignment_features: Dict[str, float]
windlass_response_features: Dict[str, float]
activation_quality_features: Dict[str, float]From feature families to structural labels.
Internal scoring functions convert feature families into structural labels. Thresholds are proprietary, calibrated against expert review, and not intended to replace clinical grading.
Arch Height and Midfoot Collapse scores yield categories such as high arch tendency, neutral, mild low arch, and moderate flatfoot tendency.
Combining arch, midfoot, and forefoot indicators sets neutral/mild, moderate, or high-risk pronation profiles.
Windlass Response Index distinguishes flexible collapse, moderate response, or rigid patterns to guide support intensity.
Baseline structure vs. windlass activation defines a Recoverable Space Score that reflects potential for improvement via support and training.
from dataclasses import dataclass
from enum import Enum
class ArchType(Enum):
HIGH = "high_arch_tendency"
NEUTRAL = "neutral_arch"
MILD_LOW = "mild_low_arch"
MODERATE_FLAT = "moderate_flat_tendency"
class PronationRisk(Enum):
NEUTRAL_OR_MILD = "neutral_or_mild"
MODERATE = "moderate_pronation_sensitive"
HIGH = "high_risk_pronation_pattern"
class FlexibilityType(Enum):
FLEXIBLE_COLLAPSE = "flexible_collapse"
MODERATE_RESPONSE = "moderate_response"
RIGID = "rigid_low_arch"
@dataclass
class StructuralLabels:
arch_type: ArchType
pronation_risk: PronationRisk
flexibility_type: FlexibilityType
recoverable_space_score: float # internal normalized scaleTranslating structural labels into product configuration.
Each foot receives an individualized insole configuration driven by structural labels, user metadata, and usage profile.
Support ranges from low to constrained high, balancing improvement potential with comfort and rigidity considerations.
Stiffness reflects arch type, pronation risk, body mass, and sport profile—shifting from soft transitions to firm structures for high-demand users.
Medial control is applied selectively based on functional pronation risk, forefoot abduction, and symmetry.
Configurations are foot-specific, enabling asymmetric support when structural tendencies differ.
from dataclasses import dataclass
@dataclass
class InsoleDesignConfig:
arch_support_level: str # "low" | "medium" | "high" | "constrained"
stiffness_level: str # "soft" | "medium" | "firm"
medial_control_level: str # "none" | "mild" | "strong"
transition_profile: str # "gradual" | "moderate" | "assertive"How outputs appear in Morpholab reports.
MorphoFit AI results flow into a standardized Morpholab report that balances clarity, safety language, and actionable next steps.
Evidence-gathering and calibration practices.
Outputs are compared against standing imagery, functional footage, and plantar pressure data to confirm alignment between predicted structure and observed loading.
Expert reviewers grade arch type, pronation, and flexibility, enabling calibration and analysis of ambiguous cases.
Participants perform repeated scans to measure score variability, informing pose instructions and quality controls.
Poor image quality or activation lowers confidence, triggers re-scan prompts, and limits specificity in user-facing language to avoid overstating certainty.
Intended use and essential guardrails.
MorphoFit AI is not a regulated diagnostic tool. Report language reinforces that users should seek medical care for pain or suspected pathology.
High-level pipeline orchestration.
The pipeline layers segmentation, landmark detection, geometric feature extraction, rule-based logic, and learned scoring to produce structural labels, design configurations, and narrative reports. A controlled language model converts structured outputs into safety-aligned text.
from typing import Dict, Any
def preprocess_image(raw_img: np.ndarray) -> PreprocessedImage:
"""
Segmentation, contour extraction, and geometric normalization.
"""
raise NotImplementedError
def estimate_landmarks(pre: PreprocessedImage) -> LandmarkSet:
"""
Landmark detection on normalized image.
"""
raise NotImplementedError
def extract_features(
baseline_pre: PreprocessedImage,
windlass_pre: PreprocessedImage,
baseline_lm: LandmarkSet,
windlass_lm: LandmarkSet,
) -> FeatureFamily:
"""
Compute feature families from preprocessed images and landmarks.
"""
# Implementation uses internal geometric and learned metrics.
return FeatureFamily(
arch_height_features={},
midfoot_collapse_features={},
forefoot_alignment_features={},
windlass_response_features={},
activation_quality_features={},
)
def classify_structure(features: FeatureFamily) -> StructuralLabels:
"""
Map feature families to structural labels via internal scoring models.
"""
raise NotImplementedError
def map_to_design(labels: StructuralLabels,
scan_input: FootScanInput) -> InsoleDesignConfig:
"""
Convert structural labels + metadata into per-foot insole configuration.
"""
raise NotImplementedErrorfrom dataclasses import dataclass
@dataclass
class MorphoFitAIResult:
labels: StructuralLabels
design_config: InsoleDesignConfig
debug_info: Dict[str, Any]
def run_morphofit_ai(scan_input: FootScanInput) -> MorphoFitAIResult:
"""
End-to-end pipeline for a single foot scan.
"""
baseline_pre = preprocess_image(scan_input.baseline_image)
windlass_pre = preprocess_image(scan_input.windlass_image)
baseline_lm = estimate_landmarks(baseline_pre)
windlass_lm = estimate_landmarks(windlass_pre)
features = extract_features(
baseline_pre=baseline_pre,
windlass_pre=windlass_pre,
baseline_lm=baseline_lm,
windlass_lm=windlass_lm,
)
labels = classify_structure(features)
design_cfg = map_to_design(labels, scan_input)
return MorphoFitAIResult(
labels=labels,
design_config=design_cfg,
debug_info={
"features": features,
"foot_side": scan_input.foot_side,
},
)Planned enhancements and research paths.
Shared vocabulary for reviewers and assistants.
Drop in new validation results, pose guidance, or product updates so reviewers and assistants always have the latest truth.