
A model that doesn't know a solvent's boiling point will happily recommend conditions above it.
Most optimization discussions focus on the objective - yield, impurity, selectivity. But every real campaign is bounded by constraints: the accessible temperature range of a solvent, the values a reactor or pump can actually be set to, reagent compatibilities, and how experiments have to be grouped on a plate.
A model that ignores these will recommend conditions that look excellent in theory, but can't be executed at the bench - slowly eroding trust in the tool.
We build these constraints into the optimization itself, so every recommendation is one you can actually run.
Temperature is bounded by the solvent: the platform won't propose conditions outside a solvent's accessible range, so a screen across several solvents respects each solvent's limits.
Continuous inputs can be discretized to values you can actually dial in, and where parameters depend on one another, both linear constraints, such as stoichiometry or total volume, and conditional "if X, then Y" constraints, such as restricting the compatible solvents once a base is chosen, are honored throughout.
The feasible space is defined up front, and the optimizer searches within it - rather than proposing points just to be rejected.