Score is how a candidate frame earns its rank. The objective is weight, less steel is better, but weight is never allowed to travel on its own. Each design is scored on weight subject to the structural checks the solver just computed: the displacement and stress limits. A frame that shaves off a few kilograms but drifts past a stress limit is not a lighter design, it is an infeasible one, and the score treats it that way.

Weight is the objective, but a frame that fails a displacement or stress check scores as infeasible, not as light.

Pairing the metric with its constraints is the whole reason the loop converges on something real. A search told only to minimise weight will drive straight off the cliff, proposing gossamer frames that violate every check, because that is exactly what minimising a lone number rewards. Bolting the code checks onto the objective keeps the search honest: the lightest frame that still passes wins, not the lightest frame.