diff --git a/src/libnest2d/include/libnest2d/optimizers/nlopt/genetic.hpp b/src/libnest2d/include/libnest2d/optimizers/nlopt/genetic.hpp index 731ead554..b92251ebd 100644 --- a/src/libnest2d/include/libnest2d/optimizers/nlopt/genetic.hpp +++ b/src/libnest2d/include/libnest2d/optimizers/nlopt/genetic.hpp @@ -14,6 +14,8 @@ public: localmethod_ = m; return *this; } + + inline void seed(unsigned long val) { nlopt::srand(val); } }; template<> diff --git a/src/libslic3r/SLA/SLASupportTree.cpp b/src/libslic3r/SLA/SLASupportTree.cpp index cbd27eb7c..4f449523a 100644 --- a/src/libslic3r/SLA/SLASupportTree.cpp +++ b/src/libslic3r/SLA/SLASupportTree.cpp @@ -1479,6 +1479,7 @@ public: stc.relative_score_difference = m_cfg.optimizer_rel_score_diff; stc.stop_score = w; // space greater than w is enough GeneticOptimizer solver(stc); + solver.seed(0); // we want deterministic behavior auto oresult = solver.optimize_max( [this, pin_r, w, hp](double plr, double azm) @@ -1778,6 +1779,7 @@ public: stc.relative_score_difference = m_cfg.optimizer_rel_score_diff; stc.stop_score = 1e6; GeneticOptimizer solver(stc); + solver.seed(0); // we want deterministic behavior double r_back = head.r_back_mm;