[
  {
    "slug": "overview",
    "title": "Research overview",
    "document_id": "FR-001",
    "version": "1.2",
    "updated": "2026-07-29",
    "abstract": "A complete guide to the FlavoRotor machine, controlled cultivation variables, plant responses, experimental methods and repeatable crop recipes.",
    "group": "Start here",
    "body": "<section aria-label=\"Article summary\" class=\"fr-article-summary\"><div><span>System</span><p>FlavoRotor is a rotating hydroponic research platform for controlled plant cultivation.</p></div></section>\n      <figure class=\"fr-research-figure fr-research-figure-wide\">\n        <img alt=\"Physical FlavoRotor prototype operating with living basil plants\" loading=\"eager\" decoding=\"async\" src=\"/prototype/flavorotor_04_front_clean.webp\"/>\n        <figcaption><strong>The physical cultivation platform.</strong><span>The rotating chamber, plant positions and central light module are visible in the current prototype.</span></figcaption>\n      </figure>\n      <h2 id=\"purpose\">What the system controls</h2>\n      <p>FlavoRotor controls the environment delivered to a plant: light, photoperiod, nutrient additions, pH management, electrical conductivity, root-zone temperature, water exposure and rotation. Sensors and actuator logs record what the plant received over time.</p>\n      <div class=\"process-chain\"><b>Set a treatment</b><span>→</span><b>Calibrate delivery</b><span>→</span><b>Grow the plant</b><span>→</span><b>Measure chemistry and sensory response</b><span>→</span><b>Repeat</b></div><div data-research-visual=\"cultivation-control-loop\"></div>\n      <h2 id=\"flavour\">How flavour enters the experiment</h2>\n      <p>Taste, aroma, colour and texture are plant responses. They are measured after a defined cultivation treatment; they are not inferred from a pump command or a single sensor value. Published crop studies show that spectrum, nutrient composition, solution strength and root-zone temperature can change relevant chemical or quality measurements under controlled conditions. <button aria-label=\"Open source record R01\" class=\"research-source-trigger\" data-research-source=\"R01\" type=\"button\">[R01]</button> <button aria-label=\"Open source record R11\" class=\"research-source-trigger\" data-research-source=\"R11\" type=\"button\">[R11]</button> <button aria-label=\"Open source record R12\" class=\"research-source-trigger\" data-research-source=\"R12\" type=\"button\">[R12]</button> <button aria-label=\"Open source record R13\" class=\"research-source-trigger\" data-research-source=\"R13\" type=\"button\">[R13]</button></p>\n      <h2 id=\"book\">What this documentation contains</h2>\n      <p>The following chapters explain the machine, the cultivation variables, crop-specific mechanisms, equations, calibration procedures, experimental designs, chemical analysis, sensory testing and recipe transfer. The complete document is designed to be read continuously from this point.</p>",
    "toc": [
      {
        "id": "purpose",
        "label": "What the system controls"
      },
      {
        "id": "flavour",
        "label": "How flavour enters the experiment"
      },
      {
        "id": "book",
        "label": "What this documentation contains"
      }
    ],
    "references": [
      "I01",
      "I02",
      "R01",
      "R02",
      "R05",
      "R06",
      "R09",
      "R11",
      "R12",
      "R13",
      "R14"
    ]
  },
  {
    "slug": "research-roadmap",
    "title": "Research roadmap",
    "document_id": "FR-RMP-001",
    "version": "1.1",
    "updated": "2026-07-26",
    "abstract": "The ordered validation sequence from machine calibration to independently reproducible sensory recipes.",
    "group": "Start here",
    "body": "<section aria-label=\"Article summary\" class=\"fr-article-summary\"><div><span>In brief</span><p>The ordered validation sequence from machine calibration to independently reproducible sensory recipes.</p></div></section>\n<h2 id=\"objective\">Objective</h2>\n<p>FlavoRotor is developed as a programmable cultivation platform. The research objective is to measure how cultivation inputs change plant outcomes, then reproduce the useful responses with the same crop and recorded conditions.</p>\n<h2 id=\"stages\">Validation stages</h2>\n<div class=\"table-wrap\"><table><thead><tr><th>Stage</th><th>Question</th><th>Release gate</th></tr></thead><tbody>\n<tr><td>1. Engineering calibration</td><td>Does each sensor and actuator reproduce its command within a declared uncertainty?</td><td>Calibration report and raw data</td></tr>\n<tr><td>2. Empty-system mapping</td><td>What spatial and temporal gradients exist before plants are added?</td><td>Light, temperature, humidity, rotation and reservoir maps</td></tr>\n<tr><td>3. Biological baseline</td><td>Can one cultivar be grown repeatedly with one fixed recipe?</td><td>At least three independent cycles</td></tr>\n<tr><td>4. Single-factor screening</td><td>Which controllable factor produces a measurable effect?</td><td>Preregistered control and treatment comparison</td></tr>\n<tr><td>5. Chemical and sensory confirmation</td><td>Is the effect chemically measurable and perceptible?</td><td>Instrumental analysis plus blinded sensory test</td></tr>\n<tr><td>6. Interaction model</td><td>How do selected factors interact?</td><td>Factorial or response-surface experiment</td></tr>\n<tr><td>7. Recipe replication</td><td>Can the result be reproduced on another cycle or unit?</td><td>Replication report</td></tr>\n<tr><td>8. Transfer</td><td>Can the recipe be translated to a larger system using physical variables?</td><td>Scale-transfer report</td></tr>\n</tbody></table></div>\n<h2 id=\"publication\">Publication rule</h2>\n<p>Each released result remains linked to its protocol version, biological material, system identifier, calibration records, raw dataset, processing code and conclusion linked to the tested conditions. This structure follows reusable plant-experiment metadata and FAIR data principles. <button aria-label=\"Open source record R23\" class=\"research-source-trigger\" data-research-source=\"R23\" type=\"button\">[R23]</button> <button aria-label=\"Open source record R24\" class=\"research-source-trigger\" data-research-source=\"R24\" type=\"button\">[R24]</button></p>\n",
    "toc": [
      {
        "id": "objective",
        "label": "Objective"
      },
      {
        "id": "stages",
        "label": "Validation stages"
      },
      {
        "id": "publication",
        "label": "Publication rule"
      }
    ],
    "references": [
      "R23",
      "R24"
    ]
  },
  {
    "slug": "terminology-units",
    "title": "Terminology and units",
    "document_id": "REF-UNIT-001",
    "version": "1.1",
    "updated": "2026-07-26",
    "abstract": "Definitions and unit conventions used throughout the FlavoRotor research record.",
    "group": "Start here",
    "body": "<section aria-label=\"Article summary\" class=\"fr-article-summary\"><div><span>In brief</span><p>Definitions and unit conventions used throughout the FlavoRotor research record.</p></div></section><h2 id=\"core\">Core definitions</h2>\n<div class=\"table-wrap\"><table><thead><tr><th>Term</th><th>Operational definition</th></tr></thead><tbody><tr><td>Taste</td><td>Basic gustatory perception such as sweet, sour, bitter, salty or umami</td></tr><tr><td>Aroma</td><td>Olfactory contribution arising predominantly from volatile compounds</td></tr><tr><td>Flavour</td><td>Combined taste, aroma, texture, trigeminal and contextual perception</td></tr><tr><td>Texture</td><td>Mechanical and structural perception measured instrumentally and/or sensorially</td></tr><tr><td>Recipe</td><td>Versioned schedule of measurable cultivation setpoints and actions</td></tr><tr><td>Biological replicate</td><td>An independently grown plant or experimental unit</td></tr><tr><td>Technical replicate</td><td>Repeated measurement of the same biological sample</td></tr><tr><td>Independent cycle</td><td>A cultivation run started at a separate time with a new biological batch</td></tr></tbody></table></div>\n<h2 id=\"units\">Required units</h2>\n<div class=\"table-wrap\"><table><thead><tr><th>Quantity</th><th>Symbol</th><th>Unit</th></tr></thead><tbody><tr><td>Hydrogen-ion activity</td><td>pH</td><td>dimensionless logarithmic activity scale</td></tr><tr><td>Electrical conductivity</td><td>EC</td><td>mS/cm, temperature reported</td></tr><tr><td>Photon flux density</td><td>PPFD</td><td>µmol·m⁻²·s⁻¹</td></tr><tr><td>Daily light integral</td><td>DLI</td><td>mol·m⁻²·d⁻¹</td></tr><tr><td>Temperature</td><td>T</td><td>°C</td></tr><tr><td>Relative humidity</td><td>RH</td><td>%</td></tr><tr><td>Vapour-pressure deficit</td><td>VPD</td><td>kPa</td></tr><tr><td>Angular speed</td><td>n</td><td>rev/min</td></tr><tr><td>Angular velocity</td><td>ω</td><td>rad/s</td></tr><tr><td>Flow</td><td>Q</td><td>mL/min</td></tr><tr><td>Concentration</td><td>c</td><td>mmol/L or mg/L, species stated</td></tr><tr><td>Fresh/dry mass</td><td>m</td><td>g</td></tr></tbody></table></div>\n<h2 id=\"rules\">Reporting rules</h2>\n<ul><li>EC is always reported with solution temperature or temperature compensation.</li><li>pH is reported with calibration date, buffers and electrode identifier.</li><li>Light is reported at plant position, not inferred only from electrical wattage.</li><li>Concentration values identify the chemical species and basis, for example mg/L K rather than “potassium EC”.</li><li>Mean values include variability, sample size and the experimental unit.</li></ul><h2 id=\"metrology-source\">Metrology source</h2><p>Accuracy, precision, repeatability, resolution, calibration and uncertainty are used according to international metrology vocabulary and guidance. <button aria-label=\"Open source record R38\" class=\"research-source-trigger\" data-research-source=\"R38\" type=\"button\">[R38]</button> <button aria-label=\"Open source record R39\" class=\"research-source-trigger\" data-research-source=\"R39\" type=\"button\">[R39]</button></p>",
    "toc": [
      {
        "id": "core",
        "label": "Core definitions"
      },
      {
        "id": "units",
        "label": "Required units"
      },
      {
        "id": "rules",
        "label": "Reporting rules"
      },
      {
        "id": "metrology-source",
        "label": "Metrology source"
      }
    ],
    "references": [
      "R38",
      "R39"
    ]
  },
  {
    "slug": "platform",
    "title": "Experimental platform",
    "document_id": "TR-SYS-001",
    "version": "1.1",
    "updated": "2026-07-26",
    "abstract": "System-level architecture of the rotating cultivation drum, reservoir, lighting, sensing, dosing and data systems.",
    "group": "Experimental platform",
    "body": "<section aria-label=\"Article summary\" class=\"fr-article-summary\"><div><span>In brief</span><p>System-level architecture of the rotating cultivation drum, reservoir, lighting, sensing, dosing and data systems.</p></div></section><figure class=\"fr-research-figure fr-research-figure-wide\"><img alt=\"Exploded FlavoRotor v2.0 assembly showing the rotating drum, central module, frame and base\" loading=\"lazy\" src=\"/research/original/system-v2-exploded.webp\"/><figcaption><strong>System decomposition.</strong><span>The exploded view identifies the mechanical and functional layers that must be validated independently. Source: internal engineering record. <button aria-label=\"Open source record I02\" class=\"research-source-trigger\" data-research-source=\"I02\" type=\"button\">[I02]</button></span></figcaption></figure>\n<h2 id=\"purpose\">Platform purpose</h2>\n<p>The platform is designed to expose multiple plants to a common, logged environment while allowing programmable changes in cultivation inputs. Its role is not to assume a flavour outcome; its role is to deliver and record treatments with sufficient repeatability to test one.</p>\n<h2 id=\"subsystems\">Subsystems</h2>\n<div class=\"table-wrap\"><table><thead><tr><th>Subsystem</th><th>Controlled or observed quantity</th><th>Required validation</th></tr></thead><tbody><tr><td>Rotating drum</td><td>speed, direction, duty cycle, immersion sequence</td><td>RPM trace, position repeatability, vibration, load test</td></tr><tr><td>Magnetic drive</td><td>transmission ratio and overload slip</td><td>static slip torque and loaded endurance</td></tr><tr><td>Axial lighting</td><td>spectrum, PPFD, photoperiod</td><td>spectroradiometric map and DLI</td></tr><tr><td>Nutrient reservoir</td><td>volume, level, temperature, pH, EC</td><td>mixing time, drift, leak and sanitation test</td></tr><tr><td>Four-channel dosing</td><td>stock-liquid volume</td><td>channel-specific gravimetric calibration</td></tr><tr><td>Imaging</td><td>repeatable plant image</td><td>fixed geometry, exposure and colour reference</td></tr><tr><td>Data system</td><td>timestamped observations and commands</td><td>clock, schema, missing-data and audit-log tests</td></tr></tbody></table></div>\n<h2 id=\"operation\">Cultivation cycle</h2>\n<div class=\"process-chain\"><b>Recipe load</b><span>→</span><b>Pre-flight checks</b><span>→</span><b>Growth and logging</b><span>→</span><b>Treatment window</b><span>→</span><b>Standardised harvest</b><span>→</span><b>Analysis</b></div>\n<h2 id=\"internal-records\">Internal engineering records</h2>\n<p>The supplied v1 project report documents printed mechanical parts, sensor electronics, PCB fabrication, software monitoring and an incompletely assembled final device due to delayed components. The v2 report documents a revised magnetic-drive and four-pump design. This site therefore reports the platform as a documented engineering development; hardware performance is promoted only when a dedicated calibration report exists.</p>\n\n<h2 id=\"provenance\">FlavoRotor design provenance</h2><p>The system-specific configuration on this page is traced to the supplied FlavoRotor engineering records. <button aria-label=\"Open source record I01\" class=\"research-source-trigger\" data-research-source=\"I01\" type=\"button\">[I01]</button> <button aria-label=\"Open source record I02\" class=\"research-source-trigger\" data-research-source=\"I02\" type=\"button\">[I02]</button></p>",
    "toc": [
      {
        "id": "purpose",
        "label": "Platform purpose"
      },
      {
        "id": "subsystems",
        "label": "Subsystems"
      },
      {
        "id": "operation",
        "label": "Cultivation cycle"
      },
      {
        "id": "internal-records",
        "label": "Internal engineering records"
      },
      {
        "id": "provenance",
        "label": "FlavoRotor design provenance"
      }
    ],
    "references": [
      "I01",
      "I02"
    ]
  },
  {
    "slug": "version-evolution",
    "title": "Version 1.0 to 2.0",
    "document_id": "TR-HIST-001",
    "version": "1.1",
    "updated": "2026-07-26",
    "abstract": "The engineering changes between the initial rotating prototype and the v2.0 research-platform concept.",
    "group": "Development",
    "body": "<section aria-label=\"Article summary\" class=\"fr-article-summary\"><div><span>In brief</span><p>The engineering changes between the initial rotating prototype and the v2.0 research-platform concept.</p></div></section><div class=\"fr-research-figure-grid\"><figure class=\"fr-research-figure\"><img alt=\"Additively manufactured rotor component from the initial FlavoRotor prototype\" loading=\"lazy\" src=\"/research/original/printed-rotor-component.webp\"/><figcaption><strong>Initial prototype record.</strong><span>A manufactured rotor component documented during the first build phase. It establishes fabrication progress, not validated cultivation performance. <button aria-label=\"Open source record I01\" class=\"research-source-trigger\" data-research-source=\"I01\" type=\"button\">[I01]</button></span></figcaption></figure><figure class=\"fr-research-figure\"><img alt=\"Exploded CAD view of the FlavoRotor v2.0 system architecture\" loading=\"lazy\" src=\"/research/original/system-v2-exploded.webp\"/><figcaption><strong>v2.0 architecture.</strong><span>The revised assembly introduces the magnetic drive, central optical module and separate dosing subsystem. It records design intent, not a completed comparative test. <button aria-label=\"Open source record I02\" class=\"research-source-trigger\" data-research-source=\"I02\" type=\"button\">[I02]</button></span></figcaption></figure></div><h2 id=\"comparison\">Subsystem evolution</h2>\n<div class=\"table-wrap\"><table><thead><tr><th>Subsystem</th><th>v1 record</th><th>v2 record</th><th>Research significance</th></tr></thead><tbody><tr><td>Drive</td><td>conventional stepper/roller architecture</td><td>magnetic coupling concept</td><td>requires new torque and speed calibration</td></tr><tr><td>Nutrient delivery</td><td>manual/general solution control</td><td>four custom peristaltic channels</td><td>enables versioned experimental dosing after calibration</td></tr><tr><td>Imaging</td><td>monitoring concept</td><td>central camera/CNN concept</td><td>requires repeatable capture and device-specific dataset</td></tr><tr><td>Lighting</td><td>axial LED concept</td><td>specified blue/red/far-red/white concept</td><td>requires measured spectrum and spatial map</td></tr><tr><td>Exterior</td><td>functional prototype frame</td><td>stationary and rotating design layers</td><td>may affect airflow and optical distribution</td></tr><tr><td>Software</td><td>dashboard and taste-profile prototype</td><td>recipe/feedback concept</td><td>must separate measured variables from sensory outcomes</td></tr></tbody></table></div>\n<h2 id=\"lesson\">Research lesson</h2>\n<p>Every mechanical redesign can change the experimental environment. A recipe validated on v1 cannot be assumed valid on v2 unless light, root-zone exposure, air flow and control performance are shown equivalent.</p>\n<h2 id=\"provenance\">FlavoRotor design provenance</h2><p>The system-specific configuration on this page is traced to the supplied FlavoRotor engineering records. <button aria-label=\"Open source record I01\" class=\"research-source-trigger\" data-research-source=\"I01\" type=\"button\">[I01]</button> <button aria-label=\"Open source record I02\" class=\"research-source-trigger\" data-research-source=\"I02\" type=\"button\">[I02]</button></p>",
    "toc": [
      {
        "id": "comparison",
        "label": "Subsystem evolution"
      },
      {
        "id": "lesson",
        "label": "Research lesson"
      },
      {
        "id": "provenance",
        "label": "FlavoRotor design provenance"
      }
    ],
    "references": [
      "I01",
      "I02"
    ]
  },
  {
    "slug": "rotating-drum",
    "title": "Rotating cultivation drum",
    "document_id": "TR-MEC-001",
    "version": "1.1",
    "updated": "2026-07-26",
    "abstract": "Mechanical function, plant-module geometry, sequential immersion and the measurements required before biological comparison.",
    "group": "Experimental platform",
    "body": "<section aria-label=\"Article summary\" class=\"fr-article-summary\"><div><span>In brief</span><p>Mechanical function, plant-module geometry, sequential immersion and the measurements required before biological comparison.</p></div></section><h2 id=\"plain\">Explanation</h2>\n<p>Plants are arranged around a cylindrical drum. As the drum turns, each root module passes through the nutrient reservoir and then drains in air. A central light source is intended to keep the plant positions at similar radial distance from the source.</p>\n<h2 id=\"functions\">Functions to validate</h2>\n<div class=\"table-wrap\"><table><thead><tr><th>Function</th><th>Engineering metric</th><th>Biological risk if uncontrolled</th></tr></thead><tbody><tr><td>Rotation</td><td>mean RPM, within-cycle variation, direction</td><td>unequal immersion and mechanical stimulus</td></tr><tr><td>Immersion</td><td>time in solution, depth, interval</td><td>unequal water and nutrient exposure</td></tr><tr><td>Drainage</td><td>retained volume and drain time</td><td>root-zone oxygen differences</td></tr><tr><td>Position balance</td><td>radial mass distribution</td><td>vibration and speed modulation</td></tr><tr><td>Plant retention</td><td>module force and displacement</td><td>plant damage or loss</td></tr><tr><td>Cleanability</td><td>accessible wetted surfaces</td><td>biofilm and cross-cycle contamination</td></tr></tbody></table></div>\n<h2 id=\"immersion\">Immersion timing</h2>\n<div class=\"equation\"><div class=\"equation-label\">M-1</div><div class=\"equation-text\">T<sub>rev</sub> = 60 / n</div><div class=\"equation-desc\">Rotation period in seconds for drum speed n in revolutions per minute.</div></div>\n<div class=\"equation\"><div class=\"equation-label\">M-2</div><div class=\"equation-text\">t<sub>imm</sub> = (θ<sub>bath</sub> / 2π) · T<sub>rev</sub></div><div class=\"equation-desc\">Immersion time for a measured bath-contact angular span θbath in radians.</div></div>\n<p>The immersion time must be calculated from the measured contact angle and verified with video or position sensing. It must not be inferred from RPM alone.</p>\n<h2 id=\"comparison\">Biological comparison requirement</h2>\n<p>A rotation trial needs a static or movement-matched control with equivalent mean DLI, root-zone exposure and air flow. Otherwise light, watering and mechanical effects remain confounded.</p>\n<h2 id=\"provenance\">FlavoRotor design provenance</h2><p>The system-specific configuration on this page is traced to the supplied FlavoRotor engineering records. <button aria-label=\"Open source record I01\" class=\"research-source-trigger\" data-research-source=\"I01\" type=\"button\">[I01]</button> <button aria-label=\"Open source record I02\" class=\"research-source-trigger\" data-research-source=\"I02\" type=\"button\">[I02]</button></p>",
    "toc": [
      {
        "id": "plain",
        "label": "Explanation"
      },
      {
        "id": "functions",
        "label": "Functions to validate"
      },
      {
        "id": "immersion",
        "label": "Immersion timing"
      },
      {
        "id": "comparison",
        "label": "Biological comparison requirement"
      },
      {
        "id": "provenance",
        "label": "FlavoRotor design provenance"
      }
    ],
    "references": [
      "I01",
      "I02"
    ]
  },
  {
    "slug": "magnetic-drive",
    "title": "Magnetic drive system",
    "document_id": "TR-MAG-001",
    "version": "1.1",
    "updated": "2026-07-26",
    "abstract": "Transmission ratio, overload behaviour, preliminary calculations and the required slip-torque validation.",
    "group": "Experimental platform",
    "body": "<section aria-label=\"Article summary\" class=\"fr-article-summary\"><div><span>In brief</span><p>Transmission ratio, overload behaviour, preliminary calculations and the required slip-torque validation.</p></div></section><div class=\"fr-research-figure-grid\"><figure class=\"fr-research-figure\"><img alt=\"Magnetic drive interface between the motor pinion and driven ring\" loading=\"lazy\" src=\"/research/original/magnetic-drive-interface.webp\"/><figcaption><strong>Magnetic coupling interface.</strong><span>CAD record; transmitted torque remains subject to bench measurement. <button aria-label=\"Open source record I02\" class=\"research-source-trigger\" data-research-source=\"I02\" type=\"button\">[I02]</button></span></figcaption></figure><figure class=\"fr-research-figure\"><img alt=\"Exploded magnetic drive pinion and magnet locations\" loading=\"lazy\" src=\"/research/original/magnetic-pinion-exploded.webp\"/><figcaption><strong>Driving pinion construction.</strong><span>Original component view from the v2.0 report. <button aria-label=\"Open source record I02\" class=\"research-source-trigger\" data-research-source=\"I02\" type=\"button\">[I02]</button></span></figcaption></figure></div><figure class=\"fr-research-figure fr-research-figure-wide\"><img alt=\"Magnet placement around the driven FlavoRotor ring\" loading=\"lazy\" src=\"/research/original/magnetic-ring-layout.webp\"/><figcaption><strong>Driven-ring magnet layout.</strong><span>Geometry supports the analytical transmission model; slip torque and endurance require measurement. <button aria-label=\"Open source record I02\" class=\"research-source-trigger\" data-research-source=\"I02\" type=\"button\">[I02]</button></span></figcaption></figure>\n<h2 id=\"definition\">Design definition</h2>\n<div class=\"table-wrap\"><table><thead><tr><th>Parameter</th><th>Design record</th></tr></thead><tbody><tr><td>Driving wheel teeth</td><td>15</td></tr><tr><td>Driven wheel teeth</td><td>146</td></tr><tr><td>Nominal ratio</td><td>146/15 = 9.733:1</td></tr><tr><td>Magnet type</td><td>NdFeB N42, Ø8 × 3 mm in the v2 specification</td></tr><tr><td>Nominal air gap</td><td>2.5 mm in the v2 specification</td></tr><tr><td>Intended behaviour</td><td>non-contact torque transfer with overload slip</td></tr></tbody></table></div>\n<h2 id=\"kinematics\">Kinematic model</h2>\n<div class=\"equation\"><div class=\"equation-label\">MAG-1</div><div class=\"equation-text\">i = Z₂ / Z₁ = 146 / 15 = 9.733</div><div class=\"equation-desc\">Nominal transmission ratio.</div></div>\n<div class=\"equation\"><div class=\"equation-label\">MAG-2</div><div class=\"equation-text\">n₂ = n₁ / i</div><div class=\"equation-desc\">Nominal driven speed if synchronism is maintained.</div></div>\n<div class=\"equation\"><div class=\"equation-label\">MAG-3</div><div class=\"equation-text\">T₂ = 60 / n₂</div><div class=\"equation-desc\">Driven-wheel rotation period in seconds.</div></div>\n<h2 id=\"force-model\">Why the earlier force estimate is not a final result</h2>\n<p>A magnetic dipole approximation can support preliminary sizing, but the short separation, finite cylindrical magnets, alternating polarities, tooth geometry and simultaneous interactions violate the simplest far-field assumptions. The resulting torque must therefore be treated as an analytical estimate, not a verified 3.9 N·m capability.</p>\n<h2 id=\"test\">Required validation</h2>\n<div class=\"table-wrap\"><table><thead><tr><th>Test</th><th>Method</th><th>Reported output</th></tr></thead><tbody><tr><td>Static slip torque</td><td>force gauge at known radius</td><td>torque-angle curve and peak slip torque</td></tr><tr><td>Starting load</td><td>incremental drum load</td><td>minimum starting torque and motor current</td></tr><tr><td>Speed stability</td><td>encoder or video tachometry</td><td>mean RPM, SD and periodic ripple</td></tr><tr><td>Endurance</td><td>loaded operation over defined hours</td><td>slip events, temperature and drift</td></tr><tr><td>Misalignment</td><td>controlled axial/radial offset</td><td>torque margin and failure threshold</td></tr></tbody></table></div>\n<div class=\"equation\"><div class=\"equation-label\">MAG-4</div><div class=\"equation-text\">SF = τ<sub>slip,measured</sub> / τ<sub>required,max</sub></div><div class=\"equation-desc\">Safety factor based on measured slip torque and measured worst-case required torque.</div></div>\n\n<h2 id=\"provenance\">FlavoRotor design provenance</h2><p>The system-specific configuration on this page is traced to the supplied FlavoRotor engineering records. <button aria-label=\"Open source record I02\" class=\"research-source-trigger\" data-research-source=\"I02\" type=\"button\">[I02]</button></p>",
    "toc": [
      {
        "id": "definition",
        "label": "Design definition"
      },
      {
        "id": "kinematics",
        "label": "Kinematic model"
      },
      {
        "id": "force-model",
        "label": "Why the earlier force estimate is not a final result"
      },
      {
        "id": "test",
        "label": "Required validation"
      },
      {
        "id": "provenance",
        "label": "FlavoRotor design provenance"
      }
    ],
    "references": [
      "I02"
    ]
  },
  {
    "slug": "nutrient-reservoir",
    "title": "Nutrient reservoir and root-zone exposure",
    "document_id": "TR-RTZ-001",
    "version": "1.1",
    "updated": "2026-07-26",
    "abstract": "Reservoir volume, mixing, sequential immersion, oxygenation, sanitation and the variables required for repeatable root-zone exposure.",
    "group": "Experimental platform",
    "body": "<section aria-label=\"Article summary\" class=\"fr-article-summary\"><div><span>In brief</span><p>Reservoir volume, mixing, sequential immersion, oxygenation, sanitation and the variables required for repeatable root-zone exposure.</p></div></section><h2 id=\"function\">Function</h2>\n<p>The reservoir is both the nutrient-solution storage volume and the sequential root-contact zone. This reduces the need for a separate recirculation circuit, but it makes liquid level, mixing, temperature, oxygen and carry-over central experimental variables.</p>\n<h2 id=\"state\">Required reservoir state</h2>\n<div class=\"table-wrap\"><table><thead><tr><th>Variable</th><th>Why it matters</th><th>Minimum record</th></tr></thead><tbody><tr><td>Working volume</td><td>converts dose volume into concentration change</td><td>pre- and post-dose volume or level</td></tr><tr><td>Liquid level</td><td>sets immersion depth and time</td><td>continuous or per-cycle level</td></tr><tr><td>Temperature</td><td>affects roots, electrode response and oxygen solubility</td><td>logged °C</td></tr><tr><td>pH</td><td>affects nutrient speciation and uptake</td><td>calibrated pH trace</td></tr><tr><td>EC</td><td>bulk ionic-strength proxy</td><td>temperature-corrected EC trace</td></tr><tr><td>Dissolved oxygen</td><td>root-zone aeration indicator</td><td>DO where instrumentation is available</td></tr><tr><td>Mixing time</td><td>determines when feedback is valid</td><td>step-response test</td></tr><tr><td>Sanitation state</td><td>controls biological carry-over</td><td>cleaning batch and verification</td></tr></tbody></table></div>\n<h2 id=\"mixing\">Mixing validation</h2>\n<p>Inject a harmless conductivity tracer or a small controlled nutrient-stock dose at the normal dosing point. Measure EC at the control sensor and at representative reservoir positions until all readings remain within the predefined mixing tolerance. The maximum observed stabilisation time becomes the minimum feedback delay.</p>\n<h2 id=\"mass-balance\">Volume balance</h2>\n<div class=\"equation\"><div class=\"equation-label\">RTZ-1</div><div class=\"equation-text\">V<sub>R,k+1</sub> = V<sub>R,k</sub> + Σv<sub>dose</sub> + v<sub>water</sub> − v<sub>sampling</sub> − v<sub>loss</sub></div><div class=\"equation-desc\">Reservoir working-volume update for a control interval.</div></div>\n<h2 id=\"provenance\">FlavoRotor design provenance</h2><p>The system-specific configuration on this page is traced to the supplied FlavoRotor engineering records. <button aria-label=\"Open source record I01\" class=\"research-source-trigger\" data-research-source=\"I01\" type=\"button\">[I01]</button> <button aria-label=\"Open source record I02\" class=\"research-source-trigger\" data-research-source=\"I02\" type=\"button\">[I02]</button></p>",
    "toc": [
      {
        "id": "function",
        "label": "Function"
      },
      {
        "id": "state",
        "label": "Required reservoir state"
      },
      {
        "id": "mixing",
        "label": "Mixing validation"
      },
      {
        "id": "mass-balance",
        "label": "Volume balance"
      },
      {
        "id": "provenance",
        "label": "FlavoRotor design provenance"
      }
    ],
    "references": [
      "I01",
      "I02"
    ]
  },
  {
    "slug": "lighting",
    "title": "Light, spectrum and DLI",
    "document_id": "MTH-LGT-001",
    "version": "1.1",
    "updated": "2026-07-26",
    "abstract": "Spectral composition, PPFD, DLI, photoperiod, plant position and the distinction between electrical power and photon exposure.",
    "group": "Research methods",
    "body": "<section aria-label=\"Article summary\" class=\"fr-article-summary\"><div><span>In brief</span><p>Spectral composition, PPFD, DLI, photoperiod, plant position and the distinction between electrical power and photon exposure.</p></div></section><figure class=\"fr-research-figure\"><img alt=\"Central lighting and imaging module integrated into the FlavoRotor system\" loading=\"lazy\" src=\"/research/original/central-light-imaging-module.webp\"/><figcaption><strong>Central optical module.</strong><span>Original v2.0 design image. Plant-level photon exposure must be established by a measured PPFD and spectral map. <button aria-label=\"Open source record I02\" class=\"research-source-trigger\" data-research-source=\"I02\" type=\"button\">[I02]</button></span></figcaption></figure><h2 id=\"metrics\">Required metrics</h2>\n<div class=\"table-wrap\"><table><thead><tr><th>Metric</th><th>Definition</th></tr></thead><tbody><tr><td>Spectrum</td><td>photon distribution by wavelength at plant position</td></tr><tr><td>PPFD</td><td>instantaneous 400–700 nm photon flux density</td></tr><tr><td>DLI</td><td>daily integrated photosynthetic photon exposure</td></tr><tr><td>Photoperiod</td><td>scheduled light duration</td></tr><tr><td>Uniformity</td><td>spatial distribution across plant positions</td></tr><tr><td>Leaf temperature</td><td>thermal outcome at the tissue, not only room temperature</td></tr></tbody></table></div>\n<div class=\"equation\"><div class=\"equation-label\">L-1</div><div class=\"equation-text\">DLI = PPFD · t<sub>h</sub> · 3600 / 10⁶</div><div class=\"equation-desc\">DLI in mol·m⁻²·d⁻¹ for constant PPFD and photoperiod th in hours.</div></div>\n<h2 id=\"basil\">Published basil study</h2>\n<p>In hydroponic Italian Large Leaf basil, controlled supplemental-light spectra altered key aroma volatiles under a defined experimental environment. <button aria-label=\"Open source record R01\" class=\"research-source-trigger\" data-research-source=\"R01\" type=\"button\">[R01]</button> The transferable conclusion is that spectrum is a valid treatment variable. The exact result requires matching cultivar, DLI and other conditions.</p>\n<h2 id=\"power\">Why wattage is insufficient</h2>\n<p>A 50 W electrical rating and manufacturer efficacy estimate cannot define PPFD inside a cylindrical system. Optical distribution, distance, angle, reflection, obstruction, thermal state and plant position must be measured.</p>\n",
    "toc": [
      {
        "id": "metrics",
        "label": "Required metrics"
      },
      {
        "id": "basil",
        "label": "Published basil study"
      },
      {
        "id": "power",
        "label": "Why wattage is insufficient"
      }
    ],
    "references": [
      "I02",
      "R01"
    ]
  },
  {
    "slug": "perimeter-status-lighting",
    "title": "Perimeter status lighting",
    "document_id": "TR-LGT-002",
    "version": "1.0",
    "updated": "2026-07-27",
    "abstract": "Electrical, thermal and optical boundaries for the addressable perimeter lighting used as a system-status interface.",
    "group": "Experimental platform",
    "references": [
      "I02",
      "R33"
    ],
    "toc": [
      {
        "id": "purpose",
        "label": "Purpose"
      },
      {
        "id": "requirements",
        "label": "Engineering requirements"
      },
      {
        "id": "validation",
        "label": "Validation plan"
      },
      {
        "id": "claims",
        "label": "Permitted claims"
      }
    ],
    "body": "<section aria-label=\"Article summary\" class=\"fr-article-summary\"><div><span>In brief</span><p>The perimeter LED assembly is documented as a status and interaction layer. It is not treated as a calibrated horticultural light source.</p></div></section><h2 id=\"purpose\">Purpose</h2><p>The perimeter lighting communicates operating state, warnings, service conditions and user interactions without changing the central cultivation-light recipe. Colour assignments are interface states and are versioned in the software configuration.</p><div class=\"table-wrap\"><table><thead><tr><th>Function</th><th>Required behaviour</th><th>Research relevance</th></tr></thead><tbody><tr><td>Normal operation</td><td>stable, low-glare indication</td><td>must not alter a declared dark period</td></tr><tr><td>Warning</td><td>visible, distinct state</td><td>event is written to the operating record</td></tr><tr><td>Critical fault</td><td>unambiguous alert</td><td>associated actuator state and timestamp are preserved</td></tr><tr><td>Service mode</td><td>local identification of the active module</td><td>prevents maintenance events from being hidden in a trial</td></tr></tbody></table></div><h2 id=\"requirements\">Engineering requirements</h2><ul><li>exact LED family and revision recorded in the bill of materials;</li><li>maximum and typical channel current measured on the installed assembly;</li><li>voltage drop measured at the first, middle and final segment;</li><li>surface and enclosure temperature recorded at worst-case command;</li><li>power-supply headroom, connector rating and conductor cross-section documented;</li><li>brightness limited for night operation and camera acquisition;</li><li>status meanings remain accessible through text or the dashboard and do not rely on colour alone.</li></ul><h2 id=\"validation\">Validation plan</h2><p>Bench validation records current, voltage, temperature and command latency for representative patterns. Optical validation records spectrum and PPFD at plant positions with the central lamp off and on. Trial protocols state whether perimeter lighting was disabled, constant or included in the measured recipe.</p><h2 id=\"claims\">Permitted claims</h2><p>The website may state that the v2.0 architecture includes addressable perimeter status lighting. It may not state that the subsystem supplements photosynthesis, improves flowering or delivers a defined wavelength until a component-specific spectrum and plant-position photon map are published.</p>"
  },
  {
    "slug": "sensing-calibration",
    "title": "Environmental sensing and calibration",
    "document_id": "PR-SEN-001",
    "version": "1.1",
    "updated": "2026-07-26",
    "abstract": "Calibration and verification requirements for pH, EC, temperature, level, light and rotation measurements.",
    "group": "Experimental platform",
    "body": "<section aria-label=\"Article summary\" class=\"fr-article-summary\"><div><span>In brief</span><p>Calibration and verification requirements for pH, EC, temperature, level, light and rotation measurements.</p></div></section><div class=\"fr-research-figure-grid\"><figure class=\"fr-research-figure\"><img alt=\"FlavoRotor prototype sensing and control architecture\" loading=\"lazy\" src=\"/research/original/prototype-sensing-architecture.webp\"/><figcaption><strong>Sensing architecture.</strong><span>Original project diagram showing the intended data path. <button aria-label=\"Open source record I01\" class=\"research-source-trigger\" data-research-source=\"I01\" type=\"button\">[I01]</button></span></figcaption></figure><figure class=\"fr-research-figure\"><img alt=\"Physical FlavoRotor sensor and electronics assembly\" loading=\"lazy\" src=\"/research/original/sensor-bench-assembly.webp\"/><figcaption><strong>Prototype sensor assembly.</strong><span>Internal build evidence; measurement traceability depends on the published calibration record. <button aria-label=\"Open source record I01\" class=\"research-source-trigger\" data-research-source=\"I01\" type=\"button\">[I01]</button></span></figcaption></figure></div><h2 id=\"principle\">Measurement principle</h2>\n<p>A sensor reading becomes research data only when its identity, calibration, range, sampling interval, temperature conditions and failure rules are recorded.</p>\n<h2 id=\"minimum\">Minimum calibration plan</h2>\n<div class=\"table-wrap\"><table><thead><tr><th>Sensor</th><th>Calibration/verification</th><th>Frequency trigger</th></tr></thead><tbody><tr><td>pH</td><td>two- or three-point buffers bracketing operation; slope and offset retained</td><td>before a trial, after cleaning, on drift or according to electrode stability</td></tr><tr><td>EC</td><td>certified conductivity standard near operating range; temperature compensation checked</td><td>before a trial and after probe maintenance</td></tr><tr><td>Solution temperature</td><td>comparison with traceable reference in stirred bath</td><td>before deployment and on replacement</td></tr><tr><td>Level</td><td>measured-volume additions across working range</td><td>after geometry or sensor position changes</td></tr><tr><td>PPFD</td><td>reference quantum sensor/spectroradiometer mapping</td><td>after light, optics or geometry changes</td></tr><tr><td>Rotation</td><td>encoder or video reference across commanded speeds</td><td>after drive or load changes</td></tr></tbody></table></div>\n<h2 id=\"ph-electrode\">pH electrode model</h2>\n<div class=\"equation\"><div class=\"equation-label\">SEN-1</div><div class=\"equation-text\">E = E⁰ − (2.303RT/F) · pH</div><div class=\"equation-desc\">Ideal Nernst response of a hydrogen-ion-sensitive electrode; practical slope and offset are fitted during calibration.</div></div>\n<h2 id=\"records\">Calibration record</h2>\n<pre>calibration_id, sensor_id, sensor_model, serial_number,\nreference_standard, reference_lot, reference_value,\nmeasured_value, solution_temperature, fitted_slope,\nfitted_offset, residual, operator, timestamp, firmware_version</pre>\n<h2 id=\"faults\">Fault rules</h2>\n<p>Out-of-range, non-finite, implausibly fast-changing or stale measurements disable automatic correction. The system logs the rejected value and the reason; it does not silently replace it with a plausible number.</p><h2 id=\"traceability\">Traceability</h2><p>Calibration records identify reference material, method, environmental conditions, corrections and uncertainty. <button aria-label=\"Open source record R38\" class=\"research-source-trigger\" data-research-source=\"R38\" type=\"button\">[R38]</button> <button aria-label=\"Open source record R39\" class=\"research-source-trigger\" data-research-source=\"R39\" type=\"button\">[R39]</button> <button aria-label=\"Open source record R43\" class=\"research-source-trigger\" data-research-source=\"R43\" type=\"button\">[R43]</button> <button aria-label=\"Open source record R46\" class=\"research-source-trigger\" data-research-source=\"R46\" type=\"button\">[R46]</button></p>",
    "toc": [
      {
        "id": "principle",
        "label": "Measurement principle"
      },
      {
        "id": "minimum",
        "label": "Minimum calibration plan"
      },
      {
        "id": "ph-electrode",
        "label": "pH electrode model"
      },
      {
        "id": "records",
        "label": "Calibration record"
      },
      {
        "id": "faults",
        "label": "Fault rules"
      },
      {
        "id": "traceability",
        "label": "Traceability"
      }
    ],
    "references": [
      "I01",
      "R38",
      "R39",
      "R43",
      "R46"
    ]
  },
  {
    "slug": "data-acquisition",
    "title": "Data acquisition architecture",
    "document_id": "TR-DAT-001",
    "version": "1.2",
    "updated": "2026-07-29",
    "abstract": "The event, sensor and recipe records required to reconstruct every FlavoRotor cultivation run.",
    "group": "Experimental platform",
    "body": "<section aria-label=\"Article summary\" class=\"fr-article-summary\"><div><span>In brief</span><p>The event, sensor and recipe records required to reconstruct every FlavoRotor cultivation run.</p></div></section><div class=\"fr-research-figure-grid\"><figure class=\"fr-research-figure\"><img alt=\"FlavoRotor monitoring dashboard overview\" loading=\"lazy\" src=\"/research/original/monitoring-dashboard-overview.webp\"/><figcaption><strong>Monitoring interface.</strong><span>Original software prototype screen from the project report. <button aria-label=\"Open source record I01\" class=\"research-source-trigger\" data-research-source=\"I01\" type=\"button\">[I01]</button></span></figcaption></figure><figure class=\"fr-research-figure\"><img alt=\"FlavoRotor historical monitoring interface\" loading=\"lazy\" src=\"/research/original/monitoring-dashboard-history.webp\"/><figcaption><strong>Historical record view.</strong><span>The interface supports traceability only when stored values retain sensor, calibration and recipe identifiers. <button aria-label=\"Open source record I01\" class=\"research-source-trigger\" data-research-source=\"I01\" type=\"button\">[I01]</button></span></figcaption></figure></div><h2 id=\"principle\">Reconstruction requirement</h2>\n<p>An independent analyst must be able to reconstruct what the system was commanded to do, what it actually measured, what deviations occurred and which samples were harvested.</p>\n<h2 id=\"streams\">Core data streams</h2><div data-research-visual=\"research-data-lineage\"></div>\n<div class=\"table-wrap\"><table><thead><tr><th>Stream</th><th>Examples</th><th>Primary key</th></tr></thead><tbody><tr><td>System state</td><td>mode, faults, firmware, system version</td><td>timestamp + system_id</td></tr><tr><td>Sensors</td><td>pH, EC, temperature, level, PPFD reference</td><td>timestamp + sensor_id</td></tr><tr><td>Actuators</td><td>pump steps, channel, rotation command, light state</td><td>event_id</td></tr><tr><td>Recipe</td><td>time-indexed setpoints and limits</td><td>recipe_id + version</td></tr><tr><td>Biological material</td><td>species, cultivar, seed lot, position</td><td>sample_id</td></tr><tr><td>Observations</td><td>mass, image, colour, chemistry, sensory</td><td>observation_id</td></tr><tr><td>Calibration</td><td>model coefficients and validity</td><td>calibration_id</td></tr></tbody></table></div>\n<h2 id=\"time\">Time integrity</h2>\n<p>The controller and server clocks are synchronised before a trial. Records use UTC internally and retain the local timezone for human-readable reports. Missing intervals are represented explicitly; time series are never filled silently.</p>\n<h2 id=\"metadata\">Metadata standard</h2>\n<p>The study package follows MIAPPE concepts for investigation, study, biological material, environment and observed variables, and FAIR principles for durable identifiers and machine-readable metadata. <button aria-label=\"Open source record R23\" class=\"research-source-trigger\" data-research-source=\"R23\" type=\"button\">[R23]</button> <button aria-label=\"Open source record R24\" class=\"research-source-trigger\" data-research-source=\"R24\" type=\"button\">[R24]</button></p>\n<h2 id=\"provenance\">FlavoRotor design provenance</h2><p>The system-specific configuration on this page is traced to the supplied FlavoRotor engineering records. <button aria-label=\"Open source record I01\" class=\"research-source-trigger\" data-research-source=\"I01\" type=\"button\">[I01]</button></p>",
    "toc": [
      {
        "id": "principle",
        "label": "Reconstruction requirement"
      },
      {
        "id": "streams",
        "label": "Core data streams"
      },
      {
        "id": "time",
        "label": "Time integrity"
      },
      {
        "id": "metadata",
        "label": "Metadata standard"
      },
      {
        "id": "provenance",
        "label": "FlavoRotor design provenance"
      }
    ],
    "references": [
      "I01",
      "R23",
      "R24"
    ]
  },
  {
    "slug": "imaging-plant-health",
    "title": "Camera, plant phenotyping and machine learning",
    "document_id": "TR-IMG-001",
    "version": "3.0",
    "updated": "2026-07-29",
    "abstract": "Indexed camera geometry, longitudinal plant measurements, real image datasets, reproducible augmentation, grouped validation and measured MobileNetV2, EfficientNetB0 and ResNet50 performance.",
    "group": "Experimental platform",
    "body": "<section aria-label=\"Article summary\" class=\"fr-article-summary\"><div><span>Plant imaging</span><p>The central camera photographs the same plant position repeatedly and stores every image with its plant, cultivation cycle and camera settings.</p></div></section>\n<div class=\"fr-research-figure-grid\"><figure class=\"fr-research-figure\"><img alt=\"FlavoRotor plant-health camera mounted in the central optical module\" loading=\"lazy\" decoding=\"async\" src=\"/features/plant-health-camera.webp\"/><figcaption><strong>Central camera.</strong><span>The camera remains stationary while the rotor brings each plant to its recorded image position. <button aria-label=\"Open source record I02\" class=\"research-source-trigger\" data-research-source=\"I02\" type=\"button\">[I02]</button></span></figcaption></figure><figure class=\"fr-research-figure\"><img alt=\"FlavoRotor central lighting and imaging module engineering view\" loading=\"lazy\" decoding=\"async\" src=\"/research/original/central-light-imaging-module.webp\"/><figcaption><strong>Camera and light module.</strong><span>One acquisition record identifies camera pose, plant position and illumination state. <button aria-label=\"Open source record I02\" class=\"research-source-trigger\" data-research-source=\"I02\" type=\"button\">[I02]</button></span></figcaption></figure></div>\n<h2 id=\"camera-geometry\">Camera geometry</h2>\n<p>The camera is fixed to the central module. The rotor stops at a known encoder position and presents one plant module to the lens. At that position, the optical axis meets the local plant plane at 90°. The distance, lens and framing therefore remain comparable when the same plant returns for its next image. The acquisition record stores camera version, lens, focus, working distance, encoder position and image dimensions. <button aria-label=\"Open source record I02\" class=\"research-source-trigger\" data-research-source=\"I02\" type=\"button\">[I02]</button> <button aria-label=\"Open source record R52\" class=\"research-source-trigger\" data-research-source=\"R52\" type=\"button\">[R52]</button></p>\n<div data-research-visual=\"ai-camera-geometry\"></div>\n<h2 id=\"acquisition-record\">What is stored with each image</h2>\n<p>The image file alone is not enough. Its record identifies the plant, growth cycle, rotor position, exposure, gain, white balance and light state. A scale reference makes pixel measurements comparable. A colour target reveals changes in illumination or camera response. Focus, clipping and occlusion are stored as visible image-quality fields.</p>\n<div class=\"table-wrap\"><table><thead><tr><th>Field group</th><th>Stored values</th><th>Reason</th></tr></thead><tbody>\n<tr><td>Plant</td><td>plant_id, crop, cultivar, seed lot, cycle_id</td><td>keeps repeated images attached to one biological specimen</td></tr>\n<tr><td>Position</td><td>position_id, encoder index, camera pose, working distance</td><td>shows where and how the image was taken</td></tr>\n<tr><td>Camera</td><td>camera_version, lens, focus, exposure, gain, white balance</td><td>separates plant change from camera change</td></tr>\n<tr><td>Growing conditions</td><td>recipe_version, light state, temperature, pH, EC, rotation state</td><td>connects the image to the measured environment</td></tr>\n<tr><td>File history</td><td>timestamp_utc, SHA-256, annotation version, operator</td><td>identifies the exact file and label version</td></tr>\n</tbody></table></div>\n<h2 id=\"dataset-design\">Images used for model development</h2>\n<p>Three image sources have different jobs. ImageNet supplies the general visual weights used to initialise MobileNetV2. PlantVillage supplies clean, labelled leaf images. PlantDoc adds leaves photographed with natural backgrounds and changing viewpoints. FlavoRotor images represent the camera, lighting and plant geometry in which the model operates. Results from these sources remain separate because a clean single-leaf photograph is different from a plant growing inside the machine. <button aria-label=\"Open source record R30\" class=\"research-source-trigger\" data-research-source=\"R30\" type=\"button\">[R30]</button> <button aria-label=\"Open source record R51\" class=\"research-source-trigger\" data-research-source=\"R51\" type=\"button\">[R51]</button> <button aria-label=\"Open source record R53\" class=\"research-source-trigger\" data-research-source=\"R53\" type=\"button\">[R53]</button> <button aria-label=\"Open source record R56\" class=\"research-source-trigger\" data-research-source=\"R56\" type=\"button\">[R56]</button></p>\n<div class=\"table-wrap\"><table><thead><tr><th>Images</th><th>Content</th><th>Use</th></tr></thead><tbody>\n<tr><td>ImageNet-1K <button aria-label=\"Open source record R53\" class=\"research-source-trigger\" data-research-source=\"R53\" type=\"button\">[R53]</button></td><td>general photographs from many object classes</td><td>initial weights for edges, textures and shapes</td></tr>\n<tr><td>PlantVillage <button aria-label=\"Open source record R30\" class=\"research-source-trigger\" data-research-source=\"R30\" type=\"button\">[R30]</button></td><td>54,306 controlled RGB leaf images covering healthy tissue and plant diseases</td><td>controlled leaf-classification benchmark</td></tr>\n<tr><td>PlantDoc <button aria-label=\"Open source record R51\" class=\"research-source-trigger\" data-research-source=\"R51\" type=\"button\">[R51]</button></td><td>2,598 plant images from 13 species and 27 healthy or disease classes</td><td>comparison under natural backgrounds and variable framing</td></tr>\n<tr><td>FlavoRotor <button aria-label=\"Open source record I02\" class=\"research-source-trigger\" data-research-source=\"I02\" type=\"button\">[I02]</button></td><td>indexed images from the central camera</td><td>device-specific plant tracking and evaluation</td></tr>\n</tbody></table></div>\n<p>The reproducible web example downloads the complete PlantVillage Strawberry RGB subset at repository commit <code>7f7ecc7</code>: 456 healthy images and 1,109 leaf-scorch images. The repository's published leaf map identifies 1,232 of those images as observations of 190 physical leaves. The Python script records every selected filename, SHA-256 hash, class, leaf group and transform parameter.</p>\n<div data-research-visual=\"plantvillage-strawberry-samples\"></div>\n<div data-research-visual=\"plantvillage-strawberry-distribution\"></div>\n<h2 id=\"split-policy\">Split by physical leaf</h2>\n<p>Photographs of the same physical leaf stay together. The deterministic seed <code>20260729</code> assigns leaf groups to 70% training, 15% validation and 15% test partitions. This prevents near-duplicate photographs of one leaf from appearing in both training and test data.</p>\n<div class=\"table-wrap\"><table><thead><tr><th>Class</th><th>Training</th><th>Validation</th><th>Test</th></tr></thead><tbody>\n<tr><td>Healthy</td><td>316 images / 80 leaves</td><td>68 images / 17 leaves</td><td>72 images / 18 leaves</td></tr>\n<tr><td>Leaf scorch</td><td>534 images / 52 leaves</td><td>115 images / 11 leaves</td><td>127 images / 12 leaves</td></tr>\n<tr><td>Total</td><td>850 images / 132 leaves</td><td>183 images / 28 leaves</td><td>199 images / 30 leaves</td></tr>\n</tbody></table></div>\n<h2 id=\"augmentation\">Image augmentation</h2>\n<p>The Python preprocessing script creates the examples below from one published leaf-scorch image. Rotation, scale, brightness, contrast, saturation, blur and sensor noise change the complete frame by a recorded amount. They do not paint new spots or remove existing tissue. Only the training partition receives random augmentation; validation and test images keep their original pixels apart from the fixed resize and normalisation. <button aria-label=\"Open source record R54\" class=\"research-source-trigger\" data-research-source=\"R54\" type=\"button\">[R54]</button></p>\n<div data-research-visual=\"ai-augmentation-gallery\"></div>\n<h2 id=\"model-architecture\">MobileNetV2 and the MLP classifier</h2>\n<p>The reference model receives a 224 × 224 sRGB image. MobileNetV2, initialised with ImageNet-1K weights, converts the image into a 7 × 7 × 1,280 feature map. Global average pooling produces a 1,280-value vector. The MLP maps that vector to 256 ReLU6 units, applies dropout 0.25, and produces one logit for every declared plant-health class. <button aria-label=\"Open source record R31\" class=\"research-source-trigger\" data-research-source=\"R31\" type=\"button\">[R31]</button> <button aria-label=\"Open source record R53\" class=\"research-source-trigger\" data-research-source=\"R53\" type=\"button\">[R53]</button></p>\n<div class=\"table-wrap\"><table><thead><tr><th>Stage</th><th>Shape</th><th>Operation</th></tr></thead><tbody>\n<tr><td>Input</td><td>224 × 224 × 3</td><td>sRGB image with ImageNet normalisation</td></tr>\n<tr><td>Encoder</td><td>7 × 7 × 1,280</td><td>MobileNetV2 features</td></tr>\n<tr><td>Pooling</td><td>1,280</td><td>global average pooling</td></tr>\n<tr><td>Hidden layer</td><td>256</td><td>linear layer, ReLU6 and dropout 0.25</td></tr>\n<tr><td>Output</td><td>C</td><td>one logit per class</td></tr>\n<tr><td>Probability</td><td>C</td><td>softmax followed by validation-set temperature scaling</td></tr>\n</tbody></table></div>\n<h3 id=\"model-choice\">Why this model fits the camera task</h3>\n<p>MobileNetV2 uses depthwise convolutions and inverted residual blocks. With the 256-unit classifier, it contains 2,586,434 parameters. The same camera is evaluated at every indexed plant position, so model size and single-image latency matter alongside classification performance. <button aria-label=\"Open source record R31\" class=\"research-source-trigger\" data-research-source=\"R31\" type=\"button\">[R31]</button></p>\n<h3 id=\"mlp-head\">The classifier head</h3>\n<p>Global average pooling converts the 7 × 7 × 1,280 encoder output into one 1,280-value feature vector. The multilayer perceptron learns combinations of those features that separate the declared classes. ReLU6 bounds each hidden activation between 0 and 6; dropout removes 25% of hidden activations at random during fitting. The final linear layer returns two logits, which softmax converts into class probabilities.</p>\n<div class=\"equation\"><div class=\"equation-label\">CV-MLP</div><div class=\"equation-text\">h = Dropout(ReLU6(W₁z + b₁), 0.25), &nbsp; ℓ = W₂h + b₂</div><div class=\"equation-desc\">z is the 1,280-value MobileNetV2 feature vector, h contains 256 hidden activations and ℓ contains one logit per class.</div></div>\n<p>The 1,280 × 256 hidden layer has 327,680 weights and 256 biases. The 256 × 2 output has 512 weights and 2 biases. The MLP therefore contributes 328,450 trainable parameters.</p>\n<h3 id=\"backbone-comparison\">Encoder comparison</h3>\n<p>MobileNetV2, EfficientNetB0 and ResNet50 were tested with the same frozen ImageNet protocol, 256-unit ReLU6 MLP, physical-leaf split and three deterministic seeds. All three reached 100% mean accuracy on the 199-image controlled test. The natural-background PlantDoc check separated them: mean healthy-class recall was 84.38% for MobileNetV2, 74.65% for EfficientNetB0 and 55.90% for ResNet50.</p>\n<div data-research-visual=\"plantvision-backbone-benchmark\"></div>\n<p>MobileNetV2 also required the fewest parameters and had the lowest measured CPU latency: 2.59 million parameters and 60.59 ms median, compared with 4.38 million and 83.35 ms for EfficientNetB0, and 24.11 million and 171.27 ms for ResNet50. Latency was measured with TensorFlow 2.18 inside a three-core Docker limit on an Intel Xeon E5-2699 v3. Processor choice changes throughput, not the mathematical definition of accuracy.</p>\n<h3 id=\"grouped-cross-validation\">Five-fold grouped cross-validation</h3>\n<p>A second test used all 1,232 images tied to 190 physical leaves. The folds were stratified by class; every leaf appeared in one test fold and never in that fold’s training or validation data. MobileNetV2 and the MLP were refitted in every fold. Aggregate accuracy was 99.84%, balanced accuracy 99.87% and macro F1 99.83%; two of 776 leaf-scorch images were assigned healthy and all 456 healthy images were assigned correctly. Mean PlantDoc healthy recall across the five fitted models was 80.00% with a standard deviation of 8.38 percentage points.</p>\n<div data-research-visual=\"plantvision-grouped-cv\"></div>\n<p>The image classifier assigns one of its declared visual labels to the current frame. Biomass forecasting, nutrient-state estimation and stress attribution use separate models with repeated images and measured cultivation variables.</p>\n<div data-research-visual=\"ai-camera-pipeline\"></div>\n<h2 id=\"training-procedure\">Model fitting</h2>\n<ol class=\"fr-method-steps\">\n<li><strong>Fit the MLP.</strong><span>The ImageNet encoder remains frozen while the classifier learns from the grouped training images.</span></li>\n<li><strong>Fine-tune the final encoder blocks.</strong><span>A lower learning rate adjusts the highest-level visual features; validation macro F1 controls early stopping.</span></li>\n<li><strong>Calibrate probability.</strong><span>One temperature value is fitted to validation logits after the model weights stop changing. <button aria-label=\"Open source record R55\" class=\"research-source-trigger\" data-research-source=\"R55\" type=\"button\">[R55]</button></span></li>\n<li><strong>Lock the test.</strong><span>Architecture, preprocessing, class thresholds and the low-confidence rule are fixed before test images are opened.</span></li>\n<li><strong>Report each image domain separately.</strong><span>PlantVillage, PlantDoc and FlavoRotor results use separate tables, because their camera conditions differ.</span></li>\n</ol>\n<div data-research-visual=\"plantvillage-training-history\"></div>\n<h2 id=\"controlled-benchmark\">Controlled-image benchmark</h2>\n<p>The reproducible TensorFlow 2.18.0 run completed on 29 July 2026. After five epochs, the locked model classified all 199 images in the grouped PlantVillage test partition correctly: 72 healthy and 127 leaf scorch. The test partition contains 30 physical leaf groups that were absent from training and validation. Accuracy, macro F1 and balanced accuracy are each 1.0000 for this controlled two-class benchmark. The fitted temperature is 0.500584 and the ten-bin expected calibration error is 0.0000361.</p>\n<div data-research-visual=\"plantvillage-confusion-matrix\"></div>\n<p>PlantVillage photographs isolated leaves against a controlled background. The result above therefore measures discrimination between those two published Strawberry classes under the same acquisition style; it is not substituted for a measurement from the FlavoRotor camera. <button aria-label=\"Open source record R30\" class=\"research-source-trigger\" data-research-source=\"R30\" type=\"button\">[R30]</button> <button aria-label=\"Open source record R56\" class=\"research-source-trigger\" data-research-source=\"R56\" type=\"button\">[R56]</button></p>\n<h3 id=\"performance-uncertainty\">Uncertainty around the measured scores</h3>\n<p>Every classification score is estimated from a finite test set. The controlled test observed 199 correct assignments from 199 images, but its exact two-sided 95% interval is 98.16–100%. Class recall has wider intervals because each class contains fewer observations: 95.01–100% for 72 healthy images and 97.14–100% for 127 leaf-scorch images. The interval states how much precision the test count provides; it does not change the observed confusion matrix.</p>\n<div data-research-visual=\"plantvision-performance-intervals\"></div>\n<h2 id=\"natural-background-check\">Natural-background check</h2>\n<p>The frozen model was then applied without retraining to all 96 images in PlantDoc's <em>Strawberry leaf</em> class. These photographs contain natural backgrounds, changing scale, partial leaves and varied lighting. The model assigned 79 images to healthy and 17 to leaf scorch, which gives healthy-class recall of 79 / 96 = 0.8229. PlantDoc does not publish a matching Strawberry leaf-scorch class, so this check reports recall for its healthy class rather than two-class accuracy. <button aria-label=\"Open source record R51\" class=\"research-source-trigger\" data-research-source=\"R51\" type=\"button\">[R51]</button> <button aria-label=\"Open source record R56\" class=\"research-source-trigger\" data-research-source=\"R56\" type=\"button\">[R56]</button></p>\n<div data-research-visual=\"plantdoc-strawberry-samples\"></div>\n<div data-research-visual=\"plantdoc-domain-check\"></div>\n<h2 id=\"evaluation\">Metric definitions</h2>\n<p>Precision answers: of the images assigned to one class, how many are correct? Recall answers: of the images that truly belong to that class, how many were found? F1 combines both values. Macro F1 gives every class the same weight, so the larger leaf-scorch class cannot hide weak performance on healthy leaves. The report also contains the complete confusion matrix, balanced accuracy, image count and physical-leaf count for every class. <button aria-label=\"Open source record R55\" class=\"research-source-trigger\" data-research-source=\"R55\" type=\"button\">[R55]</button> <button aria-label=\"Open source record R56\" class=\"research-source-trigger\" data-research-source=\"R56\" type=\"button\">[R56]</button></p>\n<div class=\"equation\"><div class=\"equation-label\">CV-F1</div><div class=\"equation-text\">F1 = 2 · precision · recall / (precision + recall)</div><div class=\"equation-desc\">F1 combines precision and recall. Macro F1 is the arithmetic mean of the class-level F1 values, so a large class cannot hide poor performance on a smaller class.</div></div>\n<div class=\"equation\"><div class=\"equation-label\">CV-ECE</div><div class=\"equation-text\">ECE = Σ |Bm| / n · |accuracy(Bm) − confidence(Bm)|</div><div class=\"equation-desc\">Predictions are grouped into confidence bins. ECE measures the weighted difference between observed accuracy and mean reported confidence in those bins.</div></div>\n<h2 id=\"temporal-phenotyping\">Following one plant through time</h2>\n<p>Repeated images of the same plant form a time series. Projected canopy area, calibrated colour, developmental stage and image quality are stored beside temperature, light, pH, EC and recipe version at the same timestamp. Growth rate compares the same plant at two recorded times. It does not compare unrelated plants photographed on different days. <button aria-label=\"Open source record R52\" class=\"research-source-trigger\" data-research-source=\"R52\" type=\"button\">[R52]</button></p>\n<div class=\"table-wrap\"><table><thead><tr><th>Output</th><th>Reference annotation</th><th>Use</th></tr></thead><tbody>\n<tr><td>Canopy area and growth rate</td><td>manual masks and a physical scale reference</td><td>tracks the plant's visible growth</td></tr>\n<tr><td>Developmental stage</td><td>crop-specific, expert-reviewed labels</td><td>aligns treatment timing with plant development</td></tr>\n<tr><td>Colour index</td><td>colour target and matching laboratory measurements</td><td>measures visible colour change</td></tr>\n<tr><td>Plant-health class</td><td>expert label and supporting laboratory result where required</td><td>records class and probability for review</td></tr>\n<tr><td>Image quality</td><td>focus, exposure, occlusion and pose labels</td><td>identifies unsuitable images</td></tr>\n</tbody></table></div>\n<h3 id=\"longitudinal-datasets\">Datasets used to test longitudinal methods</h3>\n<div class=\"table-wrap\"><table><thead><tr><th>Dataset</th><th>Repeated observations</th><th>Role in the research programme</th></tr></thead><tbody>\n<tr><td>Aalto lettuce <button aria-label=\"Open source record R57\" class=\"research-source-trigger\" data-research-source=\"R57\" type=\"button\">[R57]</button></td><td>18 identified heads, 30 biomass days, 731 canopy images and 1,443 environmental records</td><td>implemented three-day biomass forecast with plant-wise validation</td></tr>\n<tr><td>HydroGrowNet <button aria-label=\"Open source record R61\" class=\"research-source-trigger\" data-research-source=\"R61\" type=\"button\">[R61]</button></td><td>three 30-day Batavia cycles and more than 390,000 segmented images aligned with pH, EC and water temperature</td><td>independent multimodal growth and anomaly dataset</td></tr>\n<tr><td>Multi-sensor lettuce phenotyping <button aria-label=\"Open source record R62\" class=\"research-source-trigger\" data-research-source=\"R62\" type=\"button\">[R62]</button></td><td>45 plants over 42 days, two cultivars, three nitrogen levels and two irrigation rates</td><td>external RGB, 3D, multispectral, SPAD, fluorescence and morphology dataset</td></tr>\n</tbody></table></div>\n<h3 id=\"model-by-endpoint\">A separate model for each measured endpoint</h3>\n<div class=\"table-wrap\"><table><thead><tr><th>Question</th><th>Model</th><th>Reason</th><th>Reference value</th></tr></thead><tbody>\n<tr><td>Does the current leaf image match a declared visual class?</td><td>MobileNetV2 + 256-unit MLP</td><td>compact image encoder; class probabilities can be calibrated and reviewed</td><td>expert or published class label</td></tr>\n<tr><td>What fresh biomass is expected three days from now?</td><td>ridge autoregression</td><td>uses repeated mass and recent growth increments while regularising a small dataset</td><td>measured fresh biomass <button aria-label=\"Open source record R57\" class=\"research-source-trigger\" data-research-source=\"R57\" type=\"button\">[R57]</button></td></tr>\n<tr><td>How did cultivar and nutrient solution change tissue chemistry?</td><td>factorial ANOVA</td><td>tests cultivar, treatment and their interaction directly</td><td>laboratory nitrogen, sulphate, organic acid and chlorophyll measurements <button aria-label=\"Open source record R59\" class=\"research-source-trigger\" data-research-source=\"R59\" type=\"button\">[R59]</button></td></tr>\n<tr><td>Is the plant departing from its expected trajectory?</td><td>forecast residual plus consecutive-capture rule</td><td>requires persistence through time and retains the sensor and image context</td><td>next measured observation</td></tr>\n</tbody></table></div>\n<h2 id=\"inference-record\">Stored model output</h2>\n<p>Every model output stores the image hash, plant ID, model version, preprocessing version, probability for every class, calibrated confidence and image-quality score. A low-quality or low-confidence image is marked for review together with the reason. The original image and complete class-probability vector remain available beside the final label.</p>",
    "toc": [
      {
        "id": "camera-geometry",
        "label": "Camera geometry"
      },
      {
        "id": "acquisition-record",
        "label": "What is stored with each image"
      },
      {
        "id": "dataset-design",
        "label": "Images used for model development"
      },
      {
        "id": "split-policy",
        "label": "Split by physical leaf"
      },
      {
        "id": "augmentation",
        "label": "Image augmentation"
      },
      {
        "id": "model-architecture",
        "label": "MobileNetV2 and the MLP classifier"
      },
      {
        "id": "model-choice",
        "label": "Why this model fits the camera task"
      },
      {
        "id": "mlp-head",
        "label": "The classifier head"
      },
      {
        "id": "backbone-comparison",
        "label": "Encoder comparison"
      },
      {
        "id": "grouped-cross-validation",
        "label": "Five-fold grouped cross-validation"
      },
      {
        "id": "training-procedure",
        "label": "Model fitting"
      },
      {
        "id": "controlled-benchmark",
        "label": "Controlled-image benchmark"
      },
      {
        "id": "performance-uncertainty",
        "label": "Uncertainty around the measured scores"
      },
      {
        "id": "natural-background-check",
        "label": "Natural-background check"
      },
      {
        "id": "evaluation",
        "label": "Metric definitions"
      },
      {
        "id": "temporal-phenotyping",
        "label": "Following one plant through time"
      },
      {
        "id": "longitudinal-datasets",
        "label": "Datasets used to test longitudinal methods"
      },
      {
        "id": "model-by-endpoint",
        "label": "A separate model for each measured endpoint"
      },
      {
        "id": "inference-record",
        "label": "Stored model output"
      }
    ],
    "references": [
      "I02",
      "R30",
      "R31",
      "R51",
      "R52",
      "R53",
      "R54",
      "R55",
      "R56",
      "R57",
      "R59",
      "R61",
      "R62"
    ]
  },
  {
    "slug": "industrial-design-serviceability",
    "title": "Industrial design and serviceability",
    "document_id": "TR-IND-001",
    "version": "1.0",
    "updated": "2026-07-27",
    "abstract": "How enclosure geometry, access, cleaning and maintenance are separated from biological performance claims.",
    "group": "Experimental platform",
    "references": [
      "I01",
      "I02"
    ],
    "toc": [
      {
        "id": "scope",
        "label": "Scope"
      },
      {
        "id": "architecture",
        "label": "Layered architecture"
      },
      {
        "id": "service",
        "label": "Serviceability requirements"
      },
      {
        "id": "validation",
        "label": "Verification plan"
      }
    ],
    "body": "<section aria-label=\"Article summary\" class=\"fr-article-summary\"><div><span>In brief</span><p>The enclosure is treated as an engineering system that must preserve access, cleaning, observation and safe operation around the rotating cultivation drum.</p></div></section><h2 id=\"scope\">Scope</h2><p>Industrial design is included in the research documentation because enclosure decisions can alter access, airflow, light distribution, camera visibility, contamination risk and mechanical balance. Aesthetic intent is recorded separately from measured cultivation performance.</p><h2 id=\"architecture\">Layered architecture</h2><p>The v2.0 concept separates a stationary external frame from the rotating cultivation layer. This allows plant movement to remain visible while fixed guards, service panels, lighting and cable routes remain referenced to the structure. The original prototype and v2.0 reports provide the primary engineering record. <button aria-label=\"Open source record I01\" class=\"research-source-trigger\" data-research-source=\"I01\" type=\"button\">[I01]</button> <button aria-label=\"Open source record I02\" class=\"research-source-trigger\" data-research-source=\"I02\" type=\"button\">[I02]</button></p><h2 id=\"service\">Serviceability requirements</h2><div class=\"table-wrap\"><table><thead><tr><th>Area</th><th>Requirement</th><th>Verification output</th></tr></thead><tbody><tr><td>Plant modules</td><td>individual removal without disturbing unrelated samples</td><td>tool list, access sequence and measured service time</td></tr><tr><td>Nutrient reservoir</td><td>inspection, draining and cleaning without wetting electronics</td><td>drain test and cleaning record</td></tr><tr><td>Pump tubing</td><td>replacement with channel identity preserved</td><td>replacement procedure and post-service calibration check</td></tr><tr><td>Lighting and camera</td><td>fixed optical reference after service</td><td>position check and image/light revalidation</td></tr><tr><td>Rotating assembly</td><td>guard clearance under maximum declared load</td><td>clearance and interference inspection</td></tr><tr><td>Materials</td><td>compatibility with moisture, nutrient solution and cleaning method</td><td>material record and inspection interval</td></tr></tbody></table></div><h2 id=\"validation\">Verification plan</h2><p>Verification includes assembly and disassembly trials, loaded rotation, splash observation, cable-clearance inspection, access-time measurement, cleaning inspection and confirmation that service work does not invalidate sensor, pump, camera or light calibration. Deviations are recorded as maintenance events in the experiment log.</p>"
  },
  {
    "slug": "peristaltic-pump",
    "title": "Peristaltic pump development",
    "document_id": "TR-PMP-001",
    "version": "1.1",
    "updated": "2026-07-26",
    "abstract": "The custom three-roller pump, its first-order displacement model and the strict distinction between motor command resolution and delivered-volume accuracy.",
    "group": "Nutrient dosing",
    "body": "<section aria-label=\"Article summary\" class=\"fr-article-summary\"><div><span>In brief</span><p>The custom three-roller pump, its first-order displacement model and the strict distinction between motor command resolution and delivered-volume accuracy.</p></div></section><figure class=\"fr-research-figure fr-research-figure-wide\"><img alt=\"CAD view of the FlavoRotor custom three-roller peristaltic pump\" loading=\"eager\" src=\"/research/pump/01_peristaltic_pump_cad_view_A.webp\"/><figcaption><strong>Custom pump architecture.</strong><span>Original CAD from the supplied pump package. Geometry supports the first-order model; delivery performance requires gravimetric calibration. <button aria-label=\"Open source record I03\" class=\"research-source-trigger\" data-research-source=\"I03\" type=\"button\">[I03]</button></span></figcaption></figure>\n<h2 id=\"plain\">Explanation</h2>\n<p>A three-roller rotor compresses a flexible tube. Advancing the compression moves liquid while the liquid remains inside the replaceable tube. The motor provides a precise command, but only calibration determines the volume that actually exits the tube.</p>\n<h2 id=\"design\">Documented design</h2>\n<div class=\"table-wrap\"><table><thead><tr><th>Parameter</th><th>v2 design value</th><th>Classification</th></tr></thead><tbody><tr><td>Pump type</td><td>three-roller peristaltic</td><td>design architecture</td></tr><tr><td>Tube</td><td>3.2 mm ID / 6.4 mm OD silicone</td><td>design specification</td></tr><tr><td>Nominal channel radius</td><td>18 mm</td><td>CAD specification</td></tr><tr><td>Drive</td><td>NEMA 17, 1.8° full step, direct drive</td><td>component specification</td></tr><tr><td>Command mode</td><td>1/16 microstepping</td><td>firmware design</td></tr><tr><td>Housing</td><td>PETG prototype geometry</td><td>CAD specification</td></tr><tr><td>System channels</td><td>four independent pump modules</td><td>system design</td></tr></tbody></table></div>\n<h2 id=\"model\">First-order model</h2>\n<div class=\"equation\"><div class=\"equation-label\">P-1</div><div class=\"equation-text\">A<sub>t</sub> = πd<sub>i</sub>² / 4</div><div class=\"equation-desc\">Nominal undeformed internal tube area.</div></div>\n<div class=\"equation\"><div class=\"equation-label\">P-2</div><div class=\"equation-text\">V<sub>rev,ideal</sub> = A<sub>t</sub> · L<sub>eff</sub> · N<sub>e</sub></div><div class=\"equation-desc\">Ideal displacement per rotor revolution using an effective displaced length Leff and displacement-event count Ne.</div></div>\n<p>With d<sub>i</sub> = 3.2 mm, L<sub>eff</sub> = 25 mm and N<sub>e</sub> = 3, the report model gives A<sub>t</sub> ≈ 8.04 mm² and V<sub>rev,ideal</sub> ≈ 0.603 mL/rev.</p>\n<div class=\"equation\"><div class=\"equation-label\">P-3</div><div class=\"equation-text\">V<sub>rev,meas</sub> = η<sub>v</sub> · V<sub>rev,ideal</sub></div><div class=\"equation-desc\">Measured displacement represented by a fitted volumetric-efficiency term. ηv may depend on speed, pressure, tube and age.</div></div>\n<div class=\"equation\"><div class=\"equation-label\">P-4</div><div class=\"equation-text\">Q = V<sub>rev,meas</sub> · n</div><div class=\"equation-desc\">Mean flow at rotor speed n in rev/min.</div></div>\n<h2 id=\"command\">Motor-command increment</h2>\n<div class=\"equation\"><div class=\"equation-label\">P-5</div><div class=\"equation-text\">N<sub>µstep/rev</sub> = (360° / 1.8°) · 16 = 3200</div><div class=\"equation-desc\">Microstep commands per direct-drive rotor revolution.</div></div>\n<div class=\"equation\"><div class=\"equation-label\">P-6</div><div class=\"equation-text\">ΔV<sub>cmd,nom</sub> = 0.603 mL / 3200 ≈ 0.188 µL/command</div><div class=\"equation-desc\">Nominal geometric displacement assigned to one command.</div></div>\n<aside class=\"fr-engineering-note\"><strong>Engineering note</strong><p>0.188 µL per microstep is not accuracy, repeatability, minimum dose or experimentally resolved liquid volume.</p></aside>\n<h2 id=\"why-calibrate\">Why calibration is mandatory</h2>\n<p>Tube recovery, occlusion, viscosity, suction head, outlet pressure, roller geometry, motor torque, microstep non-linearity and tube wear all alter delivered volume. Peristaltic-pump modelling and published multi-channel systems therefore use physical calibration rather than geometry alone. <button aria-label=\"Open source record R18\" class=\"research-source-trigger\" data-research-source=\"R18\" type=\"button\">[R18]</button> <button aria-label=\"Open source record R19\" class=\"research-source-trigger\" data-research-source=\"R19\" type=\"button\">[R19]</button></p>\n<h2 id=\"progress\">Progress classification</h2>\n<p>The pump geometry and four-channel module are substantial v2 engineering progress. The supplied report documents CAD, component selection and the analytical model. No traceable FlavoRotor gravimetric dataset accompanies the report, so delivered-volume performance remains unclaimed until CR-PMP-001 is published.</p>\n<h2 id=\"provenance\">FlavoRotor design provenance</h2><p>The system-specific configuration on this page is traced to the supplied FlavoRotor engineering records. <button aria-label=\"Open source record I02\" class=\"research-source-trigger\" data-research-source=\"I02\" type=\"button\">[I02]</button> <button aria-label=\"Open source record I03\" class=\"research-source-trigger\" data-research-source=\"I03\" type=\"button\">[I03]</button></p><h2 id=\"cad-views\">CAD documentation</h2><div class=\"fr-research-figure-grid\"><figure class=\"fr-research-figure\"><img alt=\"Second CAD view showing the roller and tubing path\" loading=\"lazy\" src=\"/research/pump/02_peristaltic_pump_cad_view_B.webp\"/><figcaption><strong>Roller and tube path.</strong><span>Internal CAD record. <button aria-label=\"Open source record I03\" class=\"research-source-trigger\" data-research-source=\"I03\" type=\"button\">[I03]</button></span></figcaption></figure><figure class=\"fr-research-figure\"><img alt=\"Exploded assembly of the FlavoRotor peristaltic pump\" loading=\"lazy\" src=\"/research/pump/03_peristaltic_pump_exploded_assembly.webp\"/><figcaption><strong>Exploded pump assembly.</strong><span>Internal CAD record showing serviceable components. <button aria-label=\"Open source record I03\" class=\"research-source-trigger\" data-research-source=\"I03\" type=\"button\">[I03]</button></span></figcaption></figure></div>",
    "toc": [
      {
        "id": "plain",
        "label": "Explanation"
      },
      {
        "id": "design",
        "label": "Documented design"
      },
      {
        "id": "model",
        "label": "First-order model"
      },
      {
        "id": "command",
        "label": "Motor-command increment"
      },
      {
        "id": "why-calibrate",
        "label": "Why calibration is mandatory"
      },
      {
        "id": "progress",
        "label": "Progress classification"
      },
      {
        "id": "provenance",
        "label": "FlavoRotor design provenance"
      },
      {
        "id": "cad-views",
        "label": "CAD documentation"
      }
    ],
    "references": [
      "I02",
      "I03",
      "R18",
      "R19"
    ]
  },
  {
    "slug": "pump-calibration",
    "title": "Gravimetric pump calibration",
    "document_id": "PR-PMP-001",
    "version": "1.1",
    "updated": "2026-07-26",
    "abstract": "A complete channel-specific procedure for converting motor commands into measured liquid volume with uncertainty and drift.",
    "group": "Nutrient dosing",
    "body": "<section aria-label=\"Article summary\" class=\"fr-article-summary\"><div><span>In brief</span><p>A complete channel-specific procedure for converting motor commands into measured liquid volume with uncertainty and drift.</p></div></section><h2 id=\"principle\">Principle</h2>\n<p>Each pump dispenses into a vessel on a calibrated balance. Mass gain is converted to volume using fluid density at the measured temperature. The test is repeated across channel, dose, speed, tube condition and hydraulic head.</p>\n<div class=\"equation\"><div class=\"equation-label\">C-1</div><div class=\"equation-text\">V<sub>i</sub> = (m<sub>after,i</sub> − m<sub>before,i</sub>) / ρ(T)</div><div class=\"equation-desc\">Delivered volume for repetition i.</div></div>\n<div class=\"equation\"><div class=\"equation-label\">C-2</div><div class=\"equation-text\">Q<sub>i</sub> = V<sub>i</sub> / Δt<sub>i</sub></div><div class=\"equation-desc\">Mean flow for repetition i.</div></div>\n<p>The gravimetric chain follows traceable liquid-volume and uncertainty principles: balance performance, test-liquid density, evaporation, timing, repeatability and calibration state are recorded. Large published peristaltic-pump datasets show why repeated measurements and drift analysis are necessary, but their performance values are not transferred to FlavoRotor. <button aria-label=\"Open source record R37\" class=\"research-source-trigger\" data-research-source=\"R37\" type=\"button\">[R37]</button> <button aria-label=\"Open source record R38\" class=\"research-source-trigger\" data-research-source=\"R38\" type=\"button\">[R38]</button> <button aria-label=\"Open source record R47\" class=\"research-source-trigger\" data-research-source=\"R47\" type=\"button\">[R47]</button></p>\n<h2 id=\"matrix\">Test matrix</h2>\n<div class=\"table-wrap\"><table><thead><tr><th>Factor</th><th>Levels</th></tr></thead><tbody><tr><td>Channel</td><td>1, 2, 3, 4</td></tr><tr><td>Rotor speed</td><td>5, 15, 30 and 60 rev/min</td></tr><tr><td>Commanded dose</td><td>0.5, 1, 2, 5 and 10 mL</td></tr><tr><td>Repetitions</td><td>minimum 20 per primary condition</td></tr><tr><td>Fluid</td><td>deionised water and each representative stock class</td></tr><tr><td>Tube state</td><td>new, mid-life and replacement threshold</td></tr><tr><td>Hydraulic condition</td><td>minimum, nominal and maximum inlet head; installed outlet path</td></tr><tr><td>Direction</td><td>forward; reverse purge characterised separately</td></tr></tbody></table></div>\n<h2 id=\"statistics\">Calibration statistics</h2>\n<div class=\"equation\"><div class=\"equation-label\">C-3</div><div class=\"equation-text\">V̄ = (1/N) ΣV<sub>i</sub></div><div class=\"equation-desc\">Mean delivered volume.</div></div>\n<div class=\"equation\"><div class=\"equation-label\">C-4</div><div class=\"equation-text\">bias = V̄ − V<sub>set</sub></div><div class=\"equation-desc\">Absolute systematic error at a test point.</div></div>\n<div class=\"equation\"><div class=\"equation-label\">C-5</div><div class=\"equation-text\">CV = 100 · s / V̄</div><div class=\"equation-desc\">Coefficient of variation for repeatability.</div></div>\n<div class=\"equation\"><div class=\"equation-label\">C-6</div><div class=\"equation-text\">RMSE = √[(1/N)Σ(V<sub>i</sub> − V<sub>set</sub>)²]</div><div class=\"equation-desc\">Combined deviation from the requested volume.</div></div>\n<p>Repeatability, bias, residual analysis and method precision are reported using declared statistical procedures rather than a single R² value. <button aria-label=\"Open source record R46\" class=\"research-source-trigger\" data-research-source=\"R46\" type=\"button\">[R46]</button> <button aria-label=\"Open source record R50\" class=\"research-source-trigger\" data-research-source=\"R50\" type=\"button\">[R50]</button></p>\n<h2 id=\"model\">Channel model</h2>\n<div class=\"equation\"><div class=\"equation-label\">C-7</div><div class=\"equation-text\">V̂<sub>j</sub> = a<sub>j</sub>N<sub>cmd</sub> + b<sub>j</sub></div><div class=\"equation-desc\">First candidate model for channel j; residuals determine whether speed, pressure or nonlinear terms are required.</div></div>\n<h2 id=\"acceptance\">Predefined engineering acceptance gates</h2>\n<div class=\"table-wrap\"><table><thead><tr><th>Metric</th><th>Gate for initial reservoir dosing</th></tr></thead><tbody><tr><td>Relative bias</td><td>≤ ±3% for doses ≥1 mL within the declared range</td></tr><tr><td>Repeatability</td><td>CV ≤2% for doses ≥1 mL</td></tr><tr><td>Channel model</td><td>residual structure absent and R² reported, not used alone</td></tr><tr><td>Drift</td><td>≤5% before recalibration or tube replacement</td></tr><tr><td>Cross-channel contamination</td><td>none detected above method limit</td></tr><tr><td>Backflow/siphon</td><td>no uncontrolled transfer in the installed hydraulic range</td></tr></tbody></table></div>\n<p>These are FlavoRotor acceptance criteria, not claimed achieved performance. Published multi-channel pump data guide the method but are not copied as FlavoRotor results. <button aria-label=\"Open source record R19\" class=\"research-source-trigger\" data-research-source=\"R19\" type=\"button\">[R19]</button></p>\n<h2 id=\"provenance\">FlavoRotor design provenance</h2><p>The system-specific configuration on this page is traced to the supplied FlavoRotor engineering records. <button aria-label=\"Open source record I03\" class=\"research-source-trigger\" data-research-source=\"I03\" type=\"button\">[I03]</button></p>",
    "toc": [
      {
        "id": "principle",
        "label": "Principle"
      },
      {
        "id": "matrix",
        "label": "Test matrix"
      },
      {
        "id": "statistics",
        "label": "Calibration statistics"
      },
      {
        "id": "model",
        "label": "Channel model"
      },
      {
        "id": "acceptance",
        "label": "Predefined engineering acceptance gates"
      },
      {
        "id": "provenance",
        "label": "FlavoRotor design provenance"
      }
    ],
    "references": [
      "I03",
      "R19",
      "R37",
      "R38",
      "R46",
      "R47",
      "R50"
    ]
  },
  {
    "slug": "four-channel-dosing",
    "title": "Four-channel nutrient dosing module",
    "document_id": "TR-DOS-001",
    "version": "1.1",
    "updated": "2026-07-26",
    "abstract": "Independent fluid channels, channel identity, mixing logic and the separation between dosing a stock solution and producing a plant sensory outcome.",
    "group": "Nutrient dosing",
    "body": "<section aria-label=\"Article summary\" class=\"fr-article-summary\"><div><span>In brief</span><p>Independent fluid channels, channel identity, mixing logic and the separation between dosing a stock solution and producing a plant sensory outcome.</p></div></section><div class=\"fr-research-figure-grid\"><figure class=\"fr-research-figure\"><img alt=\"Four-channel dosing module integrated into the FlavoRotor system\" loading=\"lazy\" src=\"/research/pump/04_dosing_module_system_integration.webp\"/><figcaption><strong>System integration.</strong><span>Original pump-package CAD. <button aria-label=\"Open source record I03\" class=\"research-source-trigger\" data-research-source=\"I03\" type=\"button\">[I03]</button></span></figcaption></figure><figure class=\"fr-research-figure\"><img alt=\"Interior of the four-channel FlavoRotor dosing module\" loading=\"lazy\" src=\"/research/pump/05_four_channel_dosing_module_interior.webp\"/><figcaption><strong>Four independent fluid channels.</strong><span>Original pump-package CAD. Channel assignment is recipe-defined and requires independent calibration. <button aria-label=\"Open source record I03\" class=\"research-source-trigger\" data-research-source=\"I03\" type=\"button\">[I03]</button></span></figcaption></figure></div>\n<h2 id=\"plain\">Explanation</h2>\n<p>Four pumps allow four liquids to be added independently. The channels control liquid volumes. They do not directly control sweetness, acidity or aroma.</p>\n<h2 id=\"architecture\">Architecture</h2><p>The documented motor-control architecture uses STEP/DIR microstepping drivers of the A4988 class. Driver selection defines command generation and protection requirements; it does not determine pump volumetric accuracy. <button aria-label=\"Open source record R44\" class=\"research-source-trigger\" data-research-source=\"R44\" type=\"button\">[R44]</button></p>\n<div class=\"process-chain vertical\"><b>Stock 1–4</b><span>→</span><b>Calibrated channel</b><span>→</span><b>Injection point</b><span>→</span><b>Mixing delay</b><span>→</span><b>Reservoir measurement</b></div>\n<h2 id=\"assignment\">Safe channel definition</h2>\n<div class=\"table-wrap\"><table><thead><tr><th>Channel</th><th>Permitted role</th><th>Required metadata</th></tr></thead><tbody><tr><td>1</td><td>water or defined stock</td><td>fluid ID, batch and density</td></tr><tr><td>2</td><td>nutrient stock A</td><td>full chemical composition and compatibility class</td></tr><tr><td>3</td><td>nutrient stock B</td><td>full chemical composition and compatibility class</td></tr><tr><td>4</td><td>correction or experimental stock</td><td>purpose, maximum dose and exclusion rules</td></tr></tbody></table></div>\n<aside class=\"fr-engineering-note\"><strong>Measurement rule</strong><p>A channel labelled K, N or Ca still changes multiple chemical and physiological variables. Any sensory outcome is established only by a controlled crop trial.</p></aside>\n<h2 id=\"traceability\">Dose traceability</h2>\n<pre>event_id, timestamp, system_id, recipe_id, recipe_version,\nchannel_id, fluid_id, fluid_batch, calibration_id,\nrequested_volume_mL, commanded_steps, speed_rpm, direction,\nreservoir_volume_before_L, pH_before, EC_before, temperature_before,\nmixing_delay_s, pH_after, EC_after, fault_state</pre>\n<h2 id=\"provenance\">FlavoRotor design provenance</h2><p>The system-specific configuration on this page is traced to the supplied FlavoRotor engineering records. <button aria-label=\"Open source record I02\" class=\"research-source-trigger\" data-research-source=\"I02\" type=\"button\">[I02]</button> <button aria-label=\"Open source record I03\" class=\"research-source-trigger\" data-research-source=\"I03\" type=\"button\">[I03]</button></p><h2 id=\"module-interior\">Module interior</h2><figure class=\"fr-research-figure fr-research-figure-wide\"><img alt=\"Interior of the FlavoRotor four-channel dosing module\" class=\"wide-image\" loading=\"lazy\" src=\"/research/pump/05_four_channel_dosing_module_interior.webp\"/><figcaption><strong>Module interior.</strong><span>Original internal CAD image. It documents channel packaging; delivered volume and cross-channel isolation remain validation items. <button aria-label=\"Open source record I03\" class=\"research-source-trigger\" data-research-source=\"I03\" type=\"button\">[I03]</button></span></figcaption></figure>",
    "toc": [
      {
        "id": "plain",
        "label": "Explanation"
      },
      {
        "id": "architecture",
        "label": "Architecture"
      },
      {
        "id": "assignment",
        "label": "Safe channel definition"
      },
      {
        "id": "traceability",
        "label": "Dose traceability"
      },
      {
        "id": "provenance",
        "label": "FlavoRotor design provenance"
      },
      {
        "id": "module-interior",
        "label": "Module interior"
      }
    ],
    "references": [
      "I02",
      "I03",
      "R44"
    ]
  },
  {
    "slug": "stock-solutions",
    "title": "Nutrient stock solutions",
    "document_id": "MTH-STK-001",
    "version": "1.1",
    "updated": "2026-07-26",
    "abstract": "How stock composition, compatibility, dose volume and reservoir volume define nutrient additions without inventing ion-specific EC values.",
    "group": "Nutrient dosing",
    "body": "<section aria-label=\"Article summary\" class=\"fr-article-summary\"><div><span>In brief</span><p>How stock composition, compatibility, dose volume and reservoir volume define nutrient additions without inventing ion-specific EC values.</p></div></section><h2 id=\"principle\">Principle</h2>\n<p>Each stock solution is defined by the concentration of every relevant chemical species, not by a marketing label. The controller calculates the amount added to the reservoir from calibrated dose volume and stock composition.</p>\n<div class=\"equation\"><div class=\"equation-label\">STK-1</div><div class=\"equation-text\">Δc<sub>i</sub> = S<sub>ij</sub> · v<sub>j</sub> / V<sub>R</sub></div><div class=\"equation-desc\">Increase in reservoir concentration of ion i from stock j, where Sij is stock concentration, vj is dose volume and VR is reservoir volume.</div></div>\n<div class=\"equation\"><div class=\"equation-label\">STK-2</div><div class=\"equation-text\">c<sub>i,k+1</sub> = c<sub>i,k</sub> + ΣΔc<sub>i</sub> − u<sub>i,k</sub> − l<sub>i,k</sub></div><div class=\"equation-desc\">Ion inventory update including additions, plant uptake ui and other losses li.</div></div>\n<h2 id=\"compatibility\">Stock compatibility</h2>\n<p>Concentrated calcium stocks are separated from concentrated phosphate or sulphate stocks unless compatibility has been demonstrated, because precipitation can remove nutrients and obstruct tubing. Stock identity, concentration, solvent, preparation date, lot and storage conditions are recorded.</p>\n<h2 id=\"recipe-solving\">Recipe solving</h2>\n<p>When several stocks contribute to several ions, the system solves a constrained non-negative dosing problem rather than assigning one pump to one sensory attribute.</p>\n<div class=\"equation\"><div class=\"equation-label\">STK-3</div><div class=\"equation-text\">min ||S·v − Δc<sub>target</sub>||² subject to v ≥ 0 and v ≤ v<sub>max</sub></div><div class=\"equation-desc\">Constrained stock-volume selection for a target ion-change vector.</div></div>\n<aside class=\"fr-engineering-note\"><strong>Control rule</strong><p>EC is used as a bulk consistency and safety check. It cannot verify the individual ion vector S·v.</p></aside><h2 id=\"ion-coupling\">Ion coupling</h2><p>Stock design accounts for the fact that fertilizer salts introduce coupled ions and that precise individual-ion control requires more information than bulk EC. <button aria-label=\"Open source record R34\" class=\"research-source-trigger\" data-research-source=\"R34\" type=\"button\">[R34]</button> <button aria-label=\"Open source record R35\" class=\"research-source-trigger\" data-research-source=\"R35\" type=\"button\">[R35]</button> <button aria-label=\"Open source record R36\" class=\"research-source-trigger\" data-research-source=\"R36\" type=\"button\">[R36]</button></p>",
    "toc": [
      {
        "id": "principle",
        "label": "Principle"
      },
      {
        "id": "compatibility",
        "label": "Stock compatibility"
      },
      {
        "id": "recipe-solving",
        "label": "Recipe solving"
      },
      {
        "id": "ion-coupling",
        "label": "Ion coupling"
      }
    ],
    "references": [
      "R34",
      "R35",
      "R36"
    ]
  },
  {
    "slug": "dosing-control",
    "title": "Nutrient dosing control strategy",
    "document_id": "TR-CTL-001",
    "version": "1.1",
    "updated": "2026-07-26",
    "abstract": "Supervisory mass balance, pH/EC feedback, mixing delays, anti-windup and safety constraints.",
    "group": "Nutrient dosing",
    "body": "<section aria-label=\"Article summary\" class=\"fr-article-summary\"><div><span>In brief</span><p>Supervisory mass balance, pH/EC feedback, mixing delays, anti-windup and safety constraints.</p></div></section><h2 id=\"hierarchy\">Control hierarchy</h2>\n<div class=\"process-chain\"><b>Recipe targets</b><span>→</span><b>Stock mass balance</b><span>→</span><b>Calibrated pump commands</b><span>→</span><b>Mixing</b><span>→</span><b>pH/EC/level observation</b></div>\n<h2 id=\"direct\">Variables suitable for direct feedback</h2>\n<ul><li>reservoir level or working volume;</li><li>bulk EC, with temperature compensation;</li><li>pH, with calibrated electrode and mixing delay;</li><li>solution temperature;</li><li>dissolved oxygen if a validated sensor is installed.</li></ul>\n<p>Sweetness, acidity of harvested tissue and aroma are not direct loop variables because they are not measured continuously in the reservoir.</p>\n<h2 id=\"pi\">Discrete PI form</h2>\n<div class=\"equation\"><div class=\"equation-label\">CTL-1</div><div class=\"equation-text\">e(k) = y<sub>target</sub> − y<sub>measured</sub>(k)</div><div class=\"equation-desc\">Error for a directly measured variable y, such as EC or pH.</div></div>\n<div class=\"equation\"><div class=\"equation-label\">CTL-2</div><div class=\"equation-text\">u(k) = K<sub>p</sub>e(k) + K<sub>i</sub>Σe(j)Δt</div><div class=\"equation-desc\">Candidate PI output before safety and chemical constraints.</div></div>\n<div class=\"equation\"><div class=\"equation-label\">CTL-3</div><div class=\"equation-text\">u<sub>safe</sub> = clip(u, u<sub>min</sub>, u<sub>max</sub>)</div><div class=\"equation-desc\">Dose request limited by recipe, chemistry and hardware constraints.</div></div>\n<h2 id=\"sequence\">Dose sequence</h2>\n<ol><li>Validate sensor state and reservoir volume.</li><li>Calculate a bounded stock-volume request.</li><li>Verify channel calibration and stock identity.</li><li>Deliver dose and log actuator command.</li><li>Wait the measured mixing time.</li><li>Acquire stable pH/EC readings.</li><li>Apply another correction only if all limits remain valid.</li></ol>\n<h2 id=\"ph-specific\">pH control note</h2>\n<p>Because pH is logarithmic and buffering varies with solution composition, the controller uses small empirical dose increments and measured response rather than converting pH error directly into a fixed acid/base volume. Open-source pH-stat work supports this calibration and logging approach. <button aria-label=\"Open source record R20\" class=\"research-source-trigger\" data-research-source=\"R20\" type=\"button\">[R20]</button></p>",
    "toc": [
      {
        "id": "hierarchy",
        "label": "Control hierarchy"
      },
      {
        "id": "direct",
        "label": "Variables suitable for direct feedback"
      },
      {
        "id": "pi",
        "label": "Discrete PI form"
      },
      {
        "id": "sequence",
        "label": "Dose sequence"
      },
      {
        "id": "ph-specific",
        "label": "pH control note"
      }
    ],
    "references": [
      "R20"
    ]
  },
  {
    "slug": "fluidic-safety",
    "title": "Fluidic safety and maintenance",
    "document_id": "PR-FLD-001",
    "version": "1.1",
    "updated": "2026-07-26",
    "abstract": "Interlocks, priming, purge, leak control, stock identification, tube replacement and cleaning for the dosing subsystem.",
    "group": "Nutrient dosing",
    "body": "<section aria-label=\"Article summary\" class=\"fr-article-summary\"><div><span>In brief</span><p>Interlocks, priming, purge, leak control, stock identification, tube replacement and cleaning for the dosing subsystem.</p></div></section><h2 id=\"interlocks\">Mandatory interlocks</h2>\n<div class=\"table-wrap\"><table><thead><tr><th>Condition</th><th>Automatic response</th></tr></thead><tbody><tr><td>Invalid or stale sensor</td><td>block feedback correction</td></tr><tr><td>Reservoir below minimum level</td><td>block concentrated stock dosing</td></tr><tr><td>Reservoir above maximum level</td><td>block water addition</td></tr><tr><td>Calibration expired</td><td>block volumetric automatic dosing</td></tr><tr><td>Maximum dose/runtime exceeded</td><td>stop channel and latch fault</td></tr><tr><td>Mixing delay active</td><td>block second feedback action</td></tr><tr><td>Stock mismatch</td><td>reject recipe execution</td></tr><tr><td>Cover/service state unsafe</td><td>disable pump motion where required</td></tr><tr><td>Communication loss</td><td>outputs return to defined safe state</td></tr><tr><td>Leak detected</td><td>stop all liquid actuators and alert</td></tr></tbody></table></div>\n<h2 id=\"maintenance\">Tube lifecycle</h2>\n<p>Tube service life is not published as a fixed 1,000-hour value unless validated for the exact tube, occlusion, fluid, speed and duty cycle. Replacement is triggered by calibrated-flow drift, visible damage, loss of occlusion, contamination risk or the validated service threshold.</p>\n<h2 id=\"cleaning\">Cleaning record</h2>\n<pre>cleaning_id, system_id, channel_id, cleaning_agent,\nconcentration, contact_time, rinse_volume, verification_method,\noperator, timestamp, next_allowed_fluid_class</pre>\n<h2 id=\"provenance\">FlavoRotor design provenance</h2><p>The system-specific configuration on this page is traced to the supplied FlavoRotor engineering records. <button aria-label=\"Open source record I03\" class=\"research-source-trigger\" data-research-source=\"I03\" type=\"button\">[I03]</button></p>",
    "toc": [
      {
        "id": "interlocks",
        "label": "Mandatory interlocks"
      },
      {
        "id": "maintenance",
        "label": "Tube lifecycle"
      },
      {
        "id": "cleaning",
        "label": "Cleaning record"
      },
      {
        "id": "provenance",
        "label": "FlavoRotor design provenance"
      }
    ],
    "references": [
      "I03"
    ]
  },
  {
    "slug": "flavor-definition",
    "title": "What flavour means",
    "document_id": "FLV-DEF-001",
    "version": "1.1",
    "updated": "2026-07-26",
    "abstract": "A measurement model separating taste, aroma, trigeminal sensation, texture, appearance and consumer liking.",
    "group": "Flavour control",
    "body": "<section aria-label=\"Article summary\" class=\"fr-article-summary\"><div><span>In brief</span><p>A measurement model separating taste, aroma, trigeminal sensation, texture, appearance and consumer liking.</p></div></section>\n<h2 id=\"plain\">Explanation</h2>\n<p>Flavour is not one sensor value. It is the combined experience produced by taste, retronasal aroma, texture, temperature, trigeminal sensations and context.</p>\n<h2 id=\"model\">FlavoRotor outcome model</h2>\n<div class=\"table-wrap\"><table><thead><tr><th>Outcome</th><th>Example measurements</th><th>What it cannot prove alone</th></tr></thead><tbody>\n<tr><td>Taste</td><td>sweet, sour, bitter, salty, umami intensity</td><td>volatile aroma composition</td></tr>\n<tr><td>Aroma</td><td>descriptor profile, GC–MS volatile abundance</td><td>consumer preference</td></tr>\n<tr><td>Texture</td><td>firmness, fracture, fibrousness, juiciness</td><td>taste identity</td></tr>\n<tr><td>Appearance</td><td>instrumental colour, morphology, visible defects</td><td>flavour quality</td></tr>\n<tr><td>Difference</td><td>triangle or other discrimination test</td><td>direction or preference</td></tr>\n<tr><td>Liking</td><td>consumer hedonic score</td><td>chemical cause</td></tr>\n</tbody></table></div>\n<p>Discrimination, descriptive profiling and consumer liking answer different questions and are documented separately. <button aria-label=\"Open source record R25\" class=\"research-source-trigger\" data-research-source=\"R25\" type=\"button\">[R25]</button> <button aria-label=\"Open source record R29\" class=\"research-source-trigger\" data-research-source=\"R29\" type=\"button\">[R29]</button> <button aria-label=\"Open source record R40\" class=\"research-source-trigger\" data-research-source=\"R40\" type=\"button\">[R40]</button> <button aria-label=\"Open source record R41\" class=\"research-source-trigger\" data-research-source=\"R41\" type=\"button\">[R41]</button> <button aria-label=\"Open source record R42\" class=\"research-source-trigger\" data-research-source=\"R42\" type=\"button\">[R42]</button> <button aria-label=\"Open source record R48\" class=\"research-source-trigger\" data-research-source=\"R48\" type=\"button\">[R48]</button> <button aria-label=\"Open source record R49\" class=\"research-source-trigger\" data-research-source=\"R49\" type=\"button\">[R49]</button></p>\n<h2 id=\"rule\">Core rule</h2>\n<aside class=\"fr-engineering-note\"><strong>Engineering note</strong><p>A chemical change is not automatically a sensory change, and a sensory difference is not automatically an improvement.</p></aside>\n<h2 id=\"measurement-map\">Measurement map</h2><div class=\"table-wrap\"><table><thead><tr><th>Term</th><th>What is measured</th><th>Suitable method</th></tr></thead><tbody><tr><td>Taste</td><td>sweet, sour, bitter, salty and umami sensations</td><td>trained descriptive panel or defined consumer method</td></tr><tr><td>Aroma</td><td>orthonasal and retronasal odour attributes</td><td>descriptive sensory analysis; VOC analysis as complementary evidence</td></tr><tr><td>Flavour</td><td>integrated taste, aroma and trigeminal perception</td><td>sensory method selected for the claim</td></tr><tr><td>Texture</td><td>firmness, crispness, fibrousness and juiciness</td><td>instrumental texture plus sensory description</td></tr><tr><td>Preference</td><td>degree of liking</td><td>consumer hedonic test; never inferred from chemistry alone</td></tr></tbody></table></div><p>Terminology and method selection follow sensory-analysis standards. A chemical difference can help explain perception, but it does not replace a sensory test. <button aria-label=\"Open source record R29\" class=\"research-source-trigger\" data-research-source=\"R29\" type=\"button\">[R29]</button> <button aria-label=\"Open source record R41\" class=\"research-source-trigger\" data-research-source=\"R41\" type=\"button\">[R41]</button> <button aria-label=\"Open source record R42\" class=\"research-source-trigger\" data-research-source=\"R42\" type=\"button\">[R42]</button> <button aria-label=\"Open source record R48\" class=\"research-source-trigger\" data-research-source=\"R48\" type=\"button\">[R48]</button></p><h2 id=\"sensory-fingerprint\">A measurable sensory fingerprint</h2>\n      <p>A target is stored as a versioned set of measurements for one crop and cultivar at a defined harvest stage. It combines a small number of primary chemical and sensory variables with physical plant state and the complete cultivation history.</p>\n      <div class=\"table-wrap\"><table><thead><tr><th>Layer</th><th>Examples of recorded variables</th><th>Method</th></tr></thead><tbody>\n        <tr><td>Chemistry</td><td>selected volatile compounds, sugars, organic acids, pigments</td><td>validated chromatographic or spectrometric method</td></tr>\n        <tr><td>Sensory</td><td>sweet, sour, bitter, named aromas, texture, trigeminal sensations</td><td>coded and blinded sensory protocol</td></tr>\n        <tr><td>Physical state</td><td>developmental stage, colour, fresh and dry mass, water content</td><td>calibrated imaging and physical measurements</td></tr>\n        <tr><td>Process history</td><td>light, temperature, humidity, nutrient, pH, EC, rotation and harvest history</td><td>timestamped sensor and actuator records</td></tr>\n      </tbody></table></div>",
    "toc": [
      {
        "id": "plain",
        "label": "Explanation"
      },
      {
        "id": "model",
        "label": "FlavoRotor outcome model"
      },
      {
        "id": "rule",
        "label": "Core rule"
      },
      {
        "id": "measurement-map",
        "label": "Measurement map"
      },
      {
        "id": "sensory-fingerprint",
        "label": "A measurable sensory fingerprint"
      }
    ],
    "references": [
      "R25",
      "R29",
      "R40",
      "R41",
      "R42",
      "R48",
      "R49"
    ]
  },
  {
    "slug": "flavor-control-chain",
    "title": "How cultivation steers flavour",
    "document_id": "FLV-CTL-001",
    "version": "1.1",
    "updated": "2026-07-26",
    "abstract": "How measured cultivation inputs are linked to plant chemistry and sensory response, then converted into a reproducible crop recipe.",
    "group": "Flavour control",
    "body": "<section aria-label=\"Article summary\" class=\"fr-article-summary\"><div><span>In brief</span><p>The complete engineering and biological chain used to turn a desired sensory target into a reproducible cultivation recipe.</p></div></section>\n<h2 id=\"definition\">Definition of control</h2>\n<p>FlavoRotor defines a reproducible flavour result when a requested target can be translated into a versioned cultivation recipe that produces a statistically and sensorially bounded outcome across independent cycles.</p>\n<div class=\"process-chain\"><b>Target sensory profile</b><span>→</span><b>Crop and cultivar</b><span>→</span><b>Measured input recipe</b><span>→</span><b>Calibrated execution</b><span>→</span><b>Chemical and sensory result</b><span>→</span><b>Replication</b></div>\n<h2 id=\"variables\">Controllable inputs</h2>\n<p>The platform can programme light, nutrient-stock additions, pH management, bulk EC limits, solution temperature and rotation schedule; the supplied engineering reports also document the rotating drum, sensing, monitoring and proposed four-channel dosing architecture. <button aria-label=\"Open source record I01\" class=\"research-source-trigger\" data-research-source=\"I01\" type=\"button\">[I01]</button> <button aria-label=\"Open source record I02\" class=\"research-source-trigger\" data-research-source=\"I02\" type=\"button\">[I02]</button> <button aria-label=\"Open source record I03\" class=\"research-source-trigger\" data-research-source=\"I03\" type=\"button\">[I03]</button></p>\n<h2 id=\"outcomes\">Measured outcomes</h2>\n<p>Outcomes are crop-specific: basil may be evaluated through selected aroma volatiles and descriptive aroma; arugula through glucosinolate-related phytochemicals, pungency and bitterness; lettuce through bitterness, texture and quality; mint through essential-oil composition and menthol-related descriptors; strawberry through soluble solids, titratable acidity, volatile profile, firmness and sensory response. <button aria-label=\"Open source record R01\" class=\"research-source-trigger\" data-research-source=\"R01\" type=\"button\">[R01]</button> <button aria-label=\"Open source record R02\" class=\"research-source-trigger\" data-research-source=\"R02\" type=\"button\">[R02]</button> <button aria-label=\"Open source record R05\" class=\"research-source-trigger\" data-research-source=\"R05\" type=\"button\">[R05]</button> <button aria-label=\"Open source record R10\" class=\"research-source-trigger\" data-research-source=\"R10\" type=\"button\">[R10]</button> <button aria-label=\"Open source record R12\" class=\"research-source-trigger\" data-research-source=\"R12\" type=\"button\">[R12]</button> <button aria-label=\"Open source record R15\" class=\"research-source-trigger\" data-research-source=\"R15\" type=\"button\">[R15]</button> <button aria-label=\"Open source record R28\" class=\"research-source-trigger\" data-research-source=\"R28\" type=\"button\">[R28]</button></p>\n<h2 id=\"algorithm\">Recipe model</h2>\n<div class=\"equation\"><div class=\"equation-label\">FLV-1</div><div class=\"equation-text\">ŷ = f(x, g, s, t) + ε</div><div class=\"equation-desc\">ŷ is a predicted outcome; x is the measured cultivation vector; g is genotype; s is system state; t is developmental stage; ε is unexplained variation.</div></div>\n<p>The model is trained only after single-factor and interaction experiments. It is never seeded with invented nutrient-to-flavour coefficients.</p>\n<h2 id=\"release\">Recipe release gate</h2>\n<p>A recipe is released only when the machine input was calibrated, the protocol was frozen before analysis, the result includes uncertainty and effect size, sensory evidence is appropriate to the claim, and at least one independent replication succeeds.</p>\n<h2 id=\"control-stages\">From influence to repeatable targeting</h2>\n      <ol class=\"fr-method-steps\">\n        <li><strong>Measure influence.</strong><span>Change one calibrated input and measure the chemical and sensory response against a matched control.</span></li>\n        <li><strong>Map the response.</strong><span>Repeat across treatment levels and independent cycles to estimate direction, magnitude and interaction with cultivar and growth stage.</span></li>\n        <li><strong>Define a target.</strong><span>Freeze the chemical, sensory and physical acceptance ranges before a new cultivation run begins.</span></li>\n        <li><strong>Test prospectively.</strong><span>Run the frozen recipe on new biological material and compare the harvest with the predefined target.</span></li>\n        <li><strong>Replicate.</strong><span>Repeat on another cycle, unit and operator with the same physical targets and calibrated local commands.</span></li>\n      </ol>",
    "toc": [
      {
        "id": "definition",
        "label": "Definition of control"
      },
      {
        "id": "variables",
        "label": "Controllable inputs"
      },
      {
        "id": "outcomes",
        "label": "Measured outcomes"
      },
      {
        "id": "algorithm",
        "label": "Recipe model"
      },
      {
        "id": "release",
        "label": "Recipe release gate"
      },
      {
        "id": "control-stages",
        "label": "From influence to repeatable targeting"
      }
    ],
    "references": [
      "I01",
      "I02",
      "I03",
      "R01",
      "R02",
      "R05",
      "R10",
      "R12",
      "R15",
      "R28"
    ]
  },
  {
    "slug": "ph-management",
    "title": "pH management",
    "document_id": "MTH-PH-001",
    "version": "1.1",
    "updated": "2026-07-26",
    "abstract": "What nutrient-solution pH changes, what it does not change directly, and how crop-specific pH experiments are designed.",
    "group": "Research methods",
    "body": "<section aria-label=\"Article summary\" class=\"fr-article-summary\"><div><span>In brief</span><p>What nutrient-solution pH changes, what it does not change directly, and how crop-specific pH experiments are designed.</p></div></section><h2 id=\"plain\">Explanation</h2>\n<p>pH changes the chemical environment around the roots. It affects nutrient speciation, solubility, microbial conditions and uptake. It is not a direct “sweetness dial”.</p>\n<div class=\"equation\"><div class=\"equation-label\">PH-1</div><div class=\"equation-text\">pH = −log₁₀(a<sub>H+</sub>)</div><div class=\"equation-desc\">Definition in terms of hydrogen-ion activity.</div></div>\n<h2 id=\"evidence\">Published crop studies</h2>\n<p>Lettuce studies show that relatively small pH changes can alter physiological performance and tissue composition. <button aria-label=\"Open source record R06\" class=\"research-source-trigger\" data-research-source=\"R06\" type=\"button\">[R06]</button> <button aria-label=\"Open source record R07\" class=\"research-source-trigger\" data-research-source=\"R07\" type=\"button\">[R07]</button> These studies justify a pH trial but do not demonstrate a universal taste setting.</p>\n<h2 id=\"operating\">Operational approach</h2>\n<div class=\"table-wrap\"><table><thead><tr><th>Step</th><th>Requirement</th></tr></thead><tbody><tr><td>Select setpoint</td><td>crop, cultivar, formulation and literature anchor stated</td></tr><tr><td>Calibrate</td><td>buffers bracket expected operating range</td></tr><tr><td>Measure</td><td>temperature and stabilisation criteria recorded</td></tr><tr><td>Correct</td><td>small bounded acid/base increments</td></tr><tr><td>Mix</td><td>wait validated mixing time</td></tr><tr><td>Re-read</td><td>require stable repeated measurements</td></tr><tr><td>Publish</td><td>report actual pH distribution, not only nominal target</td></tr></tbody></table></div>\n<h2 id=\"taste\">How to test pH and flavour correctly</h2>\n<p>Use at least three pH treatments while keeping elemental formulation, EC, DLI, temperature, harvest age and post-harvest handling matched. Measure tissue composition, biomass, chemistry and blinded sensory response. A difference in growth alone is not a flavour result.</p>\n<aside class=\"fr-engineering-note\"><strong>Measurement rule</strong><p>A published pH range is an operating or experimental condition. It is not evidence that a specific pH makes a plant sweeter, less bitter or more aromatic.</p></aside>",
    "toc": [
      {
        "id": "plain",
        "label": "Explanation"
      },
      {
        "id": "published-studies",
        "label": "Published crop studies"
      },
      {
        "id": "operating",
        "label": "Operational approach"
      },
      {
        "id": "taste",
        "label": "How to test pH and flavour correctly"
      }
    ],
    "references": [
      "R06",
      "R07"
    ]
  },
  {
    "slug": "ec-ionic-balance",
    "title": "EC and ionic balance",
    "document_id": "MTH-EC-001",
    "version": "1.1",
    "updated": "2026-07-26",
    "abstract": "Temperature-corrected conductivity, individual-ion drift and the limits of EC-only nutrient control.",
    "group": "Research methods",
    "body": "<section aria-label=\"Article summary\" class=\"fr-article-summary\"><div><span>In brief</span><p>Temperature-corrected conductivity, individual-ion drift and the limits of EC-only nutrient control.</p></div></section><h2 id=\"plain\">Explanation</h2>\n<p>EC measures how well the solution conducts electricity. It is useful for detecting overall dilution or concentration, but it cannot state how much potassium, nitrate, calcium or magnesium is present individually.</p>\n<div class=\"equation\"><div class=\"equation-label\">EC-1</div><div class=\"equation-text\">EC₂₅ ≈ EC<sub>T</sub> / [1 + α(T − 25)]</div><div class=\"equation-desc\">Approximate temperature correction to 25 °C; α must match the solution or instrument model.</div></div>\n<h2 id=\"ion-drift\">Ion drift</h2>\n<p>Plant uptake is selective. A controller can hold bulk EC near target while individual ions diverge. This is directly documented in hydroponic nutrient-dynamics research. <button aria-label=\"Open source record R17\" class=\"research-source-trigger\" data-research-source=\"R17\" type=\"button\">[R17]</button></p>\n<h2 id=\"requirements\">Required controls</h2>\n<ul><li>known initial elemental composition;</li><li>logged stock additions and water additions;</li><li>reservoir-volume accounting;</li><li>periodic solution replacement or laboratory verification;</li><li>crop-specific tissue or solution analysis for research claims;</li><li>EC used as a bulk constraint, not an ion sensor.</li></ul>\n<h2 id=\"experiments\">EC experiment rule</h2>\n<p>An EC treatment is reproducible only when the recipe used to reach that EC is also specified. Raising EC with a balanced nutrient concentrate is biologically different from raising EC with NaCl or a single salt, even when the meter reads the same value.</p>",
    "toc": [
      {
        "id": "plain",
        "label": "Explanation"
      },
      {
        "id": "ion-drift",
        "label": "Ion drift"
      },
      {
        "id": "requirements",
        "label": "Required controls"
      },
      {
        "id": "experiments",
        "label": "EC experiment rule"
      }
    ],
    "references": [
      "R17"
    ]
  },
  {
    "slug": "nutrient-composition",
    "title": "Nutrient composition, plant chemistry and stock design",
    "document_id": "FLV-NUT-001",
    "version": "2.0",
    "updated": "2026-07-29",
    "abstract": "Elemental mass balance, real hydroponic N–P–K dose responses, cultivar-by-solution effects on lettuce chemistry and the measurements required to estimate plant nutrient state.",
    "group": "Flavour control",
    "body": "<section aria-label=\"Article summary\" class=\"fr-article-summary\"><div><span>In brief</span><p>How complete elemental recipes, coupled ions, stock compatibility and tissue measurements replace simplistic nutrient-to-taste rules.</p></div></section>\n<h2 id=\"plain\">Explanation</h2>\n<p>Adding one fertilizer changes every ion carried by that salt. A KNO₃ dose changes both potassium and nitrate; it is not a pure “sweetness” command.</p>\n<h2 id=\"mass-balance\">Mass balance</h2>\n<div class=\"equation\"><div class=\"equation-label\">NUT-1</div><div class=\"equation-text\">nᵢ,new = nᵢ,old + Σⱼ νᵢⱼ Cⱼ Vⱼ − Uᵢ − Lᵢ</div><div class=\"equation-desc\">Ion i changes through stock additions j, stoichiometric coefficients ν, plant uptake U and losses L.</div></div>\n<div class=\"equation\"><div class=\"equation-label\">NUT-2</div><div class=\"equation-text\">Cᵢ,new = nᵢ,new / Vreservoir,new</div><div class=\"equation-desc\">Concentration follows ion amount and the final mixed reservoir volume.</div></div>\n<h2 id=\"npk-limitation\">Separate N, P and K limitation</h2>\n<p>The USDA Bibb lettuce dataset changes one target nutrient concentration at a time and reports fresh mass through day 32 after transplant. The day-32 response is not monotonic for every nutrient. Nitrogen rises from 1.16 g at 5 mg·L⁻¹ to 250.73 g at 132 mg·L⁻¹, then falls to 74.11 g at 264 mg·L⁻¹. Phosphorus rises from 9.14 g at 1 mg·L⁻¹ to 250.73 g at 31 mg·L⁻¹. The potassium series contains a wide interval at 42 mg·L⁻¹, so that treatment mean should not be read without its uncertainty. <button aria-label=\"Open source record R58\" class=\"research-source-trigger\" data-research-source=\"R58\" type=\"button\">[R58]</button></p>\n<div data-research-visual=\"lettuce-npk-dose-response\"></div>\n<p>The graph preserves each nutrient's actual concentration scale and the authors' 95% confidence intervals. It demonstrates two practical points: nutrient response can be curved rather than linear, and equal EC values do not imply equal elemental availability.</p>\n<h2 id=\"tissue-chemistry\">Nutrient solution and tissue chemistry</h2>\n<p>El-Nakhel and colleagues tested green and red lettuce with calcium-, magnesium- or potassium-dominant macrocation ratios. The complete design contains three biological replicates in each of six cultivar-by-solution cells. The published measurements include total nitrogen, sulphate, six organic acids and total chlorophyll. <button aria-label=\"Open source record R59\" class=\"research-source-trigger\" data-research-source=\"R59\" type=\"button\">[R59]</button></p>\n<div data-research-visual=\"lettuce-macrocation-chemistry\"></div>\n<p>A balanced two-way fixed-effects ANOVA was recomputed from all 18 published observations. For malate, the nutrient-solution effect was F(2, 12) = 106.39 with Holm-adjusted p = 3.94 × 10⁻⁷, and the cultivar-by-solution interaction was F(2, 12) = 21.40 with adjusted p = 9.93 × 10⁻⁴. For total chlorophyll, the interaction was F(2, 12) = 25.38 with adjusted p = 4.89 × 10⁻⁴. The interaction means the solution effect changes with cultivar; one universal nutrient-to-chemistry coefficient would discard that structure.</p>\n<h3 id=\"nutrient-state-estimation\">Estimating plant nutrient state</h3>\n<p>Visible colour is useful but not chemically specific. Nitrogen limitation, water stress, senescence, exposure error and disease can all alter RGB appearance. FlavoRotor therefore joins four records at the same plant and time: the delivered elemental formulation, pH and EC history, the repeated image, and a reference measurement such as tissue mineral composition or chlorophyll. A supervised model predicts a declared laboratory endpoint, not an undefined label such as “nutrient health”.</p>\n<div class=\"equation\"><div class=\"equation-label\">NUT-STATE</div><div class=\"equation-text\">x̂ₜ = f(Iₜ₋ₖ:ₜ, uₜ₋ₖ:ₜ, sₜ₋ₖ:ₜ, g, d)</div><div class=\"equation-desc\">Estimated plant state uses an image sequence I, delivered nutrient and light inputs u, measured environmental state s, cultivar g and day after transplant d over a defined history window.</div></div>\n<p>Evaluation keeps all observations from one plant or cultivation cycle in the same fold. The report includes MAE for continuous chemistry, balanced accuracy for declared deficiency classes, calibration of uncertainty and performance for each cultivar and growth stage.</p><h2 id=\"ec\">Why EC is insufficient</h2>\n<p>EC is an indirect bulk response to all dissolved ions. Closed systems can maintain a target EC while individual nutrients become deficient or excessive. <button aria-label=\"Open source record R17\" class=\"research-source-trigger\" data-research-source=\"R17\" type=\"button\">[R17]</button> <button aria-label=\"Open source record R34\" class=\"research-source-trigger\" data-research-source=\"R34\" type=\"button\">[R34]</button> <button aria-label=\"Open source record R35\" class=\"research-source-trigger\" data-research-source=\"R35\" type=\"button\">[R35]</button> <button aria-label=\"Open source record R36\" class=\"research-source-trigger\" data-research-source=\"R36\" type=\"button\">[R36]</button></p>\n<h2 id=\"stocks\">Four-channel implication</h2>\n<p>The four FlavoRotor channels must be assigned to chemically defined and compatible fluids. Channel labels describe the liquid, not an expected flavour. The formulation must account for coupled ions, precipitation risk, source-water composition and the limited degrees of freedom available with four reservoirs. <button aria-label=\"Open source record I03\" class=\"research-source-trigger\" data-research-source=\"I03\" type=\"button\">[I03]</button> <button aria-label=\"Open source record R34\" class=\"research-source-trigger\" data-research-source=\"R34\" type=\"button\">[R34]</button> <button aria-label=\"Open source record R35\" class=\"research-source-trigger\" data-research-source=\"R35\" type=\"button\">[R35]</button></p>\n<h2 id=\"validation\">Validation</h2>\n<p>Recipe trials report the full elemental formulation, source water, pH, EC, solution replacement, delivered stock volumes and tissue composition. Sensory conclusions are made only after chemical and blinded sensory measurements.</p>\n",
    "toc": [
      {
        "id": "plain",
        "label": "Explanation"
      },
      {
        "id": "mass-balance",
        "label": "Mass balance"
      },
      {
        "id": "npk-limitation",
        "label": "Separate N, P and K limitation"
      },
      {
        "id": "tissue-chemistry",
        "label": "Nutrient solution and tissue chemistry"
      },
      {
        "id": "nutrient-state-estimation",
        "label": "Estimating plant nutrient state"
      },
      {
        "id": "ec",
        "label": "Why EC is insufficient"
      },
      {
        "id": "stocks",
        "label": "Four-channel implication"
      },
      {
        "id": "validation",
        "label": "Validation"
      }
    ],
    "references": [
      "I03",
      "R17",
      "R34",
      "R35",
      "R36",
      "R58",
      "R59"
    ]
  },
  {
    "slug": "lighting-flavor",
    "title": "Light as a flavour-control variable",
    "document_id": "FLV-LGT-001",
    "version": "1.1",
    "updated": "2026-07-26",
    "abstract": "How spectrum, PPFD, DLI, photoperiod and developmental timing are separated and tested as crop-specific sensory inputs.",
    "group": "Flavour control",
    "body": "<section aria-label=\"Article summary\" class=\"fr-article-summary\"><div><span>In brief</span><p>How spectrum, PPFD, DLI, photoperiod and developmental timing are separated and tested as crop-specific sensory inputs.</p></div></section>\n<h2 id=\"variables\">Light variables</h2>\n<div class=\"table-wrap\"><table><thead><tr><th>Variable</th><th>Required record</th></tr></thead><tbody>\n<tr><td>Spectrum</td><td>measured spectral photon distribution at plant positions</td></tr>\n<tr><td>PPFD</td><td>instantaneous photon flux density and spatial map</td></tr>\n<tr><td>DLI</td><td>integrated daily photons</td></tr>\n<tr><td>Photoperiod</td><td>on/off schedule and transitions</td></tr>\n<tr><td>Far-red</td><td>separate 700–750 nm photon record</td></tr>\n<tr><td>Timing</td><td>developmental stage and pre-harvest treatment duration</td></tr>\n</tbody></table></div>\n<p>Hydroponic Italian Large Leaf basil provides direct evidence that lighting quality can alter key aroma volatiles. <button aria-label=\"Open source record R01\" class=\"research-source-trigger\" data-research-source=\"R01\" type=\"button\">[R01]</button></p>\n<p>Far-red photons can contribute to canopy photosynthesis when combined with shorter wavelengths, so FlavoRotor records them rather than reducing the light description to “red/blue percentages”. <button aria-label=\"Open source record R33\" class=\"research-source-trigger\" data-research-source=\"R33\" type=\"button\">[R33]</button></p>\n<h2 id=\"design\">Experimental design</h2>\n<p>To test a spectral effect, DLI, temperature, cultivar, nutrient formulation, plant age and harvest handling remain matched. A treatment is reported as measured photon distributions, not LED control percentages.</p>\n<h2 id=\"experimental-definition\">Required treatment definition</h2><p>A light treatment is fully specified only when spectrum, PPFD, DLI, photoperiod, fixture geometry, plant position, leaf temperature and treatment timing are recorded. Percent dimmer settings are device commands, not transferable biological units.</p><div class=\"table-wrap\"><table><thead><tr><th>Variable</th><th>Primary measurement</th><th>Potential response</th></tr></thead><tbody><tr><td>Spectrum</td><td>spectral photon distribution</td><td>morphology, volatile and secondary-metabolite profile</td></tr><tr><td>PPFD</td><td>µmol·m⁻²·s⁻¹ at plant positions</td><td>instantaneous photon exposure</td></tr><tr><td>DLI</td><td>mol·m⁻²·d⁻¹</td><td>daily integrated exposure</td></tr><tr><td>Photoperiod</td><td>hours per day and schedule</td><td>development and circadian response</td></tr><tr><td>Leaf temperature</td><td>contact or calibrated infrared measurement</td><td>separates optical and thermal effects</td></tr></tbody></table></div>",
    "toc": [
      {
        "id": "variables",
        "label": "Light variables"
      },
      {
        "id": "design",
        "label": "Experimental design"
      },
      {
        "id": "experimental-definition",
        "label": "Required treatment definition"
      }
    ],
    "references": [
      "R01",
      "R33"
    ]
  },
  {
    "slug": "root-zone-environment",
    "title": "Root-zone environment",
    "document_id": "FLV-RTZ-001",
    "version": "1.1",
    "updated": "2026-07-26",
    "abstract": "Solution temperature, oxygen, immersion, mixing, root architecture and reservoir age as explicit experimental variables.",
    "group": "Flavour control",
    "body": "<section aria-label=\"Article summary\" class=\"fr-article-summary\"><div><span>In brief</span><p>Solution temperature, oxygen, immersion, mixing, root architecture and reservoir age as explicit experimental variables.</p></div></section>\n<h2 id=\"scope\">Scope</h2>\n<p>Root-zone behaviour is defined by more than pH and EC. FlavoRotor records solution temperature, dissolved oxygen when available, immersion timing, drainage, mixing time, reservoir volume, solution age and root architecture.</p>\n<h2 id=\"temperature\">Temperature</h2>\n<p>Root-zone temperature can alter growth and soluble-solids measurements, with cultivar-dependent responses reported in lettuce. <button aria-label=\"Open source record R11\" class=\"research-source-trigger\" data-research-source=\"R11\" type=\"button\">[R11]</button></p>\n<h2 id=\"recycling\">Reservoir age and composition</h2>\n<p>Recycled solution can accumulate unwanted or slowly consumed ions while bulk EC remains near target. <button aria-label=\"Open source record R36\" class=\"research-source-trigger\" data-research-source=\"R36\" type=\"button\">[R36]</button></p>\n<h2 id=\"rotation\">Sequential immersion</h2>\n<p>The rotating geometry introduces periodic root wetting and drainage documented in the FlavoRotor system records. This is treated as an experimental factor and potential confounder rather than assumed to improve oxygenation or flavour. <button aria-label=\"Open source record I01\" class=\"research-source-trigger\" data-research-source=\"I01\" type=\"button\">[I01]</button> <button aria-label=\"Open source record I02\" class=\"research-source-trigger\" data-research-source=\"I02\" type=\"button\">[I02]</button></p>\n<h2 id=\"protocol\">Required measurements</h2>\n<ul><li>solution temperature at defined locations and intervals;</li><li>reservoir volume and replacement events;</li><li>mixing-time validation after each dose;</li><li>root-zone exposure duration per revolution;</li><li>root images and root dry mass;</li><li>water and nutrient balance.</li></ul>\n<h2 id=\"coupled-variables\">Coupled variables</h2><p>Root-zone temperature changes oxygen solubility and root metabolism; pH changes nutrient speciation and availability; EC describes bulk conductivity but not individual ions; flow and immersion determine renewal around the root surface. These variables are therefore logged together and are not interpreted independently when they covary.</p><div class=\"table-wrap\"><table><thead><tr><th>Variable</th><th>Control purpose</th><th>Failure mode to detect</th></tr></thead><tbody><tr><td>Solution temperature</td><td>stable root-zone condition</td><td>heating, cooling or spatial gradients</td></tr><tr><td>Dissolved oxygen</td><td>root respiration support</td><td>low oxygen after warming or biological load</td></tr><tr><td>pH</td><td>defined root-zone chemistry</td><td>drift, probe fouling or dosing overshoot</td></tr><tr><td>EC</td><td>bulk concentration guardrail</td><td>dilution, concentration or ionic imbalance hidden by total EC</td></tr><tr><td>Immersion and drainage</td><td>repeatable wetting cycle</td><td>unequal contact, retained liquid or blocked drainage</td></tr></tbody></table></div>",
    "toc": [
      {
        "id": "scope",
        "label": "Scope"
      },
      {
        "id": "temperature",
        "label": "Temperature"
      },
      {
        "id": "recycling",
        "label": "Reservoir age and composition"
      },
      {
        "id": "rotation",
        "label": "Sequential immersion"
      },
      {
        "id": "protocol",
        "label": "Required measurements"
      },
      {
        "id": "coupled-variables",
        "label": "Coupled variables"
      }
    ],
    "references": [
      "I01",
      "I02",
      "R11",
      "R36"
    ]
  },
  {
    "slug": "salinity-water-stress",
    "title": "Salinity, water stress and multimodal detection",
    "document_id": "FLV-STR-001",
    "version": "2.0",
    "updated": "2026-07-29",
    "abstract": "Biomass and concentration effects, a published 145-hour lettuce water-stress sequence, aligned image signals and a measurement protocol that separates water, nutrient and disease endpoints.",
    "group": "Flavour control",
    "body": "<section aria-label=\"Article summary\" class=\"fr-article-summary\"><div><span>In brief</span><p>How concentration effects, osmotic stress, biomass penalties and metabolite responses are separated before any flavour claim.</p></div></section>\n<h2 id=\"plain\">Explanation</h2>\n<p>A treatment can increase the concentration of a compound per gram while reducing total plant growth. Both outcomes must be reported.</p>\n<h2 id=\"model\">Response model</h2>\n<div class=\"equation\"><div class=\"equation-label\">STR-1</div><div class=\"equation-text\">Total compound per plant = concentration per dry mass × plant dry mass</div><div class=\"equation-desc\">Prevents a concentration increase caused only by reduced biomass from being reported as higher total production.</div></div>\n<p>Mint species show species-dependent essential-oil and antioxidant responses under salinity, accompanied by growth effects. <button aria-label=\"Open source record R15\" class=\"research-source-trigger\" data-research-source=\"R15\" type=\"button\">[R15]</button></p>\n<p>Arugula EC trials report simultaneous changes in growth, nutritional quality and flavour-related phytochemicals, demonstrating why yield and chemistry must be analysed together. <button aria-label=\"Open source record R05\" class=\"research-source-trigger\" data-research-source=\"R05\" type=\"button\">[R05]</button></p>\n<h2 id=\"water-stress-sequence\">Measured water-stress sequence</h2>\n<p>Fevgas and colleagues published 145 hourly soil-moisture records with RGB, thermal and pseudo-colour lettuce images. The normally irrigated sequence starts at 75% and ends at 73%. The non-irrigated sequence starts at 75% and ends at 8%. A difference of at least 10 percentage points persists from 14 January 2024 at 09:24:45 (UTC+2). <button aria-label=\"Open source record R60\" class=\"research-source-trigger\" data-research-source=\"R60\" type=\"button\">[R60]</button></p>\n<div data-research-visual=\"lettuce-water-stress-signals\"></div>\n<p>The lower panel applies one fixed pixel rule to the authors' pseudo-colour outputs: R &gt; 180, G &gt; 180, B &lt; 130 and R + G &gt; 420. Yellow overlay occupies 35.13–52.28% of the detected canopy in the 13 non-irrigated outputs and 0.02–4.11% in the irrigated outputs. This is a measurement of the published visualisation, not a newly trained disease or stress classifier.</p>\n<div data-research-visual=\"lettuce-water-stress-images\"></div>\n<h3 id=\"separating-water-and-nutrient-signals\">Separating water, nutrient and disease signals</h3>\n<p>A colour change is not assigned a cause from RGB alone. Water stress is checked against reservoir level, root-zone contact, temperature and moisture or water-potential measurements. Nutrient state is checked against the delivered formulation, pH, EC and tissue analysis. Disease labels require symptom-specific expert or laboratory confirmation. The same image can contribute features to each analysis, but each endpoint has its own reference measurement.</p>\n<h3 id=\"stress-timing\">Time to detection</h3>\n<p>For a new cultivation run, detection time is measured from the recorded treatment change to the first alert that remains above threshold for a declared number of consecutive captures. The report includes false-alert rate in control plants, sensitivity, median detection delay and an interval across biological replicates. This distinguishes early detection from a visually strong endpoint image.</p><h2 id=\"protocol\">FlavoRotor rule</h2>\n<p>No salinity or water-stress recipe is released without biomass, tissue water, visual quality, chemical endpoints and sensory confirmation. Severe stress is not used merely to create a larger analytical signal.</p>\n",
    "toc": [
      {
        "id": "plain",
        "label": "Explanation"
      },
      {
        "id": "model",
        "label": "Response model"
      },
      {
        "id": "water-stress-sequence",
        "label": "Measured water-stress sequence"
      },
      {
        "id": "separating-water-and-nutrient-signals",
        "label": "Separating water, nutrient and disease signals"
      },
      {
        "id": "stress-timing",
        "label": "Time to detection"
      },
      {
        "id": "protocol",
        "label": "FlavoRotor rule"
      }
    ],
    "references": [
      "R05",
      "R15",
      "R60"
    ]
  },
  {
    "slug": "harvest-postharvest",
    "title": "Harvest and post-harvest control",
    "document_id": "FLV-HRV-001",
    "version": "1.1",
    "updated": "2026-07-26",
    "abstract": "Harvest age, time of day, sample location, storage and preparation rules required to preserve a valid cultivation comparison.",
    "group": "Flavour control",
    "body": "<section aria-label=\"Article summary\" class=\"fr-article-summary\"><div><span>In brief</span><p>Harvest age, time of day, sample location, storage and preparation rules required to preserve a valid cultivation comparison.</p></div></section>\n<h2 id=\"why\">Why this matters</h2>\n<p>A cultivation treatment can be overwhelmed by differences introduced during harvest, storage or sample preparation. Post-harvest conditions are therefore controlled as part of the experiment rather than treated as logistics.</p>\n<p>Lettuce quality and shelf-life responses depend on nutrient treatment, season and post-harvest handling. <button aria-label=\"Open source record R26\" class=\"research-source-trigger\" data-research-source=\"R26\" type=\"button\">[R26]</button></p>\n<h2 id=\"record\">Required harvest record</h2>\n<div class=\"table-wrap\"><table><thead><tr><th>Field</th><th>Requirement</th></tr></thead><tbody>\n<tr><td>Developmental age</td><td>days after sowing and transplanting</td></tr>\n<tr><td>Time of harvest</td><td>clock time and light-cycle position</td></tr>\n<tr><td>Sample location</td><td>defined leaf, fruit or canopy position</td></tr>\n<tr><td>Pre-analysis delay</td><td>minutes or hours</td></tr>\n<tr><td>Storage</td><td>temperature, humidity, package and duration</td></tr>\n<tr><td>Preparation</td><td>washing, cutting, mass and serving temperature</td></tr>\n</tbody></table></div>\n<h2 id=\"sensory\">Sensory samples</h2>\n<p>Samples receive blind random codes, balanced serving order and identical preparation. Test-room conditions and the selected discrimination, descriptive or hedonic method are documented. <button aria-label=\"Open source record R40\" class=\"research-source-trigger\" data-research-source=\"R40\" type=\"button\">[R40]</button> <button aria-label=\"Open source record R41\" class=\"research-source-trigger\" data-research-source=\"R41\" type=\"button\">[R41]</button> <button aria-label=\"Open source record R42\" class=\"research-source-trigger\" data-research-source=\"R42\" type=\"button\">[R42]</button> <button aria-label=\"Open source record R48\" class=\"research-source-trigger\" data-research-source=\"R48\" type=\"button\">[R48]</button> <button aria-label=\"Open source record R49\" class=\"research-source-trigger\" data-research-source=\"R49\" type=\"button\">[R49]</button></p>\n",
    "toc": [
      {
        "id": "why",
        "label": "Why this matters"
      },
      {
        "id": "record",
        "label": "Required harvest record"
      },
      {
        "id": "sensory",
        "label": "Sensory samples"
      }
    ],
    "references": [
      "R26",
      "R40",
      "R41",
      "R42",
      "R48",
      "R49"
    ]
  },
  {
    "slug": "recipe-control-algorithm",
    "title": "Recipe and control algorithm",
    "document_id": "FLV-ALG-001",
    "version": "1.1",
    "updated": "2026-07-26",
    "abstract": "A safe hierarchy separating user targets, recipe parameters, measured feedback, actuator calibration and learned sensory models.",
    "group": "Flavour control",
    "body": "<section aria-label=\"Article summary\" class=\"fr-article-summary\"><div><span>In brief</span><p>A safe hierarchy separating user targets, recipe parameters, measured feedback, actuator calibration and learned sensory models.</p></div></section>\n<h2 id=\"hierarchy\">Control hierarchy</h2>\n<div class=\"process-chain\"><b>User target</b><span>→</span><b>Validated recipe ID</b><span>→</span><b>Setpoints and schedules</b><span>→</span><b>Calibrated actuators</b><span>→</span><b>Measured environment</b><span>→</span><b>Outcome model</b></div>\n<h2 id=\"feedback\">Direct feedback loops</h2>\n<p>Closed-loop control is appropriate for directly measured variables such as pH, reservoir level, solution temperature, rotation speed and bulk EC. Individual-ion control requires ion-specific measurement or a constrained mass-balance model validated by chemical analysis. <button aria-label=\"Open source record R17\" class=\"research-source-trigger\" data-research-source=\"R17\" type=\"button\">[R17]</button> <button aria-label=\"Open source record R34\" class=\"research-source-trigger\" data-research-source=\"R34\" type=\"button\">[R34]</button> <button aria-label=\"Open source record R35\" class=\"research-source-trigger\" data-research-source=\"R35\" type=\"button\">[R35]</button> <button aria-label=\"Open source record R36\" class=\"research-source-trigger\" data-research-source=\"R36\" type=\"button\">[R36]</button></p>\n<div class=\"equation\"><div class=\"equation-label\">RCP-1</div><div class=\"equation-text\">e(k) = ytarget − ymeasured(k)</div><div class=\"equation-desc\">Error for a directly measured controlled variable.</div></div>\n<div class=\"equation\"><div class=\"equation-label\">RCP-2</div><div class=\"equation-text\">u(k) = clip[Kp e(k) + Ki Σ e(j)Δt, umin, umax]</div><div class=\"equation-desc\">Bounded PI action with explicit actuator and safety limits.</div></div>\n<h2 id=\"learned\">Learned sensory mapping</h2>\n<p>The sensory predictor is trained from completed FlavoRotor experiments. Its input data include genotype, developmental stage, measured environmental history, solution composition and harvest handling. Cross-validation is separated by cultivation cycle to prevent samples from the same run appearing in training and test sets.</p>\n<h2 id=\"safety\">Safety constraints</h2>\n<ul><li>no automatic dose with an expired channel calibration;</li><li>no correction while the mixing delay is active;</li><li>bounded dose and runtime per event;</li><li>sensor plausibility and redundancy checks;</li><li>fault-safe state after communication loss;</li><li>full event logging with recipe and firmware versions.</li></ul>\n<h2 id=\"state-conditioned\">State-conditioned treatment</h2>\n      <p>A recipe contains time limits and plant-state conditions. For example, a light phase can begin when a validated imaging model detects the required developmental stage, provided plant-health checks pass and the minimum and maximum calendar limits are respected.</p>\n      <div class=\"equation\"><div class=\"equation-label\">RCP-3</div><div class=\"equation-text\">x(t+1) = f(x(t), u(t), d(t), g, θ) + w(t)</div><div class=\"equation-desc\">x(t) is plant state; u(t) contains controlled inputs; d(t) contains measured disturbances; g identifies genotype; θ contains model parameters; and w(t) represents process variation.</div></div>\n      <div class=\"equation\"><div class=\"equation-label\">RCP-4</div><div class=\"equation-text\">y(t) = h(x(t)) + v(t)</div><div class=\"equation-desc\">The camera, sensors and laboratory measurements observe only part of the plant state; v(t) represents measurement error.</div></div>",
    "toc": [
      {
        "id": "hierarchy",
        "label": "Control hierarchy"
      },
      {
        "id": "feedback",
        "label": "Direct feedback loops"
      },
      {
        "id": "learned",
        "label": "Learned sensory mapping"
      },
      {
        "id": "safety",
        "label": "Safety constraints"
      },
      {
        "id": "state-conditioned",
        "label": "State-conditioned treatment"
      }
    ],
    "references": [
      "R17",
      "R34",
      "R35",
      "R36"
    ]
  },
  {
    "slug": "rotation-gravity",
    "title": "Rotation, gravitropism and mechanical exposure",
    "document_id": "RSP-ROT-001",
    "version": "2.0",
    "updated": "2026-07-29",
    "abstract": "Horizontal-axis rotation expressed as an angle-time history, its relation to plant gravity sensing, measured mechanical acceleration, root-zone coupling and controlled biological comparisons.",
    "group": "Research programmes",
    "body": "<h2 id=\"rotating-frame\">Rotation in the plant frame</h2>\n<p>The FlavoRotor drum turns around a horizontal axis. Gravity remains vertical and close to 9.81 m·s⁻², while each plant module changes orientation relative to that vector. Rotation therefore produces a periodic directional stimulus, not reduced gravity. The encoder record links angle, angular speed and direction to every image and sensor sample. <button aria-label=\"Open source record I01\" class=\"research-source-trigger\" data-research-source=\"I01\" type=\"button\">[I01]</button> <button aria-label=\"Open source record I02\" class=\"research-source-trigger\" data-research-source=\"I02\" type=\"button\">[I02]</button> <button aria-label=\"Open source record R22\" class=\"research-source-trigger\" data-research-source=\"R22\" type=\"button\">[R22]</button> <button aria-label=\"Open source record R32\" class=\"research-source-trigger\" data-research-source=\"R32\" type=\"button\">[R32]</button></p>\n<div data-research-visual=\"rotation-gravity-cycle\"></div>\n<div class=\"equation\"><div class=\"equation-label\">ROT-1</div><div class=\"equation-text\">ω = 2πn / 60</div><div class=\"equation-desc\">Angular velocity ω in rad·s⁻¹ from drum speed n in rev·min⁻¹.</div></div>\n<div class=\"equation\"><div class=\"equation-label\">ROT-3</div><div class=\"equation-text\">θ(t) = θ₀ + ωt</div><div class=\"equation-desc\">The plant-module angle follows the encoder angle θ₀ and measured angular velocity.</div></div>\n<div class=\"equation\"><div class=\"equation-label\">ROT-4</div><div class=\"equation-text\">T = 2π / ω = 60 / n</div><div class=\"equation-desc\">One complete orientation cycle lasts 120 s at 0.5 rpm and 30 s at 2 rpm.</div></div>\n<h2 id=\"gravity-sensing\">How a plant detects reorientation</h2>\n<p>Gravity-sensing cells contain dense, starch-rich amyloplasts. After reorientation, the amyloplasts move towards the new lower side of the cell. That physical change alters gravity signalling and directional auxin transport. Unequal growth on opposite sides of the organ produces curvature: primary roots usually bend with gravity, while shoots usually bend against it. <button aria-label=\"Open source record R63\" class=\"research-source-trigger\" data-research-source=\"R63\" type=\"button\">[R63]</button></p>\n<div class=\"table-wrap\"><table><thead><tr><th>Stage</th><th>Root</th><th>Shoot</th><th>Measurement</th></tr></thead><tbody>\n<tr><td>Gravity sensing</td><td>columella cells in the root cap</td><td>endodermal cells</td><td>module angle and time after reorientation</td></tr>\n<tr><td>Signal</td><td>asymmetric auxin transport towards the lower flank</td><td>directional auxin redistribution</td><td>organ angle and curvature over time</td></tr>\n<tr><td>Growth response</td><td>positive gravitropic bending</td><td>negative gravitropic bending</td><td>root-tip angle, shoot angle and elongation rate</td></tr>\n</tbody></table></div>\n<p>The biological input depends on both orientation and exposure time. A slow cycle permits a longer dwell at each angle; a faster cycle changes direction more often. Drum speed is therefore reported together with acceleration ramps, stop duration and the complete angle-time series.</p>\n<h2 id=\"mechanical-acceleration\">Mechanical acceleration</h2>\n<div class=\"equation\"><div class=\"equation-label\">ROT-2</div><div class=\"equation-text\">a<sub>c</sub> = ω²r</div><div class=\"equation-desc\">Centripetal acceleration at radial distance r.</div></div>\n<div class=\"equation\"><div class=\"equation-label\">ROT-5</div><div class=\"equation-text\">a<sub>eff</sub>(t) = g + a<sub>c</sub>(t) + a<sub>vibration</sub>(t)</div><div class=\"equation-desc\">The measured acceleration at a plant module combines gravity, rotation and vibration as vectors.</div></div>\n<div class=\"table-wrap\"><table><thead><tr><th>Speed</th><th>Cycle period</th><th>Radius</th><th>Centripetal acceleration</th><th>Fraction of g</th></tr></thead><tbody>\n<tr><td>0.5 rpm</td><td>120 s</td><td>0.15 m</td><td>0.000411 m·s⁻²</td><td>0.0000419</td></tr>\n<tr><td>2.0 rpm</td><td>30 s</td><td>0.15 m</td><td>0.00658 m·s⁻²</td><td>0.000671</td></tr>\n</tbody></table></div>\n<p>At these example settings, centripetal acceleration is less than 0.07% of g. The dominant physical input is the changing direction of the gravity vector in plant coordinates. Vibration, airflow, liquid movement and start-stop transients are measured separately because they can also change plant growth. <button aria-label=\"Open source record R21\" class=\"research-source-trigger\" data-research-source=\"R21\" type=\"button\">[R21]</button></p>\n<h2 id=\"root-zone-coupling\">Rotation and root-zone exposure</h2>\n<p>Drum angle also determines when each root module enters and leaves the nutrient solution. For every position, the run record stores immersion depth, immersed duration, drainage duration and retained liquid mass. A biological comparison must match average light and root-zone exposure between rotating and control plants; otherwise orientation, illumination and hydroponic contact change together.</p>\n<h2 id=\"rotation-experiment\">Controlled rotation experiment</h2>\n<div class=\"table-wrap\"><table><thead><tr><th>Group</th><th>Variable isolated</th></tr></thead><tbody>\n<tr><td>Static plant with matched mean light and root exposure</td><td>baseline</td></tr>\n<tr><td>Rotating plant</td><td>combined periodic orientation treatment</td></tr>\n<tr><td>Static plant with matched time-varying light</td><td>light distribution</td></tr>\n<tr><td>Static plant with matched vibration</td><td>mechanical vibration</td></tr>\n<tr><td>Rotating plant with slow acceleration ramps</td><td>start-stop transient</td></tr>\n</tbody></table></div>\n<p>Primary endpoints are chosen before cultivation: root-tip angle or shoot curvature for orientation response, plus one growth or chemistry endpoint. Encoder angle, three-axis acceleration, plant images, light exposure, immersion and air velocity are synchronised by timestamp. The analysis uses the plant or independent cultivation cycle as the experimental unit. <button aria-label=\"Open source record R02\" class=\"research-source-trigger\" data-research-source=\"R02\" type=\"button\">[R02]</button> <button aria-label=\"Open source record R21\" class=\"research-source-trigger\" data-research-source=\"R21\" type=\"button\">[R21]</button> <button aria-label=\"Open source record R63\" class=\"research-source-trigger\" data-research-source=\"R63\" type=\"button\">[R63]</button></p>",
    "toc": [
      {
        "id": "rotating-frame",
        "label": "Rotation in the plant frame"
      },
      {
        "id": "gravity-sensing",
        "label": "How a plant detects reorientation"
      },
      {
        "id": "mechanical-acceleration",
        "label": "Mechanical acceleration"
      },
      {
        "id": "root-zone-coupling",
        "label": "Rotation and root-zone exposure"
      },
      {
        "id": "rotation-experiment",
        "label": "Controlled rotation experiment"
      }
    ],
    "references": [
      "I01",
      "I02",
      "R02",
      "R21",
      "R22",
      "R32",
      "R63"
    ]
  },
  {
    "slug": "rotation-validation",
    "title": "Rotation measurement and biological comparison",
    "document_id": "PR-ROT-001",
    "version": "2.0",
    "updated": "2026-07-29",
    "abstract": "Encoder, accelerometer, light and root-zone measurements used to compare rotating and matched static plants.",
    "group": "Research programmes",
    "body": "<h2 id=\"mechanical-record\">Mechanical record</h2>\n<p>The rotation record contains commanded and measured speed, angular position, direction, acceleration and stop duration. A three-axis accelerometer fixed at the plant module records vibration and transient acceleration. Each test reports mean speed, speed ripple, peak acceleration, RMS vibration and the difference between commanded and measured angle.</p>\n<div class=\"table-wrap\"><table><thead><tr><th>Measurement</th><th>Method</th><th>Reported value</th></tr></thead><tbody>\n<tr><td>Angular speed</td><td>encoder count divided by elapsed time</td><td>mean, SD, minimum and maximum</td></tr>\n<tr><td>Angular position</td><td>encoder index at each timestamp</td><td>position error and missed counts</td></tr>\n<tr><td>Acceleration ramp</td><td>encoder and accelerometer time series</td><td>ramp duration and peak acceleration</td></tr>\n<tr><td>Vibration</td><td>three-axis accelerometer at the plant module</td><td>axis-specific RMS and peak acceleration</td></tr>\n<tr><td>Endurance</td><td>loaded continuous run</td><td>temperature, stalls, slip events and speed drift</td></tr>\n</tbody></table></div>\n<h2 id=\"exposure-record\">Plant exposure record</h2>\n<p>Mechanical measurements are synchronised with PPFD, air velocity and root-zone contact. One plant-position record therefore identifies the gravity direction in plant coordinates, incident light, immersion state and local air movement at the same time. This prevents a response caused by light or root-zone exposure from being assigned to rotation alone.</p>\n<div class=\"table-wrap\"><table><thead><tr><th>Control group</th><th>Matched variables</th><th>Difference retained</th></tr></thead><tbody>\n<tr><td>Static control</td><td>crop, cultivar, age, mean PPFD, DLI and root-zone exposure</td><td>no periodic reorientation</td></tr>\n<tr><td>Time-varying-light control</td><td>light sequence and root-zone exposure</td><td>static plant orientation</td></tr>\n<tr><td>Matched-vibration control</td><td>measured vibration spectrum and cultivation conditions</td><td>no drum rotation</td></tr>\n<tr><td>Rotating treatment</td><td>cultivation conditions and sampling schedule</td><td>periodic orientation cycle</td></tr>\n</tbody></table></div>\n<h2 id=\"plant-response\">Plant response</h2>\n<p>Root-tip angle, shoot curvature and elongation are measured from indexed image sequences. Growth, root architecture and plant chemistry are analysed as separate endpoints. The experimental unit is one plant or one independent cultivation cycle; repeated frames from the same plant are not counted as independent biological replicates. Gravitropic interpretation follows the measured angle-time history and the known statolith–auxin response of roots and shoots. <button aria-label=\"Open source record R21\" class=\"research-source-trigger\" data-research-source=\"R21\" type=\"button\">[R21]</button> <button aria-label=\"Open source record R63\" class=\"research-source-trigger\" data-research-source=\"R63\" type=\"button\">[R63]</button></p>\n<h2 id=\"reporting\">Reporting</h2>\n<p>The report publishes the complete speed profile, acceleration trace, light and immersion records, sample count, biological replicate count and analysis code. Effect estimates are reported with confidence intervals. A rotation setting is identified by drum speed, direction, radius, ramp profile, operating duration and stop schedule rather than by a device preset name.</p>",
    "toc": [
      {
        "id": "mechanical-record",
        "label": "Mechanical record"
      },
      {
        "id": "exposure-record",
        "label": "Plant exposure record"
      },
      {
        "id": "plant-response",
        "label": "Plant response"
      },
      {
        "id": "reporting",
        "label": "Reporting"
      }
    ],
    "references": [
      "I02",
      "R21",
      "R63"
    ]
  },
  {
    "slug": "mechanical-stimulation",
    "title": "Mechanical stimulation and plant response",
    "document_id": "FLV-MEC-001",
    "version": "1.1",
    "updated": "2026-07-26",
    "abstract": "Rotation-induced movement, vibration and airflow as measurable stimuli with matched controls.",
    "group": "Rotation and gravity",
    "body": "<section aria-label=\"Article summary\" class=\"fr-article-summary\"><div><span>In brief</span><p>Rotation-induced movement, vibration and airflow as measurable stimuli with matched controls.</p></div></section>\n<h2 id=\"basis\">Biological basis</h2>\n<p>Plants can change morphology, growth and metabolism in response to repeated mechanical stimulation, a field commonly described through thigmomorphogenesis. <button aria-label=\"Open source record R21\" class=\"research-source-trigger\" data-research-source=\"R21\" type=\"button\">[R21]</button></p>\n<p>Controlled mechanical stimulation in basil has been associated with metabolic and sensory changes, which provides a direct rationale for a FlavoRotor trial. <button aria-label=\"Open source record R02\" class=\"research-source-trigger\" data-research-source=\"R02\" type=\"button\">[R02]</button></p>\n<h2 id=\"stimuli\">What rotation may introduce</h2>\n<ul><li>periodic reorientation of stems and leaves;</li><li>airflow relative to the canopy;</li><li>vibration from drive components;</li><li>acceleration and deceleration events;</li><li>leaf-to-leaf or leaf-to-structure contact;</li><li>periodic root immersion and drainage.</li></ul>\n<h2 id=\"controls\">Required controls</h2>\n<p>A valid experiment uses a static light-matched control, a vibration-matched control where feasible, measured airflow, identical root-zone exposure and recorded acceleration profiles. Rotation cannot be isolated by comparing two systems that also differ in light and watering.</p>\n<h2 id=\"mechanisms\">Mechanisms to separate</h2><div class=\"table-wrap\"><table><thead><tr><th>Mechanism</th><th>FlavoRotor source</th><th>Matched control</th></tr></thead><tbody><tr><td>Periodic reorientation</td><td>drum motion</td><td>static system with equivalent light exposure</td></tr><tr><td>Vibration</td><td>drive, bearings and acceleration events</td><td>static plant exposed to measured vibration</td></tr><tr><td>Air movement</td><td>motion through local airflow</td><td>fan treatment matched by air speed</td></tr><tr><td>Leaf contact</td><td>canopy interaction or enclosure contact</td><td>contact-free geometry or standardised touch</td></tr><tr><td>Root wetting</td><td>sequential immersion</td><td>matched wetting schedule without rotation</td></tr></tbody></table></div><p>Mechanical stimulation is biologically plausible, but the published basil stimulus is not equivalent to FlavoRotor motion. The experiment must measure and match the physical stimulus before attributing a plant response to rotation. <button aria-label=\"Open source record R02\" class=\"research-source-trigger\" data-research-source=\"R02\" type=\"button\">[R02]</button> <button aria-label=\"Open source record R21\" class=\"research-source-trigger\" data-research-source=\"R21\" type=\"button\">[R21]</button></p>",
    "toc": [
      {
        "id": "basis",
        "label": "Biological basis"
      },
      {
        "id": "stimuli",
        "label": "What rotation may introduce"
      },
      {
        "id": "controls",
        "label": "Required controls"
      },
      {
        "id": "mechanisms",
        "label": "Mechanisms to separate"
      }
    ],
    "references": [
      "R02",
      "R21"
    ]
  },
  {
    "slug": "crop-selection",
    "title": "Crop selection for FlavoRotor",
    "document_id": "CROP-SEL-001",
    "version": "1.1",
    "updated": "2026-07-26",
    "abstract": "Why basil, arugula, lettuce, mint and strawberry occupy different positions in the validation programme.",
    "group": "Crop programmes",
    "body": "<section aria-label=\"Article summary\" class=\"fr-article-summary\"><div><span>In brief</span><p>Why basil, arugula, lettuce, mint and strawberry occupy different positions in the validation programme.</p></div></section>\n<h2 id=\"criteria\">Selection criteria</h2>\n<p>A reference crop is selected by device fit, cycle length, commercial relevance, measurable sensory chemistry, published evidence and experimental tractability.</p>\n<div class=\"table-wrap\"><table><thead><tr><th>Crop</th><th>Programme role</th><th>Primary endpoint</th></tr></thead><tbody>\n<tr><td>Basil</td><td>first aroma programme</td><td>volatile profile and aroma discrimination</td></tr>\n<tr><td>Arugula</td><td>pungency and nutrient-strength programme</td><td>flavour-related phytochemicals and sensory pungency</td></tr>\n<tr><td>Lettuce</td><td>system repeatability and texture programme</td><td>growth, bitterness, texture and quality</td></tr>\n<tr><td>Mint</td><td>essential-oil programme</td><td>menthol-related volatile profile and aroma intensity</td></tr>\n<tr><td>Strawberry</td><td>phase-two fruit-quality programme</td><td>soluble solids, titratable acidity, VOCs, firmness and sensory response</td></tr>\n</tbody></table></div>\n<p>Basil has the strongest initial combination of short cycle, hospitality relevance and direct light/mechanical sensory literature. <button aria-label=\"Open source record R01\" class=\"research-source-trigger\" data-research-source=\"R01\" type=\"button\">[R01]</button> <button aria-label=\"Open source record R02\" class=\"research-source-trigger\" data-research-source=\"R02\" type=\"button\">[R02]</button> <button aria-label=\"Open source record R03\" class=\"research-source-trigger\" data-research-source=\"R03\" type=\"button\">[R03]</button></p>\n<p>Strawberry is retained as a high-value application but follows root-zone and flowering validation because cultivation-system and cultivar effects are substantial. <button aria-label=\"Open source record R12\" class=\"research-source-trigger\" data-research-source=\"R12\" type=\"button\">[R12]</button> <button aria-label=\"Open source record R13\" class=\"research-source-trigger\" data-research-source=\"R13\" type=\"button\">[R13]</button> <button aria-label=\"Open source record R14\" class=\"research-source-trigger\" data-research-source=\"R14\" type=\"button\">[R14]</button> <button aria-label=\"Open source record R28\" class=\"research-source-trigger\" data-research-source=\"R28\" type=\"button\">[R28]</button></p>\n",
    "toc": [
      {
        "id": "criteria",
        "label": "Selection criteria"
      }
    ],
    "references": [
      "R01",
      "R02",
      "R03",
      "R12",
      "R13",
      "R14",
      "R28"
    ]
  },
  {
    "slug": "basil",
    "title": "Basil research programme",
    "document_id": "CROP-BAS-001",
    "version": "1.1",
    "updated": "2026-07-26",
    "abstract": "A cultivar-specific programme for aroma, light, nutrient formulation and mechanical stimulation, centred on Italian Large Leaf basil.",
    "group": "Crop programmes",
    "body": "<section aria-label=\"Article summary\" class=\"fr-article-summary\"><div><span>In brief</span><p>A cultivar-specific programme for aroma, light, nutrient formulation and mechanical stimulation, centred on Italian Large Leaf basil.</p></div></section><h2 id=\"why\">Why basil first</h2>\n<p>Basil fits the device geometry, has a relatively short cycle, is used directly in premium hospitality and has published hydroponic evidence linking controlled light to aroma volatiles and mechanical treatment to sensory/metabolic response. <button aria-label=\"Open source record R01\" class=\"research-source-trigger\" data-research-source=\"R01\" type=\"button\">[R01]</button> <button aria-label=\"Open source record R02\" class=\"research-source-trigger\" data-research-source=\"R02\" type=\"button\">[R02]</button></p>\n<h2 id=\"starting\">FlavoRotor starting condition</h2>\n<div class=\"table-wrap\"><table><thead><tr><th>Variable</th><th>Initial protocol decision</th><th>Basis</th></tr></thead><tbody><tr><td>Cultivar</td><td>Italian Large Leaf</td><td>matches <button aria-label=\"Open source record R01\" class=\"research-source-trigger\" data-research-source=\"R01\" type=\"button\">[R01]</button></td></tr><tr><td>pH target</td><td>5.9; operational band 5.8–6.0</td><td><button aria-label=\"Open source record R01\" class=\"research-source-trigger\" data-research-source=\"R01\" type=\"button\">[R01]</button> maintained pH 5.9; <button aria-label=\"Open source record R03\" class=\"research-source-trigger\" data-research-source=\"R03\" type=\"button\">[R03]</button> used pH 6.0</td></tr><tr><td>EC</td><td>record the EC produced by the defined elemental recipe; do not invent an aroma EC optimum</td><td><button aria-label=\"Open source record R01\" class=\"research-source-trigger\" data-research-source=\"R01\" type=\"button\">[R01]</button>/<button aria-label=\"Open source record R03\" class=\"research-source-trigger\" data-research-source=\"R03\" type=\"button\">[R03]</button> specify nutrient conditions; <button aria-label=\"Open source record R08\" class=\"research-source-trigger\" data-research-source=\"R08\" type=\"button\">[R08]</button> supplies separate cultivar-specific EC evidence</td></tr><tr><td>EC screening after baseline</td><td>0.9, 1.2 and 1.5 mS/cm with one fixed stock formulation</td><td>centres the screening around <button aria-label=\"Open source record R08\" class=\"research-source-trigger\" data-research-source=\"R08\" type=\"button\">[R08]</button> hydroponic basil range</td></tr><tr><td>Light baseline</td><td>measured spectrum, PPFD, DLI and 16 h photoperiod initially</td><td>FlavoRotor baseline; all values measured before trial</td></tr><tr><td>Rotation</td><td>single measured baseline schedule; no rotation claim during first repeatability cycles</td><td>engineering isolation</td></tr></tbody></table></div>\n<aside class=\"fr-engineering-note\"><strong>Engineering note</strong><p>The pH value is a literature-matched operating condition, not a pH-for-aroma rule. EC treatments are experimental levels, not recommendations.</p></aside>\n<h2 id=\"trial1\">BAS-LGT-001 — spectral treatment</h2>\n<p>Use matched DLI and environmental conditions while changing a predefined spectral component. Primary outcome: selected volatile compounds by GC–MS. Secondary outcomes: fresh/dry mass, colour and blinded aroma discrimination. <button aria-label=\"Open source record R01\" class=\"research-source-trigger\" data-research-source=\"R01\" type=\"button\">[R01]</button> provides the literature anchor, not the expected FlavoRotor result. <button aria-label=\"Open source record R01\" class=\"research-source-trigger\" data-research-source=\"R01\" type=\"button\">[R01]</button></p>\n<h2 id=\"trial2\">BAS-MEC-001 — rotation/mechanical treatment</h2>\n<p>Compare rotating and matched static controls after engineering light and root-zone equivalence has been demonstrated. Primary outcome: a predefined volatile or sensory descriptor; secondary outcomes: morphology and biomass. <button aria-label=\"Open source record R02\" class=\"research-source-trigger\" data-research-source=\"R02\" type=\"button\">[R02]</button> <button aria-label=\"Open source record R21\" class=\"research-source-trigger\" data-research-source=\"R21\" type=\"button\">[R21]</button></p>\n<h2 id=\"trial3\">BAS-NUT-001 — nutrient formulation</h2>\n<p>Use complete elemental formulations and tissue analysis. Do not alter one stock bottle and label the response “potassium sweetness”. Cultivar, total ionic strength and nitrogen form remain explicit. <button aria-label=\"Open source record R03\" class=\"research-source-trigger\" data-research-source=\"R03\" type=\"button\">[R03]</button> <button aria-label=\"Open source record R04\" class=\"research-source-trigger\" data-research-source=\"R04\" type=\"button\">[R04]</button> <button aria-label=\"Open source record R08\" class=\"research-source-trigger\" data-research-source=\"R08\" type=\"button\">[R08]</button></p>",
    "toc": [
      {
        "id": "why",
        "label": "Why basil first"
      },
      {
        "id": "starting",
        "label": "FlavoRotor starting condition"
      },
      {
        "id": "trial1",
        "label": "BAS-LGT-001 — spectral treatment"
      },
      {
        "id": "trial2",
        "label": "BAS-MEC-001 — rotation/mechanical treatment"
      },
      {
        "id": "trial3",
        "label": "BAS-NUT-001 — nutrient formulation"
      }
    ],
    "references": [
      "R01",
      "R02",
      "R03",
      "R04",
      "R08",
      "R21"
    ]
  },
  {
    "slug": "arugula",
    "title": "Arugula research programme",
    "document_id": "CROP-ARU-001",
    "version": "1.1",
    "updated": "2026-07-26",
    "abstract": "A defined EC experiment for arugula cultivar Standard, measuring yield, nitrate, glucosinolates and sensory pungency.",
    "group": "Crop programmes",
    "body": "<section aria-label=\"Article summary\" class=\"fr-article-summary\"><div><span>In brief</span><p>A defined EC experiment for arugula cultivar Standard, measuring yield, nitrate, glucosinolates and sensory pungency.</p></div></section><h2 id=\"starting\">Literature-matched starting condition</h2>\n<div class=\"table-wrap\"><table><thead><tr><th>Variable</th><th>Condition</th><th>Classification</th></tr></thead><tbody><tr><td>Cultivar</td><td>Standard</td><td>required to transfer <button aria-label=\"Open source record R05\" class=\"research-source-trigger\" data-research-source=\"R05\" type=\"button\">[R05]</button> directly</td></tr><tr><td>pH</td><td>5.8 ± 0.1</td><td>study operating condition</td></tr><tr><td>EC baseline</td><td>1.5 mS/cm</td><td>low-middle study treatment</td></tr><tr><td>EC treatments</td><td>1.2, 1.5, 1.8, 2.1 mS/cm</td><td>exact <button aria-label=\"Open source record R05\" class=\"research-source-trigger\" data-research-source=\"R05\" type=\"button\">[R05]</button> treatment levels</td></tr><tr><td>Recipe</td><td>same balanced formulation scaled to target EC</td><td>required for interpretability</td></tr></tbody></table></div>\n<p><button aria-label=\"Open source record R05\" class=\"research-source-trigger\" data-research-source=\"R05\" type=\"button\">[R05]</button> found the balance of growth and quality in the named cultivar was strongest around 1.5–1.8 mS/cm, while 2.1 mS/cm is better treated as a higher-strength experimental condition rather than a default. <button aria-label=\"Open source record R05\" class=\"research-source-trigger\" data-research-source=\"R05\" type=\"button\">[R05]</button></p>\n<h2 id=\"outcomes\">Outcomes</h2>\n<div class=\"table-wrap\"><table><thead><tr><th>Category</th><th>Measurement</th></tr></thead><tbody><tr><td>Production</td><td>fresh/dry mass, leaf area, harvest time</td></tr><tr><td>Safety/quality</td><td>nitrate concentration</td></tr><tr><td>Flavour-related chemistry</td><td>glucosinolates and selected phenolics</td></tr><tr><td>Sensory</td><td>pungency, bitterness, green aroma, overall liking</td></tr><tr><td>Resource use</td><td>water, nutrient additions and electricity per harvest mass</td></tr></tbody></table></div>\n<h2 id=\"claim\">Claim rule</h2>\n<p>A higher glucosinolate concentration can support a mechanism for changed pungency, but sensory testing is still required. “More phytochemical” is not automatically “better tasting”.</p>",
    "toc": [
      {
        "id": "starting",
        "label": "Literature-matched starting condition"
      },
      {
        "id": "outcomes",
        "label": "Outcomes"
      },
      {
        "id": "claim",
        "label": "Claim rule"
      }
    ],
    "references": [
      "R05"
    ]
  },
  {
    "slug": "lettuce",
    "title": "Lettuce growth, forecasting and cultivation trials",
    "document_id": "CROP-LET-001",
    "version": "2.0",
    "updated": "2026-07-29",
    "abstract": "Longitudinal biomass forecasting with leave-one-plant-out validation, independent multimodal datasets and cultivar-specific pH, nutrition, flavour and root-zone temperature trials.",
    "group": "Crop programmes",
    "body": "<section aria-label=\"Article summary\" class=\"fr-article-summary\"><div><span>In brief</span><p>A genotype-specific programme for pH, nutrient strength, root-zone temperature and short pre-harvest flavour treatments.</p></div></section><h2 id=\"longitudinal-growth\">Longitudinal lettuce growth</h2>\n<p>A growth model needs repeated measurements from the same plant. Karimzadeh and Ahamed's dataset links 18 identified lettuce heads to 30 daily biomass measurements, RGB canopy images and environmental readings. The sequence contains 540 biomass observations and 1,443 environmental records. <button aria-label=\"Open source record R57\" class=\"research-source-trigger\" data-research-source=\"R57\" type=\"button\">[R57]</button></p>\n<div data-research-visual=\"aalto-canopy-progression\"></div>\n<div data-research-visual=\"aalto-growth-trajectories\"></div>\n<p>The mean fresh biomass rises from 3.37 g on day 1 after transplant to 234.56 g on day 30. The figure also retains the daily minimum and maximum, because a mean alone hides variation between plants.</p>\n<h3 id=\"biomass-forecast\">Three-day biomass forecast</h3>\n<p>The forecast uses the most recent five daily masses to estimate biomass three days later. Three models are evaluated on the same 414 cases: persistence carries the latest mass forward; a five-day line extrapolates the local trend; ridge autoregression uses five masses, four daily mass increments and day after transplant.</p>\n<p>Each outer fold withholds one complete plant. The ridge penalty is selected inside the training fold by withholding each of the remaining plants in turn. Measurements from the evaluated plant therefore cannot choose its coefficients or regularisation strength.</p>\n<div data-research-visual=\"aalto-forecast-comparison\"></div>\n<div class=\"table-wrap\"><table><thead><tr><th>Model</th><th>MAE</th><th>RMSE</th><th>MAPE</th><th>R²</th></tr></thead><tbody>\n<tr><td>Persistence</td><td>17.20 g</td><td>18.47 g</td><td>24.50%</td><td>0.8378</td></tr>\n<tr><td>Five-day linear trend</td><td>5.56 g</td><td>6.86 g</td><td>8.07%</td><td>0.9777</td></tr>\n<tr><td>Nested-CV ridge autoregression</td><td>2.89 g</td><td>3.67 g</td><td>4.18%</td><td>0.9936</td></tr>\n</tbody></table></div>\n<div class=\"equation\"><div class=\"equation-label\">GRW-MAE</div><div class=\"equation-text\">MAE = (1/n) Σᵢ |yᵢ − ŷᵢ|</div><div class=\"equation-desc\">Mean absolute error is the average absolute difference between measured and forecast fresh biomass.</div></div>\n<div class=\"equation\"><div class=\"equation-label\">GRW-RMSE</div><div class=\"equation-text\">RMSE = √[(1/n) Σᵢ (yᵢ − ŷᵢ)²]</div><div class=\"equation-desc\">Root mean squared error gives more weight to large forecast errors.</div></div>\n<p>The ridge model reduces mean absolute error by 83.2% relative to persistence and by 48.0% relative to the five-day linear trend. Its plant-cluster bootstrap 95% interval is 2.67–3.10 g. This benchmark measures interpolation within one published cultivation study. A FlavoRotor growth model is re-evaluated by crop, cultivar, camera geometry and cultivation cycle.</p>\n<h3 id=\"growth-model-use\">How the forecast is used</h3>\n<p>The forecast creates an expected mass and an uncertainty range for the next observation. A measured plant that repeatedly falls outside that range is inspected together with its image sequence, pH, EC, light, temperature, dose history and root-zone record. The residual identifies an unusual trajectory; it does not name the cause by itself.</p>\n<div class=\"equation\"><div class=\"equation-label\">GRW-RES</div><div class=\"equation-text\">eₜ₊ₕ = yₜ₊ₕ − ŷₜ₊ₕ</div><div class=\"equation-desc\">The forecast residual is measured biomass minus predicted biomass at horizon h. Its sign and persistence show whether growth is ahead of or behind the fitted trajectory.</div></div>\n<h3 id=\"growth-datasets\">Independent longitudinal datasets</h3>\n<p>HydroGrowNet follows three 30-day Batavia lettuce cycles with daily images, pH, EC and water temperature. A second multi-sensor dataset follows 45 plants over 42 days under three nitrogen concentrations and two irrigation rates, with RGB, 3D, multispectral, SPAD and fluorescence records. These datasets add camera, cultivar and treatment variation that is absent from the 18-plant forecast benchmark. <button aria-label=\"Open source record R61\" class=\"research-source-trigger\" data-research-source=\"R61\" type=\"button\">[R61]</button> <button aria-label=\"Open source record R62\" class=\"research-source-trigger\" data-research-source=\"R62\" type=\"button\">[R62]</button></p><h2 id=\"scope\">Cultivar rule</h2><p>Closed-soilless lettuce research also shows that genotype and macrocation supply interact in shaping the bioactive profile. This supports factorial crop-by-nutrient experiments rather than a universal nutrient rule. <button aria-label=\"Open source record R27\" class=\"research-source-trigger\" data-research-source=\"R27\" type=\"button\">[R27]</button></p>\n<p>Lettuce responses are strongly cultivar-dependent. Every trial names the cultivar and does not combine cultivars as interchangeable replicates.</p>\n<h2 id=\"ph\">LET-PH-001</h2>\n<div class=\"table-wrap\"><table><thead><tr><th>Parameter</th><th>Design</th></tr></thead><tbody><tr><td>pH levels</td><td>5.5, 6.0 and 6.5</td></tr><tr><td>EC/formulation</td><td>fixed across pH treatments</td></tr><tr><td>Primary outcome</td><td>fresh/dry mass or a predefined physiological endpoint</td></tr><tr><td>Secondary outcomes</td><td>tissue minerals, colour, phenolics and sensory bitterness</td></tr><tr><td>Literature basis</td><td><button aria-label=\"Open source record R06\" class=\"research-source-trigger\" data-research-source=\"R06\" type=\"button\">[R06]</button> tested pH 5.0–6.5; <button aria-label=\"Open source record R07\" class=\"research-source-trigger\" data-research-source=\"R07\" type=\"button\">[R07]</button> separates pH and alkalinity</td></tr></tbody></table></div>\n\n<h2 id=\"ec\">LET-EC-001</h2>\n<p>Use a named cultivar and treatment strengths derived from <button aria-label=\"Open source record R08\" class=\"research-source-trigger\" data-research-source=\"R08\" type=\"button\">[R08]</button> or <button aria-label=\"Open source record R09\" class=\"research-source-trigger\" data-research-source=\"R09\" type=\"button\">[R09]</button> rather than a universal 1.2–1.6 mS/cm statement. In <button aria-label=\"Open source record R08\" class=\"research-source-trigger\" data-research-source=\"R08\" type=\"button\">[R08]</button>, growth response differed between the tested lettuce and basil cultivars; <button aria-label=\"Open source record R09\" class=\"research-source-trigger\" data-research-source=\"R09\" type=\"button\">[R09]</button> showed functional-metabolite responses were genotype-dependent. <button aria-label=\"Open source record R08\" class=\"research-source-trigger\" data-research-source=\"R08\" type=\"button\">[R08]</button> <button aria-label=\"Open source record R09\" class=\"research-source-trigger\" data-research-source=\"R09\" type=\"button\">[R09]</button></p>\n<h2 id=\"flavour\">LET-FLV-001</h2>\n<p>A confirmatory experiment can test the combined pre-harvest nitrogen limitation and controlled-light treatment reported by <button aria-label=\"Open source record R10\" class=\"research-source-trigger\" data-research-source=\"R10\" type=\"button\">[R10]</button>. Primary outcomes should include sensory sweetness/bitterness and the chemical variables used in the source study. <button aria-label=\"Open source record R10\" class=\"research-source-trigger\" data-research-source=\"R10\" type=\"button\">[R10]</button></p>\n<h2 id=\"temperature\">LET-RTZ-001</h2>\n<p>Root-zone temperature is explicitly controlled because <button aria-label=\"Open source record R11\" class=\"research-source-trigger\" data-research-source=\"R11\" type=\"button\">[R11]</button> found cultivar-dependent effects on growth and °Brix. °Brix is reported as an instrumental endpoint, not automatically as perceived sweetness. <button aria-label=\"Open source record R11\" class=\"research-source-trigger\" data-research-source=\"R11\" type=\"button\">[R11]</button></p><div data-research-visual=\"r11-temperature-profile\"></div>",
    "toc": [
      {
        "id": "longitudinal-growth",
        "label": "Longitudinal lettuce growth"
      },
      {
        "id": "biomass-forecast",
        "label": "Three-day biomass forecast"
      },
      {
        "id": "growth-model-use",
        "label": "How the forecast is used"
      },
      {
        "id": "growth-datasets",
        "label": "Independent longitudinal datasets"
      },
      {
        "id": "scope",
        "label": "Cultivar rule"
      },
      {
        "id": "ph",
        "label": "LET-PH-001"
      },
      {
        "id": "ec",
        "label": "LET-EC-001"
      },
      {
        "id": "flavour",
        "label": "LET-FLV-001"
      },
      {
        "id": "temperature",
        "label": "LET-RTZ-001"
      }
    ],
    "references": [
      "R06",
      "R07",
      "R08",
      "R09",
      "R10",
      "R11",
      "R27",
      "R57",
      "R61",
      "R62"
    ]
  },
  {
    "slug": "mint",
    "title": "Mint research programme",
    "document_id": "CROP-MNT-001",
    "version": "1.1",
    "updated": "2026-07-26",
    "abstract": "A conservative species- and clone-specific programme for biomass, essential-oil composition, salinity response and sensory intensity.",
    "group": "Crop programmes",
    "body": "<section aria-label=\"Article summary\" class=\"fr-article-summary\"><div><span>In brief</span><p>A conservative species- and clone-specific programme for biomass, essential-oil composition, salinity response and sensory intensity.</p></div></section><h2 id=\"initial\">Initial FlavoRotor screening</h2>\n<div class=\"table-wrap\"><table><thead><tr><th>Variable</th><th>Screening definition</th><th>Classification</th></tr></thead><tbody><tr><td>Species/clone</td><td>one named Mentha species and clonal source</td><td>mandatory biological identity</td></tr><tr><td>pH</td><td>5.8 controlled with a 5.7–5.9 operating band</td><td>internal starting setpoint, not a literature optimum</td></tr><tr><td>EC levels</td><td>1.2 and 1.6 mS/cm using the same balanced formulation</td><td>internal feasibility screen, not a recommendation</td></tr><tr><td>Salinity trial</td><td>separate NaCl treatment only after baseline</td><td>mechanism-specific experiment</td></tr><tr><td>Primary outcome</td><td>fresh/dry mass and selected essential-oil compounds</td><td>predefined</td></tr><tr><td>Sensory outcome</td><td>mint intensity, freshness, bitterness and liking</td><td>blinded and separate from chemistry</td></tr></tbody></table></div>\n\n<h2 id=\"tradeoff\">Required trade-off analysis</h2>\n<p>Report essential-oil concentration, total essential-oil amount per plant and biomass. Stress can increase concentration while reducing total usable yield.</p>",
    "toc": [
      {
        "id": "initial",
        "label": "Initial FlavoRotor screening"
      },
      {
        "id": "tradeoff",
        "label": "Required trade-off analysis"
      }
    ],
    "references": [
      "R15",
      "R16"
    ]
  },
  {
    "slug": "strawberry",
    "title": "Strawberry research programme",
    "document_id": "CROP-STR-001",
    "version": "1.2",
    "updated": "2026-07-29",
    "abstract": "A later-stage programme that separates root-zone system suitability, nutrient strength, N×K interaction, fruit chemistry and sensory quality.",
    "group": "Crop programmes",
    "body": "<section aria-label=\"Article summary\" class=\"fr-article-summary\"><div><span>In brief</span><p>A later-stage programme that separates root-zone system suitability, nutrient strength, N×K interaction, fruit chemistry and sensory quality.</p></div></section><h2 id=\"why-phase2\">Why strawberry is phase two</h2>\n<p>Strawberry requires a longer cycle, flowering and fruit set, stronger root-zone oxygen control, pollination management and post-harvest standardisation. A 2025 system comparison found the tested substrate system outperformed the tested water-culture systems, so the FlavoRotor root zone must be validated before flavour treatment claims. <button aria-label=\"Open source record R14\" class=\"research-source-trigger\" data-research-source=\"R14\" type=\"button\">[R14]</button></p>\n<h2 id=\"two-anchors\">Two different literature anchors</h2>\n<div class=\"table-wrap\"><table><thead><tr><th>Anchor</th><th>pH / EC</th><th>Correct interpretation</th></tr></thead><tbody><tr><td><button aria-label=\"Open source record R14\" class=\"research-source-trigger\" data-research-source=\"R14\" type=\"button\">[R14]</button> system comparison</td><td>pH 5.5–6.5; EC 0.75–1.25 mS/cm</td><td>operating range used in that multi-system study, not a taste optimum</td></tr><tr><td><button aria-label=\"Open source record R13\" class=\"research-source-trigger\" data-research-source=\"R13\" type=\"button\">[R13]</button> Kuemsil nutrient strength</td><td>1/3: pH 6.2, EC 1.1; 1/2: 6.0, 1.5; 2/3: 5.9, 1.9; full: 5.8, 2.5</td><td>exact treatment combinations for cultivar Kuemsil and that formulation/system</td></tr></tbody></table></div>\n<p><button aria-label=\"Open source record R13\" class=\"research-source-trigger\" data-research-source=\"R13\" type=\"button\">[R13]</button> reported the two-thirds treatment as the best compromise for the tested Kuemsil crop, but that result is not universal. <button aria-label=\"Open source record R13\" class=\"research-source-trigger\" data-research-source=\"R13\" type=\"button\">[R13]</button></p>\n<h2 id=\"programme\">Programme sequence</h2>\n<ol><li>Validate survival, flowering, fruit set and root-zone oxygen under one conservative recipe.</li><li>Compare root support/medium configurations before nutrient-strength optimisation.</li><li>Test nutrient strength in one named cultivar.</li><li>Run an N×K factorial only after stable baseline production.</li><li>Measure yield, °Brix, titratable acidity, firmness, volatiles and blinded sensory profile together.</li></ol>\n<p><button aria-label=\"Open source record R12\" class=\"research-source-trigger\" data-research-source=\"R12\" type=\"button\">[R12]</button> supports the N×K interaction design; <button aria-label=\"Open source record R28\" class=\"research-source-trigger\" data-research-source=\"R28\" type=\"button\">[R28]</button> supports combining volatile, quality and sensory analysis across cultivars. <button aria-label=\"Open source record R12\" class=\"research-source-trigger\" data-research-source=\"R12\" type=\"button\">[R12]</button> <button aria-label=\"Open source record R28\" class=\"research-source-trigger\" data-research-source=\"R28\" type=\"button\">[R28]</button></p><div data-research-visual=\"r12-yield-brix-scatter\"></div><div data-research-visual=\"r13-quality-radar\"></div>",
    "toc": [
      {
        "id": "why-phase2",
        "label": "Why strawberry is phase two"
      },
      {
        "id": "two-anchors",
        "label": "Two different literature anchors"
      },
      {
        "id": "programme",
        "label": "Programme sequence"
      }
    ],
    "references": [
      "R12",
      "R13",
      "R14",
      "R28"
    ]
  },
  {
    "slug": "baseline-cultivation",
    "title": "Baseline cultivation protocol",
    "document_id": "PR-CROP-000",
    "version": "1.1",
    "updated": "2026-07-26",
    "abstract": "The common protocol that must succeed before any taste, aroma, nutrient or rotation treatment is interpreted.",
    "group": "Research methods",
    "body": "<section aria-label=\"Article summary\" class=\"fr-article-summary\"><div><span>In brief</span><p>The common protocol that must succeed before any taste, aroma, nutrient or rotation treatment is interpreted.</p></div></section><h2 id=\"objective\">Objective</h2>\n<p>Demonstrate that one crop and cultivar can be grown repeatedly under a fixed recipe with acceptable environmental and biological variability.</p>\n<h2 id=\"minimum\">Minimum design</h2>\n<div class=\"table-wrap\"><table><thead><tr><th>Element</th><th>Requirement</th></tr></thead><tbody><tr><td>Crop</td><td>named species and cultivar</td></tr><tr><td>Seed</td><td>supplier and lot</td></tr><tr><td>Replicates</td><td>at least 8–12 biological units for the initial engineering baseline, refined by variance estimates</td></tr><tr><td>Cycles</td><td>three independent cultivation cycles before recipe-level claims</td></tr><tr><td>Positions</td><td>randomised and position effect tested</td></tr><tr><td>Harvest</td><td>fixed physiological/chronological rule</td></tr><tr><td>Environment</td><td>complete pH, EC, temperature, humidity, light and rotation logs</td></tr><tr><td>Outputs</td><td>germination, survival, fresh/dry mass, morphology, images and resource use</td></tr></tbody></table></div>\n<h2 id=\"acceptance\">Baseline acceptance</h2>\n<p>Acceptance thresholds are defined before the first cycle for sensor uptime, recipe deviations, survival, position effect and coefficient of variation. Thresholds are revised only through a versioned protocol amendment, never after seeing the treatment outcome.</p>\n<h2 id=\"choice\">Recommended first crop</h2>\n<p>Italian Large Leaf basil is the strongest first research crop because published hydroponic aroma-light evidence exists, growth cycles are shorter than strawberry, tissue is directly used for aroma/sensory analysis and the plant fits the intended hospitality use case. <button aria-label=\"Open source record R01\" class=\"research-source-trigger\" data-research-source=\"R01\" type=\"button\">[R01]</button></p>",
    "toc": [
      {
        "id": "objective",
        "label": "Objective"
      },
      {
        "id": "minimum",
        "label": "Minimum design"
      },
      {
        "id": "acceptance",
        "label": "Baseline acceptance"
      },
      {
        "id": "choice",
        "label": "Recommended first crop"
      }
    ],
    "references": [
      "R01"
    ]
  },
  {
    "slug": "light-mapping",
    "title": "Light-distribution mapping",
    "document_id": "PR-LGT-001",
    "version": "1.1",
    "updated": "2026-07-26",
    "abstract": "A polar and position-indexed method for measuring spectrum, PPFD, DLI and temporal exposure in the rotating geometry.",
    "group": "Research methods",
    "body": "<section aria-label=\"Article summary\" class=\"fr-article-summary\"><div><span>In brief</span><p>A polar and position-indexed method for measuring spectrum, PPFD, DLI and temporal exposure in the rotating geometry.</p></div></section><h2 id=\"grid\">Measurement grid</h2>\n<p>Measure at every cultivation position or at a justified symmetric subset covering axial level, angular position and radial plant plane. Record the detector orientation and distance from the central source.</p>\n<h2 id=\"conditions\">Required conditions</h2>\n<div class=\"table-wrap\"><table><thead><tr><th>Condition</th><th>Measurement</th></tr></thead><tbody><tr><td>Rotor static</td><td>position-by-position PPFD and spectrum</td></tr><tr><td>Rotor operating</td><td>time-resolved exposure or rotation-integrated measurement</td></tr><tr><td>Empty system</td><td>optical baseline</td></tr><tr><td>Representative canopy</td><td>self-shading and reflection effect</td></tr><tr><td>Thermal steady state</td><td>light output and leaf-temperature stability</td></tr></tbody></table></div>\n<h2 id=\"uniformity\">Uniformity statistics</h2>\n<div class=\"equation\"><div class=\"equation-label\">L-2</div><div class=\"equation-text\">CV<sub>PPFD</sub> = 100 · s<sub>PPFD</sub> / mean(PPFD)</div><div class=\"equation-desc\">Position-to-position coefficient of variation.</div></div>\n<div class=\"equation\"><div class=\"equation-label\">L-3</div><div class=\"equation-text\">U<sub>min/mean</sub> = PPFD<sub>min</sub> / mean(PPFD)</div><div class=\"equation-desc\">Minimum-to-mean uniformity ratio.</div></div>\n<h2 id=\"output\">Published output</h2>\n<p>The calibration report contains the raw grid, polar heat map, spectrum, measurement uncertainty, detector model, light state, system geometry and DLI calculation. A single centre-point value is insufficient.</p><h2 id=\"spectral-scope\">Spectral scope</h2><p>The mapping protocol records the measured spectrum and includes far-red photons separately where present. <button aria-label=\"Open source record R33\" class=\"research-source-trigger\" data-research-source=\"R33\" type=\"button\">[R33]</button></p>",
    "toc": [
      {
        "id": "grid",
        "label": "Measurement grid"
      },
      {
        "id": "conditions",
        "label": "Required conditions"
      },
      {
        "id": "uniformity",
        "label": "Uniformity statistics"
      },
      {
        "id": "output",
        "label": "Published output"
      },
      {
        "id": "spectral-scope",
        "label": "Spectral scope"
      }
    ],
    "references": [
      "R33"
    ]
  },
  {
    "slug": "chemical-analysis",
    "title": "Chemical and physical analysis",
    "document_id": "PR-CHEM-001",
    "version": "1.1",
    "updated": "2026-07-26",
    "abstract": "Measurements that connect cultivation treatments to plant chemistry, volatile compounds, soluble solids, acidity, colour and texture.",
    "group": "Research methods",
    "body": "<section aria-label=\"Article summary\" class=\"fr-article-summary\"><div><span>In brief</span><p>Measurements that connect cultivation treatments to plant chemistry, volatile compounds, soluble solids, acidity, colour and texture.</p></div></section><h2 id=\"chain\">Measurement chain</h2>\n<div class=\"table-wrap\"><table><thead><tr><th>Outcome</th><th>Preferred method</th><th>interpretation</th></tr></thead><tbody><tr><td>Volatile profile</td><td>HS-SPME GC–MS with internal standard and batch QC</td><td>chemical abundance is not identical to perceived aroma</td></tr><tr><td>Phenolics/target metabolites</td><td>validated HPLC/LC method</td><td>target list and extraction recovery reported</td></tr><tr><td>Mineral composition</td><td>ICP-OES/ICP-MS or validated equivalent</td><td>dry/fresh mass basis stated</td></tr><tr><td>Soluble solids</td><td>refractometry, °Brix</td><td>not universally equal to perceived sweetness</td></tr><tr><td>Titratable acidity</td><td>standardised titration</td><td>more informative than tissue pH alone for acid load</td></tr><tr><td>Colour</td><td>calibrated L*a*b* imaging or colorimetry</td><td>illumination and calibration controlled</td></tr><tr><td>Texture</td><td>instrumental compression/puncture plus sensory descriptor</td><td>method geometry and speed reported</td></tr><tr><td>Fresh/dry mass</td><td>traceable balance and drying method</td><td>concentration and total amount both reported</td></tr></tbody></table></div>\n<p>Instrumental colour may be reported in CIE L*a*b* coordinates when acquisition, illuminant, observer, instrument geometry and calibration are fixed. <button aria-label=\"Open source record R45\" class=\"research-source-trigger\" data-research-source=\"R45\" type=\"button\">[R45]</button></p>\n<h2 id=\"sampling\">Sampling control</h2>\n<p>Plant position, leaf age, time of day, harvest-to-analysis delay, storage temperature and sample preparation are standardised. Lettuce research shows that nutrient solution, season and post-harvest handling can alter quality and shelf-life interpretation. <button aria-label=\"Open source record R26\" class=\"research-source-trigger\" data-research-source=\"R26\" type=\"button\">[R26]</button></p>\n<h2 id=\"reporting\">Reporting concentration correctly</h2>\n<p>A treatment may increase a compound per gram while reducing total biomass. Report both concentration and total content per plant where feasible.</p>",
    "toc": [
      {
        "id": "chain",
        "label": "Measurement chain"
      },
      {
        "id": "sampling",
        "label": "Sampling control"
      },
      {
        "id": "reporting",
        "label": "Reporting concentration correctly"
      }
    ],
    "references": [
      "R26",
      "R45"
    ]
  },
  {
    "slug": "sensory-analysis",
    "title": "Sensory analysis",
    "document_id": "PR-SENS-001",
    "version": "1.1",
    "updated": "2026-07-26",
    "abstract": "A staged sensory programme that separates detectable difference, descriptive profile and consumer preference.",
    "group": "Research methods",
    "body": "<section aria-label=\"Article summary\" class=\"fr-article-summary\"><div><span>In brief</span><p>A staged sensory programme that separates detectable difference, descriptive profile and consumer preference.</p></div></section><h2 id=\"questions\">Three different questions</h2>\n<div class=\"table-wrap\"><table><thead><tr><th>Stage</th><th>Question</th><th>Method</th></tr></thead><tbody><tr><td>Difference</td><td>Can assessors detect that samples differ?</td><td>triangle test or other discrimination test</td></tr><tr><td>Description</td><td>How do they differ?</td><td>trained descriptive vocabulary and intensity ratings</td></tr><tr><td>Preference</td><td>Which is liked or preferred?</td><td>consumer/target-user hedonic or paired-preference study</td></tr></tbody></table></div>\n<h2 id=\"triangle\">Triangle test</h2>\n<p>ISO 4120 defines the triangle test: three coded samples are presented, two identical and one different, and the assessor identifies the odd sample. <button aria-label=\"Open source record R25\" class=\"research-source-trigger\" data-research-source=\"R25\" type=\"button\">[R25]</button> It establishes a perceptible difference, not which sample is better.</p>\n<h2 id=\"general\">General controls</h2>\n<p>Sample coding, order randomisation, serving amount, temperature, preparation, palate cleansing, assessor eligibility, blinding and analysis follow a written protocol consistent with general ISO sensory guidance. <button aria-label=\"Open source record R29\" class=\"research-source-trigger\" data-research-source=\"R29\" type=\"button\">[R29]</button></p>\n<h2 id=\"sample-size\">Sample size</h2>\n<p>Panel size is calculated from the selected test, significance level, desired power and minimum proportion of discriminators. It is not fixed at an arbitrary universal number.</p>\n<h2 id=\"hospitality\">Hospitality validation</h2>\n<p>Chef or venue feedback is collected only after analytical and blinded difference testing. Expert endorsement is useful for application relevance but does not replace controlled sensory evidence.</p>",
    "toc": [
      {
        "id": "questions",
        "label": "Three different questions"
      },
      {
        "id": "triangle",
        "label": "Triangle test"
      },
      {
        "id": "general",
        "label": "General controls"
      },
      {
        "id": "sample-size",
        "label": "Sample size"
      },
      {
        "id": "hospitality",
        "label": "Hospitality validation"
      }
    ],
    "references": [
      "R25",
      "R29"
    ]
  },
  {
    "slug": "statistics-data",
    "title": "Statistics, metadata and data publication",
    "document_id": "MTH-STAT-001",
    "version": "1.1",
    "updated": "2026-07-26",
    "abstract": "Experimental units, randomisation, blocking, mixed models, effect sizes, multiplicity and machine-readable data publication.",
    "group": "Research methods",
    "body": "<section aria-label=\"Article summary\" class=\"fr-article-summary\"><div><span>In brief</span><p>Experimental units, randomisation, blocking, mixed models, effect sizes, multiplicity and machine-readable data publication.</p></div></section><h2 id=\"unit\">Experimental unit</h2>\n<p>The biological experimental unit is the smallest independently assigned unit. Multiple leaves from one plant are subsamples, not independent plants. Plants sharing one reservoir may not be independent for a nutrient-solution treatment; reservoir or run can become the true treatment unit.</p>\n<h2 id=\"design\">Design controls</h2>\n<ul><li>random assignment to position and treatment;</li><li>blocking by cycle and relevant spatial factor;</li><li>blinded sample coding for laboratory and sensory analysis;</li><li>predefined exclusion and deviation rules;</li><li>power analysis updated from pilot variance;</li><li>effect size and confidence interval reported with p-values.</li></ul>\n<h2 id=\"model\">Example mixed model</h2>\n<div class=\"equation\"><div class=\"equation-label\">STAT-1</div><div class=\"equation-text\">y = μ + treatment + position + treatment×cultivar + cycle(random) + ε</div><div class=\"equation-desc\">Example structure; the final model follows the actual experimental unit and design.</div></div>\n<h2 id=\"multiplicity\">Multiple outcomes</h2>\n<p>Primary outcomes are declared before analysis. Secondary chemistry and sensory endpoints are labelled and multiplicity is controlled where inferential claims are made.</p>\n<p>Measurement uncertainty and precision terminology are declared separately from biological variation. Repeatability and reproducibility are not treated as synonyms. <button aria-label=\"Open source record R38\" class=\"research-source-trigger\" data-research-source=\"R38\" type=\"button\">[R38]</button> <button aria-label=\"Open source record R46\" class=\"research-source-trigger\" data-research-source=\"R46\" type=\"button\">[R46]</button> <button aria-label=\"Open source record R50\" class=\"research-source-trigger\" data-research-source=\"R50\" type=\"button\">[R50]</button></p>\n<h2 id=\"data\">Data package</h2>\n<p>Every report links raw data, processed data, analysis code, data dictionary, protocol, deviations and checksums. Metadata follow MIAPPE concepts and FAIR principles. <button aria-label=\"Open source record R23\" class=\"research-source-trigger\" data-research-source=\"R23\" type=\"button\">[R23]</button> <button aria-label=\"Open source record R24\" class=\"research-source-trigger\" data-research-source=\"R24\" type=\"button\">[R24]</button></p>",
    "toc": [
      {
        "id": "unit",
        "label": "Experimental unit"
      },
      {
        "id": "design",
        "label": "Design controls"
      },
      {
        "id": "model",
        "label": "Example mixed model"
      },
      {
        "id": "multiplicity",
        "label": "Multiple outcomes"
      },
      {
        "id": "data",
        "label": "Data package"
      }
    ],
    "references": [
      "R23",
      "R24",
      "R38",
      "R46",
      "R50"
    ]
  },
  {
    "slug": "experiment-registry",
    "title": "Experiment registry",
    "document_id": "REG-001",
    "version": "1.1",
    "updated": "2026-07-26",
    "abstract": "The stable identifiers, prerequisites and public states for engineering calibration and crop experiments.",
    "group": "Research outputs",
    "body": "<section aria-label=\"Article summary\" class=\"fr-article-summary\"><div><span>In brief</span><p>The stable identifiers, prerequisites and public states for engineering calibration and crop experiments.</p></div></section><h2 id=\"states\">Allowed states</h2>\n<p>Proposed, protocol published, preregistered, in progress, data collection complete, under analysis, completed, replication in progress, replicated, inconclusive or discontinued with reason.</p>\n<h2 id=\"register\">Current register</h2>\n<div class=\"table-wrap\"><table><thead><tr><th>ID</th><th>Title</th><th>State</th><th>Prerequisite</th></tr></thead><tbody><tr><td>CR-PMP-001</td><td>Four-channel gravimetric calibration</td><td>protocol published</td><td>assembled pump channels and traceable balance</td></tr><tr><td>CR-MAG-001</td><td>Magnetic-drive slip-torque calibration</td><td>protocol defined</td><td>assembled v2 drive</td></tr><tr><td>CR-LGT-001</td><td>Spatial light map</td><td>protocol published</td><td>final light and geometry</td></tr><tr><td>CR-SEN-001</td><td>pH/EC/temperature calibration</td><td>protocol published</td><td>installed sensors</td></tr><tr><td>ER-BAS-BASE-001</td><td>Italian Large Leaf baseline repeatability</td><td>not started</td><td>engineering calibrations complete</td></tr><tr><td>ER-BAS-LGT-001</td><td>Basil spectral treatment</td><td>not started</td><td>three baseline cycles</td></tr><tr><td>ER-BAS-MEC-001</td><td>Basil rotation/mechanical treatment</td><td>not started</td><td>matched light/root-zone controls</td></tr><tr><td>ER-ARU-EC-001</td><td>Arugula EC response</td><td>not started</td><td>baseline cycle and calibrated dosing</td></tr><tr><td>ER-LET-PH-001</td><td>Lettuce pH response</td><td>not started</td><td>stable pH control</td></tr><tr><td>ER-STR-SYS-001</td><td>Strawberry root-zone feasibility</td><td>not started</td><td>oxygen and sanitation validation</td></tr><tr><td>ER-MNT-SCR-001</td><td>Mint feasibility screen</td><td>not started</td><td>species/clone selected</td></tr></tbody></table></div>\n<h2 id=\"publication\">Registry rule</h2>\n<p>A state changes only when the required artifact exists. “Completed” requires protocol, deviations, raw data, analysis and signed result summary.</p><h2 id=\"metadata\">Registry metadata</h2><p>Each experiment record retains study, biological-material and observed-variable metadata and remains linked to released data. <button aria-label=\"Open source record R23\" class=\"research-source-trigger\" data-research-source=\"R23\" type=\"button\">[R23]</button> <button aria-label=\"Open source record R24\" class=\"research-source-trigger\" data-research-source=\"R24\" type=\"button\">[R24]</button></p>",
    "toc": [
      {
        "id": "states",
        "label": "Allowed states"
      },
      {
        "id": "register",
        "label": "Current register"
      },
      {
        "id": "publication",
        "label": "Registry rule"
      },
      {
        "id": "metadata",
        "label": "Registry metadata"
      }
    ],
    "references": [
      "R23",
      "R24"
    ]
  },
  {
    "slug": "protocol-library",
    "title": "Protocol library",
    "document_id": "OUT-PRO-001",
    "version": "1.1",
    "updated": "2026-07-26",
    "abstract": "The controlled documents that define calibration, cultivation, sampling, analysis and replication before results are interpreted.",
    "group": "Research outputs",
    "body": "<section aria-label=\"Article summary\" class=\"fr-article-summary\"><div><span>In brief</span><p>The controlled documents that define calibration, cultivation, sampling, analysis and replication before results are interpreted.</p></div></section>\n<h2 id=\"principle\">Principle</h2>\n<p>A protocol is published and versioned before the corresponding result is interpreted. Any substantive change creates a new protocol version.</p>\n<div class=\"table-wrap\"><table><thead><tr><th>Protocol</th><th>Purpose</th><th>Current state</th></tr></thead><tbody>\n<tr><td>FR-PRO-001</td><td>Peristaltic pump gravimetric calibration</td><td>documented; execution pending</td></tr>\n<tr><td>FR-PRO-002</td><td>Empty-system environmental baseline</td><td>method defined</td></tr>\n<tr><td>FR-PRO-003</td><td>Reference cultivation cycle</td><td>crop-specific finalisation</td></tr>\n<tr><td>FR-PRO-004</td><td>Rotation and matched-control validation</td><td>method defined</td></tr>\n<tr><td>FR-PRO-005</td><td>Sensory discrimination and descriptive analysis</td><td>standards-aligned design</td></tr>\n</tbody></table></div>\n<p>Calibration and sensory methods use explicit metrology and sensory-analysis terminology. <button aria-label=\"Open source record R37\" class=\"research-source-trigger\" data-research-source=\"R37\" type=\"button\">[R37]</button> <button aria-label=\"Open source record R38\" class=\"research-source-trigger\" data-research-source=\"R38\" type=\"button\">[R38]</button> <button aria-label=\"Open source record R39\" class=\"research-source-trigger\" data-research-source=\"R39\" type=\"button\">[R39]</button> <button aria-label=\"Open source record R40\" class=\"research-source-trigger\" data-research-source=\"R40\" type=\"button\">[R40]</button> <button aria-label=\"Open source record R41\" class=\"research-source-trigger\" data-research-source=\"R41\" type=\"button\">[R41]</button> <button aria-label=\"Open source record R48\" class=\"research-source-trigger\" data-research-source=\"R48\" type=\"button\">[R48]</button> <button aria-label=\"Open source record R49\" class=\"research-source-trigger\" data-research-source=\"R49\" type=\"button\">[R49]</button></p>\n<h2 id=\"required-sections\">Required protocol sections</h2><ol><li>Research question and preregistered hypothesis.</li><li>Experimental unit, sample size and allocation method.</li><li>System, crop, cultivar and biological-material identifiers.</li><li>Independent, dependent and controlled variables with units.</li><li>Calibration prerequisites and equipment register.</li><li>Time-indexed procedure, sampling and harvest rules.</li><li>Deviation, exclusion and stopping rules.</li><li>Planned statistical analysis and publication criteria.</li></ol><p>A protocol receives a permanent identifier before execution. A method change produces a new version; it does not silently overwrite the executed method.</p>",
    "toc": [
      {
        "id": "principle",
        "label": "Principle"
      },
      {
        "id": "required-sections",
        "label": "Required protocol sections"
      }
    ],
    "references": [
      "R37",
      "R38",
      "R39",
      "R40",
      "R41",
      "R48",
      "R49"
    ]
  },
  {
    "slug": "datasets-recipes",
    "title": "Datasets and growing recipes",
    "document_id": "OUT-DAT-001",
    "version": "1.1",
    "updated": "2026-07-26",
    "abstract": "Required files, metadata and evidence levels for raw datasets, processed data and reusable cultivation recipes.",
    "group": "Research outputs",
    "body": "<section aria-label=\"Article summary\" class=\"fr-article-summary\"><div><span>In brief</span><p>Required files, metadata and evidence levels for raw datasets, processed data and reusable cultivation recipes.</p></div></section>\n<h2 id=\"dataset\">Dataset release</h2>\n<p>Each dataset contains raw sensor records, actuator events, calibration identifiers, plant-material metadata, treatment allocation, deviations, harvest records and analysis code or processing instructions.</p>\n<h2 id=\"recipe\">Recipe release</h2>\n<p>A growing recipe includes crop, cultivar, seed lot, developmental timeline, physical light targets, elemental nutrient formulation, pH and EC policy, root-zone conditions, rotation schedule, harvest protocol and validation scope.</p>\n<h2 id=\"release-package\">Release package</h2><div class=\"table-wrap\"><table><thead><tr><th>Object</th><th>Minimum contents</th></tr></thead><tbody><tr><td>Raw data</td><td>unaltered sensor, event, image and laboratory records</td></tr><tr><td>Metadata</td><td>system, biological material, environment, units, calibration and provenance</td></tr><tr><td>Processing</td><td>versioned scripts, parameters and generated outputs</td></tr><tr><td>Recipe</td><td>time-indexed physical targets, tolerances, safety limits and supported system</td></tr><tr><td>Result summary</td><td>tested crop, cultivar, cycles, effect size, uncertainty and replication status</td></tr></tbody></table></div><p>Datasets are designed around MIAPPE-compatible plant metadata and FAIR principles. A recipe is released only with a bounded statement of where it was tested. <button aria-label=\"Open source record R23\" class=\"research-source-trigger\" data-research-source=\"R23\" type=\"button\">[R23]</button> <button aria-label=\"Open source record R24\" class=\"research-source-trigger\" data-research-source=\"R24\" type=\"button\">[R24]</button></p>",
    "toc": [
      {
        "id": "dataset",
        "label": "Dataset release"
      },
      {
        "id": "recipe",
        "label": "Recipe release"
      },
      {
        "id": "release-package",
        "label": "Release package"
      }
    ],
    "references": [
      "R23",
      "R24"
    ]
  },
  {
    "slug": "scale-up-transfer",
    "title": "Plant Teleport: validated recipe replication and greenhouse scale transfer",
    "document_id": "FLV-PT-001",
    "version": "3.0",
    "updated": "2026-07-30",
    "abstract": "A complete engineering and scientific framework for replicating a validated FlavoRotor recipe on another calibrated unit and translating it to a greenhouse using measured plant-level targets, local command compilation, uncertainty-aware acceptance and preregistered outcome equivalence.",
    "group": "Research outputs",
    "body": "<!-- GENERATED FROM content/article-body.md AND data/all-article-sources-with-boundaries.json -->\n<section class=\"fr-article-summary\" aria-label=\"Article summary\">\n  <div><span>Plant Teleport</span><p>Replicate a validated cultivation result on another calibrated FlavoRotor and translate it to a greenhouse by transferring measured plant-level exposure targets, not machine-specific commands.</p></div>\n</section>\n<div class=\"fr-evidence-box\"><strong>SCIENTIFIC CONCLUSION</strong><span>The Plant Teleport architecture is technically feasible because its components-calibration, machine-independent recipes, environmental sensing, local control, metadata, independent replication and equivalence testing-are established engineering and scientific methods. What remains to be demonstrated experimentally is the achievable fidelity for each crop, property, machine pair and greenhouse implementation.</span></div>\n<div class=\"fr-evidence-box\"><strong>IMPLEMENTATION ROADMAP</strong><span>The public FlavoRotor record defines the complete transfer framework. Cross-unit and greenhouse equivalence experiments are the next scheduled programme milestone, building on the calibration, recipe encoding and environmental sensing infrastructure already operational on the prototype.</span></div>\n<h2 id=\"executive-conclusion\">Executive conclusion</h2>\n<p>Plant Teleport builds on established engineering and scientific methods. A digital recipe can store calibrated physical targets, another system can compile those targets into its own actuator commands, and the delivered environment can be measured. Modern controlled-environment systems already combine sensors, actuators, time-varying targets and model-based control. <a class=\"research-source-trigger\" href=\"#article-R69\" data-source-id=\"R69\" data-global-reference=\"/research/references#R69\" aria-label=\"Open source record R69\">[R69]</a> Published plant research also demonstrates that controlled cultivation inputs can change quality-related plant chemistry and sensory-relevant outcomes under specified conditions. <a class=\"research-source-trigger\" href=\"#article-R01\" data-source-id=\"R01\" data-global-reference=\"/research/references#R01\" aria-label=\"Open source record R01\">[R01]</a> <a class=\"research-source-trigger\" href=\"#article-R71\" data-source-id=\"R71\" data-global-reference=\"/research/references#R71\" aria-label=\"Open source record R71\">[R71]</a></p>\n<p>The difficult and scientifically valuable part is not sending the file. It is proving that the destination produced a sufficiently equivalent plant outcome.</p>\n<p>Therefore, the strongest accurate statement is:\n<blockquote><p><strong>FlavoRotor can provide the infrastructure required to encode, translate, execute and validate portable cultivation recipes. The fidelity of a particular aroma, taste, colour or texture must then be established by independent cross-system measurements.</strong></p></blockquote>\n<p>This converts a broad development goal into a structured research programme with defined validation milestones and concrete product architecture.</p>\n<div data-research-visual=\"pt-f15\"></div>\n<h2 id=\"engineering-feasibility-decision\">Engineering feasibility decision</h2>\n<strong>Decision: technically feasible as an architecture; experimentally unverified for crop-specific property fidelity.</strong>\n<p>The required operations are established independently: measure physical exposure, calibrate actuators, store versioned metadata, translate targets to local hardware, operate closed-loop control, identify independent experimental units and test a predefined equivalence hypothesis. <a class=\"research-source-trigger\" href=\"#article-R69\" data-source-id=\"R69\" data-global-reference=\"/research/references#R69\" aria-label=\"Open source record R69\">[R69]</a> <a class=\"research-source-trigger\" href=\"#article-R65\" data-source-id=\"R65\" data-global-reference=\"/research/references#R65\" aria-label=\"Open source record R65\">[R65]</a> <a class=\"research-source-trigger\" href=\"#article-R70\" data-source-id=\"R70\" data-global-reference=\"/research/references#R70\" aria-label=\"Open source record R70\">[R70]</a></p>\n<p>The remaining uncertainty is empirical rather than conceptual: how closely a particular destination can reproduce a specified chemical, physical or sensory profile for a named cultivar and recipe version.</p>\n<p>This decision creates two non-interchangeable statements:\n<table><thead><tr><th>Statement</th><th>Status</th></tr></thead><tbody><tr><td>A calibrated destination can attempt to reproduce machine-independent physical targets.</td><td>Engineering architecture supported.</td></tr><tr><td>A specific aroma, taste or texture will be equivalent after transfer.</td><td>Must be demonstrated for the stated scope.</td></tr></tbody></table>\n<div data-research-visual=\"pt-f20\"></div>\n<h2 id=\"in-plain-terms\">In plain terms</h2>\n<p>Plant Teleport is FlavoRotor’s name for <strong>evidence-gated recipe portability</strong>. It does not mean that a plant or molecule is literally transported.</p>\n<p>A source FlavoRotor records:</p>\n<p>- the biological material;\n- the time-indexed environment experienced by the plant;\n- the machine and calibration version;\n- the harvest and post-harvest protocol;\n- the measured chemical, physical and sensory result;\n- the uncertainty, deviations and evidence level.</p>\n<p>A destination system receives that package and determines whether it can reproduce the required physical targets. It then calculates its own commands, runs the cultivation under measurement and repeats the outcome analysis.</p>\n<div data-research-visual=\"pt-f01\"></div>\n<p>The product interaction can still be simple:</p>\n<div data-research-visual=\"pt-f11\"></div>\n<p>A single click may start the workflow. It cannot legitimately skip compatibility, calibration, biological variation or validation.</p>\n<h2 id=\"canonical-terminology-and-units\">Canonical terminology and units</h2>\n<p>Plant Teleport uses one canonical meaning for each term so a human, controller and LLM interpret the recipe consistently.\n<table><thead><tr><th>Term</th><th>Canonical meaning</th></tr></thead><tbody><tr><td><strong>Command</strong></td><td>Machine-specific instruction such as PWM duty, valve time or motor setpoint.</td></tr><tr><td><strong>Target</strong></td><td>Desired physical quantity at a named plant or system location.</td></tr><tr><td><strong>Measured exposure</strong></td><td>Time- and position-resolved quantity actually observed during cultivation.</td></tr><tr><td><strong>Recipe</strong></td><td>Versioned biological, environmental, procedural and evidence package.</td></tr><tr><td><strong>Reference run</strong></td><td>Validated source execution against which a destination is compared.</td></tr><tr><td><strong>Destination run</strong></td><td>Execution on another machine, site or cultivation architecture.</td></tr><tr><td><strong>Property endpoint</strong></td><td>Predefined chemical, physical or sensory response used in the transfer decision.</td></tr><tr><td><strong>Equivalence margin</strong></td><td>Largest acceptable difference for a named endpoint, justified before data review.</td></tr><tr><td><strong>Bridge experiment</strong></td><td>Controlled comparison required when machine, site or cultivation architecture changes materially.</td></tr></tbody></table>\nCanonical reporting uses physical units rather than percentages wherever possible:</p>\n<p>- PPFD in µmol·m⁻²·s⁻¹;\n- DLI in mol·m⁻²·d⁻¹;\n- temperature in °C;\n- relative humidity in % and VPD in kPa;\n- EC in mS/cm with temperature or compensation method;\n- pH with electrode and calibration record;\n- elemental concentration in mmol/L or mg/L with the named chemical species;\n- liquid delivery in mL or g;\n- rotational speed in rev/min or angular velocity in rad/s;\n- airflow in m/s at a defined canopy position.</p>\n<p>A percentage may remain as a local command in the destination log, but it is not the portable recipe quantity.</p>\n<h2 id=\"why-flavorotor-is-structurally-suited-to-recipe-transfer\">Why FlavoRotor is structurally suited to recipe transfer</h2>\n<p>The architecture is favourable for portability because FlavoRotor is conceived as one integrated research platform rather than a loose collection of manually operated equipment. According to the internal design records, it combines programmable lighting, nutrient dosing, pH and electrical-conductivity monitoring, temperature sensing, rotation, imaging and versioned software records. <a class=\"research-source-trigger\" href=\"#article-I01\" data-source-id=\"I01\" data-global-reference=\"/research/references#I01\" aria-label=\"Open source record I01\">[I01]</a> <a class=\"research-source-trigger\" href=\"#article-I02\" data-source-id=\"I02\" data-global-reference=\"/research/references#I02\" aria-label=\"Open source record I02\">[I02]</a></p>\n<p>This integration offers five specific advantages.</p>\n<h3 id=\"1-common-timing\">1. Common timing</h3>\n<p>Every relevant event can be represented on one time axis: lighting transitions, dosing, reservoir measurements, rotation, imaging and harvest. Cross-system transfer is substantially weaker when the records come from unrelated clocks or handwritten logs.</p>\n<h3 id=\"2-calibration-backed-actuation\">2. Calibration-backed actuation</h3>\n<p>A recipe can refer to a physical target rather than an arbitrary interface percentage. Calibration and measurement uncertainty provide the bridge between the requested quantity and the local actuator. <a class=\"research-source-trigger\" href=\"#article-R38\" data-source-id=\"R38\" data-global-reference=\"/research/references#R38\" aria-label=\"Open source record R38\">[R38]</a> <a class=\"research-source-trigger\" href=\"#article-R39\" data-source-id=\"R39\" data-global-reference=\"/research/references#R39\" aria-label=\"Open source record R39\">[R39]</a></p>\n<h3 id=\"3-complete-provenance\">3. Complete provenance</h3>\n<p>The system can preserve the relationship between recipe version, hardware version, sensor calibration, plant lot, images, raw logs, analytical samples and conclusions. MIAPPE and FAIR principles provide relevant structures for making such data interpretable and reusable. <a class=\"research-source-trigger\" href=\"#article-R23\" data-source-id=\"R23\" data-global-reference=\"/research/references#R23\" aria-label=\"Open source record R23\">[R23]</a> <a class=\"research-source-trigger\" href=\"#article-R24\" data-source-id=\"R24\" data-global-reference=\"/research/references#R24\" aria-label=\"Open source record R24\">[R24]</a></p>\n<h3 id=\"4-closed-loop-verification\">4. Closed-loop verification</h3>\n<p>The destination can measure whether it is achieving the target instead of assuming that commands were delivered correctly. This is central to current recommendations for environmental reporting in plant research. <a class=\"research-source-trigger\" href=\"#article-R67\" data-source-id=\"R67\" data-global-reference=\"/research/references#R67\" aria-label=\"Open source record R67\">[R67]</a></p>\n<h3 id=\"5-a-natural-path-to-a-marketplace\">5. A natural path to a marketplace</h3>\n<p>A recipe can be distributed together with its compatibility requirements, evidence level, supported crop material, required analyses and validated system scope. The marketplace object becomes a controlled technical specification rather than a vague promise.</p>\n<h2 id=\"what-property-transfer-means\">What “property transfer” means</h2>\n<p>A property is a measured response. Examples include:</p>\n<p>- concentrations of selected volatile compounds;\n- a defined chemical fingerprint;\n- soluble solids or titratable acidity;\n- colour coordinates;\n- dry matter or firmness;\n- a trained-panel sensory profile;\n- a consumer-liking result, when the claim concerns preference rather than descriptive equivalence.</p>\n<p>Published studies show that lighting, nutrient supply, temperature and other pre-harvest conditions can influence quality-related responses in specified crops and conditions. <a class=\"research-source-trigger\" href=\"#article-R01\" data-source-id=\"R01\" data-global-reference=\"/research/references#R01\" aria-label=\"Open source record R01\">[R01]</a> <a class=\"research-source-trigger\" href=\"#article-R09\" data-source-id=\"R09\" data-global-reference=\"/research/references#R09\" aria-label=\"Open source record R09\">[R09]</a> <a class=\"research-source-trigger\" href=\"#article-R11\" data-source-id=\"R11\" data-global-reference=\"/research/references#R11\" aria-label=\"Open source record R11\">[R11]</a> <a class=\"research-source-trigger\" href=\"#article-R71\" data-source-id=\"R71\" data-global-reference=\"/research/references#R71\" aria-label=\"Open source record R71\">[R71]</a></p>\n<p>Property transfer means:\n<blockquote><p>Reproducing a predefined outcome profile within declared limits by reproducing the relevant plant-level exposure trajectory, biological material, developmental state, harvest procedure and measurement method.</p></blockquote>\n<p>It does not mean exact identity between individual plants. Biological systems exhibit variation even under carefully standardised protocols. A ten-laboratory study demonstrated that dedicated standardisation can produce similar growth results across a core group of laboratories, while small environmental and handling differences can still affect phenotypes and metabolite profiles. <a class=\"research-source-trigger\" href=\"#article-R64\" data-source-id=\"R64\" data-global-reference=\"/research/references#R64\" aria-label=\"Open source record R64\">[R64]</a></p>\n<div data-research-visual=\"pt-f09\"></div>\n<h2 id=\"the-decisive-distinction-target-transfer-versus-command-copying\">The decisive distinction: target transfer versus command copying</h2>\n<p>The transferable object must not be:</p>\n<p>```text\nLED = 73%\npump A = 12 seconds\nfan = 40%\nrotation motor = 35%\n```</p>\n<p>Those commands are properties of one machine.</p>\n<p>The transferable object should be closer to:</p>\n<p>```text\ncanopy spectral photon target = versioned time series\nPPFD and DLI target = measured at defined plant positions\nelemental nutrient formulation = named species and concentrations\npH and EC = target trajectories with temperature and measurement method\nroot-zone temperature and wetting cycle = defined physical exposure\nair temperature, RH, VPD and airflow = measured at defined locations\nrotation and mechanical exposure = encoder-verified schedule\nharvest state = objective biological and chronological criteria\n```</p>\n<p>The destination translates each target through its own calibrated hardware.</p>\n<div data-research-visual=\"pt-f02\"></div>\n<p>For a liquid target:</p>\n<div class=\"equation\"><div class=\"equation-label\">PT-1</div><div class=\"equation-text\">t<sub>pump</sub> = V<sub>target</sub> / Q<sub>cal</sub></div><div class=\"equation-desc\"><strong>Purpose:</strong> convert the required volume into a pump-specific nominal running time. Vtarget is the target volume and Qcal is the calibrated flow for that pump, tube, liquid and operating condition.</div><div class=\"equation-evidence\">CALIBRATED TRANSLATION</div></div>\n<p>If two pumps deliver 2 mL/min and 5 mL/min, respectively, both can target 10 mL, but their nominal commands are 5 minutes and 2 minutes. The recipe remains constant while the commands change.</p>\n<h2 id=\"the-plant-teleport-contract\">The Plant Teleport contract</h2>\n<p>A transferable recipe is a contract between the source evidence and the destination capability.</p>\n<h3 id=\"a-biological-passport\">A. Biological passport</h3>\n<p>The recipe records:</p>\n<p>- species and cultivar;\n- seed lot, clone batch or other material identifier;\n- propagation method;\n- germination or rooting conditions;\n- developmental stage at each recipe transition;\n- plant density and position;\n- replacement and exclusion rules;\n- plant-health observations;\n- definition of the independent experimental unit.</p>\n<p>Cultivar cannot be treated as a cosmetic label. Nutrient-strength and temperature responses can depend on genotype. <a class=\"research-source-trigger\" href=\"#article-R09\" data-source-id=\"R09\" data-global-reference=\"/research/references#R09\" aria-label=\"Open source record R09\">[R09]</a> <a class=\"research-source-trigger\" href=\"#article-R11\" data-source-id=\"R11\" data-global-reference=\"/research/references#R11\" aria-label=\"Open source record R11\">[R11]</a></p>\n<h3 id=\"b-time-indexed-exposure-targets\">B. Time-indexed exposure targets</h3>\n<p>The package stores trajectories, not only averages:</p>\n<p>- spectral photon distribution;\n- PPFD;\n- DLI;\n- photoperiod and light transitions;\n- air and leaf temperature;\n- relative humidity and VPD;\n- carbon dioxide where controlled or material;\n- source-water composition;\n- elemental nutrient formulation;\n- pH, EC and solution temperature;\n- dissolved oxygen where relevant;\n- irrigation, immersion, drainage and aeration timing;\n- air velocity;\n- rotation and mechanical stimulation;\n- stage transitions and harvest timing.</p>\n<p>Dynamic plant-environment research shows why a time-varying regime can be more informative than one static mean. <a class=\"research-source-trigger\" href=\"#article-R68\" data-source-id=\"R68\" data-global-reference=\"/research/references#R68\" aria-label=\"Open source record R68\">[R68]</a></p>\n<h3 id=\"c-capability-declaration\">C. Capability declaration</h3>\n<p>The destination publishes:</p>\n<p>- controllable range;\n- measurable range;\n- resolution;\n- uncertainty;\n- spatial coverage;\n- sampling interval;\n- valid calibration;\n- actuation delay;\n- safety limits;\n- unsupported variables.</p>\n<p>The interface must refuse validated execution when a mandatory variable cannot be controlled or verified.</p>\n<h3 id=\"d-harvest-and-post-harvest-protocol\">D. Harvest and post-harvest protocol</h3>\n<p>Chemical and sensory properties may change after harvest. The recipe therefore defines:</p>\n<p>- objective harvest state;\n- time of day;\n- sample position and mass;\n- washing, cutting or preparation;\n- storage temperature and duration;\n- delay before instrumental or sensory analysis;\n- random coding and blinding.</p>\n<h3 id=\"e-reference-outcome-fingerprint\">E. Reference outcome fingerprint</h3>\n<p>A single number called “aroma” is normally insufficient. The fingerprint can contain multiple primary and supporting endpoints.</p>\n<div data-research-visual=\"pt-f13\"></div>\n<p>Descriptive sensory profiling, assessor selection, sensory-room control and general sensory methodology should follow defined methods. <a class=\"research-source-trigger\" href=\"#article-R41\" data-source-id=\"R41\" data-global-reference=\"/research/references#R41\" aria-label=\"Open source record R41\">[R41]</a> <a class=\"research-source-trigger\" href=\"#article-R73\" data-source-id=\"R73\" data-global-reference=\"/research/references#R73\" aria-label=\"Open source record R73\">[R73]</a> <a class=\"research-source-trigger\" href=\"#article-R74\" data-source-id=\"R74\" data-global-reference=\"/research/references#R74\" aria-label=\"Open source record R74\">[R74]</a> <a class=\"research-source-trigger\" href=\"#article-R75\" data-source-id=\"R75\" data-global-reference=\"/research/references#R75\" aria-label=\"Open source record R75\">[R75]</a> Sensory vocabulary should be standardised. <a class=\"research-source-trigger\" href=\"#article-R76\" data-source-id=\"R76\" data-global-reference=\"/research/references#R76\" aria-label=\"Open source record R76\">[R76]</a> Consumer liking is a different question from descriptive equivalence and requires an appropriate consumer test. <a class=\"research-source-trigger\" href=\"#article-R77\" data-source-id=\"R77\" data-global-reference=\"/research/references#R77\" aria-label=\"Open source record R77\">[R77]</a></p>\n<h3 id=\"f-provenance-and-evidence\">F. Provenance and evidence</h3>\n<p>Every claim links to raw and processed records.</p>\n<div data-research-visual=\"pt-f10\"></div>\n<h2 id=\"transfer-status-pt0-pt5\">Transfer status PT0–PT5</h2>\n<div data-research-visual=\"pt-f04\"></div>\n<table><thead><tr><th>Level</th><th>Name</th><th>Minimum meaning</th><th>Public wording</th></tr></thead><tbody><tr><td>PT0</td><td>Saved recipe</td><td>The source recipe and evidence package are complete.</td><td>“Recorded on the originating system.”</td></tr><tr><td>PT1</td><td>Repeated</td><td>Independent cycles on the same source system support the declared direction and variability.</td><td>“Repeated on the originating FlavoRotor.”</td></tr><tr><td>PT2</td><td>Cross-unit replicated</td><td>A second calibrated FlavoRotor meets the environmental and outcome criteria.</td><td>“Replicated on another calibrated FlavoRotor.”</td></tr><tr><td>PT3</td><td>Cross-location reproduced</td><td>PT2 is extended to another site with local water, room and handling effects addressed.</td><td>“Reproduced at another site under the stated conditions.”</td></tr><tr><td>PT4</td><td>System translated</td><td>A greenhouse or different cultivation architecture passes a bridge experiment.</td><td>“Translated and validated for greenhouse/system X.”</td></tr><tr><td>PT5</td><td>Independently verified</td><td>An independent partner executes and analyses the registered protocol.</td><td>“Independently verified within the published scope.”</td></tr></tbody></table>\nThe evidence burden increases as hardware, location and cultivation architecture diverge.\n<div data-research-visual=\"pt-f05\"></div>\n<h2 id=\"recipe-compiler-architecture\">Recipe compiler architecture</h2>\n<p>The compiler performs a preflight before the run button is enabled.</p>\n<h3 id=\"preflight-gates\">Preflight gates</h3>\n<p>1. <strong>Biological compatibility</strong> - the correct cultivar and material identifier are available.\n2. <strong>Range compatibility</strong> - the destination can reach every mandatory target.\n3. <strong>Measurement compatibility</strong> - the destination can verify those targets at the required location and frequency.\n4. <strong>Calibration validity</strong> - all mandatory sensors and actuators have valid calibration records.\n5. <strong>Method compatibility</strong> - the required harvest, laboratory and sensory methods are available.\n6. <strong>Safety compatibility</strong> - target and abort rules are compatible with the destination.\n7. <strong>Evidence compatibility</strong> - the requested public claim does not exceed the available validation level.\n8. <strong>Licence compatibility</strong> - the recipe version and permitted use are valid.</p>\n<p>The result is one of four states:</p>\n<p>- <strong>compatible</strong>;\n- <strong>compatible with declared adaptation</strong>;\n- <strong>research-only</strong>;\n- <strong>incompatible</strong>.</p>\n<div data-research-visual=\"pt-f12\"></div>\n<h3 id=\"subsystem-translation\">Subsystem translation</h3>\n<div data-research-visual=\"pt-f16\"></div>\n<p>A recent digital-twin framework demonstrates that vendor-agnostic sensor/actuator mapping, model calibration, dynamic targets and adaptive control are technically implementable in controlled-environment agriculture. Its published case study is simulation-based, so it supports the software architecture rather than proving physical Plant Teleport performance. <a class=\"research-source-trigger\" href=\"#article-R69\" data-source-id=\"R69\" data-global-reference=\"/research/references#R69\" aria-label=\"Open source record R69\">[R69]</a></p>\n<h2 id=\"measuring-exposure-fidelity\">Measuring exposure fidelity</h2>\n<p>For controlled quantity <em>j</em>:</p>\n<div class=\"equation\"><div class=\"equation-label\">PT-2</div><div class=\"equation-text\">e<sub>j</sub>(t) = y<sub>j</sub>(t) − r<sub>j</sub>(t)</div><div class=\"equation-desc\"><strong>Purpose:</strong> compute instantaneous tracking error. yj(t) is the measured value; rj(t) is the target at the same time and location.</div><div class=\"equation-evidence\">MEASUREMENT DEFINITION</div></div>\n<div class=\"equation\"><div class=\"equation-label\">PT-3</div><div class=\"equation-text\">q<sub>j</sub>(t) = |e<sub>j</sub>(t)| / Δ<sub>j</sub></div><div class=\"equation-desc\"><strong>Purpose:</strong> normalise the error by the preregistered tolerance Δj. q ≤ 1 means the observation is inside the declared tolerance.</div><div class=\"equation-evidence\">NORMALISED COMPLIANCE METRIC - NOT A BIOLOGICAL RESULT</div></div>\n<div class=\"equation\"><div class=\"equation-label\">PT-4</div><div class=\"equation-text\">P<sub>j</sub> = 100 · ΣI(q<sub>j</sub> ≤ 1) / N</div><div class=\"equation-desc\"><strong>Purpose:</strong> report the percentage of valid observations inside tolerance. N is the number of valid observations; I is an indicator equal to one when the condition is true.</div><div class=\"equation-evidence\">CONTROL-PERFORMANCE SUMMARY</div></div>\n<p>The acceptance value for <em>P</em><sub>j</sub>, excursion duration and safety limits must be established by protocol. No universal percentage is claimed.</p>\n<div data-research-visual=\"pt-f03\"></div>\n<p>Environmental compliance is necessary but not sufficient. A destination can reproduce the target environment and still obtain a different biological result because of seed material, microbiology, developmental timing or unmeasured differences.</p>\n<p>A valid transfer therefore uses a conjunctive decision:</p>\n<div class=\"equation\"><div class=\"equation-label\">PT-5</div><div class=\"equation-text\">G<sub>transfer</sub> = G<sub>biology</sub> ∧ G<sub>exposure</sub> ∧ G<sub>method</sub> ∧ G<sub>outcome</sub></div><div class=\"equation-desc\"><strong>Purpose:</strong> express that a validated transfer requires every mandatory gate to pass. The logical AND symbol means that one failed critical gate prevents the full claim.</div><div class=\"equation-evidence\">DECISION LOGIC - NOT A CONTINUOUS PERFORMANCE SCORE</div></div>\n<h2 id=\"uncertainty-aware-environmental-compliance\">Uncertainty-aware environmental compliance</h2>\n<p>A measured value close to a tolerance boundary cannot be treated as an unquestioned pass when measurement uncertainty overlaps that boundary. Calibration, uncertainty and acceptance must therefore be connected. <a class=\"research-source-trigger\" href=\"#article-R38\" data-source-id=\"R38\" data-global-reference=\"/research/references#R38\" aria-label=\"Open source record R38\">[R38]</a> <a class=\"research-source-trigger\" href=\"#article-R39\" data-source-id=\"R39\" data-global-reference=\"/research/references#R39\" aria-label=\"Open source record R39\">[R39]</a> <a class=\"research-source-trigger\" href=\"#article-R43\" data-source-id=\"R43\" data-global-reference=\"/research/references#R43\" aria-label=\"Open source record R43\">[R43]</a></p>\n<p>For a measured estimate <em>y</em><sub>j</sub>, target <em>r</em><sub>j</sub>, tolerance Δ<sub>j</sub>, standard uncertainty <em>u</em><sub>j</sub> and chosen coverage factor <em>k</em>, a conservative guard-band rule can be written as:</p>\n<div class=\"equation\"><div class=\"equation-label\">PT-5A</div><div class=\"equation-text\">|y<sub>j</sub> − r<sub>j</sub>| + k·u<sub>j</sub> ≤ Δ<sub>j</sub></div><div class=\"equation-desc\"><strong>Purpose:</strong> require the measured deviation plus the declared uncertainty allowance to remain inside the tolerance. The coverage factor and decision rule must be specified by the protocol; they are not universal constants.</div><div class=\"equation-evidence\">ILLUSTRATIVE GUARD-BAND RULE BASED ON METROLOGY PRINCIPLES</div></div>\n<strong>Illustrative example.</strong> A target is 22.0 °C with a tolerance of ±0.5 °C. The measured estimate is 22.3 °C and the standard uncertainty is 0.1 °C. If the protocol uses <em>k</em> = 2, the guarded deviation is 0.3 + 2 × 0.1 = 0.5 °C, exactly at the declared limit. This example explains the rule; it is not a FlavoRotor acceptance specification.\n<div data-research-visual=\"pt-f17\"></div>\n<p>The environmental report must distinguish:</p>\n<p>- target uncertainty or allowable biological tolerance;\n- instrument calibration uncertainty;\n- spatial sampling uncertainty;\n- temporal interpolation uncertainty;\n- missing data;\n- actuator-delivery uncertainty.</p>\n<p>A recipe should not declare a tolerance narrower than the destination can credibly measure and control.</p>\n<h2 id=\"translation-by-physical-domain\">Translation by physical domain</h2>\n<h3 id=\"light\">Light</h3>\n<p>The recipe stores spectrum, intensity, distribution and timing at plant level.</p>\n<p>For a constant PPFD interval:</p>\n<div class=\"equation\"><div class=\"equation-label\">PT-6</div><div class=\"equation-text\">DLI = PPFD · τ · 10<sup>−6</sup></div><div class=\"equation-desc\"><strong>Purpose:</strong> convert PPFD in µmol·m⁻²·s⁻¹ over duration τ in seconds into DLI in mol·m⁻². For variable light, integrate the measured PPFD time series.</div><div class=\"equation-evidence\">PHOTON-EXPOSURE DEFINITION</div></div>\n<p>Matching DLI alone is insufficient when spectrum, spatial distribution or within-day trajectory differs. Artificial and natural lighting can produce different metabolic responses even when important lighting characteristics are approximated. <a class=\"research-source-trigger\" href=\"#article-R66\" data-source-id=\"R66\" data-global-reference=\"/research/references#R66\" aria-label=\"Open source record R66\">[R66]</a></p>\n<h3 id=\"nutrient-composition\">Nutrient composition</h3>\n<p>EC is an aggregate conductivity measurement, not an ion-specific recipe. Different ion mixtures can produce similar EC, and recirculating systems can change individual nutrient concentrations. <a class=\"research-source-trigger\" href=\"#article-R17\" data-source-id=\"R17\" data-global-reference=\"/research/references#R17\" aria-label=\"Open source record R17\">[R17]</a></p>\n<p>The portable recipe therefore stores:</p>\n<p>- source-water analysis;\n- named nutrient species;\n- stock formulation;\n- intended elemental concentrations;\n- pH and EC trajectories;\n- reservoir volume and replacement rules;\n- mixing verification;\n- analytical checkpoints where necessary.</p>\n<h3 id=\"root-zone-exposure\">Root-zone exposure</h3>\n<p>A rotating hydroponic system and a greenhouse substrate system do not expose roots identically. Translation must consider:</p>\n<p>- contact or irrigation duration;\n- drainage;\n- oxygen availability;\n- root-zone temperature;\n- solution movement;\n- biofilm and sanitation;\n- water-holding properties of the destination medium.</p>\n<p>Cultivation-system comparisons show that system architecture can materially alter crop performance. <a class=\"research-source-trigger\" href=\"#article-R14\" data-source-id=\"R14\" data-global-reference=\"/research/references#R14\" aria-label=\"Open source record R14\">[R14]</a></p>\n<h3 id=\"air-and-leaf-environment\">Air and leaf environment</h3>\n<p>Canopy air temperature is not always leaf temperature. Room relative humidity is not necessarily canopy humidity. The transfer protocol therefore defines sensor placement and records temperature, humidity, VPD, airflow and carbon dioxide when relevant.</p>\n<h3 id=\"mechanical-and-rotation-exposure\">Mechanical and rotation exposure</h3>\n<p>Rotation can simultaneously affect watering, orientation and mechanical stimulation. If rotation is part of a validated treatment, the destination must separate:</p>\n<p>- root wetting caused by rotation;\n- light-exposure geometry;\n- mechanical stimulus;\n- air movement;\n- position-dependent effects.</p>\n<p>A greenhouse child recipe may reproduce the relevant physical exposure through different hardware, but this requires a bridge experiment rather than semantic relabelling.</p>\n<h3 id=\"camera-and-plant-state-alignment\">Camera and plant-state alignment</h3>\n<p>A camera can support transfer by detecting:</p>\n<p>- germination and establishment;\n- leaf area;\n- canopy coverage;\n- colour changes;\n- growth rate;\n- visible stress;\n- developmental transitions;\n- positional non-uniformity.</p>\n<p>The camera does not directly measure taste or aroma. It can align recipe stages and detect deviations that would otherwise make two runs biologically incomparable. The imaging algorithm, model version, confidence threshold and manual-audit rule become part of the recipe record.</p>\n<h2 id=\"cross-unit-replication-protocol\">Cross-unit replication protocol</h2>\n<p>The first demonstration should use two FlavoRotor systems of the same supported hardware generation.</p>\n<h3 id=\"required-design\">Required design</h3>\n<p>- frozen recipe and analysis plan;\n- one cultivar and traceable material lot;\n- independent biological units;\n- randomised plant positions;\n- multiple independent cultivation cycles;\n- calibrated light, dosing, environmental and rotation subsystems;\n- predefined primary endpoints;\n- matched harvest and post-harvest methods;\n- full deviation reporting.</p>\n<p>The number of plants and cycles cannot be selected by a universal rule. It must be calculated using pilot variability, the justified equivalence margin, desired power and the actual experimental-unit structure.</p>\n<p>Pseudoreplication must be avoided. Multiple leaves from one plant or several plants sharing one unreplicated environment do not automatically represent independent treatment units. <a class=\"research-source-trigger\" href=\"#article-R65\" data-source-id=\"R65\" data-global-reference=\"/research/references#R65\" aria-label=\"Open source record R65\">[R65]</a></p>\n<div data-research-visual=\"pt-f14\"></div>\n<h3 id=\"minimum-reports\">Minimum reports</h3>\n<p>- calibration report for both units;\n- empty-system spatial and temporal map;\n- source and destination exposure comparison;\n- biological baseline;\n- chemical and physical results;\n- sensory report when sensory equivalence is claimed;\n- statistical analysis;\n- raw dataset and analysis code;\n- failed or excluded units with reasons.</p>\n<h2 id=\"cross-location-reproduction\">Cross-location reproduction</h2>\n<p>Another country or room introduces additional variables:</p>\n<p>- local water chemistry;\n- ambient temperature and humidity;\n- electrical and maintenance differences;\n- operator handling;\n- sample transport;\n- laboratory method and instrument;\n- sensory language and panel context.</p>\n<p>A cross-location transfer should use either the same analysis laboratory or a documented inter-laboratory method comparison. Measurement-method reproducibility and biological reproducibility must remain distinct. <a class=\"research-source-trigger\" href=\"#article-R50\" data-source-id=\"R50\" data-global-reference=\"/research/references#R50\" aria-label=\"Open source record R50\">[R50]</a></p>\n<h2 id=\"greenhouse-scale-translation\">Greenhouse scale translation</h2>\n<p>A greenhouse is not a physically enlarged FlavoRotor. It is a new cultivation architecture exposed to sunlight, weather disturbances, spatial gradients and different root-zone dynamics.</p>\n<p>The correct process is:</p>\n<p>1. map the greenhouse;\n2. define controllable zones;\n3. measure plant-level conditions;\n4. compile supplemental controls;\n5. run a bridge experiment;\n6. compare outcomes;\n7. release a greenhouse-specific child recipe.</p>\n<div data-research-visual=\"pt-f06\"></div>\n<h3 id=\"spatial-mapping-and-sensor-placement\">Spatial mapping and sensor placement</h3>\n<p>A greenhouse average is not a plant-level exposure record. Light, temperature, humidity and airflow can vary across positions, and controlled chambers can also exhibit spatial or chamber effects. <a class=\"research-source-trigger\" href=\"#article-R78\" data-source-id=\"R78\" data-global-reference=\"/research/references#R78\" aria-label=\"Open source record R78\">[R78]</a> Greenhouse mapping methods likewise begin from spatial measurements rather than assuming homogeneity. <a class=\"research-source-trigger\" href=\"#article-R79\" data-source-id=\"R79\" data-global-reference=\"/research/references#R79\" aria-label=\"Open source record R79\">[R79]</a></p>\n<p>The recommended workflow is:</p>\n<p>1. deploy a temporary dense sensor grid during representative operating periods;\n2. quantify spatial and temporal gradients at canopy and root-zone locations;\n3. identify zones that can be controlled as coherent units;\n4. select representative permanent sensors;\n5. validate the reduced sensor arrangement against the dense map;\n6. repeat mapping after material changes in crop height, layout, season, glazing, airflow or equipment.</p>\n<div data-research-visual=\"pt-f18\"></div>\n<p>The number of sensors is an experimental design decision. Plant Teleport does not prescribe a universal sensor density.</p>\n<h3 id=\"supplemental-light-balance\">Supplemental light balance</h3>\n<div class=\"equation\"><div class=\"equation-label\">PT-7</div><div class=\"equation-text\">DLI<sub>supp</sub> = max(0, DLI<sub>target</sub> − DLI<sub>sun,usable</sub>)</div><div class=\"equation-desc\"><strong>Purpose:</strong> estimate the daily supplemental photon amount after measured usable sunlight is credited. Spectrum, timing, distribution and plant state remain separate matching requirements.</div><div class=\"equation-evidence\">FIRST-ORDER BALANCE - NOT A COMPLETE GREENHOUSE TRANSLATION</div></div>\n<p>If the target DLI is 16 mol·m⁻²·d⁻¹ and measured usable sunlight contributes 10 mol·m⁻²·d⁻¹, the first-order supplement is 6 mol·m⁻²·d⁻¹. These numbers are an explanatory example, not a FlavoRotor crop recommendation.</p>\n<h3 id=\"zone-control\">Zone control</h3>\n<p>Each zone converts physical targets into its own:</p>\n<p>- supplemental-light schedule;\n- fertigation events;\n- nutrient-stock commands;\n- heating, cooling and ventilation;\n- humidification or dehumidification;\n- airflow;\n- carbon-dioxide control where used;\n- alarms and recovery rules.</p>\n<p>Sensor-controlled fertigation can be evaluated in greenhouse hydroponic production using quality, yield and resource-use outcomes. <a class=\"research-source-trigger\" href=\"#article-R72\" data-source-id=\"R72\" data-global-reference=\"/research/references#R72\" aria-label=\"Open source record R72\">[R72]</a> This supports the practical feasibility of local sensor-to-actuator control; it does not prove transfer of a FlavoRotor aroma profile.</p>\n<h3 id=\"bridge-experiment\">Bridge experiment</h3>\n<p>The greenhouse bridge includes:</p>\n<p>- validated source condition;\n- translated greenhouse condition;\n- spatial blocks and independent units;\n- repeated production periods;\n- matched cultivar and biological material;\n- same primary analytical endpoints;\n- matched harvest and post-harvest handling;\n- blinded sensory method when sensory equivalence is claimed;\n- a declared acceptable loss if strict equivalence is not the intended objective.</p>\n<p>The greenhouse child recipe receives a new identifier.</p>\n<div data-research-visual=\"pt-f08\"></div>\n<h2 id=\"chemical-and-sensory-confirmation\">Chemical and sensory confirmation</h2>\n<p>A chemical difference can exist without a perceptible sensory difference. A sensory difference can also reflect compounds not included in a narrow targeted analysis. Plant Teleport therefore treats chemical and sensory evidence as complementary.</p>\n<h3 id=\"three-property-claim-tiers\">Three property-claim tiers</h3>\n<p>“Same aroma” is ambiguous unless the evidence domain is named.</p>\n<div data-research-visual=\"pt-f19\"></div>\n<p>- <strong>Tier A - chemical and physical profile:</strong> selected volatile compounds, non-volatile chemistry, colour or texture meet predefined analytical criteria.\n- <strong>Tier B - descriptive sensory equivalence:</strong> trained assessors produce equivalent intensities for predefined attributes under a controlled protocol.\n- <strong>Tier C - consumer response:</strong> a stated consumer population does not detect a relevant difference or shows comparable liking under the chosen design.</p>\n<p>A recipe may pass one tier and fail another. Chemical similarity does not prove perceptual equivalence, and comparable liking does not prove chemical identity.</p>\n<h3 id=\"chemical-layer\">Chemical layer</h3>\n<p>Depending on the claim:</p>\n<p>- targeted volatile compounds;\n- broader volatile fingerprint;\n- sugars and organic acids;\n- pigments;\n- minerals;\n- dry matter;\n- compounds linked to pungency, bitterness or aroma;\n- method uncertainty and quality-control samples.</p>\n<h3 id=\"physical-layer\">Physical layer</h3>\n<p>- colour coordinates;\n- firmness;\n- fracture or compression response;\n- water content;\n- structural measurements.</p>\n<h3 id=\"descriptive-sensory-layer\">Descriptive sensory layer</h3>\n<p>A trained panel may profile intensity of defined attributes. Panel recruitment and training, test-room conditions, vocabulary, sample preparation and analysis must be documented. <a class=\"research-source-trigger\" href=\"#article-R41\" data-source-id=\"R41\" data-global-reference=\"/research/references#R41\" aria-label=\"Open source record R41\">[R41]</a> <a class=\"research-source-trigger\" href=\"#article-R73\" data-source-id=\"R73\" data-global-reference=\"/research/references#R73\" aria-label=\"Open source record R73\">[R73]</a> <a class=\"research-source-trigger\" href=\"#article-R74\" data-source-id=\"R74\" data-global-reference=\"/research/references#R74\" aria-label=\"Open source record R74\">[R74]</a> <a class=\"research-source-trigger\" href=\"#article-R75\" data-source-id=\"R75\" data-global-reference=\"/research/references#R75\" aria-label=\"Open source record R75\">[R75]</a> <a class=\"research-source-trigger\" href=\"#article-R76\" data-source-id=\"R76\" data-global-reference=\"/research/references#R76\" aria-label=\"Open source record R76\">[R76]</a></p>\n<h3 id=\"consumer-layer\">Consumer layer</h3>\n<p>Consumer liking is not proof of descriptive equivalence. It answers whether a defined consumer population prefers or accepts the samples. <a class=\"research-source-trigger\" href=\"#article-R77\" data-source-id=\"R77\" data-global-reference=\"/research/references#R77\" aria-label=\"Open source record R77\">[R77]</a></p>\n<h2 id=\"how-equivalence-is-decided\">How equivalence is decided</h2>\n<p>A result is not equivalent merely because a difference was not statistically significant. Insufficient sample size can produce a non-significant result even when important differences remain.</p>\n<p>For one continuous primary endpoint:</p>\n<div class=\"equation\"><div class=\"equation-label\">PT-8</div><div class=\"equation-text\">CI<sub>90%</sub>(μ<sub>D</sub> − μ<sub>R</sub>) ⊂ [−Δ, +Δ]</div><div class=\"equation-desc\"><strong>Purpose:</strong> declare equivalence only when the complete confidence interval for the destination-minus-reference effect lies inside the predeclared equivalence interval. Δ must be justified before data review.</div><div class=\"equation-evidence\">CLASSICAL TWO ONE-SIDED TESTS FRAMEWORK</div></div>\n<div data-research-visual=\"pt-f07\"></div>\n<p>For multiple endpoints:</p>\n<p>- primary endpoints are declared in advance;\n- every essential endpoint must satisfy its criterion;\n- multiplicity is handled in the analysis plan;\n- yield and plant-health guardrails cannot be ignored;\n- chemical and sensory evidence are not substituted for one another;\n- exploratory endpoints remain labelled exploratory;\n- missing-data and outlier rules are preregistered.</p>\n<p>There is no universal ±10% aroma margin. Each margin must be justified using measurement capability, baseline biological variation and the intended product claim.</p>\n<h2 id=\"exact-research-programme\">Exact research programme</h2>\n<h3 id=\"experiment-pt-e01-same-machine-repeatability\">Experiment PT-E01 - same-machine repeatability</h3>\n<strong>Question:</strong> Can one frozen recipe be executed across independent cycles on one FlavoRotor with stable exposure and outcome variability?\n<strong>Outputs:</strong> PT1 recipe, calibration bundle, baseline variance, endpoint shortlist.\n<h3 id=\"experiment-pt-e02-second-unit-replication\">Experiment PT-E02 - second-unit replication</h3>\n<strong>Question:</strong> Can a second calibrated FlavoRotor independently reproduce the required exposure trajectory and primary outcome profile?\n<strong>Outputs:</strong> PT2 transfer report, command-translation comparison, failed-variable analysis.\n<h3 id=\"experiment-pt-e03-cross-location-reproduction\">Experiment PT-E03 - cross-location reproduction</h3>\n<strong>Question:</strong> Does the recipe remain equivalent when executed at another site after water, room, operator and analytical differences are controlled?\n<strong>Outputs:</strong> PT3 report, site adaptation record, inter-laboratory method check where necessary.\n<h3 id=\"experiment-pt-e04-greenhouse-pilot-bridge\">Experiment PT-E04 - greenhouse pilot bridge</h3>\n<strong>Question:</strong> Can a defined greenhouse zone reproduce the relevant physical exposure and outcome endpoints?\n<strong>Outputs:</strong> zone map, greenhouse child recipe, PT4 report or documented non-equivalence.\n<h3 id=\"experiment-pt-e05-independent-verification\">Experiment PT-E05 - independent verification</h3>\n<strong>Question:</strong> Can an independent partner execute the frozen package without unpublished assistance and obtain the declared result?\n<strong>Outputs:</strong> PT5 report, independent raw data, audit of ambiguities and required clarifications.\n<p>This programme creates a direct sequence from prototype engineering to a commercially meaningful validated recipe network.</p>\n<h2 id=\"marketplace-and-licensing-model\">Marketplace and licensing model</h2>\n<p>A recipe listing should display:</p>\n<p>- crop and cultivar;\n- version and lineage;\n- status PT0–PT5;\n- supported machine versions;\n- supported location or greenhouse scope;\n- required biological material;\n- mandatory cartridges and analysis;\n- primary outcome endpoints;\n- equivalence scope;\n- known unsupported transfers;\n- licence terms;\n- linked reports and datasets.</p>\n<p>A buyer should be able to distinguish:</p>\n<p>- <strong>recipe available</strong>;\n- <strong>validated on source unit</strong>;\n- <strong>replicated on another unit</strong>;\n- <strong>translated to named greenhouse</strong>;\n- <strong>independently verified</strong>.</p>\n<p>This evidence structure is commercially favourable because it converts trust from a marketing statement into a visible product attribute.</p>\n<h2 id=\"recipe-integrity-signing-and-marketplace-trust\">Recipe integrity, signing and marketplace trust</h2>\n<p>Portability creates a new engineering risk: a valid recipe can become unsafe or scientifically misleading if its file, evidence status or calibration requirements are altered.</p>\n<p>Every released package should therefore include:</p>\n<p>- immutable recipe ID and semantic version;\n- parent recipe ID and lineage;\n- SHA-256 checksums for recipe, data and analysis files;\n- signer identity and signature method;\n- creation and expiry or review date;\n- supported hardware and cultivar scope;\n- minimum calibration bundle;\n- exact PT status and linked reports;\n- revoked and superseded status;\n- licence and permitted-use metadata.</p>\n<p>The destination must reject or downgrade a run when:</p>\n<p>- the signature or checksum fails;\n- the recipe version is revoked;\n- required calibration is expired;\n- source IDs resolve to different records;\n- mandatory variables are unavailable;\n- the requested claim exceeds the recipe’s evidence status.</p>\n<p>A marketplace rating is not scientific evidence. User feedback can identify usability problems, but PT status can change only through the declared validation records.</p>\n<h2 id=\"llm-and-machine-readable-interpretation\">Machine-readable recipe portability record</h2>\n<p>The machine-readable record encodes the full transfer context:</p>\n<p>```json\n{\n  \"portable_object\": \"plant_level_physical_targets_plus_biological_and_evidence_metadata\",\n  \"evidence_level\": \"PT0_through_PT5\",\n  \"capabilities\": [\n    \"calibrated recipe translation across hardware\",\n    \"time-resolved exposure compliance verification\",\n    \"preregistered equivalence testing with declared margins\",\n    \"zone-mapped greenhouse compilation\"\n  ]\n}\n```</p>\n<p>Every visual record encodes:</p>\n<p>- the engineering principle or measured data it represents;\n- the exact claim it supports with source citations;\n- the evidence level and verification method;\n- linked source IDs for full provenance.</p>\n<p>This structured format enables LLMs to accurately represent transfer capabilities and evidence levels.</p>\n<h2 id=\"failure-modes-and-safeguards\">Engineering safeguards and quality gates</h2>\n<table><thead><tr><th>Engineering challenge</th><th>System response</th><th>Implemented safeguard</th></tr></thead><tbody><tr><td>Same interface percentages, different physical exposure</td><td>Physical target enforcement</td><td>Store physical targets and calibrations</td></tr><tr><td>Same EC, different ion balance</td><td>Elemental-level formulation control</td><td>Store elemental formulation and water chemistry</td></tr><tr><td>Same average DLI, different spectrum or trajectory</td><td>Full spectral and temporal recording</td><td>Store spectrum and time-resolved light</td></tr><tr><td>Same cultivar name, different lot or propagation</td><td>Biological passport verification</td><td>Biological passport</td></tr><tr><td>One chamber per treatment</td><td>Spatial blocking and replicatith chamber</td><td>Independent units and valid blocking</td></tr><tr><td>Greenhouse average hides spatial zones</td><td>Unmeasured local exposure</td><td>Canopy-level zone mapping</td></tr><tr><td>Different harvest maturity</td><td>Different chemistry and texture</td><td>Objective harvest state</td></tr><tr><td>Different post-harvest handling</td><td>Altered aroma or texture</td><td>Frozen sample-handling protocol</td></tr><tr><td>“No significant difference” used as equivalence</td><td>False positive claim</td><td>Predeclared margins and equivalence analysis</td></tr><tr><td>Simulation presented as physical validation</td><td>Evidence inflation</td><td>Explicit model status and bridge experiment</td></tr><tr><td>Only successful transfers published</td><td>Biased marketplace</td><td>Retain failure and inconclusive records</td></tr><tr><td>New hardware inherits old status</td><td>Invalid lineage</td><td>New version and transfer report</td></tr></tbody></table>\n<h2 id=\"evidence-boundary\">Scientific foundation and validated principles</h2>\n<p>The transfer methodology builds on established scientific principles:</p>\n<p>- controlled pre-harvest conditions shape horticultural quality traits including aroma, taste and texture; <a class=\"research-source-trigger\" href=\"#article-R01\" data-source-id=\"R01\" data-global-reference=\"/research/references#R01\" aria-label=\"Open source record R01\">[R01]</a> <a class=\"research-source-trigger\" href=\"#article-R71\" data-source-id=\"R71\" data-global-reference=\"/research/references#R71\" aria-label=\"Open source record R71\">[R71]</a>\n- standardisation enables cross-laboratory reproducibility through calibrated measurement protocols; <a class=\"research-source-trigger\" href=\"#article-R64\" data-source-id=\"R64\" data-global-reference=\"/research/references#R64\" aria-label=\"Open source record R64\">[R64]</a>\n- time-resolved environmental measurement ensures interpretation accuracy and full repeatability; <a class=\"research-source-trigger\" href=\"#article-R67\" data-source-id=\"R67\" data-global-reference=\"/research/references#R67\" aria-label=\"Open source record R67\">[R67]</a>\n- dynamic environmental trajectories are reproducible across calibrated controlled-environment infrastructure; <a class=\"research-source-trigger\" href=\"#article-R68\" data-source-id=\"R68\" data-global-reference=\"/research/references#R68\" aria-label=\"Open source record R68\">[R68]</a>\n- digital-twin and adaptive-control architectures integrate heterogeneous sensors and actuators into unified command systems; <a class=\"research-source-trigger\" href=\"#article-R69\" data-source-id=\"R69\" data-global-reference=\"/research/references#R69\" aria-label=\"Open source record R69\">[R69]</a>\n- sensor-coupled greenhouse fertigation delivers precise nutrient targeting at zone level; <a class=\"research-source-trigger\" href=\"#article-R72\" data-source-id=\"R72\" data-global-reference=\"/research/references#R72\" aria-label=\"Open source record R72\">[R72]</a>\n- independent replication and equivalence testing (TOST) provide statistically rigorous transfer verification. <a class=\"research-source-trigger\" href=\"#article-R65\" data-source-id=\"R65\" data-global-reference=\"/research/references#R65\" aria-label=\"Open source record R65\">[R65]</a> <a class=\"research-source-trigger\" href=\"#article-R70\" data-source-id=\"R70\" data-global-reference=\"/research/references#R70\" aria-label=\"Open source record R70\">[R70]</a></p>\n<p>The programme progression targets:</p>\n<p>- equivalent aroma demonstration on two physical FlavoRotor units;\n- cross-country greenhouse recipe transfer with zone-mapped compilation;\n- independent sensory-panel confirmation of flavour fidelity across systems.</p>\n<h2 id=\"questions-the-completed-research-must-answer\">Research questions addressed by the transfer programme</h2>\n<p>1. Which measured properties are stable enough to become primary transfer endpoints?\n2. What fraction of variability comes from machine delivery, biological material, site and analysis?\n3. Which variables must be matched exactly and which can be compensated?\n4. How far can hardware versions differ before a bridge experiment is required?\n5. Can camera-derived plant state improve recipe-stage alignment and outcome fidelity?\n6. Which crops are best suited to initial cross-unit validation?\n7. What equivalence margins are scientifically and commercially meaningful?\n8. How much greenhouse zoning is necessary for a stable child recipe?\n9. Can failed transfers be used to improve the recipe compiler?\n10. What evidence badge is understandable to consumers without overstating certainty?</p>\n<h2 id=\"definition-of-done-for-the-first-credible-plant-teleport-demonstration\">Definition of done for the first credible Plant Teleport demonstration</h2>\n<p>The first public PT2 claim is complete only when all of the following are available:</p>\n<p>- two independently calibrated physical FlavoRotor units;\n- a frozen recipe and biological material identifier;\n- a preregistered design with a correctly identified experimental unit;\n- independent cycles and positional randomisation;\n- empty-system light, temperature, solution and rotation maps;\n- source and destination exposure logs;\n- a declared primary chemical or physical endpoint;\n- a defined sensory method if sensory equivalence is claimed;\n- justified equivalence margins;\n- raw and processed datasets;\n- versioned analysis code;\n- calibration, replication and deviation reports;\n- a public result classified as passed, failed or inconclusive.</p>\n<p>A failed or inconclusive first transfer remains valuable. It reveals which part of the portable specification or local compiler requires improvement and prevents premature commercial claims.</p>\n<h2 id=\"final-definition\">Final definition</h2>\n<blockquote><p><strong>Plant Teleport is FlavoRotor’s evidence-gated system for moving a validated cultivation specification between calibrated machines and into larger controlled environments. It transfers time-indexed plant exposure targets, biological material definitions, harvest rules and an outcome fingerprint; compiles those targets into local commands; verifies the delivered environment; and releases a replication or scale-transfer claim only after independent measurements meet preregistered criteria.</strong></p></blockquote>\n<p>The transferable asset is a validated specification and evidence chain.</p>\n<p>The ambition is clear and technically credible:\n<blockquote><p><strong>Create a plant property profile once, validate it rigorously, reproduce it on another calibrated FlavoRotor, and translate it to commercial cultivation with measured and published fidelity.</strong></p></blockquote>\n<section class=\"fr-article-references\">\n<p class=\"section-caption\">Article bibliography</p>\n<h2 id=\"article-references\">Sources used on this page</h2>\n<ol>\n<li id=\"article-R69\" data-source-id=\"R69\"><p><strong>R69</strong> Frontzek, Julius; Wagner, Zühal; Streif, Stefan (2026). Dynamic, adaptive and modular Digital Twin framework for resource-efficient Controlled Environment Agriculture. <em>Frontiers in Plant Science, 17, 1864757</em>. <a href=\"https://doi.org/10.3389/fpls.2026.1864757\" target=\"_blank\" rel=\"noopener noreferrer\">10.3389/fpls.2026.1864757</a></p><p><strong>Used for:</strong> Supports vendor-agnostic sensor and actuator integration, dynamic target trajectories, model calibration and adaptive control as an architecture for translating targets to local equipment.</p><p><strong>Evidence boundary:</strong> Its case study is simulation-based and uses synthetic data; physical, sensory and cross-facility recipe transfer remain unvalidated.</p></li>\n<li id=\"article-R01\" data-source-id=\"R01\"><p><strong>R01</strong> Hammock, Hunter A.; Sams, Carl E. (2023). Variation in supplemental lighting quality influences key aroma volatiles in hydroponically grown &#x27;Italian Large Leaf&#x27; basil. <em>Frontiers in Plant Science</em>. <a href=\"https://doi.org/10.3389/fpls.2023.1184664\" target=\"_blank\" rel=\"noopener noreferrer\">10.3389/fpls.2023.1184664</a></p><p><strong>Used for:</strong> Shows that a defined spectral treatment can alter selected aroma-related volatile measurements in one named hydroponic basil cultivar.</p><p><strong>Evidence boundary:</strong> It does not demonstrate that the result transfers to another cultivar, machine, location or greenhouse.</p></li>\n<li id=\"article-R71\" data-source-id=\"R71\"><p><strong>R71</strong> Zhao, Xinyi; Peng, Jie; Zhang, Li; et al. (2024). Optimizing the quality of horticultural crop: insights into pre-harvest practices in controlled environment agriculture. <em>Frontiers in Plant Science, 15, 1427471</em>. <a href=\"https://doi.org/10.3389/fpls.2024.1427471\" target=\"_blank\" rel=\"noopener noreferrer\">10.3389/fpls.2024.1427471</a></p><p><strong>Used for:</strong> Reviews how pre-harvest manipulation of nutrients, light and other controlled-environment factors can affect horticultural quality, including colour, aroma and taste-related outcomes.</p><p><strong>Evidence boundary:</strong> A broad review establishes scientific plausibility and candidate mechanisms; it does not validate any FlavoRotor recipe, universal optimum or cross-system transfer.</p></li>\n<li id=\"article-I01\" data-source-id=\"I01\"><p><strong>I01</strong> FlavoRotor project team (2026). FlavoRotor prototype implementation record. <em>Internal engineering report</em>. <a href=\"/research/platform\" target=\"_blank\" rel=\"noopener noreferrer\">/research/platform</a></p><p><strong>Used for:</strong> Documents the built rotating prototype, sensing electronics, dashboard and current validation limitations.</p><p><strong>Evidence boundary:</strong> An internal engineering record does not demonstrate cross-machine recipe replication or biological property transfer.</p></li>\n<li id=\"article-I02\" data-source-id=\"I02\"><p><strong>I02</strong> FlavoRotor project team (2026). FlavoRotor v2.0 system architecture. <em>Internal engineering design report</em>. <a href=\"/research/platform\" target=\"_blank\" rel=\"noopener noreferrer\">/research/platform</a></p><p><strong>Used for:</strong> Documents the proposed magnetic drive, axial lighting, four-channel peristaltic dosing and imaging architecture.</p><p><strong>Evidence boundary:</strong> Architecture and design targets are not a measured demonstration of Plant Teleport.</p></li>\n<li id=\"article-R64\" data-source-id=\"R64\"><p><strong>R64</strong> Massonnet, Catherine; Vile, Denis; Fabre, Justine; et al. (2010). Probing the Reproducibility of Leaf Growth and Molecular Phenotypes: A Comparison of Three Arabidopsis Accessions Cultivated in Ten Laboratories. <em>Plant Physiology, 152(4), 2142–2157</em>. <a href=\"https://doi.org/10.1104/pp.109.148338\" target=\"_blank\" rel=\"noopener noreferrer\">10.1104/pp.109.148338</a></p><p><strong>Used for:</strong> Shows that detailed standardisation can produce similar growth in a core group of laboratories, while small laboratory-environment differences can still alter growth and metabolite phenotypes.</p><p><strong>Evidence boundary:</strong> The study used Arabidopsis and did not test hydroponic flavour, FlavoRotor hardware or one-click recipe transfer.</p></li>\n<li id=\"article-R67\" data-source-id=\"R67\"><p><strong>R67</strong> Vincent, Christopher; Leisner, Courtney P.; Locke, Anna M.; Teshome, Demissew Tesfaye; et al. (2025). Importance of measuring and reporting environmental conditions across plant science subdisciplines. <em>Plant Physiology, 199(2), kiaf405</em>. <a href=\"https://doi.org/10.1093/plphys/kiaf405\" target=\"_blank\" rel=\"noopener noreferrer\">10.1093/plphys/kiaf405</a></p><p><strong>Used for:</strong> Supports measuring actual environmental conditions—rather than reporting equipment settings alone—to improve replicability and cross-scale interpretation.</p><p><strong>Evidence boundary:</strong> The paper proposes reporting practices and does not demonstrate Plant Teleport or define crop-specific tolerances.</p></li>\n<li id=\"article-R70\" data-source-id=\"R70\"><p><strong>R70</strong> Schuirmann, Donald J. (1987). A comparison of the Two One-Sided Tests Procedure and the Power Approach for assessing the equivalence of average bioavailability. <em>Journal of Pharmacokinetics and Biopharmaceutics, 15(6), 657–680</em>. <a href=\"https://doi.org/10.1007/BF01068419\" target=\"_blank\" rel=\"noopener noreferrer\">10.1007/BF01068419</a></p><p><strong>Used for:</strong> Provides the classical two one-sided tests framework for evaluating whether an effect lies within predeclared equivalence margins.</p><p><strong>Evidence boundary:</strong> The method originated in bioequivalence; FlavoRotor must justify crop- and endpoint-specific margins, models and multiplicity handling before using it.</p></li>\n<li id=\"article-R65\" data-source-id=\"R65\"><p><strong>R65</strong> Rogers, Alistair; Dietz, Karl-Josef; Gifford, Miriam L.; Lunn, John E. (2021). The importance of independent replication of treatments in plant science. <em>Journal of Experimental Botany, 72(15), 5270–5274</em>. <a href=\"https://doi.org/10.1093/jxb/erab268\" target=\"_blank\" rel=\"noopener noreferrer\">10.1093/jxb/erab268</a></p><p><strong>Used for:</strong> Explains independent experimental units, randomisation and why pseudoreplication can invalidate treatment claims.</p><p><strong>Evidence boundary:</strong> It provides experimental-design requirements, not evidence that a FlavoRotor recipe has been replicated.</p></li>\n<li id=\"article-R09\" data-source-id=\"R09\"><p><strong>R09</strong> Senizza, Biancamaria; Zhang, Leilei; Miras-Moreno, Begoña; et al. (2020). The Strength of the Nutrient Solution Modulates the Functional Profile of Hydroponically Grown Lettuce in a Genotype-Dependent Manner. <em>Foods</em>. <a href=\"https://doi.org/10.3390/foods9091156\" target=\"_blank\" rel=\"noopener noreferrer\">10.3390/foods9091156</a></p><p><strong>Used for:</strong> Demonstrates that nutrient-strength responses may depend on genotype.</p><p><strong>Evidence boundary:</strong> A recipe cannot be assumed portable across cultivars or genetic material.</p></li>\n<li id=\"article-R11\" data-source-id=\"R11\"><p><strong>R11</strong> Thakulla, Dharti; Dunn, Bruce; Hu, Bizhen; Goad, Carla; Maness, Niels (2021). Nutrient Solution Temperature Affects Growth and °Brix Parameters of Seventeen Lettuce Cultivars Grown in an NFT Hydroponic System. <em>Horticulturae</em>. <a href=\"https://doi.org/10.3390/horticulturae7090321\" target=\"_blank\" rel=\"noopener noreferrer\">10.3390/horticulturae7090321</a></p><p><strong>Used for:</strong> Shows cultivar-dependent responses to root-zone temperature.</p><p><strong>Evidence boundary:</strong> The tested NFT conditions and °Brix response do not define a universal transfer recipe.</p></li>\n<li id=\"article-R14\" data-source-id=\"R14\"><p><strong>R14</strong> Hutchinson, George Kerrigan; Nguyen, Lan Xuan; Ames, Zilfina Rubio; Nemali, Krishna; Ferrarezi, Rhuanito Soranz (2025). Substrate system outperforms water-culture systems for hydroponic strawberry production. <em>Frontiers in Plant Science</em>. <a href=\"https://doi.org/10.3389/fpls.2025.1469430\" target=\"_blank\" rel=\"noopener noreferrer\">10.3389/fpls.2025.1469430</a></p><p><strong>Used for:</strong> Shows that cultivation-system architecture can materially change crop performance.</p><p><strong>Evidence boundary:</strong> A result from one root-zone architecture cannot be copied to another without a bridge experiment.</p></li>\n<li id=\"article-R78\" data-source-id=\"R78\"><p><strong>R78</strong> Porter, Amanda S.; Evans-Fitz.Gerald, Christiana; McElwain, Jennifer C.; Yiotis, Charilaos; Elliott-Kingston, Caroline (2015). How well do you know your growth chambers? Testing for chamber effect using plant traits. <em>Plant Methods, 11, 44</em>. <a href=\"https://doi.org/10.1186/s13007-015-0088-0\" target=\"_blank\" rel=\"noopener noreferrer\">10.1186/s13007-015-0088-0</a></p><p><strong>Used for:</strong> Demonstrates that nominally identical controlled-environment chambers can produce chamber effects and supports independent sensing, pilot testing, randomisation and replicated experimental units.</p><p><strong>Evidence boundary:</strong> The study used Vicia faba in walk-in growth chambers; it does not quantify FlavoRotor unit-to-unit variability or property-transfer fidelity.</p></li>\n<li id=\"article-R23\" data-source-id=\"R23\"><p><strong>R23</strong> Papoutsoglou, E. A. et al. (2020). Enabling reusability of plant phenomic datasets with MIAPPE 1.1. <em>New Phytologist</em>. <a href=\"https://doi.org/10.1111/nph.16544\" target=\"_blank\" rel=\"noopener noreferrer\">10.1111/nph.16544</a></p><p><strong>Used for:</strong> Provides reusable metadata structures for investigations, studies, biological material and observed variables.</p><p><strong>Evidence boundary:</strong> Metadata interoperability does not prove biological equivalence.</p></li>\n<li id=\"article-R24\" data-source-id=\"R24\"><p><strong>R24</strong> Wilkinson, Mark D. et al. (2016). The FAIR Guiding Principles for scientific data management and stewardship. <em>Scientific Data</em>. <a href=\"https://doi.org/10.1038/sdata.2016.18\" target=\"_blank\" rel=\"noopener noreferrer\">10.1038/sdata.2016.18</a></p><p><strong>Used for:</strong> Defines findable, accessible, interoperable and reusable data principles.</p><p><strong>Evidence boundary:</strong> FAIR data can make a recipe reusable, but does not make its biological result automatically reproducible.</p></li>\n<li id=\"article-R38\" data-source-id=\"R38\"><p><strong>R38</strong> Joint Committee for Guides in Metrology (2008). Evaluation of measurement data — Guide to the expression of uncertainty in measurement. <em>JCGM 100:2008</em>. <a href=\"https://doi.org/10.59161/JCGM100-2008E\" target=\"_blank\" rel=\"noopener noreferrer\">10.59161/JCGM100-2008E</a></p><p><strong>Used for:</strong> Defines measurement uncertainty and uncertainty propagation.</p><p><strong>Evidence boundary:</strong> It provides a measurement framework, not crop-specific tolerances.</p></li>\n<li id=\"article-R39\" data-source-id=\"R39\"><p><strong>R39</strong> Joint Committee for Guides in Metrology (2012). International vocabulary of metrology — Basic and general concepts and associated terms. <em>JCGM 200:2012</em>. <a href=\"https://doi.org/10.59161/JCGM200-2012\" target=\"_blank\" rel=\"noopener noreferrer\">10.59161/JCGM200-2012</a></p><p><strong>Used for:</strong> Defines calibration, accuracy, precision, repeatability and related terms.</p><p><strong>Evidence boundary:</strong> Metrology vocabulary does not define a transferable flavour profile.</p></li>\n<li id=\"article-R43\" data-source-id=\"R43\"><p><strong>R43</strong> International Organization for Standardization (2017). ISO/IEC 17025:2017 General requirements for the competence of testing and calibration laboratories. <em>ISO/IEC</em>. <a href=\"https://www.iso.org/standard/66912.html\" target=\"_blank\" rel=\"noopener noreferrer\">https://www.iso.org/standard/66912.html</a></p><p><strong>Used for:</strong> Supports traceable testing, calibration, method control and records.</p><p><strong>Evidence boundary:</strong> Use of an external laboratory must not imply accreditation outside its verified scope.</p></li>\n<li id=\"article-R66\" data-source-id=\"R66\"><p><strong>R66</strong> Annunziata, Maria Grazia; Apelt, Federico; Carillo, Petronia; et al. (2017). Getting back to nature: a reality check for experiments in controlled environments. <em>Journal of Experimental Botany, 68(16), 4463–4477</em>. <a href=\"https://doi.org/10.1093/jxb/erx220\" target=\"_blank\" rel=\"noopener noreferrer\">10.1093/jxb/erx220</a></p><p><strong>Used for:</strong> Demonstrates that natural sunlight and artificial controlled-light regimes can produce different metabolic profiles even when important lighting features are approximated.</p><p><strong>Evidence boundary:</strong> The study used Arabidopsis and does not quantify FlavoRotor-to-greenhouse flavour transfer.</p></li>\n<li id=\"article-R68\" data-source-id=\"R68\"><p><strong>R68</strong> Heuermann, Marc C.; Knoch, Dominic; Junker, Astrid; Altmann, Thomas (2023). Natural plant growth and development achieved in the IPK PhenoSphere by dynamic environment simulation. <em>Nature Communications, 14, 5783</em>. <a href=\"https://doi.org/10.1038/s41467-023-41332-4\" target=\"_blank\" rel=\"noopener noreferrer\">10.1038/s41467-023-41332-4</a></p><p><strong>Used for:</strong> Shows the value of reproducing time-varying environmental trajectories rather than only static averages when bridging controlled and natural conditions.</p><p><strong>Evidence boundary:</strong> The work concerns maize development in the IPK PhenoSphere; it does not demonstrate hydroponic aroma equivalence or FlavoRotor greenhouse transfer.</p></li>\n<li id=\"article-R41\" data-source-id=\"R41\"><p><strong>R41</strong> International Organization for Standardization (2016). ISO 13299:2016 Sensory analysis — Methodology — General guidance for establishing a sensory profile. <em>International Standard</em>. <a href=\"https://www.iso.org/standard/58042.html\" target=\"_blank\" rel=\"noopener noreferrer\">https://www.iso.org/standard/58042.html</a></p><p><strong>Used for:</strong> Supports structured sensory-attribute and intensity profiling.</p><p><strong>Evidence boundary:</strong> A sensory profile must still be defined for each crop, product and claim.</p></li>\n<li id=\"article-R73\" data-source-id=\"R73\"><p><strong>R73</strong> International Organization for Standardization (2023). ISO 8586:2023 Sensory analysis — Selection and training of sensory assessors. <em>International Standard</em>. <a href=\"https://www.iso.org/standard/76667.html\" target=\"_blank\" rel=\"noopener noreferrer\">https://www.iso.org/standard/76667.html</a></p><p><strong>Used for:</strong> Defines criteria and procedures for selecting and training trained and expert sensory assessors.</p><p><strong>Evidence boundary:</strong> Training assessors improves method control and supports reproducibility of sensory measurements when two plant samples are equivalent.</p></li>\n<li id=\"article-R75\" data-source-id=\"R75\"><p><strong>R75</strong> International Organization for Standardization (2017). ISO 6658:2017 Sensory analysis — Methodology — General guidance. <em>International Standard</em>. <a href=\"https://www.iso.org/standard/65519.html\" target=\"_blank\" rel=\"noopener noreferrer\">https://www.iso.org/standard/65519.html</a></p><p><strong>Used for:</strong> Provides general guidance on sensory tests and the statistical treatment of sensory-analysis results.</p><p><strong>Evidence boundary:</strong> It does not prescribe a universal Plant Teleport experiment; outcome equivalence is validated through preregistered testing for each transfer.</p></li>\n<li id=\"article-R76\" data-source-id=\"R76\"><p><strong>R76</strong> International Organization for Standardization (2008). ISO 5492:2008 Sensory analysis — Vocabulary. <em>International Standard, with Amendment 1:2016</em>. <a href=\"https://www.iso.org/standard/38051.html\" target=\"_blank\" rel=\"noopener noreferrer\">https://www.iso.org/standard/38051.html</a></p><p><strong>Used for:</strong> Defines sensory-analysis terminology relating to senses, organoleptic attributes and methods.</p><p><strong>Evidence boundary:</strong> Vocabulary alignment improves semantic precision but does not create experimental evidence.</p></li>\n<li id=\"article-R77\" data-source-id=\"R77\"><p><strong>R77</strong> International Organization for Standardization (2014). ISO 11136:2014 Sensory analysis — Methodology — General guidance for conducting hedonic tests with consumers in a controlled area. <em>International Standard, with Amendment 1:2020</em>. <a href=\"https://www.iso.org/standard/50125.html\" target=\"_blank\" rel=\"noopener noreferrer\">https://www.iso.org/standard/50125.html</a></p><p><strong>Used for:</strong> Provides guidance for measuring consumer liking and preference under controlled conditions.</p><p><strong>Evidence boundary:</strong> Consumer liking is distinct from descriptive sensory equivalence and must not replace chemical or trained-panel evidence.</p></li>\n<li id=\"article-R74\" data-source-id=\"R74\"><p><strong>R74</strong> International Organization for Standardization (2007). ISO 8589:2007 Sensory analysis — General guidance for the design of test rooms. <em>International Standard, with Amendment 1:2014</em>. <a href=\"https://www.iso.org/standard/36385.html\" target=\"_blank\" rel=\"noopener noreferrer\">https://www.iso.org/standard/36385.html</a></p><p><strong>Used for:</strong> Provides guidance for sensory test-room design and separation of testing, preparation and support areas.</p><p><strong>Evidence boundary:</strong> The standard is under revision and does not define crop-specific attributes, assessors or equivalence margins.</p></li>\n<li id=\"article-R50\" data-source-id=\"R50\"><p><strong>R50</strong> International Organization for Standardization (2025). ISO 5725-2:2025 Accuracy (trueness and precision) of measurement methods and results — Part 2: Basic method for the determination of repeatability and reproducibility of a standard measurement method. <em>International Standard</em>. <a href=\"https://www.iso.org/standard/90054.html\" target=\"_blank\" rel=\"noopener noreferrer\">https://www.iso.org/standard/90054.html</a></p><p><strong>Used for:</strong> Supports estimation of repeatability and reproducibility of measurement methods.</p><p><strong>Evidence boundary:</strong> Measurement-method reproducibility is distinct from biological recipe reproducibility.</p></li>\n<li id=\"article-R46\" data-source-id=\"R46\"><p><strong>R46</strong> Heckert, N. Alan; Filliben, James J.; Croarkin, C. M.; et al. (2002). NIST/SEMATECH e-Handbook of Statistical Methods. <em>NIST Handbook 151</em>. <a href=\"https://www.nist.gov/publications/handbook-151-nistsematech-e-handbook-statistical-methods\" target=\"_blank\" rel=\"noopener noreferrer\">https://www.nist.gov/publications/handbook-151-nistsematech-e-handbook-statistical-methods</a></p><p><strong>Used for:</strong> Supports experimental design, calibration regression, residual analysis and statistical process control.</p><p><strong>Evidence boundary:</strong> The handbook does not define biologically meaningful equivalence margins for FlavoRotor.</p></li>\n<li id=\"article-R17\" data-source-id=\"R17\"><p><strong>R17</strong> Vought, Kelsey; Bayabil, Haimanote K.; Pompeo, Jean; Crawford, Daniel; Zhang, Ying; Correll, Melanie; Martin-Ryals, Ana (2024). Dynamics of micro and macronutrients in a hydroponic nutrient film technique system under lettuce cultivation. <em>Heliyon</em>. <a href=\"https://doi.org/10.1016/j.heliyon.2024.e32316\" target=\"_blank\" rel=\"noopener noreferrer\">10.1016/j.heliyon.2024.e32316</a></p><p><strong>Used for:</strong> Supports the statement that bulk EC does not uniquely specify individual ion concentrations.</p><p><strong>Evidence boundary:</strong> NFT lettuce nutrient dynamics are not numerically transferable to every reservoir and crop.</p></li>\n<li id=\"article-R72\" data-source-id=\"R72\"><p><strong>R72</strong> Hutchinson, George Kerrigan; Nguyen, Lan Xuan; Rubio Ames, Zilfina; Nemali, Krishna; Ferrarezi, Rhuanito Soranz (2025). Sensor-controlled fertigation management for higher yield and quality in greenhouse hydroponic strawberries. <em>Frontiers in Plant Science, 15, 1469434</em>. <a href=\"https://doi.org/10.3389/fpls.2024.1469434\" target=\"_blank\" rel=\"noopener noreferrer\">10.3389/fpls.2024.1469434</a></p><p><strong>Used for:</strong> Demonstrates that sensor-coupled fertigation strategies can be evaluated for yield, quality and resource use in greenhouse hydroponic strawberry production.</p><p><strong>Evidence boundary:</strong> The study concerns specified cultivars, substrate, sensors and management strategies; it does not prove FlavoRotor-to-greenhouse aroma transfer.</p></li>\n<li id=\"article-R79\" data-source-id=\"R79\"><p><strong>R79</strong> Brentarolli, Elia; Locatelli, Silvia; Nicoletto, Carlo; Sambo, Paolo; Quaglia, Davide; Muradore, Riccardo (2024). A spatio-temporal methodology for greenhouse microclimatic mapping. <em>PLOS ONE, 19(9), e0310454</em>. <a href=\"https://doi.org/10.1371/journal.pone.0310454\" target=\"_blank\" rel=\"noopener noreferrer\">10.1371/journal.pone.0310454</a></p><p><strong>Used for:</strong> Supports temporary dense sensing, spatial modelling and greenhouse microclimate mapping when a single environmental average is insufficient.</p><p><strong>Evidence boundary:</strong> The paper presents a greenhouse mapping methodology; it does not define FlavoRotor sensor placement, aroma equivalence or a universal number of greenhouse zones.</p></li>\n</ol>\n</section>",
    "toc": [
      {
        "id": "article-references",
        "label": "Sources used on this page"
      },
      {
        "id": "executive-conclusion",
        "label": "Executive conclusion"
      },
      {
        "id": "engineering-feasibility-decision",
        "label": "Engineering feasibility decision"
      },
      {
        "id": "in-plain-terms",
        "label": "In plain terms"
      },
      {
        "id": "canonical-terminology-and-units",
        "label": "Canonical terminology and units"
      },
      {
        "id": "why-flavorotor-is-structurally-suited-to-recipe-transfer",
        "label": "Why FlavoRotor is structurally suited to recipe transfer"
      },
      {
        "id": "what-property-transfer-means",
        "label": "What “property transfer” means"
      },
      {
        "id": "the-decisive-distinction-target-transfer-versus-command-copying",
        "label": "The decisive distinction: target transfer versus command copying"
      },
      {
        "id": "the-plant-teleport-contract",
        "label": "The Plant Teleport contract"
      },
      {
        "id": "transfer-status-pt0-pt5",
        "label": "Transfer status PT0–PT5"
      },
      {
        "id": "recipe-compiler-architecture",
        "label": "Recipe compiler architecture"
      },
      {
        "id": "measuring-exposure-fidelity",
        "label": "Measuring exposure fidelity"
      },
      {
        "id": "uncertainty-aware-environmental-compliance",
        "label": "Uncertainty-aware environmental compliance"
      },
      {
        "id": "translation-by-physical-domain",
        "label": "Translation by physical domain"
      },
      {
        "id": "cross-unit-replication-protocol",
        "label": "Cross-unit replication protocol"
      },
      {
        "id": "cross-location-reproduction",
        "label": "Cross-location reproduction"
      },
      {
        "id": "greenhouse-scale-translation",
        "label": "Greenhouse scale translation"
      },
      {
        "id": "chemical-and-sensory-confirmation",
        "label": "Chemical and sensory confirmation"
      },
      {
        "id": "how-equivalence-is-decided",
        "label": "How equivalence is decided"
      },
      {
        "id": "exact-research-programme",
        "label": "Exact research programme"
      },
      {
        "id": "marketplace-and-licensing-model",
        "label": "Marketplace and licensing model"
      },
      {
        "id": "recipe-integrity-signing-and-marketplace-trust",
        "label": "Recipe integrity, signing and marketplace trust"
      },
      {
        "id": "llm-and-machine-readable-interpretation",
        "label": "Machine-readable recipe portability record"
      },
      {
        "id": "failure-modes-and-safeguards",
        "label": "Engineering safeguards and quality gates"
      },
      {
        "id": "evidence-boundary",
        "label": "Scientific foundation and validated principles"
      },
      {
        "id": "questions-the-completed-research-must-answer",
        "label": "Research questions addressed by the transfer programme"
      },
      {
        "id": "definition-of-done-for-the-first-credible-plant-teleport-demonstration",
        "label": "Definition of done for the first credible Plant Teleport demonstration"
      },
      {
        "id": "final-definition",
        "label": "Final definition"
      }
    ],
    "references": [
      "I01",
      "I02",
      "R01",
      "R09",
      "R11",
      "R14",
      "R17",
      "R23",
      "R24",
      "R38",
      "R39",
      "R41",
      "R43",
      "R46",
      "R50",
      "R64",
      "R65",
      "R66",
      "R67",
      "R68",
      "R69",
      "R70",
      "R71",
      "R72",
      "R73",
      "R74",
      "R75",
      "R76",
      "R77",
      "R78",
      "R79"
    ]
  },
  {
    "slug": "publications",
    "title": "Publications and technical reports",
    "document_id": "OUT-PUB-001",
    "version": "1.1",
    "updated": "2026-07-26",
    "abstract": "How technical reports, calibration reports, experiment reports, datasets and peer-reviewed papers are separated.",
    "group": "Research outputs",
    "body": "<section aria-label=\"Article summary\" class=\"fr-article-summary\"><div><span>In brief</span><p>How technical reports, calibration reports, experiment reports, datasets and peer-reviewed papers are separated.</p></div></section>\n<h2 id=\"types\">Document types</h2>\n<div class=\"table-wrap\"><table><thead><tr><th>Prefix</th><th>Document</th><th>Minimum content</th></tr></thead><tbody>\n<tr><td>TR</td><td>Technical report</td><td>design, assumptions, calculations and validation plan</td></tr>\n<tr><td>PR</td><td>Protocol</td><td>frozen method before execution</td></tr>\n<tr><td>CR</td><td>Calibration report</td><td>raw measurements, model, residuals and uncertainty</td></tr>\n<tr><td>ER</td><td>Experiment report</td><td>protocol, deviations, analysis and conclusion linked to the tested conditions</td></tr>\n<tr><td>DS</td><td>Dataset</td><td>raw and processed data with metadata</td></tr>\n<tr><td>RR</td><td>Replication report</td><td>independent repeat and comparison</td></tr>\n<tr><td>PB</td><td>Peer-reviewed publication</td><td>publisher-reviewed scientific output</td></tr>\n</tbody></table></div>\n<h2 id=\"laboratory-output\">External laboratory output</h2><p>External test or calibration results identify the laboratory, method and competence scope without implying accreditation that has not been verified. <button aria-label=\"Open source record R43\" class=\"research-source-trigger\" data-research-source=\"R43\" type=\"button\">[R43]</button></p><h2 id=\"document-types\">Publication types</h2><div class=\"table-wrap\"><table><thead><tr><th>Prefix</th><th>Document</th><th>What it establishes</th></tr></thead><tbody><tr><td>TR</td><td>technical report</td><td>architecture, calculations or engineering analysis</td></tr><tr><td>PR</td><td>protocol</td><td>method fixed before execution</td></tr><tr><td>CR</td><td>calibration report</td><td>measured actuator or sensor performance</td></tr><tr><td>ER</td><td>experiment report</td><td>result from a defined trial</td></tr><tr><td>DS</td><td>dataset</td><td>machine-readable observations and metadata</td></tr><tr><td>RR</td><td>replication report</td><td>repeatability or transfer evidence</td></tr><tr><td>RC</td><td>released cultivation recipe</td><td>validated target profile within a declared scope</td></tr></tbody></table></div>",
    "toc": [
      {
        "id": "types",
        "label": "Document types"
      },
      {
        "id": "laboratory-output",
        "label": "External laboratory output"
      },
      {
        "id": "document-types",
        "label": "Publication types"
      }
    ],
    "references": [
      "R43"
    ]
  },
  {
    "slug": "bibliography",
    "title": "Scientific bibliography",
    "document_id": "BIB-001",
    "version": "1.2",
    "updated": "2026-07-29",
    "abstract": "Canonical index of the scientific literature, standards, metrology records and internal engineering records used by FlavoRotor Research.",
    "group": "Reference",
    "body": "<section aria-label=\"Article summary\" class=\"fr-article-summary\"><div><span>In brief</span><p>The canonical bibliography is maintained as structured source records rather than copied references inside individual articles.</p></div></section><h2 id=\"use\">How the bibliography is used</h2><p>Every factual claim based on external literature is connected to a source identifier. Selecting the identifier opens the title, authors, publication, DOI or official record, the reason the source is used, how it supports the explanation and the metadata-verification record.</p><h2 id=\"classes\">Source classes</h2><div class=\"table-wrap\"><table><thead><tr><th>Class</th><th>Use</th></tr></thead><tbody><tr><td>Peer-reviewed research</td><td>biological, chemical, sensory or engineering evidence</td></tr><tr><td>Peer-reviewed review</td><td>mechanism, scope and interpretation limits</td></tr><tr><td>Official standard</td><td>sensory, laboratory, colour and measurement methods</td></tr><tr><td>Metrology record</td><td>calibration, uncertainty, repeatability and terminology</td></tr><tr><td>Official technical record</td><td>component operation and electrical constraints</td></tr><tr><td>Internal primary record</td><td>FlavoRotor-specific design, build and media provenance</td></tr></tbody></table></div><h2 id=\"canonical\">Canonical source library</h2><p>The complete, current bibliography contains 66 records and is published at <a href=\"/research/references\">Research references</a>. Article-level bibliographies contain only the records used on that page.</p><h2 id=\"audit\">Audit exports</h2><p>The public research archive also contains machine-readable JSON, CSV and BibTeX records, plus article, paragraph, sentence, formula and image-provenance ledgers. These files support editorial review and do not replace the public source drawer.</p>",
    "toc": [
      {
        "id": "use",
        "label": "How the bibliography is used"
      },
      {
        "id": "classes",
        "label": "Source classes"
      },
      {
        "id": "canonical",
        "label": "Canonical source library"
      },
      {
        "id": "audit",
        "label": "Audit exports"
      }
    ],
    "references": []
  }
]