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.
Files changed (1139) hide show
  1. logic_lab-0.4.0/.gitignore +36 -0
  2. logic_lab-0.4.0/LICENSE +21 -0
  3. logic_lab-0.4.0/PKG-INFO +303 -0
  4. logic_lab-0.4.0/README.md +254 -0
  5. logic_lab-0.4.0/pyproject.toml +141 -0
  6. logic_lab-0.4.0/src/logic_lab/__init__.py +16 -0
  7. logic_lab-0.4.0/src/logic_lab/audio_sync/__init__.py +5 -0
  8. logic_lab-0.4.0/src/logic_lab/audio_sync/audio_reactive_particles/README.md +11 -0
  9. logic_lab-0.4.0/src/logic_lab/audio_sync/audio_reactive_particles/__init__.py +17 -0
  10. logic_lab-0.4.0/src/logic_lab/audio_sync/audio_reactive_particles/audio_reactive_particles.py +407 -0
  11. logic_lab-0.4.0/src/logic_lab/audio_sync/audio_reactive_particles/example.py +86 -0
  12. logic_lab-0.4.0/src/logic_lab/biological/__init__.py +1 -0
  13. logic_lab-0.4.0/src/logic_lab/biological/ant_colony/README.md +11 -0
  14. logic_lab-0.4.0/src/logic_lab/biological/ant_colony/ant_colony.py +97 -0
  15. logic_lab-0.4.0/src/logic_lab/biological/dla/README.md +11 -0
  16. logic_lab-0.4.0/src/logic_lab/biological/dla/__init__.py +0 -0
  17. logic_lab-0.4.0/src/logic_lab/biological/dla/dla.py +201 -0
  18. logic_lab-0.4.0/src/logic_lab/biological/mycelium_growth/README.md +11 -0
  19. logic_lab-0.4.0/src/logic_lab/biological/mycelium_growth/mycelium_growth.py +74 -0
  20. logic_lab-0.4.0/src/logic_lab/biological/physarum/README.md +11 -0
  21. logic_lab-0.4.0/src/logic_lab/biological/physarum/physarum.py +141 -0
  22. logic_lab-0.4.0/src/logic_lab/biological/predator_prey_dynamics/__init__.py +0 -0
  23. logic_lab-0.4.0/src/logic_lab/biological/predator_prey_dynamics/predator_prey_dynamics.py +173 -0
  24. logic_lab-0.4.0/src/logic_lab/biological/space_colonization/README.md +11 -0
  25. logic_lab-0.4.0/src/logic_lab/biological/space_colonization/__init__.py +0 -0
  26. logic_lab-0.4.0/src/logic_lab/biological/space_colonization/space_colonization.py +228 -0
  27. logic_lab-0.4.0/src/logic_lab/cellular_automata/__init__.py +0 -0
  28. logic_lab-0.4.0/src/logic_lab/cellular_automata/brian_brain/README.md +11 -0
  29. logic_lab-0.4.0/src/logic_lab/cellular_automata/brian_brain/brian_brain.py +68 -0
  30. logic_lab-0.4.0/src/logic_lab/cellular_automata/ca_1dim/README.md +9 -0
  31. logic_lab-0.4.0/src/logic_lab/cellular_automata/ca_1dim/ca_1dim.py +67 -0
  32. logic_lab-0.4.0/src/logic_lab/cellular_automata/ca_2dim/README.md +9 -0
  33. logic_lab-0.4.0/src/logic_lab/cellular_automata/ca_2dim/ca_2dim.py +76 -0
  34. logic_lab-0.4.0/src/logic_lab/cellular_automata/cyclic_ca/README.md +11 -0
  35. logic_lab-0.4.0/src/logic_lab/cellular_automata/cyclic_ca/cyclic_ca.py +67 -0
  36. logic_lab-0.4.0/src/logic_lab/cellular_automata/elementary_ca/README.md +9 -0
  37. logic_lab-0.4.0/src/logic_lab/cellular_automata/elementary_ca/elementary_ca.py +70 -0
  38. logic_lab-0.4.0/src/logic_lab/cellular_automata/game_of_life/__init__.py +0 -0
  39. logic_lab-0.4.0/src/logic_lab/cellular_automata/game_of_life/game_of_life.py +171 -0
  40. logic_lab-0.4.0/src/logic_lab/cellular_automata/hex_lattice_ca/README.md +9 -0
  41. logic_lab-0.4.0/src/logic_lab/cellular_automata/hex_lattice_ca/hex_lattice_ca.py +99 -0
  42. logic_lab-0.4.0/src/logic_lab/cellular_automata/langtons_ant/README.md +11 -0
  43. logic_lab-0.4.0/src/logic_lab/cellular_automata/langtons_ant/__init__.py +0 -0
  44. logic_lab-0.4.0/src/logic_lab/cellular_automata/langtons_ant/langtons_ant.py +207 -0
  45. logic_lab-0.4.0/src/logic_lab/cellular_automata/mod_pascal/README.md +9 -0
  46. logic_lab-0.4.0/src/logic_lab/cellular_automata/mod_pascal/mod_pascal.py +60 -0
  47. logic_lab-0.4.0/src/logic_lab/cellular_automata/moss_colony_growth/README.md +15 -0
  48. logic_lab-0.4.0/src/logic_lab/cellular_automata/moss_colony_growth/moss_colony_growth.py +130 -0
  49. logic_lab-0.4.0/src/logic_lab/cellular_automata/pascal/README.md +9 -0
  50. logic_lab-0.4.0/src/logic_lab/cellular_automata/pascal/pascal.py +49 -0
  51. logic_lab-0.4.0/src/logic_lab/cellular_automata/rule_variations/README.md +11 -0
  52. logic_lab-0.4.0/src/logic_lab/cellular_automata/rule_variations/rule_variations.py +58 -0
  53. logic_lab-0.4.0/src/logic_lab/cellular_automata/smooth_life/README.md +11 -0
  54. logic_lab-0.4.0/src/logic_lab/cellular_automata/smooth_life/smooth_life.py +64 -0
  55. logic_lab-0.4.0/src/logic_lab/cellular_automata/stochastic_ca/README.md +9 -0
  56. logic_lab-0.4.0/src/logic_lab/cellular_automata/stochastic_ca/stochastic_ca.py +68 -0
  57. logic_lab-0.4.0/src/logic_lab/chaos_theory/__init__.py +0 -0
  58. logic_lab-0.4.0/src/logic_lab/chaos_theory/chua_circuit/__init__.py +0 -0
  59. logic_lab-0.4.0/src/logic_lab/chaos_theory/chua_circuit/chua_circuit.py +212 -0
  60. logic_lab-0.4.0/src/logic_lab/chaos_theory/double_pendulum/__init__.py +0 -0
  61. logic_lab-0.4.0/src/logic_lab/chaos_theory/double_pendulum/double_pendulum.py +218 -0
  62. logic_lab-0.4.0/src/logic_lab/chaos_theory/henon_map/__init__.py +0 -0
  63. logic_lab-0.4.0/src/logic_lab/chaos_theory/henon_map/henon_map.py +185 -0
  64. logic_lab-0.4.0/src/logic_lab/chaos_theory/logistic_map/__init__.py +0 -0
  65. logic_lab-0.4.0/src/logic_lab/chaos_theory/logistic_map/logistic_map.py +348 -0
  66. logic_lab-0.4.0/src/logic_lab/chaos_theory/lorenz_attractor/__init__.py +0 -0
  67. logic_lab-0.4.0/src/logic_lab/chaos_theory/lorenz_attractor/lorenz_attractor.py +211 -0
  68. logic_lab-0.4.0/src/logic_lab/chaos_theory/rossler_attractor/__init__.py +0 -0
  69. logic_lab-0.4.0/src/logic_lab/chaos_theory/rossler_attractor/rossler_attractor.py +211 -0
  70. logic_lab-0.4.0/src/logic_lab/crystal_growth/__init__.py +0 -0
  71. logic_lab-0.4.0/src/logic_lab/crystal_growth/crystal_solidification/__init__.py +0 -0
  72. logic_lab-0.4.0/src/logic_lab/crystal_growth/crystal_solidification/crystal_solidification.py +231 -0
  73. logic_lab-0.4.0/src/logic_lab/crystal_growth/dla_cluster/__init__.py +0 -0
  74. logic_lab-0.4.0/src/logic_lab/crystal_growth/dla_cluster/dla_cluster.py +200 -0
  75. logic_lab-0.4.0/src/logic_lab/crystal_growth/snowflake_growth/__init__.py +0 -0
  76. logic_lab-0.4.0/src/logic_lab/crystal_growth/snowflake_growth/snowflake_growth.py +203 -0
  77. logic_lab-0.4.0/src/logic_lab/fractals/botanical_l_system/README.md +22 -0
  78. logic_lab-0.4.0/src/logic_lab/fractals/botanical_l_system/botanical_l_system.py +186 -0
  79. logic_lab-0.4.0/src/logic_lab/fractals/branch_objects_animation/README.md +10 -0
  80. logic_lab-0.4.0/src/logic_lab/fractals/branch_objects_animation/__init__.py +0 -0
  81. logic_lab-0.4.0/src/logic_lab/fractals/branch_objects_animation/branch_objects_animation.py +105 -0
  82. logic_lab-0.4.0/src/logic_lab/fractals/branch_thickness/README.md +10 -0
  83. logic_lab-0.4.0/src/logic_lab/fractals/branch_thickness/__init__.py +0 -0
  84. logic_lab-0.4.0/src/logic_lab/fractals/branch_thickness/branch_thickness.py +57 -0
  85. logic_lab-0.4.0/src/logic_lab/fractals/burning_ship/README.md +11 -0
  86. logic_lab-0.4.0/src/logic_lab/fractals/burning_ship/burning_ship.py +46 -0
  87. logic_lab-0.4.0/src/logic_lab/fractals/cantor_set/README.md +11 -0
  88. logic_lab-0.4.0/src/logic_lab/fractals/cantor_set/__init__.py +0 -0
  89. logic_lab-0.4.0/src/logic_lab/fractals/cantor_set/cantor_set.py +40 -0
  90. logic_lab-0.4.0/src/logic_lab/fractals/differential_growth/README.md +15 -0
  91. logic_lab-0.4.0/src/logic_lab/fractals/differential_growth/differential_growth.py +143 -0
  92. logic_lab-0.4.0/src/logic_lab/fractals/dla/README.md +11 -0
  93. logic_lab-0.4.0/src/logic_lab/fractals/dla/dla.py +133 -0
  94. logic_lab-0.4.0/src/logic_lab/fractals/elementary_wolfram_ca/README.md +9 -0
  95. logic_lab-0.4.0/src/logic_lab/fractals/elementary_wolfram_ca/__init__.py +0 -0
  96. logic_lab-0.4.0/src/logic_lab/fractals/elementary_wolfram_ca/elementary_wolfram_ca.py +57 -0
  97. logic_lab-0.4.0/src/logic_lab/fractals/fractal_lines/README.md +9 -0
  98. logic_lab-0.4.0/src/logic_lab/fractals/fractal_lines/__init__.py +0 -0
  99. logic_lab-0.4.0/src/logic_lab/fractals/fractal_lines/fractal_lines.py +38 -0
  100. logic_lab-0.4.0/src/logic_lab/fractals/game_of_life/README.md +9 -0
  101. logic_lab-0.4.0/src/logic_lab/fractals/game_of_life/__init__.py +0 -0
  102. logic_lab-0.4.0/src/logic_lab/fractals/game_of_life/game_of_life.py +66 -0
  103. logic_lab-0.4.0/src/logic_lab/fractals/game_of_life_oop/README.md +9 -0
  104. logic_lab-0.4.0/src/logic_lab/fractals/game_of_life_oop/__init__.py +0 -0
  105. logic_lab-0.4.0/src/logic_lab/fractals/game_of_life_oop/game_of_life_oop.py +84 -0
  106. logic_lab-0.4.0/src/logic_lab/fractals/hexagon_ca/README.md +9 -0
  107. logic_lab-0.4.0/src/logic_lab/fractals/hexagon_ca/__init__.py +0 -0
  108. logic_lab-0.4.0/src/logic_lab/fractals/hexagon_ca/hexagon_ca.py +67 -0
  109. logic_lab-0.4.0/src/logic_lab/fractals/hilbert_curve/README.md +11 -0
  110. logic_lab-0.4.0/src/logic_lab/fractals/hilbert_curve/hilbert_curve.py +53 -0
  111. logic_lab-0.4.0/src/logic_lab/fractals/ifs_fractal/__init__.py +0 -0
  112. logic_lab-0.4.0/src/logic_lab/fractals/ifs_fractal/ifs_fractal.py +223 -0
  113. logic_lab-0.4.0/src/logic_lab/fractals/julia_set/README.md +11 -0
  114. logic_lab-0.4.0/src/logic_lab/fractals/julia_set/__init__.py +0 -0
  115. logic_lab-0.4.0/src/logic_lab/fractals/julia_set/julia_set.py +197 -0
  116. logic_lab-0.4.0/src/logic_lab/fractals/koch_curve/README.md +9 -0
  117. logic_lab-0.4.0/src/logic_lab/fractals/koch_curve/__init__.py +0 -0
  118. logic_lab-0.4.0/src/logic_lab/fractals/koch_curve/koch_curve.py +69 -0
  119. logic_lab-0.4.0/src/logic_lab/fractals/koch_deformation/README.md +9 -0
  120. logic_lab-0.4.0/src/logic_lab/fractals/koch_deformation/koch_deformation.py +43 -0
  121. logic_lab-0.4.0/src/logic_lab/fractals/koch_snowflake/README.md +10 -0
  122. logic_lab-0.4.0/src/logic_lab/fractals/koch_snowflake/__init__.py +0 -0
  123. logic_lab-0.4.0/src/logic_lab/fractals/koch_snowflake/koch_snowflake.py +112 -0
  124. logic_lab-0.4.0/src/logic_lab/fractals/l_system/README.md +9 -0
  125. logic_lab-0.4.0/src/logic_lab/fractals/l_system/__init__.py +0 -0
  126. logic_lab-0.4.0/src/logic_lab/fractals/l_system/l_system.py +71 -0
  127. logic_lab-0.4.0/src/logic_lab/fractals/l_system_string_only/README.md +9 -0
  128. logic_lab-0.4.0/src/logic_lab/fractals/l_system_string_only/__init__.py +0 -0
  129. logic_lab-0.4.0/src/logic_lab/fractals/l_system_string_only/l_system_string_only.py +45 -0
  130. logic_lab-0.4.0/src/logic_lab/fractals/leaf_venation/README.md +16 -0
  131. logic_lab-0.4.0/src/logic_lab/fractals/leaf_venation/leaf_venation.py +189 -0
  132. logic_lab-0.4.0/src/logic_lab/fractals/mandelbrot_set/README.md +11 -0
  133. logic_lab-0.4.0/src/logic_lab/fractals/mandelbrot_set/mandelbrot_set.py +45 -0
  134. logic_lab-0.4.0/src/logic_lab/fractals/newton_basins/__init__.py +0 -0
  135. logic_lab-0.4.0/src/logic_lab/fractals/newton_basins/newton_basins.py +226 -0
  136. logic_lab-0.4.0/src/logic_lab/fractals/quadtree_part_1/README.md +8 -0
  137. logic_lab-0.4.0/src/logic_lab/fractals/quadtree_part_1/__init__.py +0 -0
  138. logic_lab-0.4.0/src/logic_lab/fractals/quadtree_part_1/quadtree_part_1.py +143 -0
  139. logic_lab-0.4.0/src/logic_lab/fractals/recursion/README.md +9 -0
  140. logic_lab-0.4.0/src/logic_lab/fractals/recursion/__init__.py +0 -0
  141. logic_lab-0.4.0/src/logic_lab/fractals/recursion/recursion.py +32 -0
  142. logic_lab-0.4.0/src/logic_lab/fractals/recursion_2/README.md +9 -0
  143. logic_lab-0.4.0/src/logic_lab/fractals/recursion_2/__init__.py +0 -0
  144. logic_lab-0.4.0/src/logic_lab/fractals/recursion_2/recursion_2.py +34 -0
  145. logic_lab-0.4.0/src/logic_lab/fractals/recursion_circles/README.md +9 -0
  146. logic_lab-0.4.0/src/logic_lab/fractals/recursion_circles/__init__.py +0 -0
  147. logic_lab-0.4.0/src/logic_lab/fractals/recursion_circles/recursion_circles.py +35 -0
  148. logic_lab-0.4.0/src/logic_lab/fractals/space_colonization/README.md +40 -0
  149. logic_lab-0.4.0/src/logic_lab/fractals/space_colonization/space_colonization.py +202 -0
  150. logic_lab-0.4.0/src/logic_lab/fractals/stochastic_tree/README.md +9 -0
  151. logic_lab-0.4.0/src/logic_lab/fractals/stochastic_tree/__init__.py +0 -0
  152. logic_lab-0.4.0/src/logic_lab/fractals/stochastic_tree/stochastic_tree.py +44 -0
  153. logic_lab-0.4.0/src/logic_lab/fractals/substrate/README.md +11 -0
  154. logic_lab-0.4.0/src/logic_lab/fractals/substrate/substrate.py +109 -0
  155. logic_lab-0.4.0/src/logic_lab/fractals/tree/README.md +9 -0
  156. logic_lab-0.4.0/src/logic_lab/fractals/tree/__init__.py +0 -0
  157. logic_lab-0.4.0/src/logic_lab/fractals/tree/tree.py +46 -0
  158. logic_lab-0.4.0/src/logic_lab/genetic_algorithms/evolving_bloops/README.md +39 -0
  159. logic_lab-0.4.0/src/logic_lab/genetic_algorithms/evolving_bloops/evolving_bloops.py +183 -0
  160. logic_lab-0.4.0/src/logic_lab/genetic_algorithms/evolving_circles/__init__.py +0 -0
  161. logic_lab-0.4.0/src/logic_lab/genetic_algorithms/evolving_circles/evolving_circles.py +199 -0
  162. logic_lab-0.4.0/src/logic_lab/genetic_algorithms/ga_shakespeare/README.md +11 -0
  163. logic_lab-0.4.0/src/logic_lab/genetic_algorithms/ga_shakespeare/__init__.py +0 -0
  164. logic_lab-0.4.0/src/logic_lab/genetic_algorithms/ga_shakespeare/ga_shakespeare.py +120 -0
  165. logic_lab-0.4.0/src/logic_lab/genetic_algorithms/ga_shakespeare_annotated/README.md +33 -0
  166. logic_lab-0.4.0/src/logic_lab/genetic_algorithms/ga_shakespeare_annotated/ga_shakespeare_annotated.py +190 -0
  167. logic_lab-0.4.0/src/logic_lab/genetic_algorithms/interactive_selection/README.md +29 -0
  168. logic_lab-0.4.0/src/logic_lab/genetic_algorithms/interactive_selection/interactive_selection.py +245 -0
  169. logic_lab-0.4.0/src/logic_lab/genetic_algorithms/smart_rockets/README.md +12 -0
  170. logic_lab-0.4.0/src/logic_lab/genetic_algorithms/smart_rockets/__init__.py +0 -0
  171. logic_lab-0.4.0/src/logic_lab/genetic_algorithms/smart_rockets/smart_rockets.py +286 -0
  172. logic_lab-0.4.0/src/logic_lab/genetic_algorithms/smart_rockets_basic/README.md +12 -0
  173. logic_lab-0.4.0/src/logic_lab/genetic_algorithms/smart_rockets_basic/__init__.py +0 -0
  174. logic_lab-0.4.0/src/logic_lab/genetic_algorithms/smart_rockets_basic/smart_rockets_basic.py +204 -0
  175. logic_lab-0.4.0/src/logic_lab/mathematical/__init__.py +0 -0
  176. logic_lab-0.4.0/src/logic_lab/mathematical/apollonian_gasket/README.md +11 -0
  177. logic_lab-0.4.0/src/logic_lab/mathematical/apollonian_gasket/apollonian_gasket.py +50 -0
  178. logic_lab-0.4.0/src/logic_lab/mathematical/bark_growth_texture/README.md +14 -0
  179. logic_lab-0.4.0/src/logic_lab/mathematical/bark_growth_texture/bark_growth_texture.py +107 -0
  180. logic_lab-0.4.0/src/logic_lab/mathematical/barycentric_coordinates/README.md +38 -0
  181. logic_lab-0.4.0/src/logic_lab/mathematical/barycentric_coordinates/barycentric_coordinates.py +209 -0
  182. logic_lab-0.4.0/src/logic_lab/mathematical/blob_generator/README.md +11 -0
  183. logic_lab-0.4.0/src/logic_lab/mathematical/blob_generator/blob_generator.py +114 -0
  184. logic_lab-0.4.0/src/logic_lab/mathematical/chaikin_curve_smoothing/README.md +38 -0
  185. logic_lab-0.4.0/src/logic_lab/mathematical/chaikin_curve_smoothing/chaikin_curve_smoothing.py +185 -0
  186. logic_lab-0.4.0/src/logic_lab/mathematical/circle_packing/README.md +37 -0
  187. logic_lab-0.4.0/src/logic_lab/mathematical/circle_packing/circle_packing.py +212 -0
  188. logic_lab-0.4.0/src/logic_lab/mathematical/clifford_attractor/README.md +37 -0
  189. logic_lab-0.4.0/src/logic_lab/mathematical/clifford_attractor/clifford_attractor.py +148 -0
  190. logic_lab-0.4.0/src/logic_lab/mathematical/color_harmony/README.md +34 -0
  191. logic_lab-0.4.0/src/logic_lab/mathematical/color_harmony/color_harmony.py +80 -0
  192. logic_lab-0.4.0/src/logic_lab/mathematical/color_temperature_mixing/README.md +13 -0
  193. logic_lab-0.4.0/src/logic_lab/mathematical/color_temperature_mixing/__init__.py +1 -0
  194. logic_lab-0.4.0/src/logic_lab/mathematical/color_temperature_mixing/color_temperature_mixing.py +88 -0
  195. logic_lab-0.4.0/src/logic_lab/mathematical/complex_domain_coloring/README.md +38 -0
  196. logic_lab-0.4.0/src/logic_lab/mathematical/complex_domain_coloring/complex_domain_coloring.py +167 -0
  197. logic_lab-0.4.0/src/logic_lab/mathematical/conic_sections/README.md +11 -0
  198. logic_lab-0.4.0/src/logic_lab/mathematical/conic_sections/conic_sections.py +70 -0
  199. logic_lab-0.4.0/src/logic_lab/mathematical/continued_fraction_div_rect/README.md +9 -0
  200. logic_lab-0.4.0/src/logic_lab/mathematical/continued_fraction_div_rect/continued_fraction_div_rect.py +44 -0
  201. logic_lab-0.4.0/src/logic_lab/mathematical/continued_fraction_div_rect_zoom/README.md +9 -0
  202. logic_lab-0.4.0/src/logic_lab/mathematical/continued_fraction_div_rect_zoom/continued_fraction_div_rect_zoom.py +47 -0
  203. logic_lab-0.4.0/src/logic_lab/mathematical/continued_fraction_div_square/README.md +9 -0
  204. logic_lab-0.4.0/src/logic_lab/mathematical/continued_fraction_div_square/continued_fraction_div_square.py +50 -0
  205. logic_lab-0.4.0/src/logic_lab/mathematical/continued_fraction_gold_div_controls/README.md +15 -0
  206. logic_lab-0.4.0/src/logic_lab/mathematical/continued_fraction_gold_div_controls/continued_fraction_gold_div_controls.py +155 -0
  207. logic_lab-0.4.0/src/logic_lab/mathematical/continued_fraction_mondrian/README.md +9 -0
  208. logic_lab-0.4.0/src/logic_lab/mathematical/continued_fraction_mondrian/continued_fraction_mondrian.py +104 -0
  209. logic_lab-0.4.0/src/logic_lab/mathematical/continued_fraction_recur_div_square/README.md +9 -0
  210. logic_lab-0.4.0/src/logic_lab/mathematical/continued_fraction_recur_div_square/continued_fraction_recur_div_square.py +86 -0
  211. logic_lab-0.4.0/src/logic_lab/mathematical/convex_hull/README.md +37 -0
  212. logic_lab-0.4.0/src/logic_lab/mathematical/convex_hull/convex_hull.py +175 -0
  213. logic_lab-0.4.0/src/logic_lab/mathematical/cubic_bezier/README.md +9 -0
  214. logic_lab-0.4.0/src/logic_lab/mathematical/cubic_bezier/cubic_bezier.py +63 -0
  215. logic_lab-0.4.0/src/logic_lab/mathematical/de_casteljau_subdivision/README.md +36 -0
  216. logic_lab-0.4.0/src/logic_lab/mathematical/de_casteljau_subdivision/de_casteljau_subdivision.py +183 -0
  217. logic_lab-0.4.0/src/logic_lab/mathematical/delaunay_triangulation/README.md +38 -0
  218. logic_lab-0.4.0/src/logic_lab/mathematical/delaunay_triangulation/delaunay_triangulation.py +230 -0
  219. logic_lab-0.4.0/src/logic_lab/mathematical/diamond_square/README.md +37 -0
  220. logic_lab-0.4.0/src/logic_lab/mathematical/diamond_square/diamond_square.py +140 -0
  221. logic_lab-0.4.0/src/logic_lab/mathematical/differential_growth/README.md +11 -0
  222. logic_lab-0.4.0/src/logic_lab/mathematical/differential_growth/differential_growth.py +51 -0
  223. logic_lab-0.4.0/src/logic_lab/mathematical/easing_functions/README.md +42 -0
  224. logic_lab-0.4.0/src/logic_lab/mathematical/easing_functions/easing_functions.py +167 -0
  225. logic_lab-0.4.0/src/logic_lab/mathematical/envelope_art/README.md +11 -0
  226. logic_lab-0.4.0/src/logic_lab/mathematical/envelope_art/envelope_art.py +54 -0
  227. logic_lab-0.4.0/src/logic_lab/mathematical/euclid_div_rect/README.md +9 -0
  228. logic_lab-0.4.0/src/logic_lab/mathematical/euclid_div_rect/euclid_div_rect.py +50 -0
  229. logic_lab-0.4.0/src/logic_lab/mathematical/euclid_div_rect_color/README.md +9 -0
  230. logic_lab-0.4.0/src/logic_lab/mathematical/euclid_div_rect_color/euclid_div_rect_color.py +52 -0
  231. logic_lab-0.4.0/src/logic_lab/mathematical/euclid_div_square/README.md +9 -0
  232. logic_lab-0.4.0/src/logic_lab/mathematical/euclid_div_square/euclid_div_square.py +50 -0
  233. logic_lab-0.4.0/src/logic_lab/mathematical/euclid_div_square_recorder/README.md +9 -0
  234. logic_lab-0.4.0/src/logic_lab/mathematical/euclid_div_square_recorder/euclid_div_square_recorder.py +51 -0
  235. logic_lab-0.4.0/src/logic_lab/mathematical/euclid_numeric/README.md +7 -0
  236. logic_lab-0.4.0/src/logic_lab/mathematical/euclid_numeric/euclid_numeric.py +18 -0
  237. logic_lab-0.4.0/src/logic_lab/mathematical/euclid_rect_div_rect/README.md +9 -0
  238. logic_lab-0.4.0/src/logic_lab/mathematical/euclid_rect_div_rect/euclid_rect_div_rect.py +69 -0
  239. logic_lab-0.4.0/src/logic_lab/mathematical/euclid_recur_div_square/README.md +9 -0
  240. logic_lab-0.4.0/src/logic_lab/mathematical/euclid_recur_div_square/euclid_recur_div_square.py +86 -0
  241. logic_lab-0.4.0/src/logic_lab/mathematical/euclid_recur_div_square_controls/README.md +15 -0
  242. logic_lab-0.4.0/src/logic_lab/mathematical/euclid_recur_div_square_controls/euclid_recur_div_square_controls.py +129 -0
  243. logic_lab-0.4.0/src/logic_lab/mathematical/fermat_spiral/README.md +9 -0
  244. logic_lab-0.4.0/src/logic_lab/mathematical/fermat_spiral/fermat_spiral.py +40 -0
  245. logic_lab-0.4.0/src/logic_lab/mathematical/fermat_spiral_line/README.md +9 -0
  246. logic_lab-0.4.0/src/logic_lab/mathematical/fermat_spiral_line/fermat_spiral_line.py +72 -0
  247. logic_lab-0.4.0/src/logic_lab/mathematical/fermat_spiral_overlay/README.md +9 -0
  248. logic_lab-0.4.0/src/logic_lab/mathematical/fermat_spiral_overlay/fermat_spiral_overlay.py +47 -0
  249. logic_lab-0.4.0/src/logic_lab/mathematical/fibonacci_convergent/README.md +9 -0
  250. logic_lab-0.4.0/src/logic_lab/mathematical/fibonacci_convergent/fibonacci_convergent.py +43 -0
  251. logic_lab-0.4.0/src/logic_lab/mathematical/fibonacci_rect/README.md +9 -0
  252. logic_lab-0.4.0/src/logic_lab/mathematical/fibonacci_rect/fibonacci_rect.py +56 -0
  253. logic_lab-0.4.0/src/logic_lab/mathematical/fibonacci_recur_div/README.md +9 -0
  254. logic_lab-0.4.0/src/logic_lab/mathematical/fibonacci_recur_div/fibonacci_recur_div.py +79 -0
  255. logic_lab-0.4.0/src/logic_lab/mathematical/fibonacci_recur_div_controls/README.md +13 -0
  256. logic_lab-0.4.0/src/logic_lab/mathematical/fibonacci_recur_div_controls/fibonacci_recur_div_controls.py +98 -0
  257. logic_lab-0.4.0/src/logic_lab/mathematical/fibonacci_spiral/README.md +9 -0
  258. logic_lab-0.4.0/src/logic_lab/mathematical/fibonacci_spiral/fibonacci_spiral.py +66 -0
  259. logic_lab-0.4.0/src/logic_lab/mathematical/fibonacci_square/README.md +9 -0
  260. logic_lab-0.4.0/src/logic_lab/mathematical/fibonacci_square/fibonacci_square.py +49 -0
  261. logic_lab-0.4.0/src/logic_lab/mathematical/fibonacci_square_spiral/README.md +9 -0
  262. logic_lab-0.4.0/src/logic_lab/mathematical/fibonacci_square_spiral/fibonacci_square_spiral.py +56 -0
  263. logic_lab-0.4.0/src/logic_lab/mathematical/ford_circles/README.md +36 -0
  264. logic_lab-0.4.0/src/logic_lab/mathematical/ford_circles/ford_circles.py +146 -0
  265. logic_lab-0.4.0/src/logic_lab/mathematical/fourier_epicycles/README.md +38 -0
  266. logic_lab-0.4.0/src/logic_lab/mathematical/fourier_epicycles/fourier_epicycles.py +239 -0
  267. logic_lab-0.4.0/src/logic_lab/mathematical/fourier_wave_synthesis/README.md +15 -0
  268. logic_lab-0.4.0/src/logic_lab/mathematical/fourier_wave_synthesis/__init__.py +1 -0
  269. logic_lab-0.4.0/src/logic_lab/mathematical/fourier_wave_synthesis/fourier_wave_synthesis.py +91 -0
  270. logic_lab-0.4.0/src/logic_lab/mathematical/geometric_art/README.md +11 -0
  271. logic_lab-0.4.0/src/logic_lab/mathematical/geometric_art/geometric_art.py +111 -0
  272. logic_lab-0.4.0/src/logic_lab/mathematical/gold_fibo_spiral/README.md +9 -0
  273. logic_lab-0.4.0/src/logic_lab/mathematical/gold_fibo_spiral/gold_fibo_spiral.py +103 -0
  274. logic_lab-0.4.0/src/logic_lab/mathematical/grid_deformation/README.md +11 -0
  275. logic_lab-0.4.0/src/logic_lab/mathematical/grid_deformation/grid_deformation.py +85 -0
  276. logic_lab-0.4.0/src/logic_lab/mathematical/harmonograph/README.md +11 -0
  277. logic_lab-0.4.0/src/logic_lab/mathematical/harmonograph/harmonograph.py +39 -0
  278. logic_lab-0.4.0/src/logic_lab/mathematical/hatching_patterns/README.md +11 -0
  279. logic_lab-0.4.0/src/logic_lab/mathematical/hatching_patterns/hatching_patterns.py +79 -0
  280. logic_lab-0.4.0/src/logic_lab/mathematical/higher_bezier/README.md +9 -0
  281. logic_lab-0.4.0/src/logic_lab/mathematical/higher_bezier/higher_bezier.py +81 -0
  282. logic_lab-0.4.0/src/logic_lab/mathematical/hilbert_curve/README.md +36 -0
  283. logic_lab-0.4.0/src/logic_lab/mathematical/hilbert_curve/hilbert_curve.py +156 -0
  284. logic_lab-0.4.0/src/logic_lab/mathematical/isometric_grid/README.md +11 -0
  285. logic_lab-0.4.0/src/logic_lab/mathematical/isometric_grid/isometric_grid.py +50 -0
  286. logic_lab-0.4.0/src/logic_lab/mathematical/iterated_function_systems/README.md +11 -0
  287. logic_lab-0.4.0/src/logic_lab/mathematical/iterated_function_systems/iterated_function_systems.py +51 -0
  288. logic_lab-0.4.0/src/logic_lab/mathematical/light_interference/README.md +15 -0
  289. logic_lab-0.4.0/src/logic_lab/mathematical/light_interference/__init__.py +1 -0
  290. logic_lab-0.4.0/src/logic_lab/mathematical/light_interference/light_interference.py +92 -0
  291. logic_lab-0.4.0/src/logic_lab/mathematical/line_interference/README.md +11 -0
  292. logic_lab-0.4.0/src/logic_lab/mathematical/line_interference/line_interference.py +67 -0
  293. logic_lab-0.4.0/src/logic_lab/mathematical/lissajous_curves/README.md +38 -0
  294. logic_lab-0.4.0/src/logic_lab/mathematical/lissajous_curves/lissajous_curves.py +160 -0
  295. logic_lab-0.4.0/src/logic_lab/mathematical/lloyd_relaxation/README.md +38 -0
  296. logic_lab-0.4.0/src/logic_lab/mathematical/lloyd_relaxation/lloyd_relaxation.py +181 -0
  297. logic_lab-0.4.0/src/logic_lab/mathematical/log_spiral/README.md +9 -0
  298. logic_lab-0.4.0/src/logic_lab/mathematical/log_spiral/log_spiral.py +40 -0
  299. logic_lab-0.4.0/src/logic_lab/mathematical/log_spiral_zoom/README.md +9 -0
  300. logic_lab-0.4.0/src/logic_lab/mathematical/log_spiral_zoom/log_spiral_zoom.py +48 -0
  301. logic_lab-0.4.0/src/logic_lab/mathematical/logistic_bifurcation/README.md +36 -0
  302. logic_lab-0.4.0/src/logic_lab/mathematical/logistic_bifurcation/logistic_bifurcation.py +139 -0
  303. logic_lab-0.4.0/src/logic_lab/mathematical/lorenz_attractor/README.md +11 -0
  304. logic_lab-0.4.0/src/logic_lab/mathematical/lorenz_attractor/__init__.py +0 -0
  305. logic_lab-0.4.0/src/logic_lab/mathematical/lorenz_attractor/lorenz_attractor.py +118 -0
  306. logic_lab-0.4.0/src/logic_lab/mathematical/mandelbrot_julia/README.md +38 -0
  307. logic_lab-0.4.0/src/logic_lab/mathematical/mandelbrot_julia/mandelbrot_julia.py +162 -0
  308. logic_lab-0.4.0/src/logic_lab/mathematical/marching_squares/README.md +44 -0
  309. logic_lab-0.4.0/src/logic_lab/mathematical/marching_squares/marching_squares.py +241 -0
  310. logic_lab-0.4.0/src/logic_lab/mathematical/maurer_rose/README.md +42 -0
  311. logic_lab-0.4.0/src/logic_lab/mathematical/maurer_rose/maurer_rose.py +135 -0
  312. logic_lab-0.4.0/src/logic_lab/mathematical/metaball/README.md +38 -0
  313. logic_lab-0.4.0/src/logic_lab/mathematical/metaball/metaball.py +168 -0
  314. logic_lab-0.4.0/src/logic_lab/mathematical/mobius_transform_grid/README.md +37 -0
  315. logic_lab-0.4.0/src/logic_lab/mathematical/mobius_transform_grid/mobius_transform_grid.py +154 -0
  316. logic_lab-0.4.0/src/logic_lab/mathematical/modular_power/README.md +9 -0
  317. logic_lab-0.4.0/src/logic_lab/mathematical/modular_power/modular_power.py +39 -0
  318. logic_lab-0.4.0/src/logic_lab/mathematical/modular_power_visual/README.md +9 -0
  319. logic_lab-0.4.0/src/logic_lab/mathematical/modular_power_visual/modular_power_visual.py +39 -0
  320. logic_lab-0.4.0/src/logic_lab/mathematical/modular_table/README.md +9 -0
  321. logic_lab-0.4.0/src/logic_lab/mathematical/modular_table/modular_table.py +38 -0
  322. logic_lab-0.4.0/src/logic_lab/mathematical/modular_table_visual/README.md +9 -0
  323. logic_lab-0.4.0/src/logic_lab/mathematical/modular_table_visual/modular_table_visual.py +38 -0
  324. logic_lab-0.4.0/src/logic_lab/mathematical/newton_fractal/README.md +36 -0
  325. logic_lab-0.4.0/src/logic_lab/mathematical/newton_fractal/newton_fractal.py +177 -0
  326. logic_lab-0.4.0/src/logic_lab/mathematical/orbit_traps/README.md +11 -0
  327. logic_lab-0.4.0/src/logic_lab/mathematical/orbit_traps/orbit_traps.py +138 -0
  328. logic_lab-0.4.0/src/logic_lab/mathematical/pen_pressure_curve/README.md +11 -0
  329. logic_lab-0.4.0/src/logic_lab/mathematical/pen_pressure_curve/pen_pressure_curve.py +189 -0
  330. logic_lab-0.4.0/src/logic_lab/mathematical/petal_morphogenesis/README.md +14 -0
  331. logic_lab-0.4.0/src/logic_lab/mathematical/petal_morphogenesis/petal_morphogenesis.py +121 -0
  332. logic_lab-0.4.0/src/logic_lab/mathematical/phyllotaxis_flower/README.md +14 -0
  333. logic_lab-0.4.0/src/logic_lab/mathematical/phyllotaxis_flower/phyllotaxis_flower.py +86 -0
  334. logic_lab-0.4.0/src/logic_lab/mathematical/poisson_disk/README.md +35 -0
  335. logic_lab-0.4.0/src/logic_lab/mathematical/poisson_disk/poisson_disk.py +159 -0
  336. logic_lab-0.4.0/src/logic_lab/mathematical/polyhedra_wireframe/README.md +11 -0
  337. logic_lab-0.4.0/src/logic_lab/mathematical/polyhedra_wireframe/polyhedra_wireframe.py +146 -0
  338. logic_lab-0.4.0/src/logic_lab/mathematical/prime_spiral/README.md +11 -0
  339. logic_lab-0.4.0/src/logic_lab/mathematical/prime_spiral/prime_spiral.py +68 -0
  340. logic_lab-0.4.0/src/logic_lab/mathematical/quadratic_bezier/README.md +9 -0
  341. logic_lab-0.4.0/src/logic_lab/mathematical/quadratic_bezier/quadratic_bezier.py +66 -0
  342. logic_lab-0.4.0/src/logic_lab/mathematical/quasicrystal_interference/README.md +38 -0
  343. logic_lab-0.4.0/src/logic_lab/mathematical/quasicrystal_interference/quasicrystal_interference.py +132 -0
  344. logic_lab-0.4.0/src/logic_lab/mathematical/recaman_sequence/README.md +11 -0
  345. logic_lab-0.4.0/src/logic_lab/mathematical/recaman_sequence/recaman_sequence.py +49 -0
  346. logic_lab-0.4.0/src/logic_lab/mathematical/recur_polygon/README.md +9 -0
  347. logic_lab-0.4.0/src/logic_lab/mathematical/recur_polygon/recur_polygon.py +66 -0
  348. logic_lab-0.4.0/src/logic_lab/mathematical/recur_square/README.md +9 -0
  349. logic_lab-0.4.0/src/logic_lab/mathematical/recur_square/recur_square.py +63 -0
  350. logic_lab-0.4.0/src/logic_lab/mathematical/recur_square_spiral/README.md +9 -0
  351. logic_lab-0.4.0/src/logic_lab/mathematical/recur_square_spiral/recur_square_spiral.py +103 -0
  352. logic_lab-0.4.0/src/logic_lab/mathematical/reflection_billiards/README.md +15 -0
  353. logic_lab-0.4.0/src/logic_lab/mathematical/reflection_billiards/__init__.py +1 -0
  354. logic_lab-0.4.0/src/logic_lab/mathematical/reflection_billiards/reflection_billiards.py +166 -0
  355. logic_lab-0.4.0/src/logic_lab/mathematical/rose_curves/__init__.py +0 -0
  356. logic_lab-0.4.0/src/logic_lab/mathematical/rose_curves/rose_curves.py +229 -0
  357. logic_lab-0.4.0/src/logic_lab/mathematical/rossler_attractor/README.md +11 -0
  358. logic_lab-0.4.0/src/logic_lab/mathematical/rossler_attractor/__init__.py +0 -0
  359. logic_lab-0.4.0/src/logic_lab/mathematical/rossler_attractor/rossler_attractor.py +119 -0
  360. logic_lab-0.4.0/src/logic_lab/mathematical/shape_morphing/README.md +11 -0
  361. logic_lab-0.4.0/src/logic_lab/mathematical/shape_morphing/shape_morphing.py +83 -0
  362. logic_lab-0.4.0/src/logic_lab/mathematical/signed_distance_field/README.md +36 -0
  363. logic_lab-0.4.0/src/logic_lab/mathematical/signed_distance_field/signed_distance_field.py +202 -0
  364. logic_lab-0.4.0/src/logic_lab/mathematical/spirograph/__init__.py +0 -0
  365. logic_lab-0.4.0/src/logic_lab/mathematical/spirograph/spirograph.py +230 -0
  366. logic_lab-0.4.0/src/logic_lab/mathematical/spirograph_curves/README.md +36 -0
  367. logic_lab-0.4.0/src/logic_lab/mathematical/spirograph_curves/spirograph_curves.py +184 -0
  368. logic_lab-0.4.0/src/logic_lab/mathematical/spirolateral/README.md +11 -0
  369. logic_lab-0.4.0/src/logic_lab/mathematical/spirolateral/spirolateral.py +55 -0
  370. logic_lab-0.4.0/src/logic_lab/mathematical/strange_attractors/README.md +11 -0
  371. logic_lab-0.4.0/src/logic_lab/mathematical/strange_attractors/__init__.py +0 -0
  372. logic_lab-0.4.0/src/logic_lab/mathematical/strange_attractors/strange_attractors.py +233 -0
  373. logic_lab-0.4.0/src/logic_lab/mathematical/string_art/README.md +11 -0
  374. logic_lab-0.4.0/src/logic_lab/mathematical/string_art/string_art.py +66 -0
  375. logic_lab-0.4.0/src/logic_lab/mathematical/superellipse/README.md +11 -0
  376. logic_lab-0.4.0/src/logic_lab/mathematical/superellipse/superellipse.py +42 -0
  377. logic_lab-0.4.0/src/logic_lab/mathematical/superformula/README.md +36 -0
  378. logic_lab-0.4.0/src/logic_lab/mathematical/superformula/superformula.py +139 -0
  379. logic_lab-0.4.0/src/logic_lab/mathematical/tangent_art/README.md +11 -0
  380. logic_lab-0.4.0/src/logic_lab/mathematical/tangent_art/tangent_art.py +76 -0
  381. logic_lab-0.4.0/src/logic_lab/mathematical/thomas_attractor/README.md +11 -0
  382. logic_lab-0.4.0/src/logic_lab/mathematical/thomas_attractor/__init__.py +0 -0
  383. logic_lab-0.4.0/src/logic_lab/mathematical/thomas_attractor/thomas_attractor.py +120 -0
  384. logic_lab-0.4.0/src/logic_lab/mathematical/tree_ring_growth/README.md +15 -0
  385. logic_lab-0.4.0/src/logic_lab/mathematical/tree_ring_growth/tree_ring_growth.py +118 -0
  386. logic_lab-0.4.0/src/logic_lab/mathematical/typography_particles/README.md +11 -0
  387. logic_lab-0.4.0/src/logic_lab/mathematical/typography_particles/typography_particles.py +65 -0
  388. logic_lab-0.4.0/src/logic_lab/mathematical/ulam_spiral/README.md +35 -0
  389. logic_lab-0.4.0/src/logic_lab/mathematical/ulam_spiral/ulam_spiral.py +176 -0
  390. logic_lab-0.4.0/src/logic_lab/mathematical/voronoi/README.md +34 -0
  391. logic_lab-0.4.0/src/logic_lab/mathematical/voronoi/voronoi.py +184 -0
  392. logic_lab-0.4.0/src/logic_lab/mathematical/weighted_voronoi_stippling/README.md +11 -0
  393. logic_lab-0.4.0/src/logic_lab/mathematical/weighted_voronoi_stippling/weighted_voronoi_stippling.py +121 -0
  394. logic_lab-0.4.0/src/logic_lab/mathematical/worley_noise/README.md +35 -0
  395. logic_lab-0.4.0/src/logic_lab/mathematical/worley_noise/worley_noise.py +145 -0
  396. logic_lab-0.4.0/src/logic_lab/mcp/README.md +239 -0
  397. logic_lab-0.4.0/src/logic_lab/mcp/_data.py +277 -0
  398. logic_lab-0.4.0/src/logic_lab/mcp/data/art_manifest.json +7028 -0
  399. logic_lab-0.4.0/src/logic_lab/mcp/logic_lab_server.py +668 -0
  400. logic_lab-0.4.0/src/logic_lab/network_dynamics/__init__.py +0 -0
  401. logic_lab-0.4.0/src/logic_lab/network_dynamics/kuramoto_oscillators/__init__.py +0 -0
  402. logic_lab-0.4.0/src/logic_lab/network_dynamics/kuramoto_oscillators/kuramoto_oscillators.py +330 -0
  403. logic_lab-0.4.0/src/logic_lab/network_dynamics/scale_free_network/__init__.py +0 -0
  404. logic_lab-0.4.0/src/logic_lab/network_dynamics/scale_free_network/scale_free_network.py +215 -0
  405. logic_lab-0.4.0/src/logic_lab/network_dynamics/sir_epidemic/__init__.py +0 -0
  406. logic_lab-0.4.0/src/logic_lab/network_dynamics/sir_epidemic/sir_epidemic.py +228 -0
  407. logic_lab-0.4.0/src/logic_lab/network_dynamics/small_world_network/__init__.py +0 -0
  408. logic_lab-0.4.0/src/logic_lab/network_dynamics/small_world_network/small_world_network.py +184 -0
  409. logic_lab-0.4.0/src/logic_lab/neuro_evolution/flappy_bird/README.md +45 -0
  410. logic_lab-0.4.0/src/logic_lab/neuro_evolution/flappy_bird/flappy_bird.py +117 -0
  411. logic_lab-0.4.0/src/logic_lab/neuro_evolution/flappy_bird_neuro_evolution/README.md +53 -0
  412. logic_lab-0.4.0/src/logic_lab/neuro_evolution/flappy_bird_neuro_evolution/flappy_bird_neuro_evolution.py +294 -0
  413. logic_lab-0.4.0/src/logic_lab/neuro_evolution/smart_rockets_neuro_evolution/README.md +68 -0
  414. logic_lab-0.4.0/src/logic_lab/neuro_evolution/smart_rockets_neuro_evolution/smart_rockets_neuro_evolution.py +327 -0
  415. logic_lab-0.4.0/src/logic_lab/optical/__init__.py +0 -0
  416. logic_lab-0.4.0/src/logic_lab/optical/caustics/__init__.py +0 -0
  417. logic_lab-0.4.0/src/logic_lab/optical/caustics/caustics.py +219 -0
  418. logic_lab-0.4.0/src/logic_lab/optical/diffraction_pattern/__init__.py +0 -0
  419. logic_lab-0.4.0/src/logic_lab/optical/diffraction_pattern/diffraction_pattern.py +189 -0
  420. logic_lab-0.4.0/src/logic_lab/optical/thin_film/__init__.py +0 -0
  421. logic_lab-0.4.0/src/logic_lab/optical/thin_film/thin_film.py +246 -0
  422. logic_lab-0.4.0/src/logic_lab/oscillators/__init__.py +0 -0
  423. logic_lab-0.4.0/src/logic_lab/oscillators/chladni_figures/README.md +11 -0
  424. logic_lab-0.4.0/src/logic_lab/oscillators/chladni_figures/__init__.py +0 -0
  425. logic_lab-0.4.0/src/logic_lab/oscillators/chladni_figures/chladni_figures.py +222 -0
  426. logic_lab-0.4.0/src/logic_lab/oscillators/coupled_oscillators/README.md +11 -0
  427. logic_lab-0.4.0/src/logic_lab/oscillators/coupled_oscillators/__init__.py +0 -0
  428. logic_lab-0.4.0/src/logic_lab/oscillators/coupled_oscillators/coupled_oscillators.py +177 -0
  429. logic_lab-0.4.0/src/logic_lab/oscillators/harmonic_pantograph/README.md +11 -0
  430. logic_lab-0.4.0/src/logic_lab/oscillators/harmonic_pantograph/__init__.py +0 -0
  431. logic_lab-0.4.0/src/logic_lab/oscillators/harmonic_pantograph/harmonic_pantograph.py +161 -0
  432. logic_lab-0.4.0/src/logic_lab/oscillators/lissajous_curves/README.md +11 -0
  433. logic_lab-0.4.0/src/logic_lab/oscillators/lissajous_curves/__init__.py +0 -0
  434. logic_lab-0.4.0/src/logic_lab/oscillators/lissajous_curves/lissajous_curves.py +147 -0
  435. logic_lab-0.4.0/src/logic_lab/oscillators/van_der_pol/__init__.py +0 -0
  436. logic_lab-0.4.0/src/logic_lab/oscillators/van_der_pol/van_der_pol.py +280 -0
  437. logic_lab-0.4.0/src/logic_lab/physics/accelerate_and_decelerate/README.md +9 -0
  438. logic_lab-0.4.0/src/logic_lab/physics/accelerate_and_decelerate/__init__.py +0 -0
  439. logic_lab-0.4.0/src/logic_lab/physics/accelerate_and_decelerate/accelerate_and_decelerate.py +100 -0
  440. logic_lab-0.4.0/src/logic_lab/physics/accelerating_towards_the_mouse/README.md +7 -0
  441. logic_lab-0.4.0/src/logic_lab/physics/accelerating_towards_the_mouse/__init__.py +0 -0
  442. logic_lab-0.4.0/src/logic_lab/physics/accelerating_towards_the_mouse/accelerating_towards_the_mouse.py +61 -0
  443. logic_lab-0.4.0/src/logic_lab/physics/accept_reject_distribution/README.md +7 -0
  444. logic_lab-0.4.0/src/logic_lab/physics/accept_reject_distribution/__init__.py +1 -0
  445. logic_lab-0.4.0/src/logic_lab/physics/accept_reject_distribution/accept_reject_distribution.py +48 -0
  446. logic_lab-0.4.0/src/logic_lab/physics/additive_wave/README.md +8 -0
  447. logic_lab-0.4.0/src/logic_lab/physics/additive_wave/__init__.py +1 -0
  448. logic_lab-0.4.0/src/logic_lab/physics/additive_wave/additive_wave.py +70 -0
  449. logic_lab-0.4.0/src/logic_lab/physics/angle_between/README.md +8 -0
  450. logic_lab-0.4.0/src/logic_lab/physics/angle_between/__init__.py +0 -0
  451. logic_lab-0.4.0/src/logic_lab/physics/angle_between/angle_between.py +60 -0
  452. logic_lab-0.4.0/src/logic_lab/physics/angular_motion_using_rotate/README.md +8 -0
  453. logic_lab-0.4.0/src/logic_lab/physics/angular_motion_using_rotate/__init__.py +1 -0
  454. logic_lab-0.4.0/src/logic_lab/physics/angular_motion_using_rotate/angular_motion_using_rotate.py +41 -0
  455. logic_lab-0.4.0/src/logic_lab/physics/array_particles/README.md +8 -0
  456. logic_lab-0.4.0/src/logic_lab/physics/array_particles/__init__.py +1 -0
  457. logic_lab-0.4.0/src/logic_lab/physics/array_particles/array_particles.py +64 -0
  458. logic_lab-0.4.0/src/logic_lab/physics/asteroids_particle_system/README.md +8 -0
  459. logic_lab-0.4.0/src/logic_lab/physics/asteroids_particle_system/__init__.py +1 -0
  460. logic_lab-0.4.0/src/logic_lab/physics/asteroids_particle_system/asteroids_particle_system.py +174 -0
  461. logic_lab-0.4.0/src/logic_lab/physics/attraction/README.md +8 -0
  462. logic_lab-0.4.0/src/logic_lab/physics/attraction/__init__.py +0 -0
  463. logic_lab-0.4.0/src/logic_lab/physics/attraction/attraction.py +121 -0
  464. logic_lab-0.4.0/src/logic_lab/physics/attraction_magnitude/README.md +7 -0
  465. logic_lab-0.4.0/src/logic_lab/physics/attraction_magnitude/__init__.py +0 -0
  466. logic_lab-0.4.0/src/logic_lab/physics/attraction_magnitude/attraction_magnitude.py +57 -0
  467. logic_lab-0.4.0/src/logic_lab/physics/attraction_with_many_movers/README.md +8 -0
  468. logic_lab-0.4.0/src/logic_lab/physics/attraction_with_many_movers/__init__.py +0 -0
  469. logic_lab-0.4.0/src/logic_lab/physics/attraction_with_many_movers/attraction_with_many_movers.py +123 -0
  470. logic_lab-0.4.0/src/logic_lab/physics/bouncing_ball_3d/README.md +8 -0
  471. logic_lab-0.4.0/src/logic_lab/physics/bouncing_ball_3d/__init__.py +0 -0
  472. logic_lab-0.4.0/src/logic_lab/physics/bouncing_ball_3d/bouncing_ball_3d.py +80 -0
  473. logic_lab-0.4.0/src/logic_lab/physics/bouncing_ball_no_vectors/README.md +7 -0
  474. logic_lab-0.4.0/src/logic_lab/physics/bouncing_ball_no_vectors/__init__.py +0 -0
  475. logic_lab-0.4.0/src/logic_lab/physics/bouncing_ball_no_vectors/bouncing_ball_no_vectors.py +43 -0
  476. logic_lab-0.4.0/src/logic_lab/physics/bouncing_ball_with_vectors/README.md +7 -0
  477. logic_lab-0.4.0/src/logic_lab/physics/bouncing_ball_with_vectors/__init__.py +0 -0
  478. logic_lab-0.4.0/src/logic_lab/physics/bouncing_ball_with_vectors/bouncing_ball_with_vectors.py +41 -0
  479. logic_lab-0.4.0/src/logic_lab/physics/box_collision/README.md +11 -0
  480. logic_lab-0.4.0/src/logic_lab/physics/box_collision/__init__.py +1 -0
  481. logic_lab-0.4.0/src/logic_lab/physics/box_collision/box_collision.py +56 -0
  482. logic_lab-0.4.0/src/logic_lab/physics/buoyancy_balloon/README.md +8 -0
  483. logic_lab-0.4.0/src/logic_lab/physics/buoyancy_balloon/__init__.py +0 -0
  484. logic_lab-0.4.0/src/logic_lab/physics/buoyancy_balloon/buoyancy_balloon.py +98 -0
  485. logic_lab-0.4.0/src/logic_lab/physics/caustic_light_field/README.md +14 -0
  486. logic_lab-0.4.0/src/logic_lab/physics/caustic_light_field/__init__.py +1 -0
  487. logic_lab-0.4.0/src/logic_lab/physics/caustic_light_field/caustic_light_field.py +114 -0
  488. logic_lab-0.4.0/src/logic_lab/physics/chladni_plate/README.md +15 -0
  489. logic_lab-0.4.0/src/logic_lab/physics/chladni_plate/__init__.py +1 -0
  490. logic_lab-0.4.0/src/logic_lab/physics/chladni_plate/chladni_plate.py +94 -0
  491. logic_lab-0.4.0/src/logic_lab/physics/collision_events/README.md +11 -0
  492. logic_lab-0.4.0/src/logic_lab/physics/collision_events/__init__.py +1 -0
  493. logic_lab-0.4.0/src/logic_lab/physics/collision_events/collision_events.py +86 -0
  494. logic_lab-0.4.0/src/logic_lab/physics/contact_solver/README.md +11 -0
  495. logic_lab-0.4.0/src/logic_lab/physics/contact_solver/__init__.py +1 -0
  496. logic_lab-0.4.0/src/logic_lab/physics/contact_solver/contact_solver.py +89 -0
  497. logic_lab-0.4.0/src/logic_lab/physics/double_pendulum/README.md +11 -0
  498. logic_lab-0.4.0/src/logic_lab/physics/double_pendulum/__init__.py +1 -0
  499. logic_lab-0.4.0/src/logic_lab/physics/double_pendulum/double_pendulum.py +84 -0
  500. logic_lab-0.4.0/src/logic_lab/physics/dye_plume_field/README.md +17 -0
  501. logic_lab-0.4.0/src/logic_lab/physics/dye_plume_field/__init__.py +1 -0
  502. logic_lab-0.4.0/src/logic_lab/physics/dye_plume_field/dye_plume_field.py +187 -0
  503. logic_lab-0.4.0/src/logic_lab/physics/emitters_1/README.md +9 -0
  504. logic_lab-0.4.0/src/logic_lab/physics/emitters_1/__init__.py +1 -0
  505. logic_lab-0.4.0/src/logic_lab/physics/emitters_1/emitters_1.py +82 -0
  506. logic_lab-0.4.0/src/logic_lab/physics/emitters_2/README.md +9 -0
  507. logic_lab-0.4.0/src/logic_lab/physics/emitters_2/__init__.py +1 -0
  508. logic_lab-0.4.0/src/logic_lab/physics/emitters_2/emitters_2.py +85 -0
  509. logic_lab-0.4.0/src/logic_lab/physics/excitable_wavefronts/README.md +14 -0
  510. logic_lab-0.4.0/src/logic_lab/physics/excitable_wavefronts/__init__.py +1 -0
  511. logic_lab-0.4.0/src/logic_lab/physics/excitable_wavefronts/excitable_wavefronts.py +103 -0
  512. logic_lab-0.4.0/src/logic_lab/physics/flow_field_art/README.md +11 -0
  513. logic_lab-0.4.0/src/logic_lab/physics/flow_field_art/flow_field_art.py +70 -0
  514. logic_lab-0.4.0/src/logic_lab/physics/fluid_particles/README.md +12 -0
  515. logic_lab-0.4.0/src/logic_lab/physics/fluid_particles/__init__.py +1 -0
  516. logic_lab-0.4.0/src/logic_lab/physics/fluid_particles/fluid_particles.py +70 -0
  517. logic_lab-0.4.0/src/logic_lab/physics/fluid_resistance/README.md +8 -0
  518. logic_lab-0.4.0/src/logic_lab/physics/fluid_resistance/__init__.py +0 -0
  519. logic_lab-0.4.0/src/logic_lab/physics/fluid_resistance/fluid_resistance.py +102 -0
  520. logic_lab-0.4.0/src/logic_lab/physics/forces/README.md +10 -0
  521. logic_lab-0.4.0/src/logic_lab/physics/forces/__init__.py +0 -0
  522. logic_lab-0.4.0/src/logic_lab/physics/forces/forces.py +71 -0
  523. logic_lab-0.4.0/src/logic_lab/physics/forces_two_objects/README.md +10 -0
  524. logic_lab-0.4.0/src/logic_lab/physics/forces_two_objects/__init__.py +0 -0
  525. logic_lab-0.4.0/src/logic_lab/physics/forces_two_objects/forces_two_objects.py +79 -0
  526. logic_lab-0.4.0/src/logic_lab/physics/forces_with_arbitrary_angular_motion/README.md +8 -0
  527. logic_lab-0.4.0/src/logic_lab/physics/forces_with_arbitrary_angular_motion/__init__.py +1 -0
  528. logic_lab-0.4.0/src/logic_lab/physics/forces_with_arbitrary_angular_motion/forces_with_arbitrary_angular_motion.py +93 -0
  529. logic_lab-0.4.0/src/logic_lab/physics/fracture_dynamics/README.md +11 -0
  530. logic_lab-0.4.0/src/logic_lab/physics/fracture_dynamics/__init__.py +1 -0
  531. logic_lab-0.4.0/src/logic_lab/physics/fracture_dynamics/fracture_dynamics.py +72 -0
  532. logic_lab-0.4.0/src/logic_lab/physics/gaussian_distribution/README.md +7 -0
  533. logic_lab-0.4.0/src/logic_lab/physics/gaussian_distribution/__init__.py +1 -0
  534. logic_lab-0.4.0/src/logic_lab/physics/gaussian_distribution/gaussian_distribution.py +27 -0
  535. logic_lab-0.4.0/src/logic_lab/physics/gaussian_random_walker/README.md +7 -0
  536. logic_lab-0.4.0/src/logic_lab/physics/gaussian_random_walker/__init__.py +0 -0
  537. logic_lab-0.4.0/src/logic_lab/physics/gaussian_random_walker/gaussian_random_walker.py +45 -0
  538. logic_lab-0.4.0/src/logic_lab/physics/gravity_scaled_by_mass/README.md +8 -0
  539. logic_lab-0.4.0/src/logic_lab/physics/gravity_scaled_by_mass/__init__.py +0 -0
  540. logic_lab-0.4.0/src/logic_lab/physics/gravity_scaled_by_mass/gravity_scaled_by_mass.py +84 -0
  541. logic_lab-0.4.0/src/logic_lab/physics/including_friction/README.md +8 -0
  542. logic_lab-0.4.0/src/logic_lab/physics/including_friction/__init__.py +0 -0
  543. logic_lab-0.4.0/src/logic_lab/physics/including_friction/including_friction.py +81 -0
  544. logic_lab-0.4.0/src/logic_lab/physics/ink_smoke_advection/README.md +18 -0
  545. logic_lab-0.4.0/src/logic_lab/physics/ink_smoke_advection/__init__.py +1 -0
  546. logic_lab-0.4.0/src/logic_lab/physics/ink_smoke_advection/ink_smoke_advection.py +204 -0
  547. logic_lab-0.4.0/src/logic_lab/physics/joints_and_constraints/README.md +12 -0
  548. logic_lab-0.4.0/src/logic_lab/physics/joints_and_constraints/__init__.py +1 -0
  549. logic_lab-0.4.0/src/logic_lab/physics/joints_and_constraints/joints_and_constraints.py +52 -0
  550. logic_lab-0.4.0/src/logic_lab/physics/lenia/README.md +11 -0
  551. logic_lab-0.4.0/src/logic_lab/physics/lenia/lenia.py +77 -0
  552. logic_lab-0.4.0/src/logic_lab/physics/light_falloff_field/README.md +15 -0
  553. logic_lab-0.4.0/src/logic_lab/physics/light_falloff_field/__init__.py +1 -0
  554. logic_lab-0.4.0/src/logic_lab/physics/light_falloff_field/light_falloff_field.py +109 -0
  555. logic_lab-0.4.0/src/logic_lab/physics/light_ray_casting/README.md +16 -0
  556. logic_lab-0.4.0/src/logic_lab/physics/light_ray_casting/__init__.py +1 -0
  557. logic_lab-0.4.0/src/logic_lab/physics/light_ray_casting/light_ray_casting.py +152 -0
  558. logic_lab-0.4.0/src/logic_lab/physics/magnetic_pendulum/README.md +11 -0
  559. logic_lab-0.4.0/src/logic_lab/physics/magnetic_pendulum/magnetic_pendulum.py +67 -0
  560. logic_lab-0.4.0/src/logic_lab/physics/mass_spring_cloth/README.md +12 -0
  561. logic_lab-0.4.0/src/logic_lab/physics/mass_spring_cloth/__init__.py +1 -0
  562. logic_lab-0.4.0/src/logic_lab/physics/mass_spring_cloth/mass_spring_cloth.py +55 -0
  563. logic_lab-0.4.0/src/logic_lab/physics/motion_101_velocity/README.md +7 -0
  564. logic_lab-0.4.0/src/logic_lab/physics/motion_101_velocity/__init__.py +0 -0
  565. logic_lab-0.4.0/src/logic_lab/physics/motion_101_velocity/motion_101_velocity.py +57 -0
  566. logic_lab-0.4.0/src/logic_lab/physics/motion_101_velocity_and_constant_acceleration/README.md +7 -0
  567. logic_lab-0.4.0/src/logic_lab/physics/motion_101_velocity_and_constant_acceleration/__init__.py +0 -0
  568. logic_lab-0.4.0/src/logic_lab/physics/motion_101_velocity_and_constant_acceleration/motion_101_velocity_and_constant_acceleration.py +63 -0
  569. logic_lab-0.4.0/src/logic_lab/physics/motion_101_velocity_and_random_acceleration/README.md +7 -0
  570. logic_lab-0.4.0/src/logic_lab/physics/motion_101_velocity_and_random_acceleration/__init__.py +0 -0
  571. logic_lab-0.4.0/src/logic_lab/physics/motion_101_velocity_and_random_acceleration/motion_101_velocity_and_random_acceleration.py +66 -0
  572. logic_lab-0.4.0/src/logic_lab/physics/multiple_emitters/README.md +9 -0
  573. logic_lab-0.4.0/src/logic_lab/physics/multiple_emitters/__init__.py +1 -0
  574. logic_lab-0.4.0/src/logic_lab/physics/multiple_emitters/multiple_emitters.py +81 -0
  575. logic_lab-0.4.0/src/logic_lab/physics/multiple_emitters_0/README.md +9 -0
  576. logic_lab-0.4.0/src/logic_lab/physics/multiple_emitters_0/__init__.py +1 -0
  577. logic_lab-0.4.0/src/logic_lab/physics/multiple_emitters_0/multiple_emitters_0.py +81 -0
  578. logic_lab-0.4.0/src/logic_lab/physics/n_bodies/README.md +7 -0
  579. logic_lab-0.4.0/src/logic_lab/physics/n_bodies/__init__.py +0 -0
  580. logic_lab-0.4.0/src/logic_lab/physics/n_bodies/n_bodies.py +68 -0
  581. logic_lab-0.4.0/src/logic_lab/physics/n_body_orbital_simulation/README.md +8 -0
  582. logic_lab-0.4.0/src/logic_lab/physics/n_body_orbital_simulation/__init__.py +0 -0
  583. logic_lab-0.4.0/src/logic_lab/physics/n_body_orbital_simulation/n_body_orbital_simulation.py +76 -0
  584. logic_lab-0.4.0/src/logic_lab/physics/noise_2d_animated/README.md +8 -0
  585. logic_lab-0.4.0/src/logic_lab/physics/noise_2d_animated/__init__.py +0 -0
  586. logic_lab-0.4.0/src/logic_lab/physics/noise_2d_animated/noise_2d_animated.py +62 -0
  587. logic_lab-0.4.0/src/logic_lab/physics/noise_2d_parameterized/README.md +8 -0
  588. logic_lab-0.4.0/src/logic_lab/physics/noise_2d_parameterized/__init__.py +0 -0
  589. logic_lab-0.4.0/src/logic_lab/physics/noise_2d_parameterized/noise_2d_parameterized.py +57 -0
  590. logic_lab-0.4.0/src/logic_lab/physics/noise_terrain/README.md +7 -0
  591. logic_lab-0.4.0/src/logic_lab/physics/noise_terrain/__init__.py +0 -0
  592. logic_lab-0.4.0/src/logic_lab/physics/noise_terrain/noise_terrain.py +72 -0
  593. logic_lab-0.4.0/src/logic_lab/physics/oop_wave/README.md +8 -0
  594. logic_lab-0.4.0/src/logic_lab/physics/oop_wave/__init__.py +1 -0
  595. logic_lab-0.4.0/src/logic_lab/physics/oop_wave/oop_wave.py +65 -0
  596. logic_lab-0.4.0/src/logic_lab/physics/oscillator_objects/README.md +8 -0
  597. logic_lab-0.4.0/src/logic_lab/physics/oscillator_objects/__init__.py +1 -0
  598. logic_lab-0.4.0/src/logic_lab/physics/oscillator_objects/oscillator_objects.py +57 -0
  599. logic_lab-0.4.0/src/logic_lab/physics/paint_splatter/README.md +21 -0
  600. logic_lab-0.4.0/src/logic_lab/physics/paint_splatter/__init__.py +0 -0
  601. logic_lab-0.4.0/src/logic_lab/physics/paint_splatter/paint_splatter.py +134 -0
  602. logic_lab-0.4.0/src/logic_lab/physics/particle_emitter/README.md +8 -0
  603. logic_lab-0.4.0/src/logic_lab/physics/particle_emitter/__init__.py +1 -0
  604. logic_lab-0.4.0/src/logic_lab/physics/particle_emitter/particle_emitter.py +77 -0
  605. logic_lab-0.4.0/src/logic_lab/physics/particle_flow/README.md +47 -0
  606. logic_lab-0.4.0/src/logic_lab/physics/particle_flow/particle_flow.py +157 -0
  607. logic_lab-0.4.0/src/logic_lab/physics/particle_force_fields/README.md +12 -0
  608. logic_lab-0.4.0/src/logic_lab/physics/particle_force_fields/__init__.py +1 -0
  609. logic_lab-0.4.0/src/logic_lab/physics/particle_force_fields/particle_force_fields.py +54 -0
  610. logic_lab-0.4.0/src/logic_lab/physics/particle_shatter/README.md +8 -0
  611. logic_lab-0.4.0/src/logic_lab/physics/particle_shatter/__init__.py +1 -0
  612. logic_lab-0.4.0/src/logic_lab/physics/particle_shatter/particle_shatter.py +91 -0
  613. logic_lab-0.4.0/src/logic_lab/physics/particle_system_forces/README.md +9 -0
  614. logic_lab-0.4.0/src/logic_lab/physics/particle_system_forces/__init__.py +1 -0
  615. logic_lab-0.4.0/src/logic_lab/physics/particle_system_forces/particle_system_forces.py +84 -0
  616. logic_lab-0.4.0/src/logic_lab/physics/particle_system_inheritance_polymorphism/README.md +9 -0
  617. logic_lab-0.4.0/src/logic_lab/physics/particle_system_inheritance_polymorphism/__init__.py +1 -0
  618. logic_lab-0.4.0/src/logic_lab/physics/particle_system_inheritance_polymorphism/particle_system_inheritance_polymorphism.py +94 -0
  619. logic_lab-0.4.0/src/logic_lab/physics/particle_system_smoke_webgl/README.md +9 -0
  620. logic_lab-0.4.0/src/logic_lab/physics/particle_system_smoke_webgl/__init__.py +1 -0
  621. logic_lab-0.4.0/src/logic_lab/physics/particle_system_smoke_webgl/particle_system_smoke_webgl.py +123 -0
  622. logic_lab-0.4.0/src/logic_lab/physics/particle_system_with_repeller/README.md +8 -0
  623. logic_lab-0.4.0/src/logic_lab/physics/particle_system_with_repeller/__init__.py +1 -0
  624. logic_lab-0.4.0/src/logic_lab/physics/particle_system_with_repeller/particle_system_with_repeller.py +112 -0
  625. logic_lab-0.4.0/src/logic_lab/physics/particle_textures_array/README.md +9 -0
  626. logic_lab-0.4.0/src/logic_lab/physics/particle_textures_array/__init__.py +0 -0
  627. logic_lab-0.4.0/src/logic_lab/physics/particle_textures_array/particle_textures_array.py +115 -0
  628. logic_lab-0.4.0/src/logic_lab/physics/perlin_noise_walker/README.md +8 -0
  629. logic_lab-0.4.0/src/logic_lab/physics/perlin_noise_walker/__init__.py +0 -0
  630. logic_lab-0.4.0/src/logic_lab/physics/perlin_noise_walker/perlin_noise_walker.py +48 -0
  631. logic_lab-0.4.0/src/logic_lab/physics/perlin_noise_walker_lines/README.md +7 -0
  632. logic_lab-0.4.0/src/logic_lab/physics/perlin_noise_walker_lines/__init__.py +0 -0
  633. logic_lab-0.4.0/src/logic_lab/physics/perlin_noise_walker_lines/perlin_noise_walker_lines.py +51 -0
  634. logic_lab-0.4.0/src/logic_lab/physics/pointing_in_the_direction_of_motion/README.md +8 -0
  635. logic_lab-0.4.0/src/logic_lab/physics/pointing_in_the_direction_of_motion/__init__.py +1 -0
  636. logic_lab-0.4.0/src/logic_lab/physics/pointing_in_the_direction_of_motion/pointing_in_the_direction_of_motion.py +78 -0
  637. logic_lab-0.4.0/src/logic_lab/physics/polar_to_cartesian/README.md +8 -0
  638. logic_lab-0.4.0/src/logic_lab/physics/polar_to_cartesian/__init__.py +1 -0
  639. logic_lab-0.4.0/src/logic_lab/physics/polar_to_cartesian/polar_to_cartesian.py +41 -0
  640. logic_lab-0.4.0/src/logic_lab/physics/pollen_dispersal/README.md +15 -0
  641. logic_lab-0.4.0/src/logic_lab/physics/pollen_dispersal/pollen_dispersal.py +167 -0
  642. logic_lab-0.4.0/src/logic_lab/physics/quadratic_random_walker/README.md +7 -0
  643. logic_lab-0.4.0/src/logic_lab/physics/quadratic_random_walker/__init__.py +0 -0
  644. logic_lab-0.4.0/src/logic_lab/physics/quadratic_random_walker/quadratic_random_walker.py +59 -0
  645. logic_lab-0.4.0/src/logic_lab/physics/random_distribution/README.md +7 -0
  646. logic_lab-0.4.0/src/logic_lab/physics/random_distribution/__init__.py +1 -0
  647. logic_lab-0.4.0/src/logic_lab/physics/random_distribution/random_distribution.py +37 -0
  648. logic_lab-0.4.0/src/logic_lab/physics/random_walk/README.md +7 -0
  649. logic_lab-0.4.0/src/logic_lab/physics/random_walk/__init__.py +1 -0
  650. logic_lab-0.4.0/src/logic_lab/physics/random_walk/random_walk.py +51 -0
  651. logic_lab-0.4.0/src/logic_lab/physics/random_walk_right/README.md +7 -0
  652. logic_lab-0.4.0/src/logic_lab/physics/random_walk_right/__init__.py +1 -0
  653. logic_lab-0.4.0/src/logic_lab/physics/random_walk_right/random_walk_right.py +51 -0
  654. logic_lab-0.4.0/src/logic_lab/physics/random_walk_towards_mouse/README.md +7 -0
  655. logic_lab-0.4.0/src/logic_lab/physics/random_walk_towards_mouse/__init__.py +0 -0
  656. logic_lab-0.4.0/src/logic_lab/physics/random_walk_towards_mouse/random_walk_towards_mouse.py +63 -0
  657. logic_lab-0.4.0/src/logic_lab/physics/raycast_queries/README.md +11 -0
  658. logic_lab-0.4.0/src/logic_lab/physics/raycast_queries/__init__.py +1 -0
  659. logic_lab-0.4.0/src/logic_lab/physics/raycast_queries/raycast_queries.py +70 -0
  660. logic_lab-0.4.0/src/logic_lab/physics/reaction_diffusion/README.md +57 -0
  661. logic_lab-0.4.0/src/logic_lab/physics/reaction_diffusion/reaction_diffusion.py +216 -0
  662. logic_lab-0.4.0/src/logic_lab/physics/refraction_prism/README.md +14 -0
  663. logic_lab-0.4.0/src/logic_lab/physics/refraction_prism/__init__.py +1 -0
  664. logic_lab-0.4.0/src/logic_lab/physics/refraction_prism/refraction_prism.py +159 -0
  665. logic_lab-0.4.0/src/logic_lab/physics/rigid_body_collision/README.md +13 -0
  666. logic_lab-0.4.0/src/logic_lab/physics/rigid_body_collision/__init__.py +1 -0
  667. logic_lab-0.4.0/src/logic_lab/physics/rigid_body_collision/rigid_body_collision.py +79 -0
  668. logic_lab-0.4.0/src/logic_lab/physics/ripple_field/README.md +14 -0
  669. logic_lab-0.4.0/src/logic_lab/physics/ripple_field/__init__.py +1 -0
  670. logic_lab-0.4.0/src/logic_lab/physics/ripple_field/ripple_field.py +82 -0
  671. logic_lab-0.4.0/src/logic_lab/physics/rotate_baton/README.md +8 -0
  672. logic_lab-0.4.0/src/logic_lab/physics/rotate_baton/__init__.py +1 -0
  673. logic_lab-0.4.0/src/logic_lab/physics/rotate_baton/rotate_baton.py +39 -0
  674. logic_lab-0.4.0/src/logic_lab/physics/rotating_rigid_bodies/README.md +11 -0
  675. logic_lab-0.4.0/src/logic_lab/physics/rotating_rigid_bodies/__init__.py +1 -0
  676. logic_lab-0.4.0/src/logic_lab/physics/rotating_rigid_bodies/rotating_rigid_bodies.py +81 -0
  677. logic_lab-0.4.0/src/logic_lab/physics/sand_simulation/README.md +11 -0
  678. logic_lab-0.4.0/src/logic_lab/physics/sand_simulation/sand_simulation.py +53 -0
  679. logic_lab-0.4.0/src/logic_lab/physics/sat_polygon_collision/README.md +11 -0
  680. logic_lab-0.4.0/src/logic_lab/physics/sat_polygon_collision/__init__.py +1 -0
  681. logic_lab-0.4.0/src/logic_lab/physics/sat_polygon_collision/sat_polygon_collision.py +58 -0
  682. logic_lab-0.4.0/src/logic_lab/physics/seismic_wave_field/README.md +14 -0
  683. logic_lab-0.4.0/src/logic_lab/physics/seismic_wave_field/__init__.py +1 -0
  684. logic_lab-0.4.0/src/logic_lab/physics/seismic_wave_field/seismic_wave_field.py +90 -0
  685. logic_lab-0.4.0/src/logic_lab/physics/simple_harmonic_motion/README.md +8 -0
  686. logic_lab-0.4.0/src/logic_lab/physics/simple_harmonic_motion/__init__.py +1 -0
  687. logic_lab-0.4.0/src/logic_lab/physics/simple_harmonic_motion/simple_harmonic_motion.py +34 -0
  688. logic_lab-0.4.0/src/logic_lab/physics/simple_harmonic_motion_ii/README.md +8 -0
  689. logic_lab-0.4.0/src/logic_lab/physics/simple_harmonic_motion_ii/__init__.py +1 -0
  690. logic_lab-0.4.0/src/logic_lab/physics/simple_harmonic_motion_ii/simple_harmonic_motion_ii.py +39 -0
  691. logic_lab-0.4.0/src/logic_lab/physics/simple_spring_with_toxiclibs/README.md +9 -0
  692. logic_lab-0.4.0/src/logic_lab/physics/simple_spring_with_toxiclibs/__init__.py +0 -0
  693. logic_lab-0.4.0/src/logic_lab/physics/simple_spring_with_toxiclibs/simple_spring_with_toxiclibs.py +128 -0
  694. logic_lab-0.4.0/src/logic_lab/physics/sine_cosine_lookup_table/README.md +8 -0
  695. logic_lab-0.4.0/src/logic_lab/physics/sine_cosine_lookup_table/__init__.py +0 -0
  696. logic_lab-0.4.0/src/logic_lab/physics/sine_cosine_lookup_table/sine_cosine_lookup_table.py +47 -0
  697. logic_lab-0.4.0/src/logic_lab/physics/single_particle/README.md +8 -0
  698. logic_lab-0.4.0/src/logic_lab/physics/single_particle/__init__.py +1 -0
  699. logic_lab-0.4.0/src/logic_lab/physics/single_particle/single_particle.py +63 -0
  700. logic_lab-0.4.0/src/logic_lab/physics/skewed_random_walker/README.md +7 -0
  701. logic_lab-0.4.0/src/logic_lab/physics/skewed_random_walker/__init__.py +0 -0
  702. logic_lab-0.4.0/src/logic_lab/physics/skewed_random_walker/skewed_random_walker.py +45 -0
  703. logic_lab-0.4.0/src/logic_lab/physics/soft_body_lattice/README.md +11 -0
  704. logic_lab-0.4.0/src/logic_lab/physics/soft_body_lattice/__init__.py +1 -0
  705. logic_lab-0.4.0/src/logic_lab/physics/soft_body_lattice/soft_body_lattice.py +67 -0
  706. logic_lab-0.4.0/src/logic_lab/physics/spatial_hash_broad_phase/README.md +10 -0
  707. logic_lab-0.4.0/src/logic_lab/physics/spatial_hash_broad_phase/__init__.py +1 -0
  708. logic_lab-0.4.0/src/logic_lab/physics/spatial_hash_broad_phase/spatial_hash_broad_phase.py +68 -0
  709. logic_lab-0.4.0/src/logic_lab/physics/spiral/README.md +8 -0
  710. logic_lab-0.4.0/src/logic_lab/physics/spiral/__init__.py +1 -0
  711. logic_lab-0.4.0/src/logic_lab/physics/spiral/spiral.py +36 -0
  712. logic_lab-0.4.0/src/logic_lab/physics/spring_connection/README.md +9 -0
  713. logic_lab-0.4.0/src/logic_lab/physics/spring_connection/__init__.py +1 -0
  714. logic_lab-0.4.0/src/logic_lab/physics/spring_connection/spring_connection.py +130 -0
  715. logic_lab-0.4.0/src/logic_lab/physics/spring_mesh/README.md +35 -0
  716. logic_lab-0.4.0/src/logic_lab/physics/spring_mesh/spring_mesh.py +230 -0
  717. logic_lab-0.4.0/src/logic_lab/physics/stable_fluids/README.md +11 -0
  718. logic_lab-0.4.0/src/logic_lab/physics/stable_fluids/__init__.py +0 -0
  719. logic_lab-0.4.0/src/logic_lab/physics/stable_fluids/stable_fluids.py +263 -0
  720. logic_lab-0.4.0/src/logic_lab/physics/stable_fluids_2d/README.md +11 -0
  721. logic_lab-0.4.0/src/logic_lab/physics/stable_fluids_2d/__init__.py +1 -0
  722. logic_lab-0.4.0/src/logic_lab/physics/stable_fluids_2d/stable_fluids_2d.py +74 -0
  723. logic_lab-0.4.0/src/logic_lab/physics/standing_wave/README.md +15 -0
  724. logic_lab-0.4.0/src/logic_lab/physics/standing_wave/__init__.py +1 -0
  725. logic_lab-0.4.0/src/logic_lab/physics/standing_wave/standing_wave.py +71 -0
  726. logic_lab-0.4.0/src/logic_lab/physics/static_wave/README.md +8 -0
  727. logic_lab-0.4.0/src/logic_lab/physics/static_wave/__init__.py +1 -0
  728. logic_lab-0.4.0/src/logic_lab/physics/static_wave/static_wave.py +33 -0
  729. logic_lab-0.4.0/src/logic_lab/physics/swinging_pendulum/README.md +9 -0
  730. logic_lab-0.4.0/src/logic_lab/physics/swinging_pendulum/__init__.py +1 -0
  731. logic_lab-0.4.0/src/logic_lab/physics/swinging_pendulum/swinging_pendulum.py +89 -0
  732. logic_lab-0.4.0/src/logic_lab/physics/the_wave/README.md +8 -0
  733. logic_lab-0.4.0/src/logic_lab/physics/the_wave/__init__.py +1 -0
  734. logic_lab-0.4.0/src/logic_lab/physics/the_wave/the_wave.py +39 -0
  735. logic_lab-0.4.0/src/logic_lab/physics/the_wave_a/README.md +8 -0
  736. logic_lab-0.4.0/src/logic_lab/physics/the_wave_a/__init__.py +1 -0
  737. logic_lab-0.4.0/src/logic_lab/physics/the_wave_a/the_wave_a.py +32 -0
  738. logic_lab-0.4.0/src/logic_lab/physics/the_wave_b/README.md +8 -0
  739. logic_lab-0.4.0/src/logic_lab/physics/the_wave_b/__init__.py +1 -0
  740. logic_lab-0.4.0/src/logic_lab/physics/the_wave_b/the_wave_b.py +38 -0
  741. logic_lab-0.4.0/src/logic_lab/physics/the_wave_c/README.md +8 -0
  742. logic_lab-0.4.0/src/logic_lab/physics/the_wave_c/__init__.py +1 -0
  743. logic_lab-0.4.0/src/logic_lab/physics/the_wave_c/the_wave_c.py +32 -0
  744. logic_lab-0.4.0/src/logic_lab/physics/two_body_attraction/README.md +7 -0
  745. logic_lab-0.4.0/src/logic_lab/physics/two_body_attraction/__init__.py +0 -0
  746. logic_lab-0.4.0/src/logic_lab/physics/two_body_attraction/two_body_attraction.py +71 -0
  747. logic_lab-0.4.0/src/logic_lab/physics/vector_magnitude/README.md +7 -0
  748. logic_lab-0.4.0/src/logic_lab/physics/vector_magnitude/__init__.py +0 -0
  749. logic_lab-0.4.0/src/logic_lab/physics/vector_magnitude/vector_magnitude.py +33 -0
  750. logic_lab-0.4.0/src/logic_lab/physics/vector_multiplication/README.md +7 -0
  751. logic_lab-0.4.0/src/logic_lab/physics/vector_multiplication/__init__.py +0 -0
  752. logic_lab-0.4.0/src/logic_lab/physics/vector_multiplication/vector_multiplication.py +37 -0
  753. logic_lab-0.4.0/src/logic_lab/physics/vector_normalize/README.md +7 -0
  754. logic_lab-0.4.0/src/logic_lab/physics/vector_normalize/__init__.py +0 -0
  755. logic_lab-0.4.0/src/logic_lab/physics/vector_normalize/vector_normalize.py +38 -0
  756. logic_lab-0.4.0/src/logic_lab/physics/vector_subtraction/README.md +7 -0
  757. logic_lab-0.4.0/src/logic_lab/physics/vector_subtraction/__init__.py +0 -0
  758. logic_lab-0.4.0/src/logic_lab/physics/vector_subtraction/vector_subtraction.py +36 -0
  759. logic_lab-0.4.0/src/logic_lab/physics/verlet_constraints/README.md +12 -0
  760. logic_lab-0.4.0/src/logic_lab/physics/verlet_constraints/__init__.py +1 -0
  761. logic_lab-0.4.0/src/logic_lab/physics/verlet_constraints/verlet_constraints.py +59 -0
  762. logic_lab-0.4.0/src/logic_lab/physics/volumetric_light_beams/README.md +14 -0
  763. logic_lab-0.4.0/src/logic_lab/physics/volumetric_light_beams/__init__.py +1 -0
  764. logic_lab-0.4.0/src/logic_lab/physics/volumetric_light_beams/volumetric_light_beams.py +122 -0
  765. logic_lab-0.4.0/src/logic_lab/physics/watercolor_ink_diffusion/README.md +18 -0
  766. logic_lab-0.4.0/src/logic_lab/physics/watercolor_ink_diffusion/__init__.py +1 -0
  767. logic_lab-0.4.0/src/logic_lab/physics/watercolor_ink_diffusion/watercolor_ink_diffusion.py +166 -0
  768. logic_lab-0.4.0/src/logic_lab/physics/wave_equation_grid/README.md +14 -0
  769. logic_lab-0.4.0/src/logic_lab/physics/wave_equation_grid/__init__.py +1 -0
  770. logic_lab-0.4.0/src/logic_lab/physics/wave_equation_grid/wave_equation_grid.py +78 -0
  771. logic_lab-0.4.0/src/logic_lab/physics/wave_interference_field/README.md +16 -0
  772. logic_lab-0.4.0/src/logic_lab/physics/wave_interference_field/__init__.py +1 -0
  773. logic_lab-0.4.0/src/logic_lab/physics/wave_interference_field/wave_interference_field.py +85 -0
  774. logic_lab-0.4.0/src/logic_lab/physics/wave_packet/README.md +14 -0
  775. logic_lab-0.4.0/src/logic_lab/physics/wave_packet/__init__.py +1 -0
  776. logic_lab-0.4.0/src/logic_lab/physics/wave_packet/wave_packet.py +66 -0
  777. logic_lab-0.4.0/src/logic_lab/procedural_terrain/__init__.py +0 -0
  778. logic_lab-0.4.0/src/logic_lab/procedural_terrain/fault_terrain/__init__.py +0 -0
  779. logic_lab-0.4.0/src/logic_lab/procedural_terrain/fault_terrain/fault_terrain.py +218 -0
  780. logic_lab-0.4.0/src/logic_lab/procedural_terrain/hydraulic_erosion/__init__.py +0 -0
  781. logic_lab-0.4.0/src/logic_lab/procedural_terrain/hydraulic_erosion/hydraulic_erosion.py +275 -0
  782. logic_lab-0.4.0/src/logic_lab/procedural_terrain/voronoi_landscape/__init__.py +0 -0
  783. logic_lab-0.4.0/src/logic_lab/procedural_terrain/voronoi_landscape/voronoi_landscape.py +243 -0
  784. logic_lab-0.4.0/src/logic_lab/reaction_diffusion/__init__.py +3 -0
  785. logic_lab-0.4.0/src/logic_lab/reaction_diffusion/belousov_zhabotinsky/README.md +11 -0
  786. logic_lab-0.4.0/src/logic_lab/reaction_diffusion/belousov_zhabotinsky/__init__.py +0 -0
  787. logic_lab-0.4.0/src/logic_lab/reaction_diffusion/belousov_zhabotinsky/belousov_zhabotinsky.py +144 -0
  788. logic_lab-0.4.0/src/logic_lab/reaction_diffusion/gray_scott/README.md +11 -0
  789. logic_lab-0.4.0/src/logic_lab/reaction_diffusion/gray_scott/__init__.py +3 -0
  790. logic_lab-0.4.0/src/logic_lab/reaction_diffusion/gray_scott/gray_scott.py +258 -0
  791. logic_lab-0.4.0/src/logic_lab/reaction_diffusion/lenia/README.md +11 -0
  792. logic_lab-0.4.0/src/logic_lab/reaction_diffusion/lenia/__init__.py +0 -0
  793. logic_lab-0.4.0/src/logic_lab/reaction_diffusion/lenia/lenia.py +151 -0
  794. logic_lab-0.4.0/src/logic_lab/reaction_diffusion/turing_patterns/README.md +11 -0
  795. logic_lab-0.4.0/src/logic_lab/reaction_diffusion/turing_patterns/__init__.py +0 -0
  796. logic_lab-0.4.0/src/logic_lab/reaction_diffusion/turing_patterns/turing_patterns.py +163 -0
  797. logic_lab-0.4.0/src/logic_lab/research/acrylic_pour/README.md +52 -0
  798. logic_lab-0.4.0/src/logic_lab/research/acrylic_pour/__init__.py +1 -0
  799. logic_lab-0.4.0/src/logic_lab/research/acrylic_pour/acrylic_pour.py +210 -0
  800. logic_lab-0.4.0/src/logic_lab/research/asteroids/README.md +8 -0
  801. logic_lab-0.4.0/src/logic_lab/research/asteroids/__init__.py +1 -0
  802. logic_lab-0.4.0/src/logic_lab/research/asteroids/asteroids.py +121 -0
  803. logic_lab-0.4.0/src/logic_lab/research/audio_fft/README.md +43 -0
  804. logic_lab-0.4.0/src/logic_lab/research/audio_fft/audio_fft.py +194 -0
  805. logic_lab-0.4.0/src/logic_lab/research/audio_wave_scope/README.md +14 -0
  806. logic_lab-0.4.0/src/logic_lab/research/audio_wave_scope/__init__.py +1 -0
  807. logic_lab-0.4.0/src/logic_lab/research/audio_wave_scope/audio_wave_scope.py +88 -0
  808. logic_lab-0.4.0/src/logic_lab/research/bridge/README.md +9 -0
  809. logic_lab-0.4.0/src/logic_lab/research/bridge/__init__.py +0 -0
  810. logic_lab-0.4.0/src/logic_lab/research/bridge/bridge.py +115 -0
  811. logic_lab-0.4.0/src/logic_lab/research/compound_bodies/README.md +10 -0
  812. logic_lab-0.4.0/src/logic_lab/research/compound_bodies/__init__.py +0 -0
  813. logic_lab-0.4.0/src/logic_lab/research/compound_bodies/compound_bodies.py +123 -0
  814. logic_lab-0.4.0/src/logic_lab/research/dry_brush_texture/README.md +41 -0
  815. logic_lab-0.4.0/src/logic_lab/research/dry_brush_texture/__init__.py +1 -0
  816. logic_lab-0.4.0/src/logic_lab/research/dry_brush_texture/dry_brush_texture.py +168 -0
  817. logic_lab-0.4.0/src/logic_lab/research/force_directed_graph/README.md +9 -0
  818. logic_lab-0.4.0/src/logic_lab/research/force_directed_graph/__init__.py +0 -0
  819. logic_lab-0.4.0/src/logic_lab/research/force_directed_graph/force_directed_graph.py +137 -0
  820. logic_lab-0.4.0/src/logic_lab/research/force_directed_graph_6_13/README.md +9 -0
  821. logic_lab-0.4.0/src/logic_lab/research/force_directed_graph_6_13/__init__.py +0 -0
  822. logic_lab-0.4.0/src/logic_lab/research/force_directed_graph_6_13/force_directed_graph.py +187 -0
  823. logic_lab-0.4.0/src/logic_lab/research/image_texture_system_smoke/README.md +8 -0
  824. logic_lab-0.4.0/src/logic_lab/research/image_texture_system_smoke/__init__.py +1 -0
  825. logic_lab-0.4.0/src/logic_lab/research/image_texture_system_smoke/image_texture_system_smoke.py +116 -0
  826. logic_lab-0.4.0/src/logic_lab/research/impasto_rendering/README.md +41 -0
  827. logic_lab-0.4.0/src/logic_lab/research/impasto_rendering/__init__.py +1 -0
  828. logic_lab-0.4.0/src/logic_lab/research/impasto_rendering/impasto_rendering.py +177 -0
  829. logic_lab-0.4.0/src/logic_lab/research/layered_paint_mixing/README.md +50 -0
  830. logic_lab-0.4.0/src/logic_lab/research/layered_paint_mixing/__init__.py +1 -0
  831. logic_lab-0.4.0/src/logic_lab/research/layered_paint_mixing/layered_paint_mixing.py +209 -0
  832. logic_lab-0.4.0/src/logic_lab/research/matter_js_pendulum/README.md +8 -0
  833. logic_lab-0.4.0/src/logic_lab/research/matter_js_pendulum/__init__.py +0 -0
  834. logic_lab-0.4.0/src/logic_lab/research/matter_js_pendulum/matter_js_pendulum.py +101 -0
  835. logic_lab-0.4.0/src/logic_lab/research/mouse_constraint/README.md +9 -0
  836. logic_lab-0.4.0/src/logic_lab/research/mouse_constraint/__init__.py +0 -0
  837. logic_lab-0.4.0/src/logic_lab/research/mouse_constraint/mouse_constraint.py +143 -0
  838. logic_lab-0.4.0/src/logic_lab/research/oil_paint_swirl/README.md +43 -0
  839. logic_lab-0.4.0/src/logic_lab/research/oil_paint_swirl/__init__.py +1 -0
  840. logic_lab-0.4.0/src/logic_lab/research/oil_paint_swirl/oil_paint_swirl.py +193 -0
  841. logic_lab-0.4.0/src/logic_lab/research/pixel_sorting/pixel_sorting.py +202 -0
  842. logic_lab-0.4.0/src/logic_lab/research/polygon_shapes/README.md +9 -0
  843. logic_lab-0.4.0/src/logic_lab/research/polygon_shapes/__init__.py +0 -0
  844. logic_lab-0.4.0/src/logic_lab/research/polygon_shapes/polygon_shapes.py +106 -0
  845. logic_lab-0.4.0/src/logic_lab/research/soft_body_character_copy/README.md +9 -0
  846. logic_lab-0.4.0/src/logic_lab/research/soft_body_character_copy/__init__.py +0 -0
  847. logic_lab-0.4.0/src/logic_lab/research/soft_body_character_copy/soft_body_character_copy.py +132 -0
  848. logic_lab-0.4.0/src/logic_lab/research/soft_body_character_enhanced/README.md +10 -0
  849. logic_lab-0.4.0/src/logic_lab/research/soft_body_character_enhanced/__init__.py +0 -0
  850. logic_lab-0.4.0/src/logic_lab/research/soft_body_character_enhanced/soft_body_character_enhanced.py +197 -0
  851. logic_lab-0.4.0/src/logic_lab/research/windmill/README.md +9 -0
  852. logic_lab-0.4.0/src/logic_lab/research/windmill/__init__.py +0 -0
  853. logic_lab-0.4.0/src/logic_lab/research/windmill/windmill.py +118 -0
  854. logic_lab-0.4.0/src/logic_lab/research/windmill_motor/README.md +9 -0
  855. logic_lab-0.4.0/src/logic_lab/research/windmill_motor/__init__.py +0 -0
  856. logic_lab-0.4.0/src/logic_lab/research/windmill_motor/windmill_motor.py +115 -0
  857. logic_lab-0.4.0/src/logic_lab/self_organizing/__init__.py +0 -0
  858. logic_lab-0.4.0/src/logic_lab/self_organizing/boids/__init__.py +0 -0
  859. logic_lab-0.4.0/src/logic_lab/self_organizing/boids/boids.py +234 -0
  860. logic_lab-0.4.0/src/logic_lab/self_organizing/growing_neural_gas/__init__.py +0 -0
  861. logic_lab-0.4.0/src/logic_lab/self_organizing/growing_neural_gas/growing_neural_gas.py +232 -0
  862. logic_lab-0.4.0/src/logic_lab/self_organizing/kohonen_som/__init__.py +0 -0
  863. logic_lab-0.4.0/src/logic_lab/self_organizing/kohonen_som/kohonen_som.py +236 -0
  864. logic_lab-0.4.0/src/logic_lab/self_organizing/reaction_diffusion/__init__.py +0 -0
  865. logic_lab-0.4.0/src/logic_lab/self_organizing/reaction_diffusion/reaction_diffusion.py +196 -0
  866. logic_lab-0.4.0/src/logic_lab/shared/__init__.py +29 -0
  867. logic_lab-0.4.0/src/logic_lab/shared/batch_runner.py +236 -0
  868. logic_lab-0.4.0/src/logic_lab/shared/lfo.py +200 -0
  869. logic_lab-0.4.0/src/logic_lab/shared/libs/experiment_utils.py +28 -0
  870. logic_lab-0.4.0/src/logic_lab/shared/libs/mcc/__init__.py +5 -0
  871. logic_lab-0.4.0/src/logic_lab/shared/libs/mcc/config.py +102 -0
  872. logic_lab-0.4.0/src/logic_lab/shared/libs/mcc/population.py +90 -0
  873. logic_lab-0.4.0/src/logic_lab/shared/libs/mcc/reporting.py +163 -0
  874. logic_lab-0.4.0/src/logic_lab/shared/libs/mcc/reproduction.py +37 -0
  875. logic_lab-0.4.0/src/logic_lab/shared/libs/me_neat/__init__.py +7 -0
  876. logic_lab-0.4.0/src/logic_lab/shared/libs/me_neat/behavioral_descriptor.py +15 -0
  877. logic_lab-0.4.0/src/logic_lab/shared/libs/me_neat/config.py +92 -0
  878. logic_lab-0.4.0/src/logic_lab/shared/libs/me_neat/drawer.py +75 -0
  879. logic_lab-0.4.0/src/logic_lab/shared/libs/me_neat/population.py +91 -0
  880. logic_lab-0.4.0/src/logic_lab/shared/libs/me_neat/reporting.py +135 -0
  881. logic_lab-0.4.0/src/logic_lab/shared/libs/me_neat/reproduction.py +72 -0
  882. logic_lab-0.4.0/src/logic_lab/shared/libs/neat_cppn/__init__.py +11 -0
  883. logic_lab-0.4.0/src/logic_lab/shared/libs/neat_cppn/config.py +56 -0
  884. logic_lab-0.4.0/src/logic_lab/shared/libs/neat_cppn/cppn_decoder.py +68 -0
  885. logic_lab-0.4.0/src/logic_lab/shared/libs/neat_cppn/feedforward.py +69 -0
  886. logic_lab-0.4.0/src/logic_lab/shared/libs/neat_cppn/figure.py +121 -0
  887. logic_lab-0.4.0/src/logic_lab/shared/libs/neat_cppn/genome.py +37 -0
  888. logic_lab-0.4.0/src/logic_lab/shared/libs/neat_cppn/population.py +144 -0
  889. logic_lab-0.4.0/src/logic_lab/shared/libs/neat_cppn/reporting.py +70 -0
  890. logic_lab-0.4.0/src/logic_lab/shared/libs/neat_cppn/reproduction.py +146 -0
  891. logic_lab-0.4.0/src/logic_lab/shared/libs/ns_neat/__init__.py +5 -0
  892. logic_lab-0.4.0/src/logic_lab/shared/libs/ns_neat/config.py +138 -0
  893. logic_lab-0.4.0/src/logic_lab/shared/libs/ns_neat/metrices.py +17 -0
  894. logic_lab-0.4.0/src/logic_lab/shared/libs/ns_neat/population.py +164 -0
  895. logic_lab-0.4.0/src/logic_lab/shared/libs/ns_neat/reporting.py +127 -0
  896. logic_lab-0.4.0/src/logic_lab/shared/libs/parallel.py +241 -0
  897. logic_lab-0.4.0/src/logic_lab/shared/libs/poet/__init__.py +0 -0
  898. logic_lab-0.4.0/src/logic_lab/shared/libs/poet/environment_evogym.py +406 -0
  899. logic_lab-0.4.0/src/logic_lab/shared/libs/poet/environment_mujoco.py +162 -0
  900. logic_lab-0.4.0/src/logic_lab/shared/libs/poet/learner_ppo.py +263 -0
  901. logic_lab-0.4.0/src/logic_lab/shared/libs/poet/niche.py +228 -0
  902. logic_lab-0.4.0/src/logic_lab/shared/libs/poet/poet_algo.py +401 -0
  903. logic_lab-0.4.0/src/logic_lab/shared/libs/ppo/__init__.py +2 -0
  904. logic_lab-0.4.0/src/logic_lab/shared/libs/ppo/policy.py +87 -0
  905. logic_lab-0.4.0/src/logic_lab/shared/libs/ppo/ppo.py +159 -0
  906. logic_lab-0.4.0/src/logic_lab/shared/noise_field.py +128 -0
  907. logic_lab-0.4.0/src/logic_lab/shared/physics2d.py +646 -0
  908. logic_lab-0.4.0/src/logic_lab/shared/presets.py +223 -0
  909. logic_lab-0.4.0/src/logic_lab/shared/profiling.py +125 -0
  910. logic_lab-0.4.0/src/logic_lab/shared/rk4.py +48 -0
  911. logic_lab-0.4.0/src/logic_lab/signal_processing/__init__.py +0 -0
  912. logic_lab-0.4.0/src/logic_lab/signal_processing/chladni_patterns/__init__.py +0 -0
  913. logic_lab-0.4.0/src/logic_lab/signal_processing/chladni_patterns/chladni_patterns.py +201 -0
  914. logic_lab-0.4.0/src/logic_lab/signal_processing/fourier_epicycles/__init__.py +0 -0
  915. logic_lab-0.4.0/src/logic_lab/signal_processing/fourier_epicycles/fourier_epicycles.py +217 -0
  916. logic_lab-0.4.0/src/logic_lab/signal_processing/lissajous_figures/__init__.py +0 -0
  917. logic_lab-0.4.0/src/logic_lab/signal_processing/lissajous_figures/lissajous_figures.py +243 -0
  918. logic_lab-0.4.0/src/logic_lab/signal_processing/wave_interference/__init__.py +0 -0
  919. logic_lab-0.4.0/src/logic_lab/signal_processing/wave_interference/wave_interference.py +200 -0
  920. logic_lab-0.4.0/src/logic_lab/simulation/circuit_evolution/README.md +31 -0
  921. logic_lab-0.4.0/src/logic_lab/simulation/circuit_evolution/environment/circuit/evaluator.py +81 -0
  922. logic_lab-0.4.0/src/logic_lab/simulation/circuit_evolution/experiments/design/arguments/circuit_neat.py +81 -0
  923. logic_lab-0.4.0/src/logic_lab/simulation/circuit_evolution/experiments/design/arguments/evogym_cppn.py +201 -0
  924. logic_lab-0.4.0/src/logic_lab/simulation/circuit_evolution/experiments/design/arguments/evogym_hyper.py +181 -0
  925. logic_lab-0.4.0/src/logic_lab/simulation/circuit_evolution/experiments/design/arguments/evogym_neat.py +175 -0
  926. logic_lab-0.4.0/src/logic_lab/simulation/circuit_evolution/experiments/design/arguments/maze_hyper.py +54 -0
  927. logic_lab-0.4.0/src/logic_lab/simulation/circuit_evolution/experiments/design/arguments/maze_neat.py +48 -0
  928. logic_lab-0.4.0/src/logic_lab/simulation/circuit_evolution/experiments/design/draw_circuit_neat.py +240 -0
  929. logic_lab-0.4.0/src/logic_lab/simulation/circuit_evolution/experiments/design/run_circuit_neat.py +72 -0
  930. logic_lab-0.4.0/src/logic_lab/simulation/locomotion/README.md +147 -0
  931. logic_lab-0.4.0/src/logic_lab/simulation/locomotion/environment/gym_mujoco/__init__.py +0 -0
  932. logic_lab-0.4.0/src/logic_lab/simulation/locomotion/environment/gym_mujoco/evaluator.py +387 -0
  933. logic_lab-0.4.0/src/logic_lab/simulation/locomotion/environment/gym_mujoco/make_env.py +17 -0
  934. logic_lab-0.4.0/src/logic_lab/simulation/locomotion/environment/gym_mujoco/structural_bd.py +107 -0
  935. logic_lab-0.4.0/src/logic_lab/simulation/locomotion/experiments/me_neat_controller/arguments/locomotion_me_neat.py +68 -0
  936. logic_lab-0.4.0/src/logic_lab/simulation/locomotion/experiments/me_neat_controller/draw_locomotion_me_neat.py +242 -0
  937. logic_lab-0.4.0/src/logic_lab/simulation/locomotion/experiments/me_neat_controller/run_locomotion_me_neat.py +112 -0
  938. logic_lab-0.4.0/src/logic_lab/simulation/locomotion/experiments/neat_controller/arguments/locomotion_neat.py +32 -0
  939. logic_lab-0.4.0/src/logic_lab/simulation/locomotion/experiments/neat_controller/draw_locomotion_neat.py +181 -0
  940. logic_lab-0.4.0/src/logic_lab/simulation/locomotion/experiments/neat_controller/run_locomotion_neat.py +79 -0
  941. logic_lab-0.4.0/src/logic_lab/simulation/locomotion/experiments/ns_neat_controller/README.md +54 -0
  942. logic_lab-0.4.0/src/logic_lab/simulation/locomotion/experiments/ns_neat_controller/arguments/locomotion_ns_neat.py +52 -0
  943. logic_lab-0.4.0/src/logic_lab/simulation/locomotion/experiments/ns_neat_controller/draw_locomotion_ns_neat.py +187 -0
  944. logic_lab-0.4.0/src/logic_lab/simulation/locomotion/experiments/ns_neat_controller/run_locomotion_ns_neat.py +88 -0
  945. logic_lab-0.4.0/src/logic_lab/simulation/locomotion/experiments/poet_terrain/README.md +123 -0
  946. logic_lab-0.4.0/src/logic_lab/simulation/locomotion/experiments/poet_terrain/arguments/locomotion_poet.py +31 -0
  947. logic_lab-0.4.0/src/logic_lab/simulation/locomotion/experiments/poet_terrain/draw_locomotion_poet.py +246 -0
  948. logic_lab-0.4.0/src/logic_lab/simulation/locomotion/experiments/poet_terrain/run_locomotion_poet.py +298 -0
  949. logic_lab-0.4.0/src/logic_lab/simulation/maze_systems/README.md +48 -0
  950. logic_lab-0.4.0/src/logic_lab/simulation/maze_systems/environment/maze/cppn_decoder.py +17 -0
  951. logic_lab-0.4.0/src/logic_lab/simulation/maze_systems/environment/maze/evaluator.py +52 -0
  952. logic_lab-0.4.0/src/logic_lab/simulation/maze_systems/environment/maze/maze_drawer.py +239 -0
  953. logic_lab-0.4.0/src/logic_lab/simulation/maze_systems/environment/maze/maze_environment_numpy.py +252 -0
  954. logic_lab-0.4.0/src/logic_lab/simulation/maze_systems/environment/maze/maze_genome.py +416 -0
  955. logic_lab-0.4.0/src/logic_lab/simulation/maze_systems/environment/maze/maze_genome_decoder.py +463 -0
  956. logic_lab-0.4.0/src/logic_lab/simulation/maze_systems/environment/maze/substrate.py +204 -0
  957. logic_lab-0.4.0/src/logic_lab/simulation/maze_systems/experiments/coevolution/arguments/maze_mcc.py +213 -0
  958. logic_lab-0.4.0/src/logic_lab/simulation/maze_systems/experiments/coevolution/bootstrap_maze_mcc.py +163 -0
  959. logic_lab-0.4.0/src/logic_lab/simulation/maze_systems/experiments/coevolution/draw_maze_mcc.py +207 -0
  960. logic_lab-0.4.0/src/logic_lab/simulation/maze_systems/experiments/coevolution/run_maze_mcc.py +136 -0
  961. logic_lab-0.4.0/src/logic_lab/simulation/maze_systems/experiments/control/arguments/maze_neat.py +48 -0
  962. logic_lab-0.4.0/src/logic_lab/simulation/maze_systems/experiments/control/run_maze_neat.py +76 -0
  963. logic_lab-0.4.0/src/logic_lab/simulation/maze_systems/experiments/novelty_search/arguments/maze_ns_neat.py +66 -0
  964. logic_lab-0.4.0/src/logic_lab/simulation/maze_systems/experiments/novelty_search/run_maze_ns_neat.py +81 -0
  965. logic_lab-0.4.0/src/logic_lab/simulation/random_walk/README.md +7 -0
  966. logic_lab-0.4.0/src/logic_lab/simulation/random_walk/__init__.py +1 -0
  967. logic_lab-0.4.0/src/logic_lab/simulation/random_walk/random_walk.py +41 -0
  968. logic_lab-0.4.0/src/logic_lab/steering_behaviors/arrive/README.md +8 -0
  969. logic_lab-0.4.0/src/logic_lab/steering_behaviors/arrive/__init__.py +0 -0
  970. logic_lab-0.4.0/src/logic_lab/steering_behaviors/arrive/arrive.py +98 -0
  971. logic_lab-0.4.0/src/logic_lab/steering_behaviors/attraction_behaviors/README.md +9 -0
  972. logic_lab-0.4.0/src/logic_lab/steering_behaviors/attraction_behaviors/__init__.py +0 -0
  973. logic_lab-0.4.0/src/logic_lab/steering_behaviors/attraction_behaviors/attraction_behaviors.py +133 -0
  974. logic_lab-0.4.0/src/logic_lab/steering_behaviors/creature_sensors/README.md +58 -0
  975. logic_lab-0.4.0/src/logic_lab/steering_behaviors/creature_sensors/creature_sensors.py +117 -0
  976. logic_lab-0.4.0/src/logic_lab/steering_behaviors/crowd_path_following/README.md +10 -0
  977. logic_lab-0.4.0/src/logic_lab/steering_behaviors/crowd_path_following/__init__.py +0 -0
  978. logic_lab-0.4.0/src/logic_lab/steering_behaviors/crowd_path_following/crowd_path_following.py +215 -0
  979. logic_lab-0.4.0/src/logic_lab/steering_behaviors/curl_noise_vines/README.md +15 -0
  980. logic_lab-0.4.0/src/logic_lab/steering_behaviors/curl_noise_vines/curl_noise_vines.py +153 -0
  981. logic_lab-0.4.0/src/logic_lab/steering_behaviors/flocking/README.md +9 -0
  982. logic_lab-0.4.0/src/logic_lab/steering_behaviors/flocking/__init__.py +0 -0
  983. logic_lab-0.4.0/src/logic_lab/steering_behaviors/flocking/flocking.py +171 -0
  984. logic_lab-0.4.0/src/logic_lab/steering_behaviors/flocking_with_binning/README.md +10 -0
  985. logic_lab-0.4.0/src/logic_lab/steering_behaviors/flocking_with_binning/__init__.py +0 -0
  986. logic_lab-0.4.0/src/logic_lab/steering_behaviors/flocking_with_binning/flocking_with_binning.py +218 -0
  987. logic_lab-0.4.0/src/logic_lab/steering_behaviors/flow_field/README.md +10 -0
  988. logic_lab-0.4.0/src/logic_lab/steering_behaviors/flow_field/__init__.py +0 -0
  989. logic_lab-0.4.0/src/logic_lab/steering_behaviors/flow_field/flow_field.py +153 -0
  990. logic_lab-0.4.0/src/logic_lab/steering_behaviors/flowlines/README.md +32 -0
  991. logic_lab-0.4.0/src/logic_lab/steering_behaviors/flowlines/flowlines.py +104 -0
  992. logic_lab-0.4.0/src/logic_lab/steering_behaviors/gesture_classifier/README.md +40 -0
  993. logic_lab-0.4.0/src/logic_lab/steering_behaviors/gesture_classifier/gesture_classifier.py +194 -0
  994. logic_lab-0.4.0/src/logic_lab/steering_behaviors/ivy_wall_growth/README.md +15 -0
  995. logic_lab-0.4.0/src/logic_lab/steering_behaviors/ivy_wall_growth/ivy_wall_growth.py +208 -0
  996. logic_lab-0.4.0/src/logic_lab/steering_behaviors/neuro_evolution_steering_seek/README.md +71 -0
  997. logic_lab-0.4.0/src/logic_lab/steering_behaviors/neuro_evolution_steering_seek/neuro_evolution_steering_seek.py +300 -0
  998. logic_lab-0.4.0/src/logic_lab/steering_behaviors/neuroevolution_ecosystem/README.md +82 -0
  999. logic_lab-0.4.0/src/logic_lab/steering_behaviors/neuroevolution_ecosystem/neuroevolution_ecosystem.py +292 -0
  1000. logic_lab-0.4.0/src/logic_lab/steering_behaviors/path_following/README.md +10 -0
  1001. logic_lab-0.4.0/src/logic_lab/steering_behaviors/path_following/__init__.py +0 -0
  1002. logic_lab-0.4.0/src/logic_lab/steering_behaviors/path_following/path_following.py +207 -0
  1003. logic_lab-0.4.0/src/logic_lab/steering_behaviors/path_following_simple/README.md +9 -0
  1004. logic_lab-0.4.0/src/logic_lab/steering_behaviors/path_following_simple/__init__.py +0 -0
  1005. logic_lab-0.4.0/src/logic_lab/steering_behaviors/path_following_simple/path_following_simple.py +166 -0
  1006. logic_lab-0.4.0/src/logic_lab/steering_behaviors/perceptron_with_normalization/README.md +40 -0
  1007. logic_lab-0.4.0/src/logic_lab/steering_behaviors/perceptron_with_normalization/perceptron_with_normalization.py +105 -0
  1008. logic_lab-0.4.0/src/logic_lab/steering_behaviors/pursuit_behavior/README.md +9 -0
  1009. logic_lab-0.4.0/src/logic_lab/steering_behaviors/pursuit_behavior/__init__.py +0 -0
  1010. logic_lab-0.4.0/src/logic_lab/steering_behaviors/pursuit_behavior/pursuit_behavior.py +123 -0
  1011. logic_lab-0.4.0/src/logic_lab/steering_behaviors/seek/README.md +8 -0
  1012. logic_lab-0.4.0/src/logic_lab/steering_behaviors/seek/__init__.py +0 -0
  1013. logic_lab-0.4.0/src/logic_lab/steering_behaviors/seek/seek.py +86 -0
  1014. logic_lab-0.4.0/src/logic_lab/steering_behaviors/separation/README.md +9 -0
  1015. logic_lab-0.4.0/src/logic_lab/steering_behaviors/separation/__init__.py +0 -0
  1016. logic_lab-0.4.0/src/logic_lab/steering_behaviors/separation/separation.py +98 -0
  1017. logic_lab-0.4.0/src/logic_lab/steering_behaviors/separation_and_seek/README.md +8 -0
  1018. logic_lab-0.4.0/src/logic_lab/steering_behaviors/separation_and_seek/__init__.py +0 -0
  1019. logic_lab-0.4.0/src/logic_lab/steering_behaviors/separation_and_seek/separation_and_seek.py +114 -0
  1020. logic_lab-0.4.0/src/logic_lab/steering_behaviors/stay_within_walls/README.md +9 -0
  1021. logic_lab-0.4.0/src/logic_lab/steering_behaviors/stay_within_walls/__init__.py +0 -0
  1022. logic_lab-0.4.0/src/logic_lab/steering_behaviors/stay_within_walls/stay_within_walls.py +102 -0
  1023. logic_lab-0.4.0/src/logic_lab/steering_behaviors/wander_behavior/README.md +9 -0
  1024. logic_lab-0.4.0/src/logic_lab/steering_behaviors/wander_behavior/__init__.py +0 -0
  1025. logic_lab-0.4.0/src/logic_lab/steering_behaviors/wander_behavior/wander_behavior.py +137 -0
  1026. logic_lab-0.4.0/src/logic_lab/swarm_intelligence/__init__.py +7 -0
  1027. logic_lab-0.4.0/src/logic_lab/swarm_intelligence/ant_colony_pheromone/README.md +11 -0
  1028. logic_lab-0.4.0/src/logic_lab/swarm_intelligence/ant_colony_pheromone/__init__.py +0 -0
  1029. logic_lab-0.4.0/src/logic_lab/swarm_intelligence/ant_colony_pheromone/ant_colony_pheromone.py +213 -0
  1030. logic_lab-0.4.0/src/logic_lab/swarm_intelligence/bee_foraging/README.md +11 -0
  1031. logic_lab-0.4.0/src/logic_lab/swarm_intelligence/bee_foraging/__init__.py +9 -0
  1032. logic_lab-0.4.0/src/logic_lab/swarm_intelligence/bee_foraging/bee_foraging.py +446 -0
  1033. logic_lab-0.4.0/src/logic_lab/swarm_intelligence/particle_swarm_optimization/__init__.py +0 -0
  1034. logic_lab-0.4.0/src/logic_lab/swarm_intelligence/particle_swarm_optimization/particle_swarm_optimization.py +242 -0
  1035. logic_lab-0.4.0/src/logic_lab/swarm_intelligence/predator_prey_flocking/README.md +11 -0
  1036. logic_lab-0.4.0/src/logic_lab/swarm_intelligence/predator_prey_flocking/__init__.py +0 -0
  1037. logic_lab-0.4.0/src/logic_lab/swarm_intelligence/predator_prey_flocking/predator_prey_flocking.py +282 -0
  1038. logic_lab-0.4.0/src/logic_lab/three_dimensional/__init__.py +4 -0
  1039. logic_lab-0.4.0/src/logic_lab/three_dimensional/lorenz_strands/__init__.py +0 -0
  1040. logic_lab-0.4.0/src/logic_lab/three_dimensional/lorenz_strands/lorenz_strands.py +221 -0
  1041. logic_lab-0.4.0/src/logic_lab/three_dimensional/lsystem_3d/README.md +11 -0
  1042. logic_lab-0.4.0/src/logic_lab/three_dimensional/lsystem_3d/__init__.py +0 -0
  1043. logic_lab-0.4.0/src/logic_lab/three_dimensional/lsystem_3d/lsystem_3d.py +221 -0
  1044. logic_lab-0.4.0/src/logic_lab/three_dimensional/metaballs/README.md +142 -0
  1045. logic_lab-0.4.0/src/logic_lab/three_dimensional/metaballs/__init__.py +1 -0
  1046. logic_lab-0.4.0/src/logic_lab/three_dimensional/metaballs/metaballs.py +220 -0
  1047. logic_lab-0.4.0/src/logic_lab/three_dimensional/metaballs_3d/README.md +11 -0
  1048. logic_lab-0.4.0/src/logic_lab/three_dimensional/metaballs_3d/__init__.py +5 -0
  1049. logic_lab-0.4.0/src/logic_lab/three_dimensional/metaballs_3d/metaballs_3d.py +346 -0
  1050. logic_lab-0.4.0/src/logic_lab/three_dimensional/point_cloud_morph/README.md +11 -0
  1051. logic_lab-0.4.0/src/logic_lab/three_dimensional/point_cloud_morph/__init__.py +0 -0
  1052. logic_lab-0.4.0/src/logic_lab/three_dimensional/point_cloud_morph/point_cloud_morph.py +195 -0
  1053. logic_lab-0.4.0/src/logic_lab/three_dimensional/volumetric_fog/README.md +11 -0
  1054. logic_lab-0.4.0/src/logic_lab/three_dimensional/volumetric_fog/__init__.py +0 -0
  1055. logic_lab-0.4.0/src/logic_lab/three_dimensional/volumetric_fog/volumetric_fog.py +215 -0
  1056. logic_lab-0.4.0/src/logic_lab/tiling_patterns/aperiodic_helpers.py +152 -0
  1057. logic_lab-0.4.0/src/logic_lab/tiling_patterns/deformation_helpers.py +173 -0
  1058. logic_lab-0.4.0/src/logic_lab/tiling_patterns/dihedral_group/README.md +14 -0
  1059. logic_lab-0.4.0/src/logic_lab/tiling_patterns/dihedral_group/dihedral_group.py +68 -0
  1060. logic_lab-0.4.0/src/logic_lab/tiling_patterns/fibonacci_word/README.md +8 -0
  1061. logic_lab-0.4.0/src/logic_lab/tiling_patterns/fibonacci_word/fibonacci_word.py +56 -0
  1062. logic_lab-0.4.0/src/logic_lab/tiling_patterns/fundamental_domain/README.md +14 -0
  1063. logic_lab-0.4.0/src/logic_lab/tiling_patterns/fundamental_domain/fundamental_domain.py +53 -0
  1064. logic_lab-0.4.0/src/logic_lab/tiling_patterns/hex_rhomb/README.md +8 -0
  1065. logic_lab-0.4.0/src/logic_lab/tiling_patterns/hex_rhomb/hex_rhomb.py +69 -0
  1066. logic_lab-0.4.0/src/logic_lab/tiling_patterns/hex_tiling/README.md +9 -0
  1067. logic_lab-0.4.0/src/logic_lab/tiling_patterns/hex_tiling/hex_tiling.py +66 -0
  1068. logic_lab-0.4.0/src/logic_lab/tiling_patterns/ih01_deformation/README.md +9 -0
  1069. logic_lab-0.4.0/src/logic_lab/tiling_patterns/ih01_deformation/ih01_deformation.py +48 -0
  1070. logic_lab-0.4.0/src/logic_lab/tiling_patterns/ih01_koch/README.md +9 -0
  1071. logic_lab-0.4.0/src/logic_lab/tiling_patterns/ih01_koch/ih01_koch.py +59 -0
  1072. logic_lab-0.4.0/src/logic_lab/tiling_patterns/ih02_deformation/README.md +9 -0
  1073. logic_lab-0.4.0/src/logic_lab/tiling_patterns/ih02_deformation/ih02_deformation.py +50 -0
  1074. logic_lab-0.4.0/src/logic_lab/tiling_patterns/ih02_tv08/README.md +9 -0
  1075. logic_lab-0.4.0/src/logic_lab/tiling_patterns/ih02_tv08/ih02_tv08.py +76 -0
  1076. logic_lab-0.4.0/src/logic_lab/tiling_patterns/ih02_tv08_koch/README.md +9 -0
  1077. logic_lab-0.4.0/src/logic_lab/tiling_patterns/ih02_tv08_koch/ih02_tv08_koch.py +89 -0
  1078. logic_lab-0.4.0/src/logic_lab/tiling_patterns/ih41_deformation/README.md +9 -0
  1079. logic_lab-0.4.0/src/logic_lab/tiling_patterns/ih41_deformation/ih41_deformation.py +48 -0
  1080. logic_lab-0.4.0/src/logic_lab/tiling_patterns/ih41_koch/README.md +9 -0
  1081. logic_lab-0.4.0/src/logic_lab/tiling_patterns/ih41_koch/ih41_koch.py +59 -0
  1082. logic_lab-0.4.0/src/logic_lab/tiling_patterns/islamic_geometric/README.md +11 -0
  1083. logic_lab-0.4.0/src/logic_lab/tiling_patterns/islamic_geometric/islamic_geometric.py +50 -0
  1084. logic_lab-0.4.0/src/logic_lab/tiling_patterns/matrix_calculator/README.md +7 -0
  1085. logic_lab-0.4.0/src/logic_lab/tiling_patterns/matrix_calculator/matrix_calculator.py +31 -0
  1086. logic_lab-0.4.0/src/logic_lab/tiling_patterns/p31m_pattern/README.md +8 -0
  1087. logic_lab-0.4.0/src/logic_lab/tiling_patterns/p31m_pattern/p31m_pattern.py +115 -0
  1088. logic_lab-0.4.0/src/logic_lab/tiling_patterns/p3_pattern/README.md +8 -0
  1089. logic_lab-0.4.0/src/logic_lab/tiling_patterns/p3_pattern/p3_pattern.py +79 -0
  1090. logic_lab-0.4.0/src/logic_lab/tiling_patterns/p3m1_pattern/README.md +8 -0
  1091. logic_lab-0.4.0/src/logic_lab/tiling_patterns/p3m1_pattern/p3m1_pattern.py +92 -0
  1092. logic_lab-0.4.0/src/logic_lab/tiling_patterns/p6_pattern/README.md +8 -0
  1093. logic_lab-0.4.0/src/logic_lab/tiling_patterns/p6_pattern/p6_pattern.py +78 -0
  1094. logic_lab-0.4.0/src/logic_lab/tiling_patterns/p6m_pattern/README.md +8 -0
  1095. logic_lab-0.4.0/src/logic_lab/tiling_patterns/p6m_pattern/p6m_pattern.py +78 -0
  1096. logic_lab-0.4.0/src/logic_lab/tiling_patterns/pattern_helpers.py +49 -0
  1097. logic_lab-0.4.0/src/logic_lab/tiling_patterns/penrose_tiling/README.md +15 -0
  1098. logic_lab-0.4.0/src/logic_lab/tiling_patterns/penrose_tiling/__init__.py +0 -0
  1099. logic_lab-0.4.0/src/logic_lab/tiling_patterns/penrose_tiling/penrose_tiling.py +130 -0
  1100. logic_lab-0.4.0/src/logic_lab/tiling_patterns/pinwheel_tiling/README.md +11 -0
  1101. logic_lab-0.4.0/src/logic_lab/tiling_patterns/pinwheel_tiling/pinwheel_tiling.py +51 -0
  1102. logic_lab-0.4.0/src/logic_lab/tiling_patterns/pythagoras_periodic/README.md +13 -0
  1103. logic_lab-0.4.0/src/logic_lab/tiling_patterns/pythagoras_periodic/pythagoras_periodic.py +121 -0
  1104. logic_lab-0.4.0/src/logic_lab/tiling_patterns/recur_pentagon/README.md +8 -0
  1105. logic_lab-0.4.0/src/logic_lab/tiling_patterns/recur_pentagon/recur_pentagon.py +59 -0
  1106. logic_lab-0.4.0/src/logic_lab/tiling_patterns/recur_triangle/README.md +8 -0
  1107. logic_lab-0.4.0/src/logic_lab/tiling_patterns/recur_triangle/recur_triangle.py +67 -0
  1108. logic_lab-0.4.0/src/logic_lab/tiling_patterns/rep_tiles/README.md +11 -0
  1109. logic_lab-0.4.0/src/logic_lab/tiling_patterns/rep_tiles/rep_tiles.py +47 -0
  1110. logic_lab-0.4.0/src/logic_lab/tiling_patterns/square_tiling/README.md +9 -0
  1111. logic_lab-0.4.0/src/logic_lab/tiling_patterns/square_tiling/square_tiling.py +55 -0
  1112. logic_lab-0.4.0/src/logic_lab/tiling_patterns/square_triangle_periodic/README.md +8 -0
  1113. logic_lab-0.4.0/src/logic_lab/tiling_patterns/square_triangle_periodic/square_triangle_periodic.py +88 -0
  1114. logic_lab-0.4.0/src/logic_lab/tiling_patterns/symmetric_shape/README.md +9 -0
  1115. logic_lab-0.4.0/src/logic_lab/tiling_patterns/symmetric_shape/symmetric_shape.py +63 -0
  1116. logic_lab-0.4.0/src/logic_lab/tiling_patterns/textile_generator/README.md +9 -0
  1117. logic_lab-0.4.0/src/logic_lab/tiling_patterns/textile_generator/textile_generator.py +91 -0
  1118. logic_lab-0.4.0/src/logic_lab/tiling_patterns/textile_repeater/README.md +13 -0
  1119. logic_lab-0.4.0/src/logic_lab/tiling_patterns/textile_repeater/textile_repeater.py +125 -0
  1120. logic_lab-0.4.0/src/logic_lab/tiling_patterns/triangle_tiling/README.md +9 -0
  1121. logic_lab-0.4.0/src/logic_lab/tiling_patterns/triangle_tiling/triangle_tiling.py +75 -0
  1122. logic_lab-0.4.0/src/logic_lab/tiling_patterns/triangular_spiral/README.md +8 -0
  1123. logic_lab-0.4.0/src/logic_lab/tiling_patterns/triangular_spiral/triangular_spiral.py +46 -0
  1124. logic_lab-0.4.0/src/logic_lab/tiling_patterns/truchet_tiling/README.md +11 -0
  1125. logic_lab-0.4.0/src/logic_lab/tiling_patterns/truchet_tiling/truchet_tiling.py +81 -0
  1126. logic_lab-0.4.0/src/logic_lab/tiling_patterns/tv08_deformation/README.md +9 -0
  1127. logic_lab-0.4.0/src/logic_lab/tiling_patterns/tv08_deformation/tv08_deformation.py +75 -0
  1128. logic_lab-0.4.0/src/logic_lab/tiling_patterns/wave_function_collapse/README.md +47 -0
  1129. logic_lab-0.4.0/src/logic_lab/tiling_patterns/wave_function_collapse/__init__.py +0 -0
  1130. logic_lab-0.4.0/src/logic_lab/tiling_patterns/wave_function_collapse/wave_function_collapse.py +221 -0
  1131. logic_lab-0.4.0/src/logic_lab/topology/__init__.py +0 -0
  1132. logic_lab-0.4.0/src/logic_lab/topology/hopf_fibration/__init__.py +0 -0
  1133. logic_lab-0.4.0/src/logic_lab/topology/hopf_fibration/hopf_fibration.py +165 -0
  1134. logic_lab-0.4.0/src/logic_lab/topology/klein_bottle/__init__.py +0 -0
  1135. logic_lab-0.4.0/src/logic_lab/topology/klein_bottle/klein_bottle.py +211 -0
  1136. logic_lab-0.4.0/src/logic_lab/topology/mobius_strip/__init__.py +0 -0
  1137. logic_lab-0.4.0/src/logic_lab/topology/mobius_strip/mobius_strip.py +211 -0
  1138. logic_lab-0.4.0/src/logic_lab/topology/torus_knot/__init__.py +0 -0
  1139. 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
@@ -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.
@@ -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
+ [![Glama MCP Server](https://glama.ai/mcp/servers/asamiile/logic-lab/badge)](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
+ [![Watch on YouTube](https://img.shields.io/badge/YouTube-Watch%20Demos-FF0000?style=for-the-badge&logo=youtube&logoColor=white)](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
+ [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](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
+ [![BuyMeACoffee](https://img.shields.io/badge/Buy%20Me%20a%20Coffee-ffdd00?style=for-the-badge&logo=buy-me-a-coffee&logoColor=black)](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
+ [![Glama MCP Server](https://glama.ai/mcp/servers/asamiile/logic-lab/badge)](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
+ [![Watch on YouTube](https://img.shields.io/badge/YouTube-Watch%20Demos-FF0000?style=for-the-badge&logo=youtube&logoColor=white)](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
+ [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](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
+ [![BuyMeACoffee](https://img.shields.io/badge/Buy%20Me%20a%20Coffee-ffdd00?style=for-the-badge&logo=buy-me-a-coffee&logoColor=black)](https://buymeacoffee.com/asamiile)