{
  "version": 1,
  "prepared": "2026-10-25",
  "owner": "Adeel Ahsan / aeronautyy",
  "landing": {
    "source": "Fresh MATLAB R2025b runs of the archived landing model, isolated output copy",
    "export": "scripts/research/rerun_landing.m, followed by scripts/research/prepare_research.py",
    "integration": "RK4, 0.02 s; exported at approximately 25 Hz with phase boundaries retained",
    "representation": "Generic quadcopter mesh. Research model parameters are independent of mesh dimensions.",
    "metrics": "Actual position compared with platform + 0.10 m docking offset, plus height and true relative velocity. Five cases meet the 0.08 m position, 0.03 m height and 0.35 m/s speed criteria. Denied-permission case remains in orbit. Contact physics are not modeled.",
    "timing": "State is recorded before propagation, at the same time as the platform, fixing the archived one-step offset.",
    "defaultReplay": "10 m illustrative minimum-jerk descent (10 seconds, stationary platform, ideal tracking), followed by the unmodified recorded 3.2 m far-initialization case. This prelude is not a MATLAB controller rerun. Terminal metrics and the download apply to the recorded segment. Generated by lib/high-approach.ts."
  },
  "aircraft": {
    "source": "Fixed-wing aerodynamic model and nonlinear equations of motion",
    "export": "scripts/research/export_aircraft.m",
    "run": "MATLAB R2025b; 120 m/s, 3000 m; central-difference Jacobians; matched ode45 linear/nonlinear control-pulse responses",
    "solver": "Relative tolerance 1e-8; absolute tolerance 1e-9; maximum internal step 0.02 s to resolve the pulse",
    "model": "Frozen alpha-dot in both nonlinear comparison and linearization. No manufacturer or flight-test fidelity claim.",
    "representation": "Original simplified procedural airframe. Display height is relative to the trim altitude."
  },
  "lunar": {
    "source": "New translational extension motivated by the archived NMPC/MHE work",
    "export": "scripts/research/prepare_research.py",
    "method": "SciPy SLSQP; 24 piecewise-constant acceleration intervals; exact double-integrator propagation",
    "objective": "Integrated squared thrust acceleration plus acceleration-change penalty",
    "bounds": "Resultant thrust acceleration <= 4 m/s\u00b2; thrust direction <= 20 degrees; nonnegative sampled height; zero final position and velocity",
    "gravity": "1.62 m/s\u00b2",
    "propellant": "Initial 4250 kg; Isp 300 s; rocket-equation integration along the chosen acceleration history",
    "scope": "3-DOF point mass; no rotational dynamics or engine lag; not a rerun of the archived NMPC",
    "representation": "Original procedural rocket and contextual terrain, with illustrative dimensions. Hinged landing-gear deployment and near-surface telescopic strut adjustment are presentation geometry, not hardware dynamics."
  },
  "vision": {
    "source": "Saved YOLOv8 training CSV and inference JSON, with original sample images",
    "training": "100 epochs; epoch 89 validation mAP50 0.82296; mAP50-95 0.54802",
    "prediction": "Boxes are model outputs, not verified ground truth. Threshold only filters saved candidates.",
    "evaluation": "Validation metrics are not an independent held-out deployment benchmark"
  },
  "mosaic": {
    "source": "Six original image tiles and saved composites in the existing portfolio archive",
    "stages": "Registration view is an explanatory image layout, not recovered feature-matcher output",
    "scope": "Image mosaic; survey-grade orthorectification is not established"
  },
  "geometry": {
    "quadcopter": {
      "source": "https://www.innerscene.com/tools/library/3d-parts/quadcopter-with-flight-electronics-a25968c1",
      "license": "CC0",
      "file": "/models/research-quadcopter.glb"
    },
    "aircraft": "Original procedural representative airframe",
    "rocket": "Original procedural representative rocket"
  },
  "replay": "Interpolated saved numerical states. No controller runs in the browser. Charts retain exported sample values."
}
