{% if explore_result is none %}

No free mass allocation to explore for this combination — its actuator's mass isn't a design choice (a physiological or footprint-derived quantity), or the platform has no declared mass ceiling to bound the sliders.

{% else %} {% set r = explore_result %}
{{ "%.4f"|format(r.composite_score) }} composite score at this build
{% if r.exceeds_platform_envelope %}

⚠ total mass {{ "%.1f"|format(r.total_mass) }}kg exceeds this platform's declared ceiling ({{ "%.1f"|format(r.platform_max) }}kg) — not a build this platform category could carry

{% endif %} {% if r.insufficient_structure %}

⚠ platform mass {{ "%.1f"|format(r.platform_mass) }}kg is too little structure to carry {{ "%.1f"|format(r.actuator_mass + r.storage_mass) }}kg of actuator+storage

{% endif %}
{% set total = r.total_mass %}
platform {{ "%.1f"|format(r.platform_mass) }}kg actuator {{ "%.1f"|format(r.actuator_mass) }}kg storage {{ "%.1f"|format(r.storage_mass) }}kg {{ "%.1f"|format(r.total_mass) }}kg total
{% for mb in domain.metric_bounds %} {% set val = r.raw_metrics.get(mb.metric_name) %} {% set n = r.normalized_scores.get(mb.metric_name) %} {% endfor %}
MetricRaw ValueNormalizedWeight
{{ mb.metric_name }} {{ val|qty(mb.unit) if val is not none else '—' }} {{ "%.4f"|format(n) if n is not none else '—' }} {{ "%.0f%%"|format(mb.weight * 100) }}{{ ' ↓' if mb.lower_is_better else '' }}
{% endif %}