100/solid — explained in plain English
Analysis updated 2026-07-18 · repo last pushed 2019-07-19
Tune hyperparameters for a machine learning model without computing gradients.
Solve scheduling or engineering problems with fuzzy constraints using genetic algorithms.
Use simulated annealing or particle swarm optimization to search for a good-enough solution.
Learn how nature-inspired optimization algorithms work by reading a readable, hackable implementation.
| 100/solid | tencent-hunyuan/unirl | facebookresearch/boxer | |
|---|---|---|---|
| Stars | 584 | 584 | 580 |
| Language | Python | Python | Python |
| Last pushed | 2019-07-19 | — | 2026-06-05 |
| Maintenance | Dormant | — | Maintained |
| Setup difficulty | easy | — | moderate |
| Complexity | 3/5 | — | 3/5 |
| Audience | data | researcher | developer |
Figures from each repo's GitHub metadata at analysis time.
Solid is a Python library that helps you solve optimization problems without needing to calculate mathematical gradients. In plain terms: if you have a problem where you want to find the best solution from many possibilities, but you can't easily write out the math that describes how good each solution is, this library gives you ready-to-use tools to search for answers anyway. Most traditional optimization relies on calculus, computing slopes and directions to guide the search toward a better answer. Solid takes a different approach, offering seven different algorithms that explore the solution space more blindly but more flexibly. They include methods inspired by nature, like genetic algorithms (similar to evolution), particle swarm optimization (like a flock of birds searching together), and simulated annealing (mimicking how metal cools and settles). These methods don't need you to provide gradient information, they just need you to define what "better" means for your problem. To use Solid, you pick an algorithm, write a small class that tells it three things (how to create a starting solution, how to score how good a solution is, and how to modify solutions), and then call its run method. It does the searching and hands back the best answer it found. The example in the README shows this clearly: someone building an evolutionary algorithm that tries to evolve random letters into the word "clout" by repeatedly creating variations and keeping the ones that match better. No calculus involved, just defining the fitness function and the variation rules. This library is most useful for people solving tricky real-world problems that don't have clean mathematical formulas, like tuning hyperparameters for a machine learning model, designing optimal schedules, or engineering decisions with fuzzy constraints. It's also intentionally written to be readable and hackable, so it works well for learning how these algorithms actually work or customizing them for specific needs.
Solid is a Python library of seven gradient-free optimization algorithms, like genetic algorithms and simulated annealing, for solving problems without clean math formulas.
Mainly Python. The stack also includes Python.
Dormant — no commits in 2+ years (last push 2019-07-19).
Setup difficulty is rated easy, with roughly 30min to a first successful run.
Mainly data.
This repo across BitVibe Labs
Don't trust strangers blindly. Verify against the repo.