← Open Source
100

Solid

🎯 A comprehensive gradient-free optimization framework written in Python.

Model DevelopmentToolingsPython
Open on GitHub
Momentum
+0stars in 24 hours0.0%
583
Stars
60
Forks
+1
This week
3
Contributors
Created 2017-06-12 · Updated 2026-10-13 · #16578 today
Top developers
100emre-efikisipi

100/Solid is ranked 16,578 with 583 stars.

Same-category comparison

100/Solid is ranked 16,578 among these 8 peers; henrikbostrom/crepes is ranked 16,574.

Same-category comparison
NameRankMetrics
abides-sim/abides16,567
Language:
Python
Stars:
584
Forks:
166
Description:
ABIDES: Agent-Based Interactive Discrete Event Simulation.
business-science/modeltime16,570
Language:
R
Stars:
584
Forks:
86
Description:
Modeltime unlocks time series forecast models and machine learning in one framework.
google/qkeras16,573
Language:
Python
Stars:
584
Forks:
108
Description:
QKeras: a quantization deep learning library for Tensorflow Keras.
henrikbostrom/crepes16,574
Language:
Python
Stars:
584
Forks:
46
Description:
Python package for conformal prediction.
OysterQAQ/ACG2vec16,582
Stars:
583
Forks:
24
Description:
ACG2vec (Anime Comics Games to vector) are committed to creating a playground that combines ACG and Deep learning.(.
aim-uofa/Matcher16,583
Language:
Python
Stars:
583
Forks:
47
Description:
[ICLR'24 & IJCV‘25] Matcher: Segment Anything with One Shot Using All-Purpose Feature Matching.
cheind/pytorch-blender16,585
Language:
Python
Stars:
583
Forks:
44
Description:
:sweat_drops: Seamless, distributed, real-time integration of Blender into PyTorch data pipelines.
facebookresearch/optimizers16,587
Language:
Python
Stars:
583
Forks:
67
Description:
For optimization algorithm research and development.
Key parameters and specifications
Key parameters and specifications
ParameterValue
LanguagePython
CategoryModel Development
SubcategoryToolings
KeywordsOptimization
Stars583
Forks60
Contributors3
Created date2017-06-12
Updated date2026-10-13
Stars in 1 day0
Stars in 7 days1
Rank16,578
Previous rank16,368
Rank change-210
7-day stars rank11,267
Previous 7-day stars rank11,322
7-day stars rank change55
Total stars rank17,161
Previous total stars rank17,132
Total stars rank change-29
CountryUSA
README summary

*Solid* is a Python framework for gradient-free optimization. It contains basic versions of many of the most common optimization algorithms that do not require the calculation of gradients, and allows for very rapid development using them. It's a very versatile library that's great for learning, modifying, and of course, using out-of-the-box. Current Features: Genetic Algorithm Evolutionary Algorithm Simulated Annealing Particle Swarm Optimization Tabu Search Harmony Search Stochastic Hill Climb Usage: Import the relevant algorithm Create a

class that inherits from that algorithm, and that implements the necessary abstract methods Call its method, which always returns the best solution and its objective function value Example: Testing To run tests, look in the folder. Use pytest; it should automatically find the test files. Contributing Feel free to send a pull request if you want to add any features or if you find a bug. Check the issues tab for some potential things to do.

Frequently asked questions

How many stars and forks are recorded?

100/Solid has 583 stars and 60 forks.

What is the repository rank?

100/Solid is ranked 16,578.

What language and category are recorded?

100/Solid has 583 stars, uses Python and belongs to Model Development.

Which repository is closest in rank?

100/Solid is compared with henrikbostrom/crepes, ranked 16,574 with 584 stars.

README
 ![](logo.png) 

Solid is a Python framework for gradient-free optimization.

It contains basic versions of many of the most common optimization algorithms that do not require the calculation of gradients, and allows for very rapid development using them.

It's a very versatile library that's great for learning, modifying, and of course, using out-of-the-box.

See the detailed documentation here.

Current Features:

Usage:

  • pip install solidpy
  • Import the relevant algorithm
  • Create a class that inherits from that algorithm, and that implements the necessary abstract methods
  • Call its .run() method, which always returns the best solution and its objective function value

Example:

from random import choice, randint, random
from string import lowercase
from Solid.EvolutionaryAlgorithm import EvolutionaryAlgorithm


class Algorithm(EvolutionaryAlgorithm):
    """
    Tries to get a randomly-generated string to match string "clout"
    """
    def _initial_population(self):
        return list(''.join([choice(lowercase) for _ in range(5)]) for _ in range(50))

    def _fitness(self, member):
        return float(sum(member[i] == "clout"[i] for i in range(5)))

    def _crossover(self, parent1, parent2):
        partition = randint(0, len(self.population[0]) - 1)
        return parent1[0:partition] + parent2[partition:]

    def _mutate(self, member):
        if self.mutation_rate >= random():
            member = list(member)
            member[randint(0,4)] = choice(lowercase)
            member = ''.join(member)
        return member


def test_algorithm():
    algorithm = Algorithm(.5, .7, 500, max_fitness=None)
    best_solution, best_objective_value = algorithm.run()

Testing

To run tests, look in the tests folder.

Use pytest; it should automatically find the test files.

Contributing

Feel free to send a pull request if you want to add any features or if you find a bug.

Check the issues tab for some potential things to do.

Nearby in the ranking
Similar items