remove food from ambient energy forms, size solar sails to actual power needs
Biological Feed (food) was treated as an "ambient" energy source, so range_fuel always reported the domain's ceiling regardless of how much food was carried -- stopping to eat is a resupply, the same category as refuelling a tank, not a genuinely external/inexhaustible source like sun or wind. Removed "biological" from AMBIENT_ENERGY_FORMS; food now uses the normal storage-mass-limited range formula like any fuel. Solar Sail was still special-cased to a fixed footprint-derived mass (100m^2 -> 5kg) regardless of what a domain's power/velocity target actually needed -- the same "fixed reference instead of a requirement floor" bug biological actuators had before last session's fix. Folded it into the same general requirement-floor + joint-optimizer path: declared footprint becomes a FLOOR (SAIL_AREAL_DENSITY_KG_PER_M2), not a fixed value, so sail size scales with what's actually needed -- "enough panels to supply enough power for actuator impulse" is now enforced the same way structural/mass-ceiling requirements already are, instead of relying on a product-spec constant that happened to work or not. No actuator type is special-cased for mass sizing anymore. Confirmed the fix surfaces an honest result rather than hiding one: a solar sail's declared 0.01 W/kg specific power can never reach interplanetary_travel's 10 W/kg power_density floor at any sail size (the ratio is capped by the sail's own power_density regardless of scale), so it correctly still scores 0 there -- a real technology/domain mismatch, not a sizing bug. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
@@ -1,8 +1,6 @@
|
||||
{% if explore_result is none %}
|
||||
<p class="empty">No free mass allocation to explore for this combination — its
|
||||
actuator's mass isn't a design choice (a footprint-derived quantity, like a
|
||||
radiation-pressure sail), or the platform has no declared mass ceiling to
|
||||
bound the sliders.</p>
|
||||
platform has no declared mass ceiling to bound the sliders.</p>
|
||||
{% else %}
|
||||
{% set r = explore_result %}
|
||||
<div class="optimize-summary">
|
||||
|
||||
@@ -155,7 +155,7 @@
|
||||
<output id="out_platform_mass">{{ "%.1f"|format(r.platform_mass) }}kg</output>
|
||||
</div>
|
||||
<div class="weight-slider-row">
|
||||
<label for="actuator_mass">actuator (motor size, or operator count/size for muscle power)</label>
|
||||
<label for="actuator_mass">actuator (motor/collector size, or operator count/size for muscle power)</label>
|
||||
<input type="range" min="{{ r.actuator_min }}" max="{{ r.actuator_slider_max }}" step="0.1"
|
||||
id="actuator_mass" name="actuator_mass" value="{{ r.actuator_mass }}"
|
||||
oninput="document.getElementById('out_actuator_mass').textContent = (+this.value).toFixed(1) + 'kg'">
|
||||
|
||||
Reference in New Issue
Block a user