diff --git a/index.html b/index.html new file mode 100644 index 0000000..d9d6294 --- /dev/null +++ b/index.html @@ -0,0 +1,38 @@ + + + + + + L-system playground + + + +

L-system Experiments

+ +

L-system Playground

+ + l-system project + +

Animated Grids

+ + curves project + + diff --git a/l-system/index.html b/l-system/index.html new file mode 100644 index 0000000..3741f34 --- /dev/null +++ b/l-system/index.html @@ -0,0 +1,836 @@ + + + + + + L-system playground + + + +
+
+

L-system curves

+ +

+ An L-system, or Lindenmayer system, is a parallel rewriting + system and a type of formal grammar used to model the growth of + biological organisms. L-systems can also be used to generate + space-filling curves and to describe mathematical processes, + such as fractals, through the iteration of production rules. +

+ +

+ Here are some L-system rules I gathered from various sources. I + apologize for missing attributions; some original sources are + lost and I need to recover them. Each curve is interactive and + can be modified as needed. +

+ +

+

+

+ +

+ The intentional decision has been made not to support branching, + usually represented by [ and ] symbols. + Hence, no L-system rules for trees or plants. I acknowledge that + these are powerful operations, yet my mental model suggests that + they could designed as a fork operation, and I didn't explore this + space yet. +

+
+
+ +
+ +
+ + order = 3 + angle = 90 + + A => AFBFA-F-BFAFB+F+AFBFA + B => BFAFB+F+AFBFA-F-BFAFB + +
+ +
+ + order = 4 + angle = 45 + + A => -FX + X => FX-FY-FX+FY+FX+FY+FX+FY+FX-FY-FX-FY-FX-FY-FX+FY+FX + F => E + Y => FY + +
+ + +
+ + order = 5 + angle = 90 + + A => +BF-AFA-FB+ + B => -AF+BFB+FA- + +
+ + +
+ + order = 5 + angle = 90 + + A => LFL+F+LFL + L => -RF+LFL+FR- + R => +LF-RFR-FL+ + +
+ +
+ + order = 4 + angle = 90 + + A => BF-F-BFFFC-F-FC+F+BF-F-BFFFC-F-FC + B => BFFFC-F-FC+F+B + C => C+F+BF-F-BFFFC + +
+ + +
+ + order = 4 + angle = 60 + + A => F++F++F + F => F-F++F-F + +
+ +
+ + order = 4 + angle = 60 + + A => F++F++F + F => F+F--F+F + +
+ +
+ + order = 4 + angle = 90 + + A => F+F+F+F + F => F+F-F-F+F + +
+ +
+ + order = 4 + angle = 90 + + A => FF+FF+FF+FF + F => F+F-F-F+F + +
+ + +
+ + order = 4 + angle = 90 + + A => BF+F+BF+F + B => BF-F+F-BF+F+BF-F+F-B + +
+ +
+ + + order = 5 + angle = 60 + + A => FXF--FF--FF + F => FF + X => --FXF++FXF++FXF-- + +
+ +
+ + order = 4 + angle = 60 + + A => --FAF++FAF++FAF-- + F => FF + +
+ +
+ + order = 5 + angle = 60 + + A => BF+AF+B + B => AF-BF-A + +
+ +
+ + order = 6 + angle = 90 + + A => X-X + X => XFX-XFX + +
+ +
+ + order = 8 + angle = 90 + + A => A+BF+ + B => -FA-B + +
+ +
+ + order = 3 + angle = 60 + + A => A+BF++BF-FA--FAFA-BF+ + B => -FA+BFBF++BF+FA--FA-B + +
+ +
+ + order = 3 + angle = 90 + + A => -YF + X => XFX-YF-YF+FX+FX-YF-YFFX+YF+FXFXYF-FX+YF+FXFX+YF-FXYF-YF-FX+FX+YFYF- + Y => +FXFX-YF-YF+FX+FXYF+FX-YFYF-FX-YF+FXYFYF-FX-YFFX+FX+YF-YF-FX+FX+YFY + +
+ + +
+ + order = 3 + angle = 90 + + A => F+F+F+F + F => F-F+F+FFF-F-F+F + +
+ + +
+ + order = 4 + angle = 90 + + A => F-F-F-F + F => FF-F+F-F-FF + +
+ + +
+ + order = 6 + angle = 120 + + A => F+F+F + F => F-F+F + +
+ +
+ + order = 4 + angle = 90 + + A => F+F+F+F + F => FF+F++F+F + +
+ +
+ + order = 4 + angle = 90 + + A => F+F+F+F + F => FF+F+F+F+FF + +
+ +
+ + order = 5 + angle = 90 + + A => F+F+F+F + F => F+FF++F+F + +
+ +
+ + order = 5 + angle = 90 + + A => F+F+F+F + F => F+F-F+F+F + +
+ +
+ + order = 4 + angle = 36 + + A => F++F++F++F++F + F => F++F++F+++++F-F++F + +
+ +
+ + order = 4 + angle = 90 + + A => F+F+F+F + F => FF+F-F+F+FF + +
+ +
+ + order = 4 + angle = 90 + + A => F+F+F+F + F => FF+F+F+F+F+F-F + +
+ +
+ + order = 8 + angle = 45 + + A => F + F => -F++F- + +
+ +
+ + order = 5 + angle = 45 + + A => -X--X + X => XFX--XFX + +
+ +
+ + order = 4 + angle = 72 + + A => F-F-F-F-F + F => F-F++F+F-F-F + +
+ +
+ + order = 20 + angle = 90 + + A => A+BF+BF + B => BF + +
+ +
+ + order = 10 + angle = 60 + + A => A+BF+B+BF+BF+BF+BF + B => BF + +
+ +
+ + order = 3 + angle = 90 + + A => AF+BFB+FA-F-AFAFA-FBFB+ + B => -AFAF+BFBFB+F+BF-AFA-FB + +
+ + +
+ + order = 4 + angle = 30 + + A => X + F => E + X => -F++F-X-F--F+Y---F--F+Y+F++F-X+++F++F-X-F++F-X+++F--F+Y-- + Y => +F++F-X-F--F+Y+F--F+Y---F--F+Y---F++F-X+++F++F-X+++F--F+Y + +
+
+ + + + + + + + + +