logic-lab 0.4.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- logic_lab-0.4.0/.gitignore +36 -0
- logic_lab-0.4.0/LICENSE +21 -0
- logic_lab-0.4.0/PKG-INFO +303 -0
- logic_lab-0.4.0/README.md +254 -0
- logic_lab-0.4.0/pyproject.toml +141 -0
- logic_lab-0.4.0/src/logic_lab/__init__.py +16 -0
- logic_lab-0.4.0/src/logic_lab/audio_sync/__init__.py +5 -0
- logic_lab-0.4.0/src/logic_lab/audio_sync/audio_reactive_particles/README.md +11 -0
- logic_lab-0.4.0/src/logic_lab/audio_sync/audio_reactive_particles/__init__.py +17 -0
- logic_lab-0.4.0/src/logic_lab/audio_sync/audio_reactive_particles/audio_reactive_particles.py +407 -0
- logic_lab-0.4.0/src/logic_lab/audio_sync/audio_reactive_particles/example.py +86 -0
- logic_lab-0.4.0/src/logic_lab/biological/__init__.py +1 -0
- logic_lab-0.4.0/src/logic_lab/biological/ant_colony/README.md +11 -0
- logic_lab-0.4.0/src/logic_lab/biological/ant_colony/ant_colony.py +97 -0
- logic_lab-0.4.0/src/logic_lab/biological/dla/README.md +11 -0
- logic_lab-0.4.0/src/logic_lab/biological/dla/__init__.py +0 -0
- logic_lab-0.4.0/src/logic_lab/biological/dla/dla.py +201 -0
- logic_lab-0.4.0/src/logic_lab/biological/mycelium_growth/README.md +11 -0
- logic_lab-0.4.0/src/logic_lab/biological/mycelium_growth/mycelium_growth.py +74 -0
- logic_lab-0.4.0/src/logic_lab/biological/physarum/README.md +11 -0
- logic_lab-0.4.0/src/logic_lab/biological/physarum/physarum.py +141 -0
- logic_lab-0.4.0/src/logic_lab/biological/predator_prey_dynamics/__init__.py +0 -0
- logic_lab-0.4.0/src/logic_lab/biological/predator_prey_dynamics/predator_prey_dynamics.py +173 -0
- logic_lab-0.4.0/src/logic_lab/biological/space_colonization/README.md +11 -0
- logic_lab-0.4.0/src/logic_lab/biological/space_colonization/__init__.py +0 -0
- logic_lab-0.4.0/src/logic_lab/biological/space_colonization/space_colonization.py +228 -0
- logic_lab-0.4.0/src/logic_lab/cellular_automata/__init__.py +0 -0
- logic_lab-0.4.0/src/logic_lab/cellular_automata/brian_brain/README.md +11 -0
- logic_lab-0.4.0/src/logic_lab/cellular_automata/brian_brain/brian_brain.py +68 -0
- logic_lab-0.4.0/src/logic_lab/cellular_automata/ca_1dim/README.md +9 -0
- logic_lab-0.4.0/src/logic_lab/cellular_automata/ca_1dim/ca_1dim.py +67 -0
- logic_lab-0.4.0/src/logic_lab/cellular_automata/ca_2dim/README.md +9 -0
- logic_lab-0.4.0/src/logic_lab/cellular_automata/ca_2dim/ca_2dim.py +76 -0
- logic_lab-0.4.0/src/logic_lab/cellular_automata/cyclic_ca/README.md +11 -0
- logic_lab-0.4.0/src/logic_lab/cellular_automata/cyclic_ca/cyclic_ca.py +67 -0
- logic_lab-0.4.0/src/logic_lab/cellular_automata/elementary_ca/README.md +9 -0
- logic_lab-0.4.0/src/logic_lab/cellular_automata/elementary_ca/elementary_ca.py +70 -0
- logic_lab-0.4.0/src/logic_lab/cellular_automata/game_of_life/__init__.py +0 -0
- logic_lab-0.4.0/src/logic_lab/cellular_automata/game_of_life/game_of_life.py +171 -0
- logic_lab-0.4.0/src/logic_lab/cellular_automata/hex_lattice_ca/README.md +9 -0
- logic_lab-0.4.0/src/logic_lab/cellular_automata/hex_lattice_ca/hex_lattice_ca.py +99 -0
- logic_lab-0.4.0/src/logic_lab/cellular_automata/langtons_ant/README.md +11 -0
- logic_lab-0.4.0/src/logic_lab/cellular_automata/langtons_ant/__init__.py +0 -0
- logic_lab-0.4.0/src/logic_lab/cellular_automata/langtons_ant/langtons_ant.py +207 -0
- logic_lab-0.4.0/src/logic_lab/cellular_automata/mod_pascal/README.md +9 -0
- logic_lab-0.4.0/src/logic_lab/cellular_automata/mod_pascal/mod_pascal.py +60 -0
- logic_lab-0.4.0/src/logic_lab/cellular_automata/moss_colony_growth/README.md +15 -0
- logic_lab-0.4.0/src/logic_lab/cellular_automata/moss_colony_growth/moss_colony_growth.py +130 -0
- logic_lab-0.4.0/src/logic_lab/cellular_automata/pascal/README.md +9 -0
- logic_lab-0.4.0/src/logic_lab/cellular_automata/pascal/pascal.py +49 -0
- logic_lab-0.4.0/src/logic_lab/cellular_automata/rule_variations/README.md +11 -0
- logic_lab-0.4.0/src/logic_lab/cellular_automata/rule_variations/rule_variations.py +58 -0
- logic_lab-0.4.0/src/logic_lab/cellular_automata/smooth_life/README.md +11 -0
- logic_lab-0.4.0/src/logic_lab/cellular_automata/smooth_life/smooth_life.py +64 -0
- logic_lab-0.4.0/src/logic_lab/cellular_automata/stochastic_ca/README.md +9 -0
- logic_lab-0.4.0/src/logic_lab/cellular_automata/stochastic_ca/stochastic_ca.py +68 -0
- logic_lab-0.4.0/src/logic_lab/chaos_theory/__init__.py +0 -0
- logic_lab-0.4.0/src/logic_lab/chaos_theory/chua_circuit/__init__.py +0 -0
- logic_lab-0.4.0/src/logic_lab/chaos_theory/chua_circuit/chua_circuit.py +212 -0
- logic_lab-0.4.0/src/logic_lab/chaos_theory/double_pendulum/__init__.py +0 -0
- logic_lab-0.4.0/src/logic_lab/chaos_theory/double_pendulum/double_pendulum.py +218 -0
- logic_lab-0.4.0/src/logic_lab/chaos_theory/henon_map/__init__.py +0 -0
- logic_lab-0.4.0/src/logic_lab/chaos_theory/henon_map/henon_map.py +185 -0
- logic_lab-0.4.0/src/logic_lab/chaos_theory/logistic_map/__init__.py +0 -0
- logic_lab-0.4.0/src/logic_lab/chaos_theory/logistic_map/logistic_map.py +348 -0
- logic_lab-0.4.0/src/logic_lab/chaos_theory/lorenz_attractor/__init__.py +0 -0
- logic_lab-0.4.0/src/logic_lab/chaos_theory/lorenz_attractor/lorenz_attractor.py +211 -0
- logic_lab-0.4.0/src/logic_lab/chaos_theory/rossler_attractor/__init__.py +0 -0
- logic_lab-0.4.0/src/logic_lab/chaos_theory/rossler_attractor/rossler_attractor.py +211 -0
- logic_lab-0.4.0/src/logic_lab/crystal_growth/__init__.py +0 -0
- logic_lab-0.4.0/src/logic_lab/crystal_growth/crystal_solidification/__init__.py +0 -0
- logic_lab-0.4.0/src/logic_lab/crystal_growth/crystal_solidification/crystal_solidification.py +231 -0
- logic_lab-0.4.0/src/logic_lab/crystal_growth/dla_cluster/__init__.py +0 -0
- logic_lab-0.4.0/src/logic_lab/crystal_growth/dla_cluster/dla_cluster.py +200 -0
- logic_lab-0.4.0/src/logic_lab/crystal_growth/snowflake_growth/__init__.py +0 -0
- logic_lab-0.4.0/src/logic_lab/crystal_growth/snowflake_growth/snowflake_growth.py +203 -0
- logic_lab-0.4.0/src/logic_lab/fractals/botanical_l_system/README.md +22 -0
- logic_lab-0.4.0/src/logic_lab/fractals/botanical_l_system/botanical_l_system.py +186 -0
- logic_lab-0.4.0/src/logic_lab/fractals/branch_objects_animation/README.md +10 -0
- logic_lab-0.4.0/src/logic_lab/fractals/branch_objects_animation/__init__.py +0 -0
- logic_lab-0.4.0/src/logic_lab/fractals/branch_objects_animation/branch_objects_animation.py +105 -0
- logic_lab-0.4.0/src/logic_lab/fractals/branch_thickness/README.md +10 -0
- logic_lab-0.4.0/src/logic_lab/fractals/branch_thickness/__init__.py +0 -0
- logic_lab-0.4.0/src/logic_lab/fractals/branch_thickness/branch_thickness.py +57 -0
- logic_lab-0.4.0/src/logic_lab/fractals/burning_ship/README.md +11 -0
- logic_lab-0.4.0/src/logic_lab/fractals/burning_ship/burning_ship.py +46 -0
- logic_lab-0.4.0/src/logic_lab/fractals/cantor_set/README.md +11 -0
- logic_lab-0.4.0/src/logic_lab/fractals/cantor_set/__init__.py +0 -0
- logic_lab-0.4.0/src/logic_lab/fractals/cantor_set/cantor_set.py +40 -0
- logic_lab-0.4.0/src/logic_lab/fractals/differential_growth/README.md +15 -0
- logic_lab-0.4.0/src/logic_lab/fractals/differential_growth/differential_growth.py +143 -0
- logic_lab-0.4.0/src/logic_lab/fractals/dla/README.md +11 -0
- logic_lab-0.4.0/src/logic_lab/fractals/dla/dla.py +133 -0
- logic_lab-0.4.0/src/logic_lab/fractals/elementary_wolfram_ca/README.md +9 -0
- logic_lab-0.4.0/src/logic_lab/fractals/elementary_wolfram_ca/__init__.py +0 -0
- logic_lab-0.4.0/src/logic_lab/fractals/elementary_wolfram_ca/elementary_wolfram_ca.py +57 -0
- logic_lab-0.4.0/src/logic_lab/fractals/fractal_lines/README.md +9 -0
- logic_lab-0.4.0/src/logic_lab/fractals/fractal_lines/__init__.py +0 -0
- logic_lab-0.4.0/src/logic_lab/fractals/fractal_lines/fractal_lines.py +38 -0
- logic_lab-0.4.0/src/logic_lab/fractals/game_of_life/README.md +9 -0
- logic_lab-0.4.0/src/logic_lab/fractals/game_of_life/__init__.py +0 -0
- logic_lab-0.4.0/src/logic_lab/fractals/game_of_life/game_of_life.py +66 -0
- logic_lab-0.4.0/src/logic_lab/fractals/game_of_life_oop/README.md +9 -0
- logic_lab-0.4.0/src/logic_lab/fractals/game_of_life_oop/__init__.py +0 -0
- logic_lab-0.4.0/src/logic_lab/fractals/game_of_life_oop/game_of_life_oop.py +84 -0
- logic_lab-0.4.0/src/logic_lab/fractals/hexagon_ca/README.md +9 -0
- logic_lab-0.4.0/src/logic_lab/fractals/hexagon_ca/__init__.py +0 -0
- logic_lab-0.4.0/src/logic_lab/fractals/hexagon_ca/hexagon_ca.py +67 -0
- logic_lab-0.4.0/src/logic_lab/fractals/hilbert_curve/README.md +11 -0
- logic_lab-0.4.0/src/logic_lab/fractals/hilbert_curve/hilbert_curve.py +53 -0
- logic_lab-0.4.0/src/logic_lab/fractals/ifs_fractal/__init__.py +0 -0
- logic_lab-0.4.0/src/logic_lab/fractals/ifs_fractal/ifs_fractal.py +223 -0
- logic_lab-0.4.0/src/logic_lab/fractals/julia_set/README.md +11 -0
- logic_lab-0.4.0/src/logic_lab/fractals/julia_set/__init__.py +0 -0
- logic_lab-0.4.0/src/logic_lab/fractals/julia_set/julia_set.py +197 -0
- logic_lab-0.4.0/src/logic_lab/fractals/koch_curve/README.md +9 -0
- logic_lab-0.4.0/src/logic_lab/fractals/koch_curve/__init__.py +0 -0
- logic_lab-0.4.0/src/logic_lab/fractals/koch_curve/koch_curve.py +69 -0
- logic_lab-0.4.0/src/logic_lab/fractals/koch_deformation/README.md +9 -0
- logic_lab-0.4.0/src/logic_lab/fractals/koch_deformation/koch_deformation.py +43 -0
- logic_lab-0.4.0/src/logic_lab/fractals/koch_snowflake/README.md +10 -0
- logic_lab-0.4.0/src/logic_lab/fractals/koch_snowflake/__init__.py +0 -0
- logic_lab-0.4.0/src/logic_lab/fractals/koch_snowflake/koch_snowflake.py +112 -0
- logic_lab-0.4.0/src/logic_lab/fractals/l_system/README.md +9 -0
- logic_lab-0.4.0/src/logic_lab/fractals/l_system/__init__.py +0 -0
- logic_lab-0.4.0/src/logic_lab/fractals/l_system/l_system.py +71 -0
- logic_lab-0.4.0/src/logic_lab/fractals/l_system_string_only/README.md +9 -0
- logic_lab-0.4.0/src/logic_lab/fractals/l_system_string_only/__init__.py +0 -0
- logic_lab-0.4.0/src/logic_lab/fractals/l_system_string_only/l_system_string_only.py +45 -0
- logic_lab-0.4.0/src/logic_lab/fractals/leaf_venation/README.md +16 -0
- logic_lab-0.4.0/src/logic_lab/fractals/leaf_venation/leaf_venation.py +189 -0
- logic_lab-0.4.0/src/logic_lab/fractals/mandelbrot_set/README.md +11 -0
- logic_lab-0.4.0/src/logic_lab/fractals/mandelbrot_set/mandelbrot_set.py +45 -0
- logic_lab-0.4.0/src/logic_lab/fractals/newton_basins/__init__.py +0 -0
- logic_lab-0.4.0/src/logic_lab/fractals/newton_basins/newton_basins.py +226 -0
- logic_lab-0.4.0/src/logic_lab/fractals/quadtree_part_1/README.md +8 -0
- logic_lab-0.4.0/src/logic_lab/fractals/quadtree_part_1/__init__.py +0 -0
- logic_lab-0.4.0/src/logic_lab/fractals/quadtree_part_1/quadtree_part_1.py +143 -0
- logic_lab-0.4.0/src/logic_lab/fractals/recursion/README.md +9 -0
- logic_lab-0.4.0/src/logic_lab/fractals/recursion/__init__.py +0 -0
- logic_lab-0.4.0/src/logic_lab/fractals/recursion/recursion.py +32 -0
- logic_lab-0.4.0/src/logic_lab/fractals/recursion_2/README.md +9 -0
- logic_lab-0.4.0/src/logic_lab/fractals/recursion_2/__init__.py +0 -0
- logic_lab-0.4.0/src/logic_lab/fractals/recursion_2/recursion_2.py +34 -0
- logic_lab-0.4.0/src/logic_lab/fractals/recursion_circles/README.md +9 -0
- logic_lab-0.4.0/src/logic_lab/fractals/recursion_circles/__init__.py +0 -0
- logic_lab-0.4.0/src/logic_lab/fractals/recursion_circles/recursion_circles.py +35 -0
- logic_lab-0.4.0/src/logic_lab/fractals/space_colonization/README.md +40 -0
- logic_lab-0.4.0/src/logic_lab/fractals/space_colonization/space_colonization.py +202 -0
- logic_lab-0.4.0/src/logic_lab/fractals/stochastic_tree/README.md +9 -0
- logic_lab-0.4.0/src/logic_lab/fractals/stochastic_tree/__init__.py +0 -0
- logic_lab-0.4.0/src/logic_lab/fractals/stochastic_tree/stochastic_tree.py +44 -0
- logic_lab-0.4.0/src/logic_lab/fractals/substrate/README.md +11 -0
- logic_lab-0.4.0/src/logic_lab/fractals/substrate/substrate.py +109 -0
- logic_lab-0.4.0/src/logic_lab/fractals/tree/README.md +9 -0
- logic_lab-0.4.0/src/logic_lab/fractals/tree/__init__.py +0 -0
- logic_lab-0.4.0/src/logic_lab/fractals/tree/tree.py +46 -0
- logic_lab-0.4.0/src/logic_lab/genetic_algorithms/evolving_bloops/README.md +39 -0
- logic_lab-0.4.0/src/logic_lab/genetic_algorithms/evolving_bloops/evolving_bloops.py +183 -0
- logic_lab-0.4.0/src/logic_lab/genetic_algorithms/evolving_circles/__init__.py +0 -0
- logic_lab-0.4.0/src/logic_lab/genetic_algorithms/evolving_circles/evolving_circles.py +199 -0
- logic_lab-0.4.0/src/logic_lab/genetic_algorithms/ga_shakespeare/README.md +11 -0
- logic_lab-0.4.0/src/logic_lab/genetic_algorithms/ga_shakespeare/__init__.py +0 -0
- logic_lab-0.4.0/src/logic_lab/genetic_algorithms/ga_shakespeare/ga_shakespeare.py +120 -0
- logic_lab-0.4.0/src/logic_lab/genetic_algorithms/ga_shakespeare_annotated/README.md +33 -0
- logic_lab-0.4.0/src/logic_lab/genetic_algorithms/ga_shakespeare_annotated/ga_shakespeare_annotated.py +190 -0
- logic_lab-0.4.0/src/logic_lab/genetic_algorithms/interactive_selection/README.md +29 -0
- logic_lab-0.4.0/src/logic_lab/genetic_algorithms/interactive_selection/interactive_selection.py +245 -0
- logic_lab-0.4.0/src/logic_lab/genetic_algorithms/smart_rockets/README.md +12 -0
- logic_lab-0.4.0/src/logic_lab/genetic_algorithms/smart_rockets/__init__.py +0 -0
- logic_lab-0.4.0/src/logic_lab/genetic_algorithms/smart_rockets/smart_rockets.py +286 -0
- logic_lab-0.4.0/src/logic_lab/genetic_algorithms/smart_rockets_basic/README.md +12 -0
- logic_lab-0.4.0/src/logic_lab/genetic_algorithms/smart_rockets_basic/__init__.py +0 -0
- logic_lab-0.4.0/src/logic_lab/genetic_algorithms/smart_rockets_basic/smart_rockets_basic.py +204 -0
- logic_lab-0.4.0/src/logic_lab/mathematical/__init__.py +0 -0
- logic_lab-0.4.0/src/logic_lab/mathematical/apollonian_gasket/README.md +11 -0
- logic_lab-0.4.0/src/logic_lab/mathematical/apollonian_gasket/apollonian_gasket.py +50 -0
- logic_lab-0.4.0/src/logic_lab/mathematical/bark_growth_texture/README.md +14 -0
- logic_lab-0.4.0/src/logic_lab/mathematical/bark_growth_texture/bark_growth_texture.py +107 -0
- logic_lab-0.4.0/src/logic_lab/mathematical/barycentric_coordinates/README.md +38 -0
- logic_lab-0.4.0/src/logic_lab/mathematical/barycentric_coordinates/barycentric_coordinates.py +209 -0
- logic_lab-0.4.0/src/logic_lab/mathematical/blob_generator/README.md +11 -0
- logic_lab-0.4.0/src/logic_lab/mathematical/blob_generator/blob_generator.py +114 -0
- logic_lab-0.4.0/src/logic_lab/mathematical/chaikin_curve_smoothing/README.md +38 -0
- logic_lab-0.4.0/src/logic_lab/mathematical/chaikin_curve_smoothing/chaikin_curve_smoothing.py +185 -0
- logic_lab-0.4.0/src/logic_lab/mathematical/circle_packing/README.md +37 -0
- logic_lab-0.4.0/src/logic_lab/mathematical/circle_packing/circle_packing.py +212 -0
- logic_lab-0.4.0/src/logic_lab/mathematical/clifford_attractor/README.md +37 -0
- logic_lab-0.4.0/src/logic_lab/mathematical/clifford_attractor/clifford_attractor.py +148 -0
- logic_lab-0.4.0/src/logic_lab/mathematical/color_harmony/README.md +34 -0
- logic_lab-0.4.0/src/logic_lab/mathematical/color_harmony/color_harmony.py +80 -0
- logic_lab-0.4.0/src/logic_lab/mathematical/color_temperature_mixing/README.md +13 -0
- logic_lab-0.4.0/src/logic_lab/mathematical/color_temperature_mixing/__init__.py +1 -0
- logic_lab-0.4.0/src/logic_lab/mathematical/color_temperature_mixing/color_temperature_mixing.py +88 -0
- logic_lab-0.4.0/src/logic_lab/mathematical/complex_domain_coloring/README.md +38 -0
- logic_lab-0.4.0/src/logic_lab/mathematical/complex_domain_coloring/complex_domain_coloring.py +167 -0
- logic_lab-0.4.0/src/logic_lab/mathematical/conic_sections/README.md +11 -0
- logic_lab-0.4.0/src/logic_lab/mathematical/conic_sections/conic_sections.py +70 -0
- logic_lab-0.4.0/src/logic_lab/mathematical/continued_fraction_div_rect/README.md +9 -0
- logic_lab-0.4.0/src/logic_lab/mathematical/continued_fraction_div_rect/continued_fraction_div_rect.py +44 -0
- logic_lab-0.4.0/src/logic_lab/mathematical/continued_fraction_div_rect_zoom/README.md +9 -0
- logic_lab-0.4.0/src/logic_lab/mathematical/continued_fraction_div_rect_zoom/continued_fraction_div_rect_zoom.py +47 -0
- logic_lab-0.4.0/src/logic_lab/mathematical/continued_fraction_div_square/README.md +9 -0
- logic_lab-0.4.0/src/logic_lab/mathematical/continued_fraction_div_square/continued_fraction_div_square.py +50 -0
- logic_lab-0.4.0/src/logic_lab/mathematical/continued_fraction_gold_div_controls/README.md +15 -0
- logic_lab-0.4.0/src/logic_lab/mathematical/continued_fraction_gold_div_controls/continued_fraction_gold_div_controls.py +155 -0
- logic_lab-0.4.0/src/logic_lab/mathematical/continued_fraction_mondrian/README.md +9 -0
- logic_lab-0.4.0/src/logic_lab/mathematical/continued_fraction_mondrian/continued_fraction_mondrian.py +104 -0
- logic_lab-0.4.0/src/logic_lab/mathematical/continued_fraction_recur_div_square/README.md +9 -0
- logic_lab-0.4.0/src/logic_lab/mathematical/continued_fraction_recur_div_square/continued_fraction_recur_div_square.py +86 -0
- logic_lab-0.4.0/src/logic_lab/mathematical/convex_hull/README.md +37 -0
- logic_lab-0.4.0/src/logic_lab/mathematical/convex_hull/convex_hull.py +175 -0
- logic_lab-0.4.0/src/logic_lab/mathematical/cubic_bezier/README.md +9 -0
- logic_lab-0.4.0/src/logic_lab/mathematical/cubic_bezier/cubic_bezier.py +63 -0
- logic_lab-0.4.0/src/logic_lab/mathematical/de_casteljau_subdivision/README.md +36 -0
- logic_lab-0.4.0/src/logic_lab/mathematical/de_casteljau_subdivision/de_casteljau_subdivision.py +183 -0
- logic_lab-0.4.0/src/logic_lab/mathematical/delaunay_triangulation/README.md +38 -0
- logic_lab-0.4.0/src/logic_lab/mathematical/delaunay_triangulation/delaunay_triangulation.py +230 -0
- logic_lab-0.4.0/src/logic_lab/mathematical/diamond_square/README.md +37 -0
- logic_lab-0.4.0/src/logic_lab/mathematical/diamond_square/diamond_square.py +140 -0
- logic_lab-0.4.0/src/logic_lab/mathematical/differential_growth/README.md +11 -0
- logic_lab-0.4.0/src/logic_lab/mathematical/differential_growth/differential_growth.py +51 -0
- logic_lab-0.4.0/src/logic_lab/mathematical/easing_functions/README.md +42 -0
- logic_lab-0.4.0/src/logic_lab/mathematical/easing_functions/easing_functions.py +167 -0
- logic_lab-0.4.0/src/logic_lab/mathematical/envelope_art/README.md +11 -0
- logic_lab-0.4.0/src/logic_lab/mathematical/envelope_art/envelope_art.py +54 -0
- logic_lab-0.4.0/src/logic_lab/mathematical/euclid_div_rect/README.md +9 -0
- logic_lab-0.4.0/src/logic_lab/mathematical/euclid_div_rect/euclid_div_rect.py +50 -0
- logic_lab-0.4.0/src/logic_lab/mathematical/euclid_div_rect_color/README.md +9 -0
- logic_lab-0.4.0/src/logic_lab/mathematical/euclid_div_rect_color/euclid_div_rect_color.py +52 -0
- logic_lab-0.4.0/src/logic_lab/mathematical/euclid_div_square/README.md +9 -0
- logic_lab-0.4.0/src/logic_lab/mathematical/euclid_div_square/euclid_div_square.py +50 -0
- logic_lab-0.4.0/src/logic_lab/mathematical/euclid_div_square_recorder/README.md +9 -0
- logic_lab-0.4.0/src/logic_lab/mathematical/euclid_div_square_recorder/euclid_div_square_recorder.py +51 -0
- logic_lab-0.4.0/src/logic_lab/mathematical/euclid_numeric/README.md +7 -0
- logic_lab-0.4.0/src/logic_lab/mathematical/euclid_numeric/euclid_numeric.py +18 -0
- logic_lab-0.4.0/src/logic_lab/mathematical/euclid_rect_div_rect/README.md +9 -0
- logic_lab-0.4.0/src/logic_lab/mathematical/euclid_rect_div_rect/euclid_rect_div_rect.py +69 -0
- logic_lab-0.4.0/src/logic_lab/mathematical/euclid_recur_div_square/README.md +9 -0
- logic_lab-0.4.0/src/logic_lab/mathematical/euclid_recur_div_square/euclid_recur_div_square.py +86 -0
- logic_lab-0.4.0/src/logic_lab/mathematical/euclid_recur_div_square_controls/README.md +15 -0
- logic_lab-0.4.0/src/logic_lab/mathematical/euclid_recur_div_square_controls/euclid_recur_div_square_controls.py +129 -0
- logic_lab-0.4.0/src/logic_lab/mathematical/fermat_spiral/README.md +9 -0
- logic_lab-0.4.0/src/logic_lab/mathematical/fermat_spiral/fermat_spiral.py +40 -0
- logic_lab-0.4.0/src/logic_lab/mathematical/fermat_spiral_line/README.md +9 -0
- logic_lab-0.4.0/src/logic_lab/mathematical/fermat_spiral_line/fermat_spiral_line.py +72 -0
- logic_lab-0.4.0/src/logic_lab/mathematical/fermat_spiral_overlay/README.md +9 -0
- logic_lab-0.4.0/src/logic_lab/mathematical/fermat_spiral_overlay/fermat_spiral_overlay.py +47 -0
- logic_lab-0.4.0/src/logic_lab/mathematical/fibonacci_convergent/README.md +9 -0
- logic_lab-0.4.0/src/logic_lab/mathematical/fibonacci_convergent/fibonacci_convergent.py +43 -0
- logic_lab-0.4.0/src/logic_lab/mathematical/fibonacci_rect/README.md +9 -0
- logic_lab-0.4.0/src/logic_lab/mathematical/fibonacci_rect/fibonacci_rect.py +56 -0
- logic_lab-0.4.0/src/logic_lab/mathematical/fibonacci_recur_div/README.md +9 -0
- logic_lab-0.4.0/src/logic_lab/mathematical/fibonacci_recur_div/fibonacci_recur_div.py +79 -0
- logic_lab-0.4.0/src/logic_lab/mathematical/fibonacci_recur_div_controls/README.md +13 -0
- logic_lab-0.4.0/src/logic_lab/mathematical/fibonacci_recur_div_controls/fibonacci_recur_div_controls.py +98 -0
- logic_lab-0.4.0/src/logic_lab/mathematical/fibonacci_spiral/README.md +9 -0
- logic_lab-0.4.0/src/logic_lab/mathematical/fibonacci_spiral/fibonacci_spiral.py +66 -0
- logic_lab-0.4.0/src/logic_lab/mathematical/fibonacci_square/README.md +9 -0
- logic_lab-0.4.0/src/logic_lab/mathematical/fibonacci_square/fibonacci_square.py +49 -0
- logic_lab-0.4.0/src/logic_lab/mathematical/fibonacci_square_spiral/README.md +9 -0
- logic_lab-0.4.0/src/logic_lab/mathematical/fibonacci_square_spiral/fibonacci_square_spiral.py +56 -0
- logic_lab-0.4.0/src/logic_lab/mathematical/ford_circles/README.md +36 -0
- logic_lab-0.4.0/src/logic_lab/mathematical/ford_circles/ford_circles.py +146 -0
- logic_lab-0.4.0/src/logic_lab/mathematical/fourier_epicycles/README.md +38 -0
- logic_lab-0.4.0/src/logic_lab/mathematical/fourier_epicycles/fourier_epicycles.py +239 -0
- logic_lab-0.4.0/src/logic_lab/mathematical/fourier_wave_synthesis/README.md +15 -0
- logic_lab-0.4.0/src/logic_lab/mathematical/fourier_wave_synthesis/__init__.py +1 -0
- logic_lab-0.4.0/src/logic_lab/mathematical/fourier_wave_synthesis/fourier_wave_synthesis.py +91 -0
- logic_lab-0.4.0/src/logic_lab/mathematical/geometric_art/README.md +11 -0
- logic_lab-0.4.0/src/logic_lab/mathematical/geometric_art/geometric_art.py +111 -0
- logic_lab-0.4.0/src/logic_lab/mathematical/gold_fibo_spiral/README.md +9 -0
- logic_lab-0.4.0/src/logic_lab/mathematical/gold_fibo_spiral/gold_fibo_spiral.py +103 -0
- logic_lab-0.4.0/src/logic_lab/mathematical/grid_deformation/README.md +11 -0
- logic_lab-0.4.0/src/logic_lab/mathematical/grid_deformation/grid_deformation.py +85 -0
- logic_lab-0.4.0/src/logic_lab/mathematical/harmonograph/README.md +11 -0
- logic_lab-0.4.0/src/logic_lab/mathematical/harmonograph/harmonograph.py +39 -0
- logic_lab-0.4.0/src/logic_lab/mathematical/hatching_patterns/README.md +11 -0
- logic_lab-0.4.0/src/logic_lab/mathematical/hatching_patterns/hatching_patterns.py +79 -0
- logic_lab-0.4.0/src/logic_lab/mathematical/higher_bezier/README.md +9 -0
- logic_lab-0.4.0/src/logic_lab/mathematical/higher_bezier/higher_bezier.py +81 -0
- logic_lab-0.4.0/src/logic_lab/mathematical/hilbert_curve/README.md +36 -0
- logic_lab-0.4.0/src/logic_lab/mathematical/hilbert_curve/hilbert_curve.py +156 -0
- logic_lab-0.4.0/src/logic_lab/mathematical/isometric_grid/README.md +11 -0
- logic_lab-0.4.0/src/logic_lab/mathematical/isometric_grid/isometric_grid.py +50 -0
- logic_lab-0.4.0/src/logic_lab/mathematical/iterated_function_systems/README.md +11 -0
- logic_lab-0.4.0/src/logic_lab/mathematical/iterated_function_systems/iterated_function_systems.py +51 -0
- logic_lab-0.4.0/src/logic_lab/mathematical/light_interference/README.md +15 -0
- logic_lab-0.4.0/src/logic_lab/mathematical/light_interference/__init__.py +1 -0
- logic_lab-0.4.0/src/logic_lab/mathematical/light_interference/light_interference.py +92 -0
- logic_lab-0.4.0/src/logic_lab/mathematical/line_interference/README.md +11 -0
- logic_lab-0.4.0/src/logic_lab/mathematical/line_interference/line_interference.py +67 -0
- logic_lab-0.4.0/src/logic_lab/mathematical/lissajous_curves/README.md +38 -0
- logic_lab-0.4.0/src/logic_lab/mathematical/lissajous_curves/lissajous_curves.py +160 -0
- logic_lab-0.4.0/src/logic_lab/mathematical/lloyd_relaxation/README.md +38 -0
- logic_lab-0.4.0/src/logic_lab/mathematical/lloyd_relaxation/lloyd_relaxation.py +181 -0
- logic_lab-0.4.0/src/logic_lab/mathematical/log_spiral/README.md +9 -0
- logic_lab-0.4.0/src/logic_lab/mathematical/log_spiral/log_spiral.py +40 -0
- logic_lab-0.4.0/src/logic_lab/mathematical/log_spiral_zoom/README.md +9 -0
- logic_lab-0.4.0/src/logic_lab/mathematical/log_spiral_zoom/log_spiral_zoom.py +48 -0
- logic_lab-0.4.0/src/logic_lab/mathematical/logistic_bifurcation/README.md +36 -0
- logic_lab-0.4.0/src/logic_lab/mathematical/logistic_bifurcation/logistic_bifurcation.py +139 -0
- logic_lab-0.4.0/src/logic_lab/mathematical/lorenz_attractor/README.md +11 -0
- logic_lab-0.4.0/src/logic_lab/mathematical/lorenz_attractor/__init__.py +0 -0
- logic_lab-0.4.0/src/logic_lab/mathematical/lorenz_attractor/lorenz_attractor.py +118 -0
- logic_lab-0.4.0/src/logic_lab/mathematical/mandelbrot_julia/README.md +38 -0
- logic_lab-0.4.0/src/logic_lab/mathematical/mandelbrot_julia/mandelbrot_julia.py +162 -0
- logic_lab-0.4.0/src/logic_lab/mathematical/marching_squares/README.md +44 -0
- logic_lab-0.4.0/src/logic_lab/mathematical/marching_squares/marching_squares.py +241 -0
- logic_lab-0.4.0/src/logic_lab/mathematical/maurer_rose/README.md +42 -0
- logic_lab-0.4.0/src/logic_lab/mathematical/maurer_rose/maurer_rose.py +135 -0
- logic_lab-0.4.0/src/logic_lab/mathematical/metaball/README.md +38 -0
- logic_lab-0.4.0/src/logic_lab/mathematical/metaball/metaball.py +168 -0
- logic_lab-0.4.0/src/logic_lab/mathematical/mobius_transform_grid/README.md +37 -0
- logic_lab-0.4.0/src/logic_lab/mathematical/mobius_transform_grid/mobius_transform_grid.py +154 -0
- logic_lab-0.4.0/src/logic_lab/mathematical/modular_power/README.md +9 -0
- logic_lab-0.4.0/src/logic_lab/mathematical/modular_power/modular_power.py +39 -0
- logic_lab-0.4.0/src/logic_lab/mathematical/modular_power_visual/README.md +9 -0
- logic_lab-0.4.0/src/logic_lab/mathematical/modular_power_visual/modular_power_visual.py +39 -0
- logic_lab-0.4.0/src/logic_lab/mathematical/modular_table/README.md +9 -0
- logic_lab-0.4.0/src/logic_lab/mathematical/modular_table/modular_table.py +38 -0
- logic_lab-0.4.0/src/logic_lab/mathematical/modular_table_visual/README.md +9 -0
- logic_lab-0.4.0/src/logic_lab/mathematical/modular_table_visual/modular_table_visual.py +38 -0
- logic_lab-0.4.0/src/logic_lab/mathematical/newton_fractal/README.md +36 -0
- logic_lab-0.4.0/src/logic_lab/mathematical/newton_fractal/newton_fractal.py +177 -0
- logic_lab-0.4.0/src/logic_lab/mathematical/orbit_traps/README.md +11 -0
- logic_lab-0.4.0/src/logic_lab/mathematical/orbit_traps/orbit_traps.py +138 -0
- logic_lab-0.4.0/src/logic_lab/mathematical/pen_pressure_curve/README.md +11 -0
- logic_lab-0.4.0/src/logic_lab/mathematical/pen_pressure_curve/pen_pressure_curve.py +189 -0
- logic_lab-0.4.0/src/logic_lab/mathematical/petal_morphogenesis/README.md +14 -0
- logic_lab-0.4.0/src/logic_lab/mathematical/petal_morphogenesis/petal_morphogenesis.py +121 -0
- logic_lab-0.4.0/src/logic_lab/mathematical/phyllotaxis_flower/README.md +14 -0
- logic_lab-0.4.0/src/logic_lab/mathematical/phyllotaxis_flower/phyllotaxis_flower.py +86 -0
- logic_lab-0.4.0/src/logic_lab/mathematical/poisson_disk/README.md +35 -0
- logic_lab-0.4.0/src/logic_lab/mathematical/poisson_disk/poisson_disk.py +159 -0
- logic_lab-0.4.0/src/logic_lab/mathematical/polyhedra_wireframe/README.md +11 -0
- logic_lab-0.4.0/src/logic_lab/mathematical/polyhedra_wireframe/polyhedra_wireframe.py +146 -0
- logic_lab-0.4.0/src/logic_lab/mathematical/prime_spiral/README.md +11 -0
- logic_lab-0.4.0/src/logic_lab/mathematical/prime_spiral/prime_spiral.py +68 -0
- logic_lab-0.4.0/src/logic_lab/mathematical/quadratic_bezier/README.md +9 -0
- logic_lab-0.4.0/src/logic_lab/mathematical/quadratic_bezier/quadratic_bezier.py +66 -0
- logic_lab-0.4.0/src/logic_lab/mathematical/quasicrystal_interference/README.md +38 -0
- logic_lab-0.4.0/src/logic_lab/mathematical/quasicrystal_interference/quasicrystal_interference.py +132 -0
- logic_lab-0.4.0/src/logic_lab/mathematical/recaman_sequence/README.md +11 -0
- logic_lab-0.4.0/src/logic_lab/mathematical/recaman_sequence/recaman_sequence.py +49 -0
- logic_lab-0.4.0/src/logic_lab/mathematical/recur_polygon/README.md +9 -0
- logic_lab-0.4.0/src/logic_lab/mathematical/recur_polygon/recur_polygon.py +66 -0
- logic_lab-0.4.0/src/logic_lab/mathematical/recur_square/README.md +9 -0
- logic_lab-0.4.0/src/logic_lab/mathematical/recur_square/recur_square.py +63 -0
- logic_lab-0.4.0/src/logic_lab/mathematical/recur_square_spiral/README.md +9 -0
- logic_lab-0.4.0/src/logic_lab/mathematical/recur_square_spiral/recur_square_spiral.py +103 -0
- logic_lab-0.4.0/src/logic_lab/mathematical/reflection_billiards/README.md +15 -0
- logic_lab-0.4.0/src/logic_lab/mathematical/reflection_billiards/__init__.py +1 -0
- logic_lab-0.4.0/src/logic_lab/mathematical/reflection_billiards/reflection_billiards.py +166 -0
- logic_lab-0.4.0/src/logic_lab/mathematical/rose_curves/__init__.py +0 -0
- logic_lab-0.4.0/src/logic_lab/mathematical/rose_curves/rose_curves.py +229 -0
- logic_lab-0.4.0/src/logic_lab/mathematical/rossler_attractor/README.md +11 -0
- logic_lab-0.4.0/src/logic_lab/mathematical/rossler_attractor/__init__.py +0 -0
- logic_lab-0.4.0/src/logic_lab/mathematical/rossler_attractor/rossler_attractor.py +119 -0
- logic_lab-0.4.0/src/logic_lab/mathematical/shape_morphing/README.md +11 -0
- logic_lab-0.4.0/src/logic_lab/mathematical/shape_morphing/shape_morphing.py +83 -0
- logic_lab-0.4.0/src/logic_lab/mathematical/signed_distance_field/README.md +36 -0
- logic_lab-0.4.0/src/logic_lab/mathematical/signed_distance_field/signed_distance_field.py +202 -0
- logic_lab-0.4.0/src/logic_lab/mathematical/spirograph/__init__.py +0 -0
- logic_lab-0.4.0/src/logic_lab/mathematical/spirograph/spirograph.py +230 -0
- logic_lab-0.4.0/src/logic_lab/mathematical/spirograph_curves/README.md +36 -0
- logic_lab-0.4.0/src/logic_lab/mathematical/spirograph_curves/spirograph_curves.py +184 -0
- logic_lab-0.4.0/src/logic_lab/mathematical/spirolateral/README.md +11 -0
- logic_lab-0.4.0/src/logic_lab/mathematical/spirolateral/spirolateral.py +55 -0
- logic_lab-0.4.0/src/logic_lab/mathematical/strange_attractors/README.md +11 -0
- logic_lab-0.4.0/src/logic_lab/mathematical/strange_attractors/__init__.py +0 -0
- logic_lab-0.4.0/src/logic_lab/mathematical/strange_attractors/strange_attractors.py +233 -0
- logic_lab-0.4.0/src/logic_lab/mathematical/string_art/README.md +11 -0
- logic_lab-0.4.0/src/logic_lab/mathematical/string_art/string_art.py +66 -0
- logic_lab-0.4.0/src/logic_lab/mathematical/superellipse/README.md +11 -0
- logic_lab-0.4.0/src/logic_lab/mathematical/superellipse/superellipse.py +42 -0
- logic_lab-0.4.0/src/logic_lab/mathematical/superformula/README.md +36 -0
- logic_lab-0.4.0/src/logic_lab/mathematical/superformula/superformula.py +139 -0
- logic_lab-0.4.0/src/logic_lab/mathematical/tangent_art/README.md +11 -0
- logic_lab-0.4.0/src/logic_lab/mathematical/tangent_art/tangent_art.py +76 -0
- logic_lab-0.4.0/src/logic_lab/mathematical/thomas_attractor/README.md +11 -0
- logic_lab-0.4.0/src/logic_lab/mathematical/thomas_attractor/__init__.py +0 -0
- logic_lab-0.4.0/src/logic_lab/mathematical/thomas_attractor/thomas_attractor.py +120 -0
- logic_lab-0.4.0/src/logic_lab/mathematical/tree_ring_growth/README.md +15 -0
- logic_lab-0.4.0/src/logic_lab/mathematical/tree_ring_growth/tree_ring_growth.py +118 -0
- logic_lab-0.4.0/src/logic_lab/mathematical/typography_particles/README.md +11 -0
- logic_lab-0.4.0/src/logic_lab/mathematical/typography_particles/typography_particles.py +65 -0
- logic_lab-0.4.0/src/logic_lab/mathematical/ulam_spiral/README.md +35 -0
- logic_lab-0.4.0/src/logic_lab/mathematical/ulam_spiral/ulam_spiral.py +176 -0
- logic_lab-0.4.0/src/logic_lab/mathematical/voronoi/README.md +34 -0
- logic_lab-0.4.0/src/logic_lab/mathematical/voronoi/voronoi.py +184 -0
- logic_lab-0.4.0/src/logic_lab/mathematical/weighted_voronoi_stippling/README.md +11 -0
- logic_lab-0.4.0/src/logic_lab/mathematical/weighted_voronoi_stippling/weighted_voronoi_stippling.py +121 -0
- logic_lab-0.4.0/src/logic_lab/mathematical/worley_noise/README.md +35 -0
- logic_lab-0.4.0/src/logic_lab/mathematical/worley_noise/worley_noise.py +145 -0
- logic_lab-0.4.0/src/logic_lab/mcp/README.md +239 -0
- logic_lab-0.4.0/src/logic_lab/mcp/_data.py +277 -0
- logic_lab-0.4.0/src/logic_lab/mcp/data/art_manifest.json +7028 -0
- logic_lab-0.4.0/src/logic_lab/mcp/logic_lab_server.py +668 -0
- logic_lab-0.4.0/src/logic_lab/network_dynamics/__init__.py +0 -0
- logic_lab-0.4.0/src/logic_lab/network_dynamics/kuramoto_oscillators/__init__.py +0 -0
- logic_lab-0.4.0/src/logic_lab/network_dynamics/kuramoto_oscillators/kuramoto_oscillators.py +330 -0
- logic_lab-0.4.0/src/logic_lab/network_dynamics/scale_free_network/__init__.py +0 -0
- logic_lab-0.4.0/src/logic_lab/network_dynamics/scale_free_network/scale_free_network.py +215 -0
- logic_lab-0.4.0/src/logic_lab/network_dynamics/sir_epidemic/__init__.py +0 -0
- logic_lab-0.4.0/src/logic_lab/network_dynamics/sir_epidemic/sir_epidemic.py +228 -0
- logic_lab-0.4.0/src/logic_lab/network_dynamics/small_world_network/__init__.py +0 -0
- logic_lab-0.4.0/src/logic_lab/network_dynamics/small_world_network/small_world_network.py +184 -0
- logic_lab-0.4.0/src/logic_lab/neuro_evolution/flappy_bird/README.md +45 -0
- logic_lab-0.4.0/src/logic_lab/neuro_evolution/flappy_bird/flappy_bird.py +117 -0
- logic_lab-0.4.0/src/logic_lab/neuro_evolution/flappy_bird_neuro_evolution/README.md +53 -0
- logic_lab-0.4.0/src/logic_lab/neuro_evolution/flappy_bird_neuro_evolution/flappy_bird_neuro_evolution.py +294 -0
- logic_lab-0.4.0/src/logic_lab/neuro_evolution/smart_rockets_neuro_evolution/README.md +68 -0
- logic_lab-0.4.0/src/logic_lab/neuro_evolution/smart_rockets_neuro_evolution/smart_rockets_neuro_evolution.py +327 -0
- logic_lab-0.4.0/src/logic_lab/optical/__init__.py +0 -0
- logic_lab-0.4.0/src/logic_lab/optical/caustics/__init__.py +0 -0
- logic_lab-0.4.0/src/logic_lab/optical/caustics/caustics.py +219 -0
- logic_lab-0.4.0/src/logic_lab/optical/diffraction_pattern/__init__.py +0 -0
- logic_lab-0.4.0/src/logic_lab/optical/diffraction_pattern/diffraction_pattern.py +189 -0
- logic_lab-0.4.0/src/logic_lab/optical/thin_film/__init__.py +0 -0
- logic_lab-0.4.0/src/logic_lab/optical/thin_film/thin_film.py +246 -0
- logic_lab-0.4.0/src/logic_lab/oscillators/__init__.py +0 -0
- logic_lab-0.4.0/src/logic_lab/oscillators/chladni_figures/README.md +11 -0
- logic_lab-0.4.0/src/logic_lab/oscillators/chladni_figures/__init__.py +0 -0
- logic_lab-0.4.0/src/logic_lab/oscillators/chladni_figures/chladni_figures.py +222 -0
- logic_lab-0.4.0/src/logic_lab/oscillators/coupled_oscillators/README.md +11 -0
- logic_lab-0.4.0/src/logic_lab/oscillators/coupled_oscillators/__init__.py +0 -0
- logic_lab-0.4.0/src/logic_lab/oscillators/coupled_oscillators/coupled_oscillators.py +177 -0
- logic_lab-0.4.0/src/logic_lab/oscillators/harmonic_pantograph/README.md +11 -0
- logic_lab-0.4.0/src/logic_lab/oscillators/harmonic_pantograph/__init__.py +0 -0
- logic_lab-0.4.0/src/logic_lab/oscillators/harmonic_pantograph/harmonic_pantograph.py +161 -0
- logic_lab-0.4.0/src/logic_lab/oscillators/lissajous_curves/README.md +11 -0
- logic_lab-0.4.0/src/logic_lab/oscillators/lissajous_curves/__init__.py +0 -0
- logic_lab-0.4.0/src/logic_lab/oscillators/lissajous_curves/lissajous_curves.py +147 -0
- logic_lab-0.4.0/src/logic_lab/oscillators/van_der_pol/__init__.py +0 -0
- logic_lab-0.4.0/src/logic_lab/oscillators/van_der_pol/van_der_pol.py +280 -0
- logic_lab-0.4.0/src/logic_lab/physics/accelerate_and_decelerate/README.md +9 -0
- logic_lab-0.4.0/src/logic_lab/physics/accelerate_and_decelerate/__init__.py +0 -0
- logic_lab-0.4.0/src/logic_lab/physics/accelerate_and_decelerate/accelerate_and_decelerate.py +100 -0
- logic_lab-0.4.0/src/logic_lab/physics/accelerating_towards_the_mouse/README.md +7 -0
- logic_lab-0.4.0/src/logic_lab/physics/accelerating_towards_the_mouse/__init__.py +0 -0
- logic_lab-0.4.0/src/logic_lab/physics/accelerating_towards_the_mouse/accelerating_towards_the_mouse.py +61 -0
- logic_lab-0.4.0/src/logic_lab/physics/accept_reject_distribution/README.md +7 -0
- logic_lab-0.4.0/src/logic_lab/physics/accept_reject_distribution/__init__.py +1 -0
- logic_lab-0.4.0/src/logic_lab/physics/accept_reject_distribution/accept_reject_distribution.py +48 -0
- logic_lab-0.4.0/src/logic_lab/physics/additive_wave/README.md +8 -0
- logic_lab-0.4.0/src/logic_lab/physics/additive_wave/__init__.py +1 -0
- logic_lab-0.4.0/src/logic_lab/physics/additive_wave/additive_wave.py +70 -0
- logic_lab-0.4.0/src/logic_lab/physics/angle_between/README.md +8 -0
- logic_lab-0.4.0/src/logic_lab/physics/angle_between/__init__.py +0 -0
- logic_lab-0.4.0/src/logic_lab/physics/angle_between/angle_between.py +60 -0
- logic_lab-0.4.0/src/logic_lab/physics/angular_motion_using_rotate/README.md +8 -0
- logic_lab-0.4.0/src/logic_lab/physics/angular_motion_using_rotate/__init__.py +1 -0
- logic_lab-0.4.0/src/logic_lab/physics/angular_motion_using_rotate/angular_motion_using_rotate.py +41 -0
- logic_lab-0.4.0/src/logic_lab/physics/array_particles/README.md +8 -0
- logic_lab-0.4.0/src/logic_lab/physics/array_particles/__init__.py +1 -0
- logic_lab-0.4.0/src/logic_lab/physics/array_particles/array_particles.py +64 -0
- logic_lab-0.4.0/src/logic_lab/physics/asteroids_particle_system/README.md +8 -0
- logic_lab-0.4.0/src/logic_lab/physics/asteroids_particle_system/__init__.py +1 -0
- logic_lab-0.4.0/src/logic_lab/physics/asteroids_particle_system/asteroids_particle_system.py +174 -0
- logic_lab-0.4.0/src/logic_lab/physics/attraction/README.md +8 -0
- logic_lab-0.4.0/src/logic_lab/physics/attraction/__init__.py +0 -0
- logic_lab-0.4.0/src/logic_lab/physics/attraction/attraction.py +121 -0
- logic_lab-0.4.0/src/logic_lab/physics/attraction_magnitude/README.md +7 -0
- logic_lab-0.4.0/src/logic_lab/physics/attraction_magnitude/__init__.py +0 -0
- logic_lab-0.4.0/src/logic_lab/physics/attraction_magnitude/attraction_magnitude.py +57 -0
- logic_lab-0.4.0/src/logic_lab/physics/attraction_with_many_movers/README.md +8 -0
- logic_lab-0.4.0/src/logic_lab/physics/attraction_with_many_movers/__init__.py +0 -0
- logic_lab-0.4.0/src/logic_lab/physics/attraction_with_many_movers/attraction_with_many_movers.py +123 -0
- logic_lab-0.4.0/src/logic_lab/physics/bouncing_ball_3d/README.md +8 -0
- logic_lab-0.4.0/src/logic_lab/physics/bouncing_ball_3d/__init__.py +0 -0
- logic_lab-0.4.0/src/logic_lab/physics/bouncing_ball_3d/bouncing_ball_3d.py +80 -0
- logic_lab-0.4.0/src/logic_lab/physics/bouncing_ball_no_vectors/README.md +7 -0
- logic_lab-0.4.0/src/logic_lab/physics/bouncing_ball_no_vectors/__init__.py +0 -0
- logic_lab-0.4.0/src/logic_lab/physics/bouncing_ball_no_vectors/bouncing_ball_no_vectors.py +43 -0
- logic_lab-0.4.0/src/logic_lab/physics/bouncing_ball_with_vectors/README.md +7 -0
- logic_lab-0.4.0/src/logic_lab/physics/bouncing_ball_with_vectors/__init__.py +0 -0
- logic_lab-0.4.0/src/logic_lab/physics/bouncing_ball_with_vectors/bouncing_ball_with_vectors.py +41 -0
- logic_lab-0.4.0/src/logic_lab/physics/box_collision/README.md +11 -0
- logic_lab-0.4.0/src/logic_lab/physics/box_collision/__init__.py +1 -0
- logic_lab-0.4.0/src/logic_lab/physics/box_collision/box_collision.py +56 -0
- logic_lab-0.4.0/src/logic_lab/physics/buoyancy_balloon/README.md +8 -0
- logic_lab-0.4.0/src/logic_lab/physics/buoyancy_balloon/__init__.py +0 -0
- logic_lab-0.4.0/src/logic_lab/physics/buoyancy_balloon/buoyancy_balloon.py +98 -0
- logic_lab-0.4.0/src/logic_lab/physics/caustic_light_field/README.md +14 -0
- logic_lab-0.4.0/src/logic_lab/physics/caustic_light_field/__init__.py +1 -0
- logic_lab-0.4.0/src/logic_lab/physics/caustic_light_field/caustic_light_field.py +114 -0
- logic_lab-0.4.0/src/logic_lab/physics/chladni_plate/README.md +15 -0
- logic_lab-0.4.0/src/logic_lab/physics/chladni_plate/__init__.py +1 -0
- logic_lab-0.4.0/src/logic_lab/physics/chladni_plate/chladni_plate.py +94 -0
- logic_lab-0.4.0/src/logic_lab/physics/collision_events/README.md +11 -0
- logic_lab-0.4.0/src/logic_lab/physics/collision_events/__init__.py +1 -0
- logic_lab-0.4.0/src/logic_lab/physics/collision_events/collision_events.py +86 -0
- logic_lab-0.4.0/src/logic_lab/physics/contact_solver/README.md +11 -0
- logic_lab-0.4.0/src/logic_lab/physics/contact_solver/__init__.py +1 -0
- logic_lab-0.4.0/src/logic_lab/physics/contact_solver/contact_solver.py +89 -0
- logic_lab-0.4.0/src/logic_lab/physics/double_pendulum/README.md +11 -0
- logic_lab-0.4.0/src/logic_lab/physics/double_pendulum/__init__.py +1 -0
- logic_lab-0.4.0/src/logic_lab/physics/double_pendulum/double_pendulum.py +84 -0
- logic_lab-0.4.0/src/logic_lab/physics/dye_plume_field/README.md +17 -0
- logic_lab-0.4.0/src/logic_lab/physics/dye_plume_field/__init__.py +1 -0
- logic_lab-0.4.0/src/logic_lab/physics/dye_plume_field/dye_plume_field.py +187 -0
- logic_lab-0.4.0/src/logic_lab/physics/emitters_1/README.md +9 -0
- logic_lab-0.4.0/src/logic_lab/physics/emitters_1/__init__.py +1 -0
- logic_lab-0.4.0/src/logic_lab/physics/emitters_1/emitters_1.py +82 -0
- logic_lab-0.4.0/src/logic_lab/physics/emitters_2/README.md +9 -0
- logic_lab-0.4.0/src/logic_lab/physics/emitters_2/__init__.py +1 -0
- logic_lab-0.4.0/src/logic_lab/physics/emitters_2/emitters_2.py +85 -0
- logic_lab-0.4.0/src/logic_lab/physics/excitable_wavefronts/README.md +14 -0
- logic_lab-0.4.0/src/logic_lab/physics/excitable_wavefronts/__init__.py +1 -0
- logic_lab-0.4.0/src/logic_lab/physics/excitable_wavefronts/excitable_wavefronts.py +103 -0
- logic_lab-0.4.0/src/logic_lab/physics/flow_field_art/README.md +11 -0
- logic_lab-0.4.0/src/logic_lab/physics/flow_field_art/flow_field_art.py +70 -0
- logic_lab-0.4.0/src/logic_lab/physics/fluid_particles/README.md +12 -0
- logic_lab-0.4.0/src/logic_lab/physics/fluid_particles/__init__.py +1 -0
- logic_lab-0.4.0/src/logic_lab/physics/fluid_particles/fluid_particles.py +70 -0
- logic_lab-0.4.0/src/logic_lab/physics/fluid_resistance/README.md +8 -0
- logic_lab-0.4.0/src/logic_lab/physics/fluid_resistance/__init__.py +0 -0
- logic_lab-0.4.0/src/logic_lab/physics/fluid_resistance/fluid_resistance.py +102 -0
- logic_lab-0.4.0/src/logic_lab/physics/forces/README.md +10 -0
- logic_lab-0.4.0/src/logic_lab/physics/forces/__init__.py +0 -0
- logic_lab-0.4.0/src/logic_lab/physics/forces/forces.py +71 -0
- logic_lab-0.4.0/src/logic_lab/physics/forces_two_objects/README.md +10 -0
- logic_lab-0.4.0/src/logic_lab/physics/forces_two_objects/__init__.py +0 -0
- logic_lab-0.4.0/src/logic_lab/physics/forces_two_objects/forces_two_objects.py +79 -0
- logic_lab-0.4.0/src/logic_lab/physics/forces_with_arbitrary_angular_motion/README.md +8 -0
- logic_lab-0.4.0/src/logic_lab/physics/forces_with_arbitrary_angular_motion/__init__.py +1 -0
- logic_lab-0.4.0/src/logic_lab/physics/forces_with_arbitrary_angular_motion/forces_with_arbitrary_angular_motion.py +93 -0
- logic_lab-0.4.0/src/logic_lab/physics/fracture_dynamics/README.md +11 -0
- logic_lab-0.4.0/src/logic_lab/physics/fracture_dynamics/__init__.py +1 -0
- logic_lab-0.4.0/src/logic_lab/physics/fracture_dynamics/fracture_dynamics.py +72 -0
- logic_lab-0.4.0/src/logic_lab/physics/gaussian_distribution/README.md +7 -0
- logic_lab-0.4.0/src/logic_lab/physics/gaussian_distribution/__init__.py +1 -0
- logic_lab-0.4.0/src/logic_lab/physics/gaussian_distribution/gaussian_distribution.py +27 -0
- logic_lab-0.4.0/src/logic_lab/physics/gaussian_random_walker/README.md +7 -0
- logic_lab-0.4.0/src/logic_lab/physics/gaussian_random_walker/__init__.py +0 -0
- logic_lab-0.4.0/src/logic_lab/physics/gaussian_random_walker/gaussian_random_walker.py +45 -0
- logic_lab-0.4.0/src/logic_lab/physics/gravity_scaled_by_mass/README.md +8 -0
- logic_lab-0.4.0/src/logic_lab/physics/gravity_scaled_by_mass/__init__.py +0 -0
- logic_lab-0.4.0/src/logic_lab/physics/gravity_scaled_by_mass/gravity_scaled_by_mass.py +84 -0
- logic_lab-0.4.0/src/logic_lab/physics/including_friction/README.md +8 -0
- logic_lab-0.4.0/src/logic_lab/physics/including_friction/__init__.py +0 -0
- logic_lab-0.4.0/src/logic_lab/physics/including_friction/including_friction.py +81 -0
- logic_lab-0.4.0/src/logic_lab/physics/ink_smoke_advection/README.md +18 -0
- logic_lab-0.4.0/src/logic_lab/physics/ink_smoke_advection/__init__.py +1 -0
- logic_lab-0.4.0/src/logic_lab/physics/ink_smoke_advection/ink_smoke_advection.py +204 -0
- logic_lab-0.4.0/src/logic_lab/physics/joints_and_constraints/README.md +12 -0
- logic_lab-0.4.0/src/logic_lab/physics/joints_and_constraints/__init__.py +1 -0
- logic_lab-0.4.0/src/logic_lab/physics/joints_and_constraints/joints_and_constraints.py +52 -0
- logic_lab-0.4.0/src/logic_lab/physics/lenia/README.md +11 -0
- logic_lab-0.4.0/src/logic_lab/physics/lenia/lenia.py +77 -0
- logic_lab-0.4.0/src/logic_lab/physics/light_falloff_field/README.md +15 -0
- logic_lab-0.4.0/src/logic_lab/physics/light_falloff_field/__init__.py +1 -0
- logic_lab-0.4.0/src/logic_lab/physics/light_falloff_field/light_falloff_field.py +109 -0
- logic_lab-0.4.0/src/logic_lab/physics/light_ray_casting/README.md +16 -0
- logic_lab-0.4.0/src/logic_lab/physics/light_ray_casting/__init__.py +1 -0
- logic_lab-0.4.0/src/logic_lab/physics/light_ray_casting/light_ray_casting.py +152 -0
- logic_lab-0.4.0/src/logic_lab/physics/magnetic_pendulum/README.md +11 -0
- logic_lab-0.4.0/src/logic_lab/physics/magnetic_pendulum/magnetic_pendulum.py +67 -0
- logic_lab-0.4.0/src/logic_lab/physics/mass_spring_cloth/README.md +12 -0
- logic_lab-0.4.0/src/logic_lab/physics/mass_spring_cloth/__init__.py +1 -0
- logic_lab-0.4.0/src/logic_lab/physics/mass_spring_cloth/mass_spring_cloth.py +55 -0
- logic_lab-0.4.0/src/logic_lab/physics/motion_101_velocity/README.md +7 -0
- logic_lab-0.4.0/src/logic_lab/physics/motion_101_velocity/__init__.py +0 -0
- logic_lab-0.4.0/src/logic_lab/physics/motion_101_velocity/motion_101_velocity.py +57 -0
- logic_lab-0.4.0/src/logic_lab/physics/motion_101_velocity_and_constant_acceleration/README.md +7 -0
- logic_lab-0.4.0/src/logic_lab/physics/motion_101_velocity_and_constant_acceleration/__init__.py +0 -0
- logic_lab-0.4.0/src/logic_lab/physics/motion_101_velocity_and_constant_acceleration/motion_101_velocity_and_constant_acceleration.py +63 -0
- logic_lab-0.4.0/src/logic_lab/physics/motion_101_velocity_and_random_acceleration/README.md +7 -0
- logic_lab-0.4.0/src/logic_lab/physics/motion_101_velocity_and_random_acceleration/__init__.py +0 -0
- logic_lab-0.4.0/src/logic_lab/physics/motion_101_velocity_and_random_acceleration/motion_101_velocity_and_random_acceleration.py +66 -0
- logic_lab-0.4.0/src/logic_lab/physics/multiple_emitters/README.md +9 -0
- logic_lab-0.4.0/src/logic_lab/physics/multiple_emitters/__init__.py +1 -0
- logic_lab-0.4.0/src/logic_lab/physics/multiple_emitters/multiple_emitters.py +81 -0
- logic_lab-0.4.0/src/logic_lab/physics/multiple_emitters_0/README.md +9 -0
- logic_lab-0.4.0/src/logic_lab/physics/multiple_emitters_0/__init__.py +1 -0
- logic_lab-0.4.0/src/logic_lab/physics/multiple_emitters_0/multiple_emitters_0.py +81 -0
- logic_lab-0.4.0/src/logic_lab/physics/n_bodies/README.md +7 -0
- logic_lab-0.4.0/src/logic_lab/physics/n_bodies/__init__.py +0 -0
- logic_lab-0.4.0/src/logic_lab/physics/n_bodies/n_bodies.py +68 -0
- logic_lab-0.4.0/src/logic_lab/physics/n_body_orbital_simulation/README.md +8 -0
- logic_lab-0.4.0/src/logic_lab/physics/n_body_orbital_simulation/__init__.py +0 -0
- logic_lab-0.4.0/src/logic_lab/physics/n_body_orbital_simulation/n_body_orbital_simulation.py +76 -0
- logic_lab-0.4.0/src/logic_lab/physics/noise_2d_animated/README.md +8 -0
- logic_lab-0.4.0/src/logic_lab/physics/noise_2d_animated/__init__.py +0 -0
- logic_lab-0.4.0/src/logic_lab/physics/noise_2d_animated/noise_2d_animated.py +62 -0
- logic_lab-0.4.0/src/logic_lab/physics/noise_2d_parameterized/README.md +8 -0
- logic_lab-0.4.0/src/logic_lab/physics/noise_2d_parameterized/__init__.py +0 -0
- logic_lab-0.4.0/src/logic_lab/physics/noise_2d_parameterized/noise_2d_parameterized.py +57 -0
- logic_lab-0.4.0/src/logic_lab/physics/noise_terrain/README.md +7 -0
- logic_lab-0.4.0/src/logic_lab/physics/noise_terrain/__init__.py +0 -0
- logic_lab-0.4.0/src/logic_lab/physics/noise_terrain/noise_terrain.py +72 -0
- logic_lab-0.4.0/src/logic_lab/physics/oop_wave/README.md +8 -0
- logic_lab-0.4.0/src/logic_lab/physics/oop_wave/__init__.py +1 -0
- logic_lab-0.4.0/src/logic_lab/physics/oop_wave/oop_wave.py +65 -0
- logic_lab-0.4.0/src/logic_lab/physics/oscillator_objects/README.md +8 -0
- logic_lab-0.4.0/src/logic_lab/physics/oscillator_objects/__init__.py +1 -0
- logic_lab-0.4.0/src/logic_lab/physics/oscillator_objects/oscillator_objects.py +57 -0
- logic_lab-0.4.0/src/logic_lab/physics/paint_splatter/README.md +21 -0
- logic_lab-0.4.0/src/logic_lab/physics/paint_splatter/__init__.py +0 -0
- logic_lab-0.4.0/src/logic_lab/physics/paint_splatter/paint_splatter.py +134 -0
- logic_lab-0.4.0/src/logic_lab/physics/particle_emitter/README.md +8 -0
- logic_lab-0.4.0/src/logic_lab/physics/particle_emitter/__init__.py +1 -0
- logic_lab-0.4.0/src/logic_lab/physics/particle_emitter/particle_emitter.py +77 -0
- logic_lab-0.4.0/src/logic_lab/physics/particle_flow/README.md +47 -0
- logic_lab-0.4.0/src/logic_lab/physics/particle_flow/particle_flow.py +157 -0
- logic_lab-0.4.0/src/logic_lab/physics/particle_force_fields/README.md +12 -0
- logic_lab-0.4.0/src/logic_lab/physics/particle_force_fields/__init__.py +1 -0
- logic_lab-0.4.0/src/logic_lab/physics/particle_force_fields/particle_force_fields.py +54 -0
- logic_lab-0.4.0/src/logic_lab/physics/particle_shatter/README.md +8 -0
- logic_lab-0.4.0/src/logic_lab/physics/particle_shatter/__init__.py +1 -0
- logic_lab-0.4.0/src/logic_lab/physics/particle_shatter/particle_shatter.py +91 -0
- logic_lab-0.4.0/src/logic_lab/physics/particle_system_forces/README.md +9 -0
- logic_lab-0.4.0/src/logic_lab/physics/particle_system_forces/__init__.py +1 -0
- logic_lab-0.4.0/src/logic_lab/physics/particle_system_forces/particle_system_forces.py +84 -0
- logic_lab-0.4.0/src/logic_lab/physics/particle_system_inheritance_polymorphism/README.md +9 -0
- logic_lab-0.4.0/src/logic_lab/physics/particle_system_inheritance_polymorphism/__init__.py +1 -0
- logic_lab-0.4.0/src/logic_lab/physics/particle_system_inheritance_polymorphism/particle_system_inheritance_polymorphism.py +94 -0
- logic_lab-0.4.0/src/logic_lab/physics/particle_system_smoke_webgl/README.md +9 -0
- logic_lab-0.4.0/src/logic_lab/physics/particle_system_smoke_webgl/__init__.py +1 -0
- logic_lab-0.4.0/src/logic_lab/physics/particle_system_smoke_webgl/particle_system_smoke_webgl.py +123 -0
- logic_lab-0.4.0/src/logic_lab/physics/particle_system_with_repeller/README.md +8 -0
- logic_lab-0.4.0/src/logic_lab/physics/particle_system_with_repeller/__init__.py +1 -0
- logic_lab-0.4.0/src/logic_lab/physics/particle_system_with_repeller/particle_system_with_repeller.py +112 -0
- logic_lab-0.4.0/src/logic_lab/physics/particle_textures_array/README.md +9 -0
- logic_lab-0.4.0/src/logic_lab/physics/particle_textures_array/__init__.py +0 -0
- logic_lab-0.4.0/src/logic_lab/physics/particle_textures_array/particle_textures_array.py +115 -0
- logic_lab-0.4.0/src/logic_lab/physics/perlin_noise_walker/README.md +8 -0
- logic_lab-0.4.0/src/logic_lab/physics/perlin_noise_walker/__init__.py +0 -0
- logic_lab-0.4.0/src/logic_lab/physics/perlin_noise_walker/perlin_noise_walker.py +48 -0
- logic_lab-0.4.0/src/logic_lab/physics/perlin_noise_walker_lines/README.md +7 -0
- logic_lab-0.4.0/src/logic_lab/physics/perlin_noise_walker_lines/__init__.py +0 -0
- logic_lab-0.4.0/src/logic_lab/physics/perlin_noise_walker_lines/perlin_noise_walker_lines.py +51 -0
- logic_lab-0.4.0/src/logic_lab/physics/pointing_in_the_direction_of_motion/README.md +8 -0
- logic_lab-0.4.0/src/logic_lab/physics/pointing_in_the_direction_of_motion/__init__.py +1 -0
- logic_lab-0.4.0/src/logic_lab/physics/pointing_in_the_direction_of_motion/pointing_in_the_direction_of_motion.py +78 -0
- logic_lab-0.4.0/src/logic_lab/physics/polar_to_cartesian/README.md +8 -0
- logic_lab-0.4.0/src/logic_lab/physics/polar_to_cartesian/__init__.py +1 -0
- logic_lab-0.4.0/src/logic_lab/physics/polar_to_cartesian/polar_to_cartesian.py +41 -0
- logic_lab-0.4.0/src/logic_lab/physics/pollen_dispersal/README.md +15 -0
- logic_lab-0.4.0/src/logic_lab/physics/pollen_dispersal/pollen_dispersal.py +167 -0
- logic_lab-0.4.0/src/logic_lab/physics/quadratic_random_walker/README.md +7 -0
- logic_lab-0.4.0/src/logic_lab/physics/quadratic_random_walker/__init__.py +0 -0
- logic_lab-0.4.0/src/logic_lab/physics/quadratic_random_walker/quadratic_random_walker.py +59 -0
- logic_lab-0.4.0/src/logic_lab/physics/random_distribution/README.md +7 -0
- logic_lab-0.4.0/src/logic_lab/physics/random_distribution/__init__.py +1 -0
- logic_lab-0.4.0/src/logic_lab/physics/random_distribution/random_distribution.py +37 -0
- logic_lab-0.4.0/src/logic_lab/physics/random_walk/README.md +7 -0
- logic_lab-0.4.0/src/logic_lab/physics/random_walk/__init__.py +1 -0
- logic_lab-0.4.0/src/logic_lab/physics/random_walk/random_walk.py +51 -0
- logic_lab-0.4.0/src/logic_lab/physics/random_walk_right/README.md +7 -0
- logic_lab-0.4.0/src/logic_lab/physics/random_walk_right/__init__.py +1 -0
- logic_lab-0.4.0/src/logic_lab/physics/random_walk_right/random_walk_right.py +51 -0
- logic_lab-0.4.0/src/logic_lab/physics/random_walk_towards_mouse/README.md +7 -0
- logic_lab-0.4.0/src/logic_lab/physics/random_walk_towards_mouse/__init__.py +0 -0
- logic_lab-0.4.0/src/logic_lab/physics/random_walk_towards_mouse/random_walk_towards_mouse.py +63 -0
- logic_lab-0.4.0/src/logic_lab/physics/raycast_queries/README.md +11 -0
- logic_lab-0.4.0/src/logic_lab/physics/raycast_queries/__init__.py +1 -0
- logic_lab-0.4.0/src/logic_lab/physics/raycast_queries/raycast_queries.py +70 -0
- logic_lab-0.4.0/src/logic_lab/physics/reaction_diffusion/README.md +57 -0
- logic_lab-0.4.0/src/logic_lab/physics/reaction_diffusion/reaction_diffusion.py +216 -0
- logic_lab-0.4.0/src/logic_lab/physics/refraction_prism/README.md +14 -0
- logic_lab-0.4.0/src/logic_lab/physics/refraction_prism/__init__.py +1 -0
- logic_lab-0.4.0/src/logic_lab/physics/refraction_prism/refraction_prism.py +159 -0
- logic_lab-0.4.0/src/logic_lab/physics/rigid_body_collision/README.md +13 -0
- logic_lab-0.4.0/src/logic_lab/physics/rigid_body_collision/__init__.py +1 -0
- logic_lab-0.4.0/src/logic_lab/physics/rigid_body_collision/rigid_body_collision.py +79 -0
- logic_lab-0.4.0/src/logic_lab/physics/ripple_field/README.md +14 -0
- logic_lab-0.4.0/src/logic_lab/physics/ripple_field/__init__.py +1 -0
- logic_lab-0.4.0/src/logic_lab/physics/ripple_field/ripple_field.py +82 -0
- logic_lab-0.4.0/src/logic_lab/physics/rotate_baton/README.md +8 -0
- logic_lab-0.4.0/src/logic_lab/physics/rotate_baton/__init__.py +1 -0
- logic_lab-0.4.0/src/logic_lab/physics/rotate_baton/rotate_baton.py +39 -0
- logic_lab-0.4.0/src/logic_lab/physics/rotating_rigid_bodies/README.md +11 -0
- logic_lab-0.4.0/src/logic_lab/physics/rotating_rigid_bodies/__init__.py +1 -0
- logic_lab-0.4.0/src/logic_lab/physics/rotating_rigid_bodies/rotating_rigid_bodies.py +81 -0
- logic_lab-0.4.0/src/logic_lab/physics/sand_simulation/README.md +11 -0
- logic_lab-0.4.0/src/logic_lab/physics/sand_simulation/sand_simulation.py +53 -0
- logic_lab-0.4.0/src/logic_lab/physics/sat_polygon_collision/README.md +11 -0
- logic_lab-0.4.0/src/logic_lab/physics/sat_polygon_collision/__init__.py +1 -0
- logic_lab-0.4.0/src/logic_lab/physics/sat_polygon_collision/sat_polygon_collision.py +58 -0
- logic_lab-0.4.0/src/logic_lab/physics/seismic_wave_field/README.md +14 -0
- logic_lab-0.4.0/src/logic_lab/physics/seismic_wave_field/__init__.py +1 -0
- logic_lab-0.4.0/src/logic_lab/physics/seismic_wave_field/seismic_wave_field.py +90 -0
- logic_lab-0.4.0/src/logic_lab/physics/simple_harmonic_motion/README.md +8 -0
- logic_lab-0.4.0/src/logic_lab/physics/simple_harmonic_motion/__init__.py +1 -0
- logic_lab-0.4.0/src/logic_lab/physics/simple_harmonic_motion/simple_harmonic_motion.py +34 -0
- logic_lab-0.4.0/src/logic_lab/physics/simple_harmonic_motion_ii/README.md +8 -0
- logic_lab-0.4.0/src/logic_lab/physics/simple_harmonic_motion_ii/__init__.py +1 -0
- logic_lab-0.4.0/src/logic_lab/physics/simple_harmonic_motion_ii/simple_harmonic_motion_ii.py +39 -0
- logic_lab-0.4.0/src/logic_lab/physics/simple_spring_with_toxiclibs/README.md +9 -0
- logic_lab-0.4.0/src/logic_lab/physics/simple_spring_with_toxiclibs/__init__.py +0 -0
- logic_lab-0.4.0/src/logic_lab/physics/simple_spring_with_toxiclibs/simple_spring_with_toxiclibs.py +128 -0
- logic_lab-0.4.0/src/logic_lab/physics/sine_cosine_lookup_table/README.md +8 -0
- logic_lab-0.4.0/src/logic_lab/physics/sine_cosine_lookup_table/__init__.py +0 -0
- logic_lab-0.4.0/src/logic_lab/physics/sine_cosine_lookup_table/sine_cosine_lookup_table.py +47 -0
- logic_lab-0.4.0/src/logic_lab/physics/single_particle/README.md +8 -0
- logic_lab-0.4.0/src/logic_lab/physics/single_particle/__init__.py +1 -0
- logic_lab-0.4.0/src/logic_lab/physics/single_particle/single_particle.py +63 -0
- logic_lab-0.4.0/src/logic_lab/physics/skewed_random_walker/README.md +7 -0
- logic_lab-0.4.0/src/logic_lab/physics/skewed_random_walker/__init__.py +0 -0
- logic_lab-0.4.0/src/logic_lab/physics/skewed_random_walker/skewed_random_walker.py +45 -0
- logic_lab-0.4.0/src/logic_lab/physics/soft_body_lattice/README.md +11 -0
- logic_lab-0.4.0/src/logic_lab/physics/soft_body_lattice/__init__.py +1 -0
- logic_lab-0.4.0/src/logic_lab/physics/soft_body_lattice/soft_body_lattice.py +67 -0
- logic_lab-0.4.0/src/logic_lab/physics/spatial_hash_broad_phase/README.md +10 -0
- logic_lab-0.4.0/src/logic_lab/physics/spatial_hash_broad_phase/__init__.py +1 -0
- logic_lab-0.4.0/src/logic_lab/physics/spatial_hash_broad_phase/spatial_hash_broad_phase.py +68 -0
- logic_lab-0.4.0/src/logic_lab/physics/spiral/README.md +8 -0
- logic_lab-0.4.0/src/logic_lab/physics/spiral/__init__.py +1 -0
- logic_lab-0.4.0/src/logic_lab/physics/spiral/spiral.py +36 -0
- logic_lab-0.4.0/src/logic_lab/physics/spring_connection/README.md +9 -0
- logic_lab-0.4.0/src/logic_lab/physics/spring_connection/__init__.py +1 -0
- logic_lab-0.4.0/src/logic_lab/physics/spring_connection/spring_connection.py +130 -0
- logic_lab-0.4.0/src/logic_lab/physics/spring_mesh/README.md +35 -0
- logic_lab-0.4.0/src/logic_lab/physics/spring_mesh/spring_mesh.py +230 -0
- logic_lab-0.4.0/src/logic_lab/physics/stable_fluids/README.md +11 -0
- logic_lab-0.4.0/src/logic_lab/physics/stable_fluids/__init__.py +0 -0
- logic_lab-0.4.0/src/logic_lab/physics/stable_fluids/stable_fluids.py +263 -0
- logic_lab-0.4.0/src/logic_lab/physics/stable_fluids_2d/README.md +11 -0
- logic_lab-0.4.0/src/logic_lab/physics/stable_fluids_2d/__init__.py +1 -0
- logic_lab-0.4.0/src/logic_lab/physics/stable_fluids_2d/stable_fluids_2d.py +74 -0
- logic_lab-0.4.0/src/logic_lab/physics/standing_wave/README.md +15 -0
- logic_lab-0.4.0/src/logic_lab/physics/standing_wave/__init__.py +1 -0
- logic_lab-0.4.0/src/logic_lab/physics/standing_wave/standing_wave.py +71 -0
- logic_lab-0.4.0/src/logic_lab/physics/static_wave/README.md +8 -0
- logic_lab-0.4.0/src/logic_lab/physics/static_wave/__init__.py +1 -0
- logic_lab-0.4.0/src/logic_lab/physics/static_wave/static_wave.py +33 -0
- logic_lab-0.4.0/src/logic_lab/physics/swinging_pendulum/README.md +9 -0
- logic_lab-0.4.0/src/logic_lab/physics/swinging_pendulum/__init__.py +1 -0
- logic_lab-0.4.0/src/logic_lab/physics/swinging_pendulum/swinging_pendulum.py +89 -0
- logic_lab-0.4.0/src/logic_lab/physics/the_wave/README.md +8 -0
- logic_lab-0.4.0/src/logic_lab/physics/the_wave/__init__.py +1 -0
- logic_lab-0.4.0/src/logic_lab/physics/the_wave/the_wave.py +39 -0
- logic_lab-0.4.0/src/logic_lab/physics/the_wave_a/README.md +8 -0
- logic_lab-0.4.0/src/logic_lab/physics/the_wave_a/__init__.py +1 -0
- logic_lab-0.4.0/src/logic_lab/physics/the_wave_a/the_wave_a.py +32 -0
- logic_lab-0.4.0/src/logic_lab/physics/the_wave_b/README.md +8 -0
- logic_lab-0.4.0/src/logic_lab/physics/the_wave_b/__init__.py +1 -0
- logic_lab-0.4.0/src/logic_lab/physics/the_wave_b/the_wave_b.py +38 -0
- logic_lab-0.4.0/src/logic_lab/physics/the_wave_c/README.md +8 -0
- logic_lab-0.4.0/src/logic_lab/physics/the_wave_c/__init__.py +1 -0
- logic_lab-0.4.0/src/logic_lab/physics/the_wave_c/the_wave_c.py +32 -0
- logic_lab-0.4.0/src/logic_lab/physics/two_body_attraction/README.md +7 -0
- logic_lab-0.4.0/src/logic_lab/physics/two_body_attraction/__init__.py +0 -0
- logic_lab-0.4.0/src/logic_lab/physics/two_body_attraction/two_body_attraction.py +71 -0
- logic_lab-0.4.0/src/logic_lab/physics/vector_magnitude/README.md +7 -0
- logic_lab-0.4.0/src/logic_lab/physics/vector_magnitude/__init__.py +0 -0
- logic_lab-0.4.0/src/logic_lab/physics/vector_magnitude/vector_magnitude.py +33 -0
- logic_lab-0.4.0/src/logic_lab/physics/vector_multiplication/README.md +7 -0
- logic_lab-0.4.0/src/logic_lab/physics/vector_multiplication/__init__.py +0 -0
- logic_lab-0.4.0/src/logic_lab/physics/vector_multiplication/vector_multiplication.py +37 -0
- logic_lab-0.4.0/src/logic_lab/physics/vector_normalize/README.md +7 -0
- logic_lab-0.4.0/src/logic_lab/physics/vector_normalize/__init__.py +0 -0
- logic_lab-0.4.0/src/logic_lab/physics/vector_normalize/vector_normalize.py +38 -0
- logic_lab-0.4.0/src/logic_lab/physics/vector_subtraction/README.md +7 -0
- logic_lab-0.4.0/src/logic_lab/physics/vector_subtraction/__init__.py +0 -0
- logic_lab-0.4.0/src/logic_lab/physics/vector_subtraction/vector_subtraction.py +36 -0
- logic_lab-0.4.0/src/logic_lab/physics/verlet_constraints/README.md +12 -0
- logic_lab-0.4.0/src/logic_lab/physics/verlet_constraints/__init__.py +1 -0
- logic_lab-0.4.0/src/logic_lab/physics/verlet_constraints/verlet_constraints.py +59 -0
- logic_lab-0.4.0/src/logic_lab/physics/volumetric_light_beams/README.md +14 -0
- logic_lab-0.4.0/src/logic_lab/physics/volumetric_light_beams/__init__.py +1 -0
- logic_lab-0.4.0/src/logic_lab/physics/volumetric_light_beams/volumetric_light_beams.py +122 -0
- logic_lab-0.4.0/src/logic_lab/physics/watercolor_ink_diffusion/README.md +18 -0
- logic_lab-0.4.0/src/logic_lab/physics/watercolor_ink_diffusion/__init__.py +1 -0
- logic_lab-0.4.0/src/logic_lab/physics/watercolor_ink_diffusion/watercolor_ink_diffusion.py +166 -0
- logic_lab-0.4.0/src/logic_lab/physics/wave_equation_grid/README.md +14 -0
- logic_lab-0.4.0/src/logic_lab/physics/wave_equation_grid/__init__.py +1 -0
- logic_lab-0.4.0/src/logic_lab/physics/wave_equation_grid/wave_equation_grid.py +78 -0
- logic_lab-0.4.0/src/logic_lab/physics/wave_interference_field/README.md +16 -0
- logic_lab-0.4.0/src/logic_lab/physics/wave_interference_field/__init__.py +1 -0
- logic_lab-0.4.0/src/logic_lab/physics/wave_interference_field/wave_interference_field.py +85 -0
- logic_lab-0.4.0/src/logic_lab/physics/wave_packet/README.md +14 -0
- logic_lab-0.4.0/src/logic_lab/physics/wave_packet/__init__.py +1 -0
- logic_lab-0.4.0/src/logic_lab/physics/wave_packet/wave_packet.py +66 -0
- logic_lab-0.4.0/src/logic_lab/procedural_terrain/__init__.py +0 -0
- logic_lab-0.4.0/src/logic_lab/procedural_terrain/fault_terrain/__init__.py +0 -0
- logic_lab-0.4.0/src/logic_lab/procedural_terrain/fault_terrain/fault_terrain.py +218 -0
- logic_lab-0.4.0/src/logic_lab/procedural_terrain/hydraulic_erosion/__init__.py +0 -0
- logic_lab-0.4.0/src/logic_lab/procedural_terrain/hydraulic_erosion/hydraulic_erosion.py +275 -0
- logic_lab-0.4.0/src/logic_lab/procedural_terrain/voronoi_landscape/__init__.py +0 -0
- logic_lab-0.4.0/src/logic_lab/procedural_terrain/voronoi_landscape/voronoi_landscape.py +243 -0
- logic_lab-0.4.0/src/logic_lab/reaction_diffusion/__init__.py +3 -0
- logic_lab-0.4.0/src/logic_lab/reaction_diffusion/belousov_zhabotinsky/README.md +11 -0
- logic_lab-0.4.0/src/logic_lab/reaction_diffusion/belousov_zhabotinsky/__init__.py +0 -0
- logic_lab-0.4.0/src/logic_lab/reaction_diffusion/belousov_zhabotinsky/belousov_zhabotinsky.py +144 -0
- logic_lab-0.4.0/src/logic_lab/reaction_diffusion/gray_scott/README.md +11 -0
- logic_lab-0.4.0/src/logic_lab/reaction_diffusion/gray_scott/__init__.py +3 -0
- logic_lab-0.4.0/src/logic_lab/reaction_diffusion/gray_scott/gray_scott.py +258 -0
- logic_lab-0.4.0/src/logic_lab/reaction_diffusion/lenia/README.md +11 -0
- logic_lab-0.4.0/src/logic_lab/reaction_diffusion/lenia/__init__.py +0 -0
- logic_lab-0.4.0/src/logic_lab/reaction_diffusion/lenia/lenia.py +151 -0
- logic_lab-0.4.0/src/logic_lab/reaction_diffusion/turing_patterns/README.md +11 -0
- logic_lab-0.4.0/src/logic_lab/reaction_diffusion/turing_patterns/__init__.py +0 -0
- logic_lab-0.4.0/src/logic_lab/reaction_diffusion/turing_patterns/turing_patterns.py +163 -0
- logic_lab-0.4.0/src/logic_lab/research/acrylic_pour/README.md +52 -0
- logic_lab-0.4.0/src/logic_lab/research/acrylic_pour/__init__.py +1 -0
- logic_lab-0.4.0/src/logic_lab/research/acrylic_pour/acrylic_pour.py +210 -0
- logic_lab-0.4.0/src/logic_lab/research/asteroids/README.md +8 -0
- logic_lab-0.4.0/src/logic_lab/research/asteroids/__init__.py +1 -0
- logic_lab-0.4.0/src/logic_lab/research/asteroids/asteroids.py +121 -0
- logic_lab-0.4.0/src/logic_lab/research/audio_fft/README.md +43 -0
- logic_lab-0.4.0/src/logic_lab/research/audio_fft/audio_fft.py +194 -0
- logic_lab-0.4.0/src/logic_lab/research/audio_wave_scope/README.md +14 -0
- logic_lab-0.4.0/src/logic_lab/research/audio_wave_scope/__init__.py +1 -0
- logic_lab-0.4.0/src/logic_lab/research/audio_wave_scope/audio_wave_scope.py +88 -0
- logic_lab-0.4.0/src/logic_lab/research/bridge/README.md +9 -0
- logic_lab-0.4.0/src/logic_lab/research/bridge/__init__.py +0 -0
- logic_lab-0.4.0/src/logic_lab/research/bridge/bridge.py +115 -0
- logic_lab-0.4.0/src/logic_lab/research/compound_bodies/README.md +10 -0
- logic_lab-0.4.0/src/logic_lab/research/compound_bodies/__init__.py +0 -0
- logic_lab-0.4.0/src/logic_lab/research/compound_bodies/compound_bodies.py +123 -0
- logic_lab-0.4.0/src/logic_lab/research/dry_brush_texture/README.md +41 -0
- logic_lab-0.4.0/src/logic_lab/research/dry_brush_texture/__init__.py +1 -0
- logic_lab-0.4.0/src/logic_lab/research/dry_brush_texture/dry_brush_texture.py +168 -0
- logic_lab-0.4.0/src/logic_lab/research/force_directed_graph/README.md +9 -0
- logic_lab-0.4.0/src/logic_lab/research/force_directed_graph/__init__.py +0 -0
- logic_lab-0.4.0/src/logic_lab/research/force_directed_graph/force_directed_graph.py +137 -0
- logic_lab-0.4.0/src/logic_lab/research/force_directed_graph_6_13/README.md +9 -0
- logic_lab-0.4.0/src/logic_lab/research/force_directed_graph_6_13/__init__.py +0 -0
- logic_lab-0.4.0/src/logic_lab/research/force_directed_graph_6_13/force_directed_graph.py +187 -0
- logic_lab-0.4.0/src/logic_lab/research/image_texture_system_smoke/README.md +8 -0
- logic_lab-0.4.0/src/logic_lab/research/image_texture_system_smoke/__init__.py +1 -0
- logic_lab-0.4.0/src/logic_lab/research/image_texture_system_smoke/image_texture_system_smoke.py +116 -0
- logic_lab-0.4.0/src/logic_lab/research/impasto_rendering/README.md +41 -0
- logic_lab-0.4.0/src/logic_lab/research/impasto_rendering/__init__.py +1 -0
- logic_lab-0.4.0/src/logic_lab/research/impasto_rendering/impasto_rendering.py +177 -0
- logic_lab-0.4.0/src/logic_lab/research/layered_paint_mixing/README.md +50 -0
- logic_lab-0.4.0/src/logic_lab/research/layered_paint_mixing/__init__.py +1 -0
- logic_lab-0.4.0/src/logic_lab/research/layered_paint_mixing/layered_paint_mixing.py +209 -0
- logic_lab-0.4.0/src/logic_lab/research/matter_js_pendulum/README.md +8 -0
- logic_lab-0.4.0/src/logic_lab/research/matter_js_pendulum/__init__.py +0 -0
- logic_lab-0.4.0/src/logic_lab/research/matter_js_pendulum/matter_js_pendulum.py +101 -0
- logic_lab-0.4.0/src/logic_lab/research/mouse_constraint/README.md +9 -0
- logic_lab-0.4.0/src/logic_lab/research/mouse_constraint/__init__.py +0 -0
- logic_lab-0.4.0/src/logic_lab/research/mouse_constraint/mouse_constraint.py +143 -0
- logic_lab-0.4.0/src/logic_lab/research/oil_paint_swirl/README.md +43 -0
- logic_lab-0.4.0/src/logic_lab/research/oil_paint_swirl/__init__.py +1 -0
- logic_lab-0.4.0/src/logic_lab/research/oil_paint_swirl/oil_paint_swirl.py +193 -0
- logic_lab-0.4.0/src/logic_lab/research/pixel_sorting/pixel_sorting.py +202 -0
- logic_lab-0.4.0/src/logic_lab/research/polygon_shapes/README.md +9 -0
- logic_lab-0.4.0/src/logic_lab/research/polygon_shapes/__init__.py +0 -0
- logic_lab-0.4.0/src/logic_lab/research/polygon_shapes/polygon_shapes.py +106 -0
- logic_lab-0.4.0/src/logic_lab/research/soft_body_character_copy/README.md +9 -0
- logic_lab-0.4.0/src/logic_lab/research/soft_body_character_copy/__init__.py +0 -0
- logic_lab-0.4.0/src/logic_lab/research/soft_body_character_copy/soft_body_character_copy.py +132 -0
- logic_lab-0.4.0/src/logic_lab/research/soft_body_character_enhanced/README.md +10 -0
- logic_lab-0.4.0/src/logic_lab/research/soft_body_character_enhanced/__init__.py +0 -0
- logic_lab-0.4.0/src/logic_lab/research/soft_body_character_enhanced/soft_body_character_enhanced.py +197 -0
- logic_lab-0.4.0/src/logic_lab/research/windmill/README.md +9 -0
- logic_lab-0.4.0/src/logic_lab/research/windmill/__init__.py +0 -0
- logic_lab-0.4.0/src/logic_lab/research/windmill/windmill.py +118 -0
- logic_lab-0.4.0/src/logic_lab/research/windmill_motor/README.md +9 -0
- logic_lab-0.4.0/src/logic_lab/research/windmill_motor/__init__.py +0 -0
- logic_lab-0.4.0/src/logic_lab/research/windmill_motor/windmill_motor.py +115 -0
- logic_lab-0.4.0/src/logic_lab/self_organizing/__init__.py +0 -0
- logic_lab-0.4.0/src/logic_lab/self_organizing/boids/__init__.py +0 -0
- logic_lab-0.4.0/src/logic_lab/self_organizing/boids/boids.py +234 -0
- logic_lab-0.4.0/src/logic_lab/self_organizing/growing_neural_gas/__init__.py +0 -0
- logic_lab-0.4.0/src/logic_lab/self_organizing/growing_neural_gas/growing_neural_gas.py +232 -0
- logic_lab-0.4.0/src/logic_lab/self_organizing/kohonen_som/__init__.py +0 -0
- logic_lab-0.4.0/src/logic_lab/self_organizing/kohonen_som/kohonen_som.py +236 -0
- logic_lab-0.4.0/src/logic_lab/self_organizing/reaction_diffusion/__init__.py +0 -0
- logic_lab-0.4.0/src/logic_lab/self_organizing/reaction_diffusion/reaction_diffusion.py +196 -0
- logic_lab-0.4.0/src/logic_lab/shared/__init__.py +29 -0
- logic_lab-0.4.0/src/logic_lab/shared/batch_runner.py +236 -0
- logic_lab-0.4.0/src/logic_lab/shared/lfo.py +200 -0
- logic_lab-0.4.0/src/logic_lab/shared/libs/experiment_utils.py +28 -0
- logic_lab-0.4.0/src/logic_lab/shared/libs/mcc/__init__.py +5 -0
- logic_lab-0.4.0/src/logic_lab/shared/libs/mcc/config.py +102 -0
- logic_lab-0.4.0/src/logic_lab/shared/libs/mcc/population.py +90 -0
- logic_lab-0.4.0/src/logic_lab/shared/libs/mcc/reporting.py +163 -0
- logic_lab-0.4.0/src/logic_lab/shared/libs/mcc/reproduction.py +37 -0
- logic_lab-0.4.0/src/logic_lab/shared/libs/me_neat/__init__.py +7 -0
- logic_lab-0.4.0/src/logic_lab/shared/libs/me_neat/behavioral_descriptor.py +15 -0
- logic_lab-0.4.0/src/logic_lab/shared/libs/me_neat/config.py +92 -0
- logic_lab-0.4.0/src/logic_lab/shared/libs/me_neat/drawer.py +75 -0
- logic_lab-0.4.0/src/logic_lab/shared/libs/me_neat/population.py +91 -0
- logic_lab-0.4.0/src/logic_lab/shared/libs/me_neat/reporting.py +135 -0
- logic_lab-0.4.0/src/logic_lab/shared/libs/me_neat/reproduction.py +72 -0
- logic_lab-0.4.0/src/logic_lab/shared/libs/neat_cppn/__init__.py +11 -0
- logic_lab-0.4.0/src/logic_lab/shared/libs/neat_cppn/config.py +56 -0
- logic_lab-0.4.0/src/logic_lab/shared/libs/neat_cppn/cppn_decoder.py +68 -0
- logic_lab-0.4.0/src/logic_lab/shared/libs/neat_cppn/feedforward.py +69 -0
- logic_lab-0.4.0/src/logic_lab/shared/libs/neat_cppn/figure.py +121 -0
- logic_lab-0.4.0/src/logic_lab/shared/libs/neat_cppn/genome.py +37 -0
- logic_lab-0.4.0/src/logic_lab/shared/libs/neat_cppn/population.py +144 -0
- logic_lab-0.4.0/src/logic_lab/shared/libs/neat_cppn/reporting.py +70 -0
- logic_lab-0.4.0/src/logic_lab/shared/libs/neat_cppn/reproduction.py +146 -0
- logic_lab-0.4.0/src/logic_lab/shared/libs/ns_neat/__init__.py +5 -0
- logic_lab-0.4.0/src/logic_lab/shared/libs/ns_neat/config.py +138 -0
- logic_lab-0.4.0/src/logic_lab/shared/libs/ns_neat/metrices.py +17 -0
- logic_lab-0.4.0/src/logic_lab/shared/libs/ns_neat/population.py +164 -0
- logic_lab-0.4.0/src/logic_lab/shared/libs/ns_neat/reporting.py +127 -0
- logic_lab-0.4.0/src/logic_lab/shared/libs/parallel.py +241 -0
- logic_lab-0.4.0/src/logic_lab/shared/libs/poet/__init__.py +0 -0
- logic_lab-0.4.0/src/logic_lab/shared/libs/poet/environment_evogym.py +406 -0
- logic_lab-0.4.0/src/logic_lab/shared/libs/poet/environment_mujoco.py +162 -0
- logic_lab-0.4.0/src/logic_lab/shared/libs/poet/learner_ppo.py +263 -0
- logic_lab-0.4.0/src/logic_lab/shared/libs/poet/niche.py +228 -0
- logic_lab-0.4.0/src/logic_lab/shared/libs/poet/poet_algo.py +401 -0
- logic_lab-0.4.0/src/logic_lab/shared/libs/ppo/__init__.py +2 -0
- logic_lab-0.4.0/src/logic_lab/shared/libs/ppo/policy.py +87 -0
- logic_lab-0.4.0/src/logic_lab/shared/libs/ppo/ppo.py +159 -0
- logic_lab-0.4.0/src/logic_lab/shared/noise_field.py +128 -0
- logic_lab-0.4.0/src/logic_lab/shared/physics2d.py +646 -0
- logic_lab-0.4.0/src/logic_lab/shared/presets.py +223 -0
- logic_lab-0.4.0/src/logic_lab/shared/profiling.py +125 -0
- logic_lab-0.4.0/src/logic_lab/shared/rk4.py +48 -0
- logic_lab-0.4.0/src/logic_lab/signal_processing/__init__.py +0 -0
- logic_lab-0.4.0/src/logic_lab/signal_processing/chladni_patterns/__init__.py +0 -0
- logic_lab-0.4.0/src/logic_lab/signal_processing/chladni_patterns/chladni_patterns.py +201 -0
- logic_lab-0.4.0/src/logic_lab/signal_processing/fourier_epicycles/__init__.py +0 -0
- logic_lab-0.4.0/src/logic_lab/signal_processing/fourier_epicycles/fourier_epicycles.py +217 -0
- logic_lab-0.4.0/src/logic_lab/signal_processing/lissajous_figures/__init__.py +0 -0
- logic_lab-0.4.0/src/logic_lab/signal_processing/lissajous_figures/lissajous_figures.py +243 -0
- logic_lab-0.4.0/src/logic_lab/signal_processing/wave_interference/__init__.py +0 -0
- logic_lab-0.4.0/src/logic_lab/signal_processing/wave_interference/wave_interference.py +200 -0
- logic_lab-0.4.0/src/logic_lab/simulation/circuit_evolution/README.md +31 -0
- logic_lab-0.4.0/src/logic_lab/simulation/circuit_evolution/environment/circuit/evaluator.py +81 -0
- logic_lab-0.4.0/src/logic_lab/simulation/circuit_evolution/experiments/design/arguments/circuit_neat.py +81 -0
- logic_lab-0.4.0/src/logic_lab/simulation/circuit_evolution/experiments/design/arguments/evogym_cppn.py +201 -0
- logic_lab-0.4.0/src/logic_lab/simulation/circuit_evolution/experiments/design/arguments/evogym_hyper.py +181 -0
- logic_lab-0.4.0/src/logic_lab/simulation/circuit_evolution/experiments/design/arguments/evogym_neat.py +175 -0
- logic_lab-0.4.0/src/logic_lab/simulation/circuit_evolution/experiments/design/arguments/maze_hyper.py +54 -0
- logic_lab-0.4.0/src/logic_lab/simulation/circuit_evolution/experiments/design/arguments/maze_neat.py +48 -0
- logic_lab-0.4.0/src/logic_lab/simulation/circuit_evolution/experiments/design/draw_circuit_neat.py +240 -0
- logic_lab-0.4.0/src/logic_lab/simulation/circuit_evolution/experiments/design/run_circuit_neat.py +72 -0
- logic_lab-0.4.0/src/logic_lab/simulation/locomotion/README.md +147 -0
- logic_lab-0.4.0/src/logic_lab/simulation/locomotion/environment/gym_mujoco/__init__.py +0 -0
- logic_lab-0.4.0/src/logic_lab/simulation/locomotion/environment/gym_mujoco/evaluator.py +387 -0
- logic_lab-0.4.0/src/logic_lab/simulation/locomotion/environment/gym_mujoco/make_env.py +17 -0
- logic_lab-0.4.0/src/logic_lab/simulation/locomotion/environment/gym_mujoco/structural_bd.py +107 -0
- logic_lab-0.4.0/src/logic_lab/simulation/locomotion/experiments/me_neat_controller/arguments/locomotion_me_neat.py +68 -0
- logic_lab-0.4.0/src/logic_lab/simulation/locomotion/experiments/me_neat_controller/draw_locomotion_me_neat.py +242 -0
- logic_lab-0.4.0/src/logic_lab/simulation/locomotion/experiments/me_neat_controller/run_locomotion_me_neat.py +112 -0
- logic_lab-0.4.0/src/logic_lab/simulation/locomotion/experiments/neat_controller/arguments/locomotion_neat.py +32 -0
- logic_lab-0.4.0/src/logic_lab/simulation/locomotion/experiments/neat_controller/draw_locomotion_neat.py +181 -0
- logic_lab-0.4.0/src/logic_lab/simulation/locomotion/experiments/neat_controller/run_locomotion_neat.py +79 -0
- logic_lab-0.4.0/src/logic_lab/simulation/locomotion/experiments/ns_neat_controller/README.md +54 -0
- logic_lab-0.4.0/src/logic_lab/simulation/locomotion/experiments/ns_neat_controller/arguments/locomotion_ns_neat.py +52 -0
- logic_lab-0.4.0/src/logic_lab/simulation/locomotion/experiments/ns_neat_controller/draw_locomotion_ns_neat.py +187 -0
- logic_lab-0.4.0/src/logic_lab/simulation/locomotion/experiments/ns_neat_controller/run_locomotion_ns_neat.py +88 -0
- logic_lab-0.4.0/src/logic_lab/simulation/locomotion/experiments/poet_terrain/README.md +123 -0
- logic_lab-0.4.0/src/logic_lab/simulation/locomotion/experiments/poet_terrain/arguments/locomotion_poet.py +31 -0
- logic_lab-0.4.0/src/logic_lab/simulation/locomotion/experiments/poet_terrain/draw_locomotion_poet.py +246 -0
- logic_lab-0.4.0/src/logic_lab/simulation/locomotion/experiments/poet_terrain/run_locomotion_poet.py +298 -0
- logic_lab-0.4.0/src/logic_lab/simulation/maze_systems/README.md +48 -0
- logic_lab-0.4.0/src/logic_lab/simulation/maze_systems/environment/maze/cppn_decoder.py +17 -0
- logic_lab-0.4.0/src/logic_lab/simulation/maze_systems/environment/maze/evaluator.py +52 -0
- logic_lab-0.4.0/src/logic_lab/simulation/maze_systems/environment/maze/maze_drawer.py +239 -0
- logic_lab-0.4.0/src/logic_lab/simulation/maze_systems/environment/maze/maze_environment_numpy.py +252 -0
- logic_lab-0.4.0/src/logic_lab/simulation/maze_systems/environment/maze/maze_genome.py +416 -0
- logic_lab-0.4.0/src/logic_lab/simulation/maze_systems/environment/maze/maze_genome_decoder.py +463 -0
- logic_lab-0.4.0/src/logic_lab/simulation/maze_systems/environment/maze/substrate.py +204 -0
- logic_lab-0.4.0/src/logic_lab/simulation/maze_systems/experiments/coevolution/arguments/maze_mcc.py +213 -0
- logic_lab-0.4.0/src/logic_lab/simulation/maze_systems/experiments/coevolution/bootstrap_maze_mcc.py +163 -0
- logic_lab-0.4.0/src/logic_lab/simulation/maze_systems/experiments/coevolution/draw_maze_mcc.py +207 -0
- logic_lab-0.4.0/src/logic_lab/simulation/maze_systems/experiments/coevolution/run_maze_mcc.py +136 -0
- logic_lab-0.4.0/src/logic_lab/simulation/maze_systems/experiments/control/arguments/maze_neat.py +48 -0
- logic_lab-0.4.0/src/logic_lab/simulation/maze_systems/experiments/control/run_maze_neat.py +76 -0
- logic_lab-0.4.0/src/logic_lab/simulation/maze_systems/experiments/novelty_search/arguments/maze_ns_neat.py +66 -0
- logic_lab-0.4.0/src/logic_lab/simulation/maze_systems/experiments/novelty_search/run_maze_ns_neat.py +81 -0
- logic_lab-0.4.0/src/logic_lab/simulation/random_walk/README.md +7 -0
- logic_lab-0.4.0/src/logic_lab/simulation/random_walk/__init__.py +1 -0
- logic_lab-0.4.0/src/logic_lab/simulation/random_walk/random_walk.py +41 -0
- logic_lab-0.4.0/src/logic_lab/steering_behaviors/arrive/README.md +8 -0
- logic_lab-0.4.0/src/logic_lab/steering_behaviors/arrive/__init__.py +0 -0
- logic_lab-0.4.0/src/logic_lab/steering_behaviors/arrive/arrive.py +98 -0
- logic_lab-0.4.0/src/logic_lab/steering_behaviors/attraction_behaviors/README.md +9 -0
- logic_lab-0.4.0/src/logic_lab/steering_behaviors/attraction_behaviors/__init__.py +0 -0
- logic_lab-0.4.0/src/logic_lab/steering_behaviors/attraction_behaviors/attraction_behaviors.py +133 -0
- logic_lab-0.4.0/src/logic_lab/steering_behaviors/creature_sensors/README.md +58 -0
- logic_lab-0.4.0/src/logic_lab/steering_behaviors/creature_sensors/creature_sensors.py +117 -0
- logic_lab-0.4.0/src/logic_lab/steering_behaviors/crowd_path_following/README.md +10 -0
- logic_lab-0.4.0/src/logic_lab/steering_behaviors/crowd_path_following/__init__.py +0 -0
- logic_lab-0.4.0/src/logic_lab/steering_behaviors/crowd_path_following/crowd_path_following.py +215 -0
- logic_lab-0.4.0/src/logic_lab/steering_behaviors/curl_noise_vines/README.md +15 -0
- logic_lab-0.4.0/src/logic_lab/steering_behaviors/curl_noise_vines/curl_noise_vines.py +153 -0
- logic_lab-0.4.0/src/logic_lab/steering_behaviors/flocking/README.md +9 -0
- logic_lab-0.4.0/src/logic_lab/steering_behaviors/flocking/__init__.py +0 -0
- logic_lab-0.4.0/src/logic_lab/steering_behaviors/flocking/flocking.py +171 -0
- logic_lab-0.4.0/src/logic_lab/steering_behaviors/flocking_with_binning/README.md +10 -0
- logic_lab-0.4.0/src/logic_lab/steering_behaviors/flocking_with_binning/__init__.py +0 -0
- logic_lab-0.4.0/src/logic_lab/steering_behaviors/flocking_with_binning/flocking_with_binning.py +218 -0
- logic_lab-0.4.0/src/logic_lab/steering_behaviors/flow_field/README.md +10 -0
- logic_lab-0.4.0/src/logic_lab/steering_behaviors/flow_field/__init__.py +0 -0
- logic_lab-0.4.0/src/logic_lab/steering_behaviors/flow_field/flow_field.py +153 -0
- logic_lab-0.4.0/src/logic_lab/steering_behaviors/flowlines/README.md +32 -0
- logic_lab-0.4.0/src/logic_lab/steering_behaviors/flowlines/flowlines.py +104 -0
- logic_lab-0.4.0/src/logic_lab/steering_behaviors/gesture_classifier/README.md +40 -0
- logic_lab-0.4.0/src/logic_lab/steering_behaviors/gesture_classifier/gesture_classifier.py +194 -0
- logic_lab-0.4.0/src/logic_lab/steering_behaviors/ivy_wall_growth/README.md +15 -0
- logic_lab-0.4.0/src/logic_lab/steering_behaviors/ivy_wall_growth/ivy_wall_growth.py +208 -0
- logic_lab-0.4.0/src/logic_lab/steering_behaviors/neuro_evolution_steering_seek/README.md +71 -0
- logic_lab-0.4.0/src/logic_lab/steering_behaviors/neuro_evolution_steering_seek/neuro_evolution_steering_seek.py +300 -0
- logic_lab-0.4.0/src/logic_lab/steering_behaviors/neuroevolution_ecosystem/README.md +82 -0
- logic_lab-0.4.0/src/logic_lab/steering_behaviors/neuroevolution_ecosystem/neuroevolution_ecosystem.py +292 -0
- logic_lab-0.4.0/src/logic_lab/steering_behaviors/path_following/README.md +10 -0
- logic_lab-0.4.0/src/logic_lab/steering_behaviors/path_following/__init__.py +0 -0
- logic_lab-0.4.0/src/logic_lab/steering_behaviors/path_following/path_following.py +207 -0
- logic_lab-0.4.0/src/logic_lab/steering_behaviors/path_following_simple/README.md +9 -0
- logic_lab-0.4.0/src/logic_lab/steering_behaviors/path_following_simple/__init__.py +0 -0
- logic_lab-0.4.0/src/logic_lab/steering_behaviors/path_following_simple/path_following_simple.py +166 -0
- logic_lab-0.4.0/src/logic_lab/steering_behaviors/perceptron_with_normalization/README.md +40 -0
- logic_lab-0.4.0/src/logic_lab/steering_behaviors/perceptron_with_normalization/perceptron_with_normalization.py +105 -0
- logic_lab-0.4.0/src/logic_lab/steering_behaviors/pursuit_behavior/README.md +9 -0
- logic_lab-0.4.0/src/logic_lab/steering_behaviors/pursuit_behavior/__init__.py +0 -0
- logic_lab-0.4.0/src/logic_lab/steering_behaviors/pursuit_behavior/pursuit_behavior.py +123 -0
- logic_lab-0.4.0/src/logic_lab/steering_behaviors/seek/README.md +8 -0
- logic_lab-0.4.0/src/logic_lab/steering_behaviors/seek/__init__.py +0 -0
- logic_lab-0.4.0/src/logic_lab/steering_behaviors/seek/seek.py +86 -0
- logic_lab-0.4.0/src/logic_lab/steering_behaviors/separation/README.md +9 -0
- logic_lab-0.4.0/src/logic_lab/steering_behaviors/separation/__init__.py +0 -0
- logic_lab-0.4.0/src/logic_lab/steering_behaviors/separation/separation.py +98 -0
- logic_lab-0.4.0/src/logic_lab/steering_behaviors/separation_and_seek/README.md +8 -0
- logic_lab-0.4.0/src/logic_lab/steering_behaviors/separation_and_seek/__init__.py +0 -0
- logic_lab-0.4.0/src/logic_lab/steering_behaviors/separation_and_seek/separation_and_seek.py +114 -0
- logic_lab-0.4.0/src/logic_lab/steering_behaviors/stay_within_walls/README.md +9 -0
- logic_lab-0.4.0/src/logic_lab/steering_behaviors/stay_within_walls/__init__.py +0 -0
- logic_lab-0.4.0/src/logic_lab/steering_behaviors/stay_within_walls/stay_within_walls.py +102 -0
- logic_lab-0.4.0/src/logic_lab/steering_behaviors/wander_behavior/README.md +9 -0
- logic_lab-0.4.0/src/logic_lab/steering_behaviors/wander_behavior/__init__.py +0 -0
- logic_lab-0.4.0/src/logic_lab/steering_behaviors/wander_behavior/wander_behavior.py +137 -0
- logic_lab-0.4.0/src/logic_lab/swarm_intelligence/__init__.py +7 -0
- logic_lab-0.4.0/src/logic_lab/swarm_intelligence/ant_colony_pheromone/README.md +11 -0
- logic_lab-0.4.0/src/logic_lab/swarm_intelligence/ant_colony_pheromone/__init__.py +0 -0
- logic_lab-0.4.0/src/logic_lab/swarm_intelligence/ant_colony_pheromone/ant_colony_pheromone.py +213 -0
- logic_lab-0.4.0/src/logic_lab/swarm_intelligence/bee_foraging/README.md +11 -0
- logic_lab-0.4.0/src/logic_lab/swarm_intelligence/bee_foraging/__init__.py +9 -0
- logic_lab-0.4.0/src/logic_lab/swarm_intelligence/bee_foraging/bee_foraging.py +446 -0
- logic_lab-0.4.0/src/logic_lab/swarm_intelligence/particle_swarm_optimization/__init__.py +0 -0
- logic_lab-0.4.0/src/logic_lab/swarm_intelligence/particle_swarm_optimization/particle_swarm_optimization.py +242 -0
- logic_lab-0.4.0/src/logic_lab/swarm_intelligence/predator_prey_flocking/README.md +11 -0
- logic_lab-0.4.0/src/logic_lab/swarm_intelligence/predator_prey_flocking/__init__.py +0 -0
- logic_lab-0.4.0/src/logic_lab/swarm_intelligence/predator_prey_flocking/predator_prey_flocking.py +282 -0
- logic_lab-0.4.0/src/logic_lab/three_dimensional/__init__.py +4 -0
- logic_lab-0.4.0/src/logic_lab/three_dimensional/lorenz_strands/__init__.py +0 -0
- logic_lab-0.4.0/src/logic_lab/three_dimensional/lorenz_strands/lorenz_strands.py +221 -0
- logic_lab-0.4.0/src/logic_lab/three_dimensional/lsystem_3d/README.md +11 -0
- logic_lab-0.4.0/src/logic_lab/three_dimensional/lsystem_3d/__init__.py +0 -0
- logic_lab-0.4.0/src/logic_lab/three_dimensional/lsystem_3d/lsystem_3d.py +221 -0
- logic_lab-0.4.0/src/logic_lab/three_dimensional/metaballs/README.md +142 -0
- logic_lab-0.4.0/src/logic_lab/three_dimensional/metaballs/__init__.py +1 -0
- logic_lab-0.4.0/src/logic_lab/three_dimensional/metaballs/metaballs.py +220 -0
- logic_lab-0.4.0/src/logic_lab/three_dimensional/metaballs_3d/README.md +11 -0
- logic_lab-0.4.0/src/logic_lab/three_dimensional/metaballs_3d/__init__.py +5 -0
- logic_lab-0.4.0/src/logic_lab/three_dimensional/metaballs_3d/metaballs_3d.py +346 -0
- logic_lab-0.4.0/src/logic_lab/three_dimensional/point_cloud_morph/README.md +11 -0
- logic_lab-0.4.0/src/logic_lab/three_dimensional/point_cloud_morph/__init__.py +0 -0
- logic_lab-0.4.0/src/logic_lab/three_dimensional/point_cloud_morph/point_cloud_morph.py +195 -0
- logic_lab-0.4.0/src/logic_lab/three_dimensional/volumetric_fog/README.md +11 -0
- logic_lab-0.4.0/src/logic_lab/three_dimensional/volumetric_fog/__init__.py +0 -0
- logic_lab-0.4.0/src/logic_lab/three_dimensional/volumetric_fog/volumetric_fog.py +215 -0
- logic_lab-0.4.0/src/logic_lab/tiling_patterns/aperiodic_helpers.py +152 -0
- logic_lab-0.4.0/src/logic_lab/tiling_patterns/deformation_helpers.py +173 -0
- logic_lab-0.4.0/src/logic_lab/tiling_patterns/dihedral_group/README.md +14 -0
- logic_lab-0.4.0/src/logic_lab/tiling_patterns/dihedral_group/dihedral_group.py +68 -0
- logic_lab-0.4.0/src/logic_lab/tiling_patterns/fibonacci_word/README.md +8 -0
- logic_lab-0.4.0/src/logic_lab/tiling_patterns/fibonacci_word/fibonacci_word.py +56 -0
- logic_lab-0.4.0/src/logic_lab/tiling_patterns/fundamental_domain/README.md +14 -0
- logic_lab-0.4.0/src/logic_lab/tiling_patterns/fundamental_domain/fundamental_domain.py +53 -0
- logic_lab-0.4.0/src/logic_lab/tiling_patterns/hex_rhomb/README.md +8 -0
- logic_lab-0.4.0/src/logic_lab/tiling_patterns/hex_rhomb/hex_rhomb.py +69 -0
- logic_lab-0.4.0/src/logic_lab/tiling_patterns/hex_tiling/README.md +9 -0
- logic_lab-0.4.0/src/logic_lab/tiling_patterns/hex_tiling/hex_tiling.py +66 -0
- logic_lab-0.4.0/src/logic_lab/tiling_patterns/ih01_deformation/README.md +9 -0
- logic_lab-0.4.0/src/logic_lab/tiling_patterns/ih01_deformation/ih01_deformation.py +48 -0
- logic_lab-0.4.0/src/logic_lab/tiling_patterns/ih01_koch/README.md +9 -0
- logic_lab-0.4.0/src/logic_lab/tiling_patterns/ih01_koch/ih01_koch.py +59 -0
- logic_lab-0.4.0/src/logic_lab/tiling_patterns/ih02_deformation/README.md +9 -0
- logic_lab-0.4.0/src/logic_lab/tiling_patterns/ih02_deformation/ih02_deformation.py +50 -0
- logic_lab-0.4.0/src/logic_lab/tiling_patterns/ih02_tv08/README.md +9 -0
- logic_lab-0.4.0/src/logic_lab/tiling_patterns/ih02_tv08/ih02_tv08.py +76 -0
- logic_lab-0.4.0/src/logic_lab/tiling_patterns/ih02_tv08_koch/README.md +9 -0
- logic_lab-0.4.0/src/logic_lab/tiling_patterns/ih02_tv08_koch/ih02_tv08_koch.py +89 -0
- logic_lab-0.4.0/src/logic_lab/tiling_patterns/ih41_deformation/README.md +9 -0
- logic_lab-0.4.0/src/logic_lab/tiling_patterns/ih41_deformation/ih41_deformation.py +48 -0
- logic_lab-0.4.0/src/logic_lab/tiling_patterns/ih41_koch/README.md +9 -0
- logic_lab-0.4.0/src/logic_lab/tiling_patterns/ih41_koch/ih41_koch.py +59 -0
- logic_lab-0.4.0/src/logic_lab/tiling_patterns/islamic_geometric/README.md +11 -0
- logic_lab-0.4.0/src/logic_lab/tiling_patterns/islamic_geometric/islamic_geometric.py +50 -0
- logic_lab-0.4.0/src/logic_lab/tiling_patterns/matrix_calculator/README.md +7 -0
- logic_lab-0.4.0/src/logic_lab/tiling_patterns/matrix_calculator/matrix_calculator.py +31 -0
- logic_lab-0.4.0/src/logic_lab/tiling_patterns/p31m_pattern/README.md +8 -0
- logic_lab-0.4.0/src/logic_lab/tiling_patterns/p31m_pattern/p31m_pattern.py +115 -0
- logic_lab-0.4.0/src/logic_lab/tiling_patterns/p3_pattern/README.md +8 -0
- logic_lab-0.4.0/src/logic_lab/tiling_patterns/p3_pattern/p3_pattern.py +79 -0
- logic_lab-0.4.0/src/logic_lab/tiling_patterns/p3m1_pattern/README.md +8 -0
- logic_lab-0.4.0/src/logic_lab/tiling_patterns/p3m1_pattern/p3m1_pattern.py +92 -0
- logic_lab-0.4.0/src/logic_lab/tiling_patterns/p6_pattern/README.md +8 -0
- logic_lab-0.4.0/src/logic_lab/tiling_patterns/p6_pattern/p6_pattern.py +78 -0
- logic_lab-0.4.0/src/logic_lab/tiling_patterns/p6m_pattern/README.md +8 -0
- logic_lab-0.4.0/src/logic_lab/tiling_patterns/p6m_pattern/p6m_pattern.py +78 -0
- logic_lab-0.4.0/src/logic_lab/tiling_patterns/pattern_helpers.py +49 -0
- logic_lab-0.4.0/src/logic_lab/tiling_patterns/penrose_tiling/README.md +15 -0
- logic_lab-0.4.0/src/logic_lab/tiling_patterns/penrose_tiling/__init__.py +0 -0
- logic_lab-0.4.0/src/logic_lab/tiling_patterns/penrose_tiling/penrose_tiling.py +130 -0
- logic_lab-0.4.0/src/logic_lab/tiling_patterns/pinwheel_tiling/README.md +11 -0
- logic_lab-0.4.0/src/logic_lab/tiling_patterns/pinwheel_tiling/pinwheel_tiling.py +51 -0
- logic_lab-0.4.0/src/logic_lab/tiling_patterns/pythagoras_periodic/README.md +13 -0
- logic_lab-0.4.0/src/logic_lab/tiling_patterns/pythagoras_periodic/pythagoras_periodic.py +121 -0
- logic_lab-0.4.0/src/logic_lab/tiling_patterns/recur_pentagon/README.md +8 -0
- logic_lab-0.4.0/src/logic_lab/tiling_patterns/recur_pentagon/recur_pentagon.py +59 -0
- logic_lab-0.4.0/src/logic_lab/tiling_patterns/recur_triangle/README.md +8 -0
- logic_lab-0.4.0/src/logic_lab/tiling_patterns/recur_triangle/recur_triangle.py +67 -0
- logic_lab-0.4.0/src/logic_lab/tiling_patterns/rep_tiles/README.md +11 -0
- logic_lab-0.4.0/src/logic_lab/tiling_patterns/rep_tiles/rep_tiles.py +47 -0
- logic_lab-0.4.0/src/logic_lab/tiling_patterns/square_tiling/README.md +9 -0
- logic_lab-0.4.0/src/logic_lab/tiling_patterns/square_tiling/square_tiling.py +55 -0
- logic_lab-0.4.0/src/logic_lab/tiling_patterns/square_triangle_periodic/README.md +8 -0
- logic_lab-0.4.0/src/logic_lab/tiling_patterns/square_triangle_periodic/square_triangle_periodic.py +88 -0
- logic_lab-0.4.0/src/logic_lab/tiling_patterns/symmetric_shape/README.md +9 -0
- logic_lab-0.4.0/src/logic_lab/tiling_patterns/symmetric_shape/symmetric_shape.py +63 -0
- logic_lab-0.4.0/src/logic_lab/tiling_patterns/textile_generator/README.md +9 -0
- logic_lab-0.4.0/src/logic_lab/tiling_patterns/textile_generator/textile_generator.py +91 -0
- logic_lab-0.4.0/src/logic_lab/tiling_patterns/textile_repeater/README.md +13 -0
- logic_lab-0.4.0/src/logic_lab/tiling_patterns/textile_repeater/textile_repeater.py +125 -0
- logic_lab-0.4.0/src/logic_lab/tiling_patterns/triangle_tiling/README.md +9 -0
- logic_lab-0.4.0/src/logic_lab/tiling_patterns/triangle_tiling/triangle_tiling.py +75 -0
- logic_lab-0.4.0/src/logic_lab/tiling_patterns/triangular_spiral/README.md +8 -0
- logic_lab-0.4.0/src/logic_lab/tiling_patterns/triangular_spiral/triangular_spiral.py +46 -0
- logic_lab-0.4.0/src/logic_lab/tiling_patterns/truchet_tiling/README.md +11 -0
- logic_lab-0.4.0/src/logic_lab/tiling_patterns/truchet_tiling/truchet_tiling.py +81 -0
- logic_lab-0.4.0/src/logic_lab/tiling_patterns/tv08_deformation/README.md +9 -0
- logic_lab-0.4.0/src/logic_lab/tiling_patterns/tv08_deformation/tv08_deformation.py +75 -0
- logic_lab-0.4.0/src/logic_lab/tiling_patterns/wave_function_collapse/README.md +47 -0
- logic_lab-0.4.0/src/logic_lab/tiling_patterns/wave_function_collapse/__init__.py +0 -0
- logic_lab-0.4.0/src/logic_lab/tiling_patterns/wave_function_collapse/wave_function_collapse.py +221 -0
- logic_lab-0.4.0/src/logic_lab/topology/__init__.py +0 -0
- logic_lab-0.4.0/src/logic_lab/topology/hopf_fibration/__init__.py +0 -0
- logic_lab-0.4.0/src/logic_lab/topology/hopf_fibration/hopf_fibration.py +165 -0
- logic_lab-0.4.0/src/logic_lab/topology/klein_bottle/__init__.py +0 -0
- logic_lab-0.4.0/src/logic_lab/topology/klein_bottle/klein_bottle.py +211 -0
- logic_lab-0.4.0/src/logic_lab/topology/mobius_strip/__init__.py +0 -0
- logic_lab-0.4.0/src/logic_lab/topology/mobius_strip/mobius_strip.py +211 -0
- logic_lab-0.4.0/src/logic_lab/topology/torus_knot/__init__.py +0 -0
- logic_lab-0.4.0/src/logic_lab/topology/torus_knot/torus_knot.py +138 -0
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
# Python
|
|
2
|
+
__pycache__/
|
|
3
|
+
*.py[cod]
|
|
4
|
+
*$py.class
|
|
5
|
+
|
|
6
|
+
# Virtual environments
|
|
7
|
+
.venv/
|
|
8
|
+
venv/
|
|
9
|
+
env/
|
|
10
|
+
|
|
11
|
+
# Build artifacts
|
|
12
|
+
build/
|
|
13
|
+
dist/
|
|
14
|
+
*.egg-info/
|
|
15
|
+
|
|
16
|
+
# Test and coverage output
|
|
17
|
+
.pytest_cache/
|
|
18
|
+
.coverage
|
|
19
|
+
htmlcov/
|
|
20
|
+
|
|
21
|
+
# Jupyter
|
|
22
|
+
.ipynb_checkpoints/
|
|
23
|
+
|
|
24
|
+
# Editor and OS files
|
|
25
|
+
.DS_Store
|
|
26
|
+
.idea/
|
|
27
|
+
.vscode/
|
|
28
|
+
|
|
29
|
+
# py5 generated output
|
|
30
|
+
out/
|
|
31
|
+
*.png
|
|
32
|
+
*.jpg
|
|
33
|
+
|
|
34
|
+
# Local Claude Code / agent settings (machine-specific paths)
|
|
35
|
+
.claude/
|
|
36
|
+
.agents/settings.local.json
|
logic_lab-0.4.0/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Kakuishi Asami
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
logic_lab-0.4.0/PKG-INFO
ADDED
|
@@ -0,0 +1,303 @@
|
|
|
1
|
+
Metadata-Version: 2.5
|
|
2
|
+
Name: logic-lab
|
|
3
|
+
Version: 0.4.0
|
|
4
|
+
Summary: Creative coding algorithms and simulations using py5, organized by domain (physics, steering, genetics, neural networks, fractals, cellular automata, tiling patterns, mathematics).
|
|
5
|
+
Project-URL: Homepage, https://github.com/asamiile/logic-lab
|
|
6
|
+
Project-URL: Repository, https://github.com/asamiile/logic-lab.git
|
|
7
|
+
Project-URL: Documentation, https://github.com/asamiile/logic-lab#readme
|
|
8
|
+
Project-URL: Issues, https://github.com/asamiile/logic-lab/issues
|
|
9
|
+
Project-URL: Changelog, https://github.com/asamiile/logic-lab/blob/main/CHANGELOG.md
|
|
10
|
+
Author-email: Asami Kakuishi <asami@asami.tokyo>
|
|
11
|
+
License: MIT
|
|
12
|
+
License-File: LICENSE
|
|
13
|
+
Keywords: algorithms,cellular-automata,creative-coding,fractals,generative-art,genetic-algorithms,mathematics,mcp,neural-networks,physics,py5,steering-behaviors,tiling
|
|
14
|
+
Classifier: Development Status :: 3 - Alpha
|
|
15
|
+
Classifier: Intended Audience :: Developers
|
|
16
|
+
Classifier: Intended Audience :: Education
|
|
17
|
+
Classifier: License :: OSI Approved :: MIT License
|
|
18
|
+
Classifier: Natural Language :: English
|
|
19
|
+
Classifier: Natural Language :: Japanese
|
|
20
|
+
Classifier: Programming Language :: Python :: 3
|
|
21
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
22
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
23
|
+
Classifier: Topic :: Artistic Software
|
|
24
|
+
Classifier: Topic :: Education
|
|
25
|
+
Classifier: Topic :: Multimedia :: Graphics
|
|
26
|
+
Requires-Python: >=3.11
|
|
27
|
+
Requires-Dist: mcp<2,>=1.0.0
|
|
28
|
+
Requires-Dist: numpy>=2.4.4
|
|
29
|
+
Requires-Dist: py5>=0.10.9a1
|
|
30
|
+
Requires-Dist: scipy>=1.10.0
|
|
31
|
+
Provides-Extra: dev
|
|
32
|
+
Requires-Dist: black>=23.0; extra == 'dev'
|
|
33
|
+
Requires-Dist: pytest-cov>=4.0; extra == 'dev'
|
|
34
|
+
Requires-Dist: pytest>=7.0; extra == 'dev'
|
|
35
|
+
Requires-Dist: ruff>=0.1.0; extra == 'dev'
|
|
36
|
+
Provides-Extra: extended
|
|
37
|
+
Requires-Dist: jupyterlab>=4.5.6; extra == 'extended'
|
|
38
|
+
Requires-Dist: matplotlib>=3.8.0; extra == 'extended'
|
|
39
|
+
Requires-Dist: moviepy>=2.2.1; extra == 'extended'
|
|
40
|
+
Requires-Dist: pillow>=10.0.0; extra == 'extended'
|
|
41
|
+
Requires-Dist: pymunk>=7.2.0; extra == 'extended'
|
|
42
|
+
Requires-Dist: sounddevice>=0.5.5; extra == 'extended'
|
|
43
|
+
Provides-Extra: ml
|
|
44
|
+
Requires-Dist: gymnasium[box2d,mujoco]>=1.0.0; extra == 'ml'
|
|
45
|
+
Requires-Dist: mujoco>=3.1.0; extra == 'ml'
|
|
46
|
+
Requires-Dist: neat-python==0.92; extra == 'ml'
|
|
47
|
+
Requires-Dist: networkx>=3.0; extra == 'ml'
|
|
48
|
+
Description-Content-Type: text/markdown
|
|
49
|
+
|
|
50
|
+
# Logic Lab
|
|
51
|
+
|
|
52
|
+
Python translations of creative coding examples using py5. Each simulation is organized by domain, demonstrating core computational creativity concepts: physics, steering behaviors, genetic algorithms, neural networks, fractals, cellular automata, tiling patterns, and mathematical systems.
|
|
53
|
+
|
|
54
|
+
## MCP Server
|
|
55
|
+
|
|
56
|
+
Logic Lab is available as an MCP server for AI agents. Agents can search the Logic Lab manifest, find algorithms by visual intent or category, read short summaries, and fetch bounded source snippets for selected examples.
|
|
57
|
+
|
|
58
|
+
[](https://glama.ai/mcp/servers/asamiile/logic-lab)
|
|
59
|
+
|
|
60
|
+
### Option 1: Quick Start
|
|
61
|
+
|
|
62
|
+
If you just want to use the MCP server directly via [Glama](https://glama.ai/mcp/servers/asamiile/logic-lab) or your AI agent without cloning the repository, you can run it remotely using `uvx`.
|
|
63
|
+
|
|
64
|
+
Add the following to your AI tool's MCP
|
|
65
|
+
|
|
66
|
+
configuration:
|
|
67
|
+
|
|
68
|
+
```json
|
|
69
|
+
{
|
|
70
|
+
"mcpServers": {
|
|
71
|
+
"logic-lab": {
|
|
72
|
+
"command": "uvx",
|
|
73
|
+
"args": [
|
|
74
|
+
"--from",
|
|
75
|
+
"logic-lab",
|
|
76
|
+
"logic-lab-mcp"
|
|
77
|
+
]
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
### Option 2: Manual Installation (For local development)
|
|
84
|
+
|
|
85
|
+
Requires uv. Clone this repository locally if you want to modify the algorithms or run the server from your local source.
|
|
86
|
+
|
|
87
|
+
```bash
|
|
88
|
+
git clone https://github.com/asamiile/logic-lab.git
|
|
89
|
+
cd logic-lab
|
|
90
|
+
uv sync
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
### Registration (Local)
|
|
94
|
+
|
|
95
|
+
After manual installation, register the local server with your AI tool using the logic-lab-mcp command:
|
|
96
|
+
|
|
97
|
+
Claude Code:
|
|
98
|
+
|
|
99
|
+
```bash
|
|
100
|
+
claude mcp add logic-lab -- logic-lab-mcp
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
Codex:
|
|
104
|
+
|
|
105
|
+
```bash
|
|
106
|
+
codex mcp add logic-lab -- logic-lab-mcp
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
GitHub Copilot in VS Code (.vscode/mcp.json or user MCP settings):
|
|
110
|
+
|
|
111
|
+
```json
|
|
112
|
+
{
|
|
113
|
+
"servers": {
|
|
114
|
+
"logic-lab": {
|
|
115
|
+
"type": "stdio",
|
|
116
|
+
"command": "logic-lab-mcp"
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
```
|
|
121
|
+
|
|
122
|
+
Cursor (.cursor/mcp.json or ~/.cursor/mcp.json):
|
|
123
|
+
|
|
124
|
+
```json
|
|
125
|
+
{
|
|
126
|
+
"mcpServers": {
|
|
127
|
+
"logic-lab": {
|
|
128
|
+
"type": "stdio",
|
|
129
|
+
"command": "logic-lab-mcp"
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
```
|
|
134
|
+
|
|
135
|
+
### Available Tools
|
|
136
|
+
|
|
137
|
+
303 algorithms across 11 domains are accessible via 6 MCP tools:
|
|
138
|
+
|
|
139
|
+
| Tool | Description |
|
|
140
|
+
|---|---|
|
|
141
|
+
| `search_algorithms(query, category, limit)` | Free-text search across titles, concepts, and visual descriptions. Start here. |
|
|
142
|
+
| `search_by_mood(mood, style, limit)` | Find algorithms by aesthetic mood: `ethereal`, `chaotic`, `geometric`, `organic`, `cosmic`, `minimal`, and 6 more. |
|
|
143
|
+
| `recommend_combinations(intent, count)` | Returns layered multi-algorithm recipes for a given artistic intent. |
|
|
144
|
+
| `get_algorithm_summary(path)` | Returns manifest metadata and README excerpt for a path. Check relevance before fetching source. |
|
|
145
|
+
| `get_algorithm(path, max_chars)` | Returns source code for a specific algorithm file. Read-only, size-limited. |
|
|
146
|
+
| `get_manifest()` | Returns the full manifest JSON. Use when you need to enumerate all entries or categories. |
|
|
147
|
+
|
|
148
|
+
**Recommended workflow:** `search_algorithms` → `get_algorithm_summary` → `get_algorithm`
|
|
149
|
+
|
|
150
|
+
See [src/logic_lab/mcp/README.md](src/logic_lab/mcp/README.md) for full parameter reference, security notes, and resource endpoints.
|
|
151
|
+
|
|
152
|
+
### Agent Conversation Example
|
|
153
|
+
|
|
154
|
+
> **User:** I want to create flowing smoke with invisible force fields.
|
|
155
|
+
>
|
|
156
|
+
> **Agent:** Running `search_algorithms("flowing smoke invisible force fields")`...
|
|
157
|
+
> - `steering_behaviors/flow_field.py` — particles following a fluid vector field
|
|
158
|
+
> - `physics/fluid_simulation.py` — grid-based fluid dynamics
|
|
159
|
+
>
|
|
160
|
+
> Checking details with `get_algorithm_summary("steering_behaviors/flow_field.py")`...
|
|
161
|
+
> complexity: medium, concepts: [flow field, Perlin noise, autonomous agents]
|
|
162
|
+
>
|
|
163
|
+
> Fetching source with `get_algorithm("steering_behaviors/flow_field.py")` to use as reference for implementation.
|
|
164
|
+
|
|
165
|
+
### Algorithm Domains
|
|
166
|
+
|
|
167
|
+
- **mathematical/** - Generative geometry, color harmony, noise functions, fractals
|
|
168
|
+
- **physics/** - Particle systems, forces, spring physics, fluid dynamics, collision
|
|
169
|
+
- **steering_behaviors/** - Autonomous agents, flocking, pathfinding, flow fields
|
|
170
|
+
- **genetic_algorithms/** - Evolution, selection, crossover, mutation
|
|
171
|
+
- **neuro_evolution/** - Neural networks evolved via genetic algorithms
|
|
172
|
+
- **fractals/** - Recursive structures, space-filling curves, Mandelbrot sets
|
|
173
|
+
- **cellular_automata/** - Rule-based systems, Game of Life, emergence
|
|
174
|
+
- **tiling_patterns/** - Symmetry, tessellations, ornamental patterns
|
|
175
|
+
- **research/** - Experimental systems combining multiple domains
|
|
176
|
+
- **simulation/** - Prototype implementations and archived experiments
|
|
177
|
+
- **shader/** - GLSL fragment shaders for TouchDesigner and UE5
|
|
178
|
+
|
|
179
|
+
|
|
180
|
+
### Example: Autonomous Artwork Generation
|
|
181
|
+
|
|
182
|
+
[py5-media-art](https://github.com/asamiile/py5-media-art) — a project that uses the Logic Lab MCP server with Claude Code to autonomously generate py5 sketches. Claude searches Logic Lab for relevant algorithms, adapts them into new compositions, and optionally writes accompanying articles.
|
|
183
|
+
|
|
184
|
+
|
|
185
|
+
## Gallery
|
|
186
|
+
|
|
187
|
+
Examples of generative art created with Logic Lab algorithms:
|
|
188
|
+
|
|
189
|
+
[](https://www.youtube.com/playlist?list=PL5Uiqt5oXo0HR6D_6HbPiDWkYEQUHo1UD)
|
|
190
|
+
|
|
191
|
+
<div align="center">
|
|
192
|
+
<a href="https://stock.adobe.com/jp/stock-photo/id/2062431194" target_blank=""><img src="https://as2.ftcdn.net/v2/jpg/20/62/43/11/1000_F_2062431194_dvPNXz37lpu9s7KMLecEiW2kjC13bwSu.jpg" width="49%" /></a>
|
|
193
|
+
<a href="https://stock.adobe.com/jp/stock-photo/id/2062143692" target_blank=""><img src="https://as1.ftcdn.net/v2/jpg/20/62/14/36/1000_F_2062143692_yKRP6MaFdPe97hSihM7RQwUMDy4Vz6sX.jpg" width="49%" /></a>
|
|
194
|
+
</div>
|
|
195
|
+
<div align="center">
|
|
196
|
+
<a href="https://stock.adobe.com/jp/stock-photo/id/2047805683" target_blank=""><img src="https://as1.ftcdn.net/v2/jpg/20/47/80/56/1000_F_2047805683_wyMES8dS3vOQhGcwyrDoy4XGrASya9QW.jpg" width="49%" /></a>
|
|
197
|
+
<a href="https://stock.adobe.com/jp/stock-photo/id/2032573507" target_blank=""><img src="https://as2.ftcdn.net/v2/jpg/20/32/57/35/1000_F_2032573507_st1OGDqWZe7S3creI7NUfFtKtWyri5HM.jpg" width="49%" /></a>
|
|
198
|
+
</div>
|
|
199
|
+
<div align="center">
|
|
200
|
+
<a href="https://stock.adobe.com/jp/stock-photo/id/2032571820" target_blank=""><img src="https://as1.ftcdn.net/v2/jpg/20/32/57/18/1000_F_2032571820_4BuIFIcInA01dV1omOtcLtKieWRxcbdR.jpg" width="49%" /></a>
|
|
201
|
+
<a href="https://stock.adobe.com/jp/stock-photo/id/2007580121" target_blank=""><img src="https://as2.ftcdn.net/v2/jpg/20/07/58/01/1000_F_2007580121_ccthPfcDLpYcgFqNCjHZdXt73XkAM4Q1.jpg" width="49%" /></a>
|
|
202
|
+
</div>
|
|
203
|
+
<div align="center">
|
|
204
|
+
<a href="https://stock.adobe.com/jp/stock-photo/id/2062125691" target_blank=""><img src="https://as1.ftcdn.net/v2/jpg/20/62/12/56/1000_F_2062125691_lR5yaxaW0n3z8qT5W5yJwCYhRQlNk3cG.jpg" width="49%" /></a>
|
|
205
|
+
<a href="https://stock.adobe.com/jp/stock-photo/id/2019999379" target_blank=""><img src="https://as2.ftcdn.net/v2/jpg/20/19/99/93/1000_F_2019999379_gv2YF2KTn0PnPsrDe1Pr9QNrbL5BynBJ.jpg" width="49%" /></a>
|
|
206
|
+
</div>
|
|
207
|
+
<div align="center">
|
|
208
|
+
<a href="https://stock.adobe.com/jp/stock-photo/id/2032572727" target_blank=""><img src="https://as2.ftcdn.net/v2/jpg/20/32/57/27/1000_F_2032572727_D1KiwH9sq3Y7SN4w75WKbCQ9t5X371az.jpg" width="49%" /></a>
|
|
209
|
+
<a href="https://stock.adobe.com/jp/stock-photo/id/2062106598" target_blank=""><img src="https://as2.ftcdn.net/v2/jpg/20/62/10/65/1000_F_2062106598_OsonjoxQg5h04RIVjNj8h53nM87GpXYk.jpg" width="49%" /></a>
|
|
210
|
+
</div>
|
|
211
|
+
|
|
212
|
+
|
|
213
|
+
## Development
|
|
214
|
+
|
|
215
|
+
To contribute new algorithms or fixes, see [CONTRIBUTING.md](CONTRIBUTING.md) for detailed guidelines on:
|
|
216
|
+
- Development setup with `uv`
|
|
217
|
+
- Algorithm addition workflow
|
|
218
|
+
- py5 code patterns and templates
|
|
219
|
+
- Testing requirements
|
|
220
|
+
- Conventional Commits specification
|
|
221
|
+
- Automated release process
|
|
222
|
+
|
|
223
|
+
### Setup
|
|
224
|
+
|
|
225
|
+
Install dependencies:
|
|
226
|
+
|
|
227
|
+
```bash
|
|
228
|
+
uv sync
|
|
229
|
+
```
|
|
230
|
+
|
|
231
|
+
### Running Tests
|
|
232
|
+
|
|
233
|
+
```bash
|
|
234
|
+
# Install dev dependencies
|
|
235
|
+
uv sync --group dev
|
|
236
|
+
|
|
237
|
+
# Run all tests
|
|
238
|
+
uv run pytest tests/
|
|
239
|
+
|
|
240
|
+
# Run with coverage
|
|
241
|
+
uv run pytest tests/ --cov=src/logic_lab
|
|
242
|
+
```
|
|
243
|
+
|
|
244
|
+
### Code Quality
|
|
245
|
+
|
|
246
|
+
```bash
|
|
247
|
+
# Lint with ruff
|
|
248
|
+
uv run ruff check src/ tests/
|
|
249
|
+
|
|
250
|
+
# Format with black
|
|
251
|
+
uv run black src/ tests/
|
|
252
|
+
|
|
253
|
+
# Lint and fix
|
|
254
|
+
uv run ruff check --fix src/ tests/
|
|
255
|
+
```
|
|
256
|
+
|
|
257
|
+
### Repository Structure
|
|
258
|
+
|
|
259
|
+
```
|
|
260
|
+
logic-lab/
|
|
261
|
+
├── src/logic_lab/ # Package root
|
|
262
|
+
│ ├── __init__.py
|
|
263
|
+
│ ├── mcp/ # MCP server for AI agent access
|
|
264
|
+
│ ├── physics/ # Motion, forces, particles, simulations
|
|
265
|
+
│ ├── steering_behaviors/ # Autonomous agents, flow fields, flocking
|
|
266
|
+
│ ├── genetic_algorithms/ # Selection, mutation, evolutionary search
|
|
267
|
+
│ ├── neuro_evolution/ # Neural networks evolved via genetics
|
|
268
|
+
│ ├── fractals/ # Recursion, trees, Koch curves, L-systems
|
|
269
|
+
│ ├── cellular_automata/ # Rule-based grids, lattice systems
|
|
270
|
+
│ ├── mathematical/ # Noise, curves, geometry, harmony
|
|
271
|
+
│ ├── tiling_patterns/ # Symmetry, tessellation, ornaments
|
|
272
|
+
│ ├── research/ # Experimental and hybrid systems
|
|
273
|
+
│ ├── simulation/ # Prototypes and reference implementations
|
|
274
|
+
│ ├── shared/ # Reusable utilities and helpers
|
|
275
|
+
│ └── shader/ # GLSL shader experiments
|
|
276
|
+
├── tests/ # Pytest test suite
|
|
277
|
+
├── CONTRIBUTING.md # Contributor guidelines and conventions
|
|
278
|
+
├── CHANGELOG.md # Version history and release notes
|
|
279
|
+
├── pyproject.toml # Package configuration and dependencies
|
|
280
|
+
└── .github/workflows/
|
|
281
|
+
├── test.yml # CI: lint and test automation
|
|
282
|
+
└── release.yml # CD: automated releases with release-please
|
|
283
|
+
```
|
|
284
|
+
|
|
285
|
+
|
|
286
|
+
## Reference
|
|
287
|
+
|
|
288
|
+
- [The Nature of Code](https://natureofcode.com/)
|
|
289
|
+
- [Pythonではじめるオープンエンドな進化的アルゴリズム](https://www.oreilly.co.jp/books/9784814400003/)
|
|
290
|
+
- [数学から創るジェネラティブアート](https://gihyo.jp/book/2019/978-4-297-10463-4/support)
|
|
291
|
+
- [リアルタイムグラフィックスの数学](https://gihyo.jp/book/2022/978-4-297-13034-3)
|
|
292
|
+
|
|
293
|
+
## License
|
|
294
|
+
|
|
295
|
+
[](https://opensource.org/licenses/MIT)
|
|
296
|
+
|
|
297
|
+
## Author
|
|
298
|
+
|
|
299
|
+
[Asami.K](https://asami.tokyo/)
|
|
300
|
+
|
|
301
|
+
If you find this helpful, consider supporting the work:
|
|
302
|
+
|
|
303
|
+
[](https://buymeacoffee.com/asamiile)
|
|
@@ -0,0 +1,254 @@
|
|
|
1
|
+
# Logic Lab
|
|
2
|
+
|
|
3
|
+
Python translations of creative coding examples using py5. Each simulation is organized by domain, demonstrating core computational creativity concepts: physics, steering behaviors, genetic algorithms, neural networks, fractals, cellular automata, tiling patterns, and mathematical systems.
|
|
4
|
+
|
|
5
|
+
## MCP Server
|
|
6
|
+
|
|
7
|
+
Logic Lab is available as an MCP server for AI agents. Agents can search the Logic Lab manifest, find algorithms by visual intent or category, read short summaries, and fetch bounded source snippets for selected examples.
|
|
8
|
+
|
|
9
|
+
[](https://glama.ai/mcp/servers/asamiile/logic-lab)
|
|
10
|
+
|
|
11
|
+
### Option 1: Quick Start
|
|
12
|
+
|
|
13
|
+
If you just want to use the MCP server directly via [Glama](https://glama.ai/mcp/servers/asamiile/logic-lab) or your AI agent without cloning the repository, you can run it remotely using `uvx`.
|
|
14
|
+
|
|
15
|
+
Add the following to your AI tool's MCP
|
|
16
|
+
|
|
17
|
+
configuration:
|
|
18
|
+
|
|
19
|
+
```json
|
|
20
|
+
{
|
|
21
|
+
"mcpServers": {
|
|
22
|
+
"logic-lab": {
|
|
23
|
+
"command": "uvx",
|
|
24
|
+
"args": [
|
|
25
|
+
"--from",
|
|
26
|
+
"logic-lab",
|
|
27
|
+
"logic-lab-mcp"
|
|
28
|
+
]
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
### Option 2: Manual Installation (For local development)
|
|
35
|
+
|
|
36
|
+
Requires uv. Clone this repository locally if you want to modify the algorithms or run the server from your local source.
|
|
37
|
+
|
|
38
|
+
```bash
|
|
39
|
+
git clone https://github.com/asamiile/logic-lab.git
|
|
40
|
+
cd logic-lab
|
|
41
|
+
uv sync
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
### Registration (Local)
|
|
45
|
+
|
|
46
|
+
After manual installation, register the local server with your AI tool using the logic-lab-mcp command:
|
|
47
|
+
|
|
48
|
+
Claude Code:
|
|
49
|
+
|
|
50
|
+
```bash
|
|
51
|
+
claude mcp add logic-lab -- logic-lab-mcp
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
Codex:
|
|
55
|
+
|
|
56
|
+
```bash
|
|
57
|
+
codex mcp add logic-lab -- logic-lab-mcp
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
GitHub Copilot in VS Code (.vscode/mcp.json or user MCP settings):
|
|
61
|
+
|
|
62
|
+
```json
|
|
63
|
+
{
|
|
64
|
+
"servers": {
|
|
65
|
+
"logic-lab": {
|
|
66
|
+
"type": "stdio",
|
|
67
|
+
"command": "logic-lab-mcp"
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
Cursor (.cursor/mcp.json or ~/.cursor/mcp.json):
|
|
74
|
+
|
|
75
|
+
```json
|
|
76
|
+
{
|
|
77
|
+
"mcpServers": {
|
|
78
|
+
"logic-lab": {
|
|
79
|
+
"type": "stdio",
|
|
80
|
+
"command": "logic-lab-mcp"
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
### Available Tools
|
|
87
|
+
|
|
88
|
+
303 algorithms across 11 domains are accessible via 6 MCP tools:
|
|
89
|
+
|
|
90
|
+
| Tool | Description |
|
|
91
|
+
|---|---|
|
|
92
|
+
| `search_algorithms(query, category, limit)` | Free-text search across titles, concepts, and visual descriptions. Start here. |
|
|
93
|
+
| `search_by_mood(mood, style, limit)` | Find algorithms by aesthetic mood: `ethereal`, `chaotic`, `geometric`, `organic`, `cosmic`, `minimal`, and 6 more. |
|
|
94
|
+
| `recommend_combinations(intent, count)` | Returns layered multi-algorithm recipes for a given artistic intent. |
|
|
95
|
+
| `get_algorithm_summary(path)` | Returns manifest metadata and README excerpt for a path. Check relevance before fetching source. |
|
|
96
|
+
| `get_algorithm(path, max_chars)` | Returns source code for a specific algorithm file. Read-only, size-limited. |
|
|
97
|
+
| `get_manifest()` | Returns the full manifest JSON. Use when you need to enumerate all entries or categories. |
|
|
98
|
+
|
|
99
|
+
**Recommended workflow:** `search_algorithms` → `get_algorithm_summary` → `get_algorithm`
|
|
100
|
+
|
|
101
|
+
See [src/logic_lab/mcp/README.md](src/logic_lab/mcp/README.md) for full parameter reference, security notes, and resource endpoints.
|
|
102
|
+
|
|
103
|
+
### Agent Conversation Example
|
|
104
|
+
|
|
105
|
+
> **User:** I want to create flowing smoke with invisible force fields.
|
|
106
|
+
>
|
|
107
|
+
> **Agent:** Running `search_algorithms("flowing smoke invisible force fields")`...
|
|
108
|
+
> - `steering_behaviors/flow_field.py` — particles following a fluid vector field
|
|
109
|
+
> - `physics/fluid_simulation.py` — grid-based fluid dynamics
|
|
110
|
+
>
|
|
111
|
+
> Checking details with `get_algorithm_summary("steering_behaviors/flow_field.py")`...
|
|
112
|
+
> complexity: medium, concepts: [flow field, Perlin noise, autonomous agents]
|
|
113
|
+
>
|
|
114
|
+
> Fetching source with `get_algorithm("steering_behaviors/flow_field.py")` to use as reference for implementation.
|
|
115
|
+
|
|
116
|
+
### Algorithm Domains
|
|
117
|
+
|
|
118
|
+
- **mathematical/** - Generative geometry, color harmony, noise functions, fractals
|
|
119
|
+
- **physics/** - Particle systems, forces, spring physics, fluid dynamics, collision
|
|
120
|
+
- **steering_behaviors/** - Autonomous agents, flocking, pathfinding, flow fields
|
|
121
|
+
- **genetic_algorithms/** - Evolution, selection, crossover, mutation
|
|
122
|
+
- **neuro_evolution/** - Neural networks evolved via genetic algorithms
|
|
123
|
+
- **fractals/** - Recursive structures, space-filling curves, Mandelbrot sets
|
|
124
|
+
- **cellular_automata/** - Rule-based systems, Game of Life, emergence
|
|
125
|
+
- **tiling_patterns/** - Symmetry, tessellations, ornamental patterns
|
|
126
|
+
- **research/** - Experimental systems combining multiple domains
|
|
127
|
+
- **simulation/** - Prototype implementations and archived experiments
|
|
128
|
+
- **shader/** - GLSL fragment shaders for TouchDesigner and UE5
|
|
129
|
+
|
|
130
|
+
|
|
131
|
+
### Example: Autonomous Artwork Generation
|
|
132
|
+
|
|
133
|
+
[py5-media-art](https://github.com/asamiile/py5-media-art) — a project that uses the Logic Lab MCP server with Claude Code to autonomously generate py5 sketches. Claude searches Logic Lab for relevant algorithms, adapts them into new compositions, and optionally writes accompanying articles.
|
|
134
|
+
|
|
135
|
+
|
|
136
|
+
## Gallery
|
|
137
|
+
|
|
138
|
+
Examples of generative art created with Logic Lab algorithms:
|
|
139
|
+
|
|
140
|
+
[](https://www.youtube.com/playlist?list=PL5Uiqt5oXo0HR6D_6HbPiDWkYEQUHo1UD)
|
|
141
|
+
|
|
142
|
+
<div align="center">
|
|
143
|
+
<a href="https://stock.adobe.com/jp/stock-photo/id/2062431194" target_blank=""><img src="https://as2.ftcdn.net/v2/jpg/20/62/43/11/1000_F_2062431194_dvPNXz37lpu9s7KMLecEiW2kjC13bwSu.jpg" width="49%" /></a>
|
|
144
|
+
<a href="https://stock.adobe.com/jp/stock-photo/id/2062143692" target_blank=""><img src="https://as1.ftcdn.net/v2/jpg/20/62/14/36/1000_F_2062143692_yKRP6MaFdPe97hSihM7RQwUMDy4Vz6sX.jpg" width="49%" /></a>
|
|
145
|
+
</div>
|
|
146
|
+
<div align="center">
|
|
147
|
+
<a href="https://stock.adobe.com/jp/stock-photo/id/2047805683" target_blank=""><img src="https://as1.ftcdn.net/v2/jpg/20/47/80/56/1000_F_2047805683_wyMES8dS3vOQhGcwyrDoy4XGrASya9QW.jpg" width="49%" /></a>
|
|
148
|
+
<a href="https://stock.adobe.com/jp/stock-photo/id/2032573507" target_blank=""><img src="https://as2.ftcdn.net/v2/jpg/20/32/57/35/1000_F_2032573507_st1OGDqWZe7S3creI7NUfFtKtWyri5HM.jpg" width="49%" /></a>
|
|
149
|
+
</div>
|
|
150
|
+
<div align="center">
|
|
151
|
+
<a href="https://stock.adobe.com/jp/stock-photo/id/2032571820" target_blank=""><img src="https://as1.ftcdn.net/v2/jpg/20/32/57/18/1000_F_2032571820_4BuIFIcInA01dV1omOtcLtKieWRxcbdR.jpg" width="49%" /></a>
|
|
152
|
+
<a href="https://stock.adobe.com/jp/stock-photo/id/2007580121" target_blank=""><img src="https://as2.ftcdn.net/v2/jpg/20/07/58/01/1000_F_2007580121_ccthPfcDLpYcgFqNCjHZdXt73XkAM4Q1.jpg" width="49%" /></a>
|
|
153
|
+
</div>
|
|
154
|
+
<div align="center">
|
|
155
|
+
<a href="https://stock.adobe.com/jp/stock-photo/id/2062125691" target_blank=""><img src="https://as1.ftcdn.net/v2/jpg/20/62/12/56/1000_F_2062125691_lR5yaxaW0n3z8qT5W5yJwCYhRQlNk3cG.jpg" width="49%" /></a>
|
|
156
|
+
<a href="https://stock.adobe.com/jp/stock-photo/id/2019999379" target_blank=""><img src="https://as2.ftcdn.net/v2/jpg/20/19/99/93/1000_F_2019999379_gv2YF2KTn0PnPsrDe1Pr9QNrbL5BynBJ.jpg" width="49%" /></a>
|
|
157
|
+
</div>
|
|
158
|
+
<div align="center">
|
|
159
|
+
<a href="https://stock.adobe.com/jp/stock-photo/id/2032572727" target_blank=""><img src="https://as2.ftcdn.net/v2/jpg/20/32/57/27/1000_F_2032572727_D1KiwH9sq3Y7SN4w75WKbCQ9t5X371az.jpg" width="49%" /></a>
|
|
160
|
+
<a href="https://stock.adobe.com/jp/stock-photo/id/2062106598" target_blank=""><img src="https://as2.ftcdn.net/v2/jpg/20/62/10/65/1000_F_2062106598_OsonjoxQg5h04RIVjNj8h53nM87GpXYk.jpg" width="49%" /></a>
|
|
161
|
+
</div>
|
|
162
|
+
|
|
163
|
+
|
|
164
|
+
## Development
|
|
165
|
+
|
|
166
|
+
To contribute new algorithms or fixes, see [CONTRIBUTING.md](CONTRIBUTING.md) for detailed guidelines on:
|
|
167
|
+
- Development setup with `uv`
|
|
168
|
+
- Algorithm addition workflow
|
|
169
|
+
- py5 code patterns and templates
|
|
170
|
+
- Testing requirements
|
|
171
|
+
- Conventional Commits specification
|
|
172
|
+
- Automated release process
|
|
173
|
+
|
|
174
|
+
### Setup
|
|
175
|
+
|
|
176
|
+
Install dependencies:
|
|
177
|
+
|
|
178
|
+
```bash
|
|
179
|
+
uv sync
|
|
180
|
+
```
|
|
181
|
+
|
|
182
|
+
### Running Tests
|
|
183
|
+
|
|
184
|
+
```bash
|
|
185
|
+
# Install dev dependencies
|
|
186
|
+
uv sync --group dev
|
|
187
|
+
|
|
188
|
+
# Run all tests
|
|
189
|
+
uv run pytest tests/
|
|
190
|
+
|
|
191
|
+
# Run with coverage
|
|
192
|
+
uv run pytest tests/ --cov=src/logic_lab
|
|
193
|
+
```
|
|
194
|
+
|
|
195
|
+
### Code Quality
|
|
196
|
+
|
|
197
|
+
```bash
|
|
198
|
+
# Lint with ruff
|
|
199
|
+
uv run ruff check src/ tests/
|
|
200
|
+
|
|
201
|
+
# Format with black
|
|
202
|
+
uv run black src/ tests/
|
|
203
|
+
|
|
204
|
+
# Lint and fix
|
|
205
|
+
uv run ruff check --fix src/ tests/
|
|
206
|
+
```
|
|
207
|
+
|
|
208
|
+
### Repository Structure
|
|
209
|
+
|
|
210
|
+
```
|
|
211
|
+
logic-lab/
|
|
212
|
+
├── src/logic_lab/ # Package root
|
|
213
|
+
│ ├── __init__.py
|
|
214
|
+
│ ├── mcp/ # MCP server for AI agent access
|
|
215
|
+
│ ├── physics/ # Motion, forces, particles, simulations
|
|
216
|
+
│ ├── steering_behaviors/ # Autonomous agents, flow fields, flocking
|
|
217
|
+
│ ├── genetic_algorithms/ # Selection, mutation, evolutionary search
|
|
218
|
+
│ ├── neuro_evolution/ # Neural networks evolved via genetics
|
|
219
|
+
│ ├── fractals/ # Recursion, trees, Koch curves, L-systems
|
|
220
|
+
│ ├── cellular_automata/ # Rule-based grids, lattice systems
|
|
221
|
+
│ ├── mathematical/ # Noise, curves, geometry, harmony
|
|
222
|
+
│ ├── tiling_patterns/ # Symmetry, tessellation, ornaments
|
|
223
|
+
│ ├── research/ # Experimental and hybrid systems
|
|
224
|
+
│ ├── simulation/ # Prototypes and reference implementations
|
|
225
|
+
│ ├── shared/ # Reusable utilities and helpers
|
|
226
|
+
│ └── shader/ # GLSL shader experiments
|
|
227
|
+
├── tests/ # Pytest test suite
|
|
228
|
+
├── CONTRIBUTING.md # Contributor guidelines and conventions
|
|
229
|
+
├── CHANGELOG.md # Version history and release notes
|
|
230
|
+
├── pyproject.toml # Package configuration and dependencies
|
|
231
|
+
└── .github/workflows/
|
|
232
|
+
├── test.yml # CI: lint and test automation
|
|
233
|
+
└── release.yml # CD: automated releases with release-please
|
|
234
|
+
```
|
|
235
|
+
|
|
236
|
+
|
|
237
|
+
## Reference
|
|
238
|
+
|
|
239
|
+
- [The Nature of Code](https://natureofcode.com/)
|
|
240
|
+
- [Pythonではじめるオープンエンドな進化的アルゴリズム](https://www.oreilly.co.jp/books/9784814400003/)
|
|
241
|
+
- [数学から創るジェネラティブアート](https://gihyo.jp/book/2019/978-4-297-10463-4/support)
|
|
242
|
+
- [リアルタイムグラフィックスの数学](https://gihyo.jp/book/2022/978-4-297-13034-3)
|
|
243
|
+
|
|
244
|
+
## License
|
|
245
|
+
|
|
246
|
+
[](https://opensource.org/licenses/MIT)
|
|
247
|
+
|
|
248
|
+
## Author
|
|
249
|
+
|
|
250
|
+
[Asami.K](https://asami.tokyo/)
|
|
251
|
+
|
|
252
|
+
If you find this helpful, consider supporting the work:
|
|
253
|
+
|
|
254
|
+
[](https://buymeacoffee.com/asamiile)
|