A Pareto front (also called a Pareto frontier) is the set of solutions where no objective can be improved without worsening at least one other objective. It represents the optimal trade-off surface in multi-objective optimization.
Consider optimizing a water membrane for two objectives:
These objectives typically conflict: membranes with high flux tend to have lower rejection, and vice versa. The Pareto front is the curve of compositions where you cannot increase flux without decreasing rejection.
MatCraft uses a non-dominated sorting approach:
from materia.analysis import compute_pareto_front
# Get the Pareto front from campaign results
front = compute_pareto_front(campaign.results)
print(f"Found {len(front)} Pareto-optimal solutions")
for candidate in front:
print(f" Flux: {candidate.water_flux:.1f}, Rejection: {candidate.salt_rejection:.1f}%")The MatCraft dashboard provides interactive Pareto plots:
The Pareto front does not give you a single "best" answer — it gives you the set of optimal trade-offs. Choosing among Pareto-optimal solutions is a domain decision:
MatCraft lets you apply preference weights or knee-point detection to highlight the most balanced solution on the front.