# L-system generator

## World's simplest math tool

Free online Lindenmayer system generator. Just enter the axiom and rewrite rules and you'll automatically get a visualization of the grammar. There are no ads, popups or nonsense, just an awesome L-system viewer. Press a button — visualize a Lindenmayer system. Created by mathematicians for mathematicians.

i've redesigned my blog!
catonmat

Super exciting news! I just redesigned my catonmat.net blog. Now it has a new minimalistic design and is entirely powered by alien technology. Check it out!

A link to this tool, including input, options and all chained tools.

Can't convert.

L-system generator tool
What is a l-system generator?

This tool draws and visualizes L-system rules. The L-system is also known as the Lindenmayer system. It consists of an alphabet of symbols, a starting axiom and a set of rules that define how symbols get rewritten. With this tool you can specify which symbols to visualize, which symbols to skip, and how many iterations of rewriting to perform. Because of the recursive nature of the rewrite system it often produces self-similar fractals. Symbols plus (+) and minus (-) have a special meaning and they change the curve direction by the specified angle. You can set the dimensions for your L-system and choose the drawing start direction. To make it more visually appealing, you can also set the color for the background and for the curve line, set the line thickness and padding. To share your creation you can click the link icon and get a URL to the L-system you created. Mathabulous!

L-system generator examples
Click to use

Draw a Gosper Curve

This example uses L-system rules to generate a fractal Gosper curve. It uses four iterations and angle of 60 degrees. Background is set to green and line width to 4px.

**Required options**

Draw these symbols.

Skip these symbols.

Starting axiom.

Rewrite rule 1.

Rewrite rule 2.

Curve width.

Curve height.

How many iterations to perform?

Angle of rotation.

Thickness of a curve.

Padding around the image.

Background color.

Curve color.

Draw a Red Dragon Curve

This example generates a 10th order dragon curve using simple L-system rewrite rules. We set background to red as dragons love to spit fire. The L-system dimensions are set to 500x400px.

**Required options**

Draw these symbols.

Skip these symbols.

Starting axiom.

Rewrite rule 1.

Rewrite rule 2.

Curve width.

Curve height.

How many iterations to perform?

Angle of rotation.

Thickness of a curve.

Padding around the image.

Background color.

Curve color.

Draw an Icy Fractal

In this example a curve similar to freezing ice pattern is created by a single Lindenmayer system rule. We used cold colors to make it look like a real frost.

**Required options**

Draw these symbols.

Skip these symbols.

Starting axiom.

Rewrite rule 1.

Curve width.

Curve height.

How many iterations to perform?

Angle of rotation.

Thickness of a curve.

Padding around the image.

Background color.

Curve color.

Draw a Fractal Tree

This example visualizes L-system rules that look like a tree. This curve has an angle of 36 degrees and is 3 iterations deep. We used special symbols [ and ] in the first rule that mean save the current curve position to stack, and restore the position from stack.

**Required options**

Draw these symbols.

Skip these symbols.

Starting axiom.

Rewrite rule 1.

Curve width.

Curve height.

How many iterations to perform?

Angle of rotation.

Thickness of a curve.

Padding around the image.

Background color.

Curve color.

Draw a William McWorter's Pentadendrite

This example generates a McWorter's Pentigree curve using just one L-system rewrite rule with a rotation angle of 72 degrees. It also sets iterations to 4, padding to 5px and width of curve's line to 2px.

**Required options**

Draw these symbols.

Skip these symbols.

Starting axiom.

Rewrite rule 1.

Curve width.

Curve height.

How many iterations to perform?

Angle of rotation.

Thickness of a curve.

Padding around the image.

Background color.

Curve color.

Draw a Round Star

This example displays a non-standard L-system with an angle of 77 degrees. This curve consists of straight lines, which simultaneously form both a star and a circle.

**Required options**

Draw these symbols.

Skip these symbols.

Starting axiom.

Rewrite rule 1.

Curve width.

Curve height.

How many iterations to perform?

Angle of rotation.

Thickness of a curve.

Padding around the image.

Background color.

Curve color.

Draw a Island Curve

This example generates a L-system, which consists of many small rectangles that look like islands. There are two special restrictions here. The F symbol is used for drawing but the b symbol is skipped (if you remember that an L-system is just a turtle that walks around a canvas leaving a trace for every alphabet symbol, then the b symbol makes turtle move ahead without drawing a line segment).

**Required options**

Draw these symbols.

Skip these symbols.

Starting axiom.

Rewrite rule 1.

Rewrite rule 2.

Curve width.

Curve height.

How many iterations to perform?

Angle of rotation.

Thickness of a curve.

Padding around the image.

Background color.

Curve color.

Draw a Penrose Tiling

This example uses an L-system to generate a Penrose tiling. For this curve we use all 5 rules and use four characters for drawing. We also set the color of the background to black and yellow color for the line. Pretty!

**Required options**

Draw these symbols.

Skip these symbols.

Starting axiom.

Rewrite rule 1.

Rewrite rule 2.

Rewrite rule 3.

Rewrite rule 4.

Rewrite rule 5.

Curve width.

Curve height.

How many iterations to perform?

Angle of rotation.

Thickness of a curve.

Padding around the image.

Background color.

Curve color.

Draw a Koch curve

This example generates a variation of Koch star known as Cesero fractal with an angle of 80 degrees. It has a width of 600px and a height of 400px, it uses 6 iterations and the starting direction is set to left.

**Required options**

Draw these symbols.

Skip these symbols.

Starting axiom.

Rewrite rule 1.

Curve width.

Curve height.

How many iterations to perform?

Angle of rotation.

Thickness of a curve.

Padding around the image.

Background color.

Curve color.

Pro tips
Master online math tools

You can pass options to this tool using their codes as query arguments and it will automatically compute output. To get the code of an option, just hover over its icon. Here's how to type it in your browser's address bar. Click to try!

https://onlinemathtools.com/l-system-generator?&angle=60&draw=AB&skip=&axiom=A&rule-1=A%3DA-B--B%2BA%2B%2BAA%2BB-&rule-2=B%3D%2BA-BB--B-A%2B%2BA%2BB&width=400&height=400&iterations=4&direction=right&line-width=4&padding=5&background-color=%23014d0b&line-segment-color=%23d5ffc1

All math tools

Quickly visualize rules of an Lindenmayer rewrite system.

Quickly generate a list of primes.

Quickly generate a list of Fibonacci numbers.

Quickly generate a list of extended, negative Fibonacci numbers.

Quickly generate a list of Fibonacci primes.

Quickly generate a list of Fibonacci words.

Quickly generate a list of Tribonacci words.

Quickly generate a list of Lucas numbers.

Quickly generate a list of extended, negative Lucas numbers.

Quickly generate a list of Lucas numbers that are also prime numbers.

Quickly create a list of excessive numbers.

Quickly create a list of deficient numbers.

Quickly generate a list of perfect numbers.

Quickly create a list of slightly defective numbers.

Quickly generate random numbers.

Quickly generate a list of look-and-say sequence numbers.

Quickly create a list of Prouhet-Thue-Morse sequence values.

Quickly create a list of dragon curve sequence values.

Quickly create a list of Oldenburger-Kolakoski sequence values.

Quickly create a list of Gijswijt sequence values.

Quickly create a list of Golay-Rudin-Shapiro sequence values.

Quickly create a list of Baum-Sweet sequence values.

Quickly create a list of Moser-de Bruijn sequence values.

Quickly generate a list of even numbers.

Quickly generate a list of odd numbers.

Quickly find all factors of the given integer.

Quickly decompose integers into their prime factors.

Quickly find out if the given integer is a prime number.

Quickly check if the given number is a Fibonacci number

Quickly generate π constant's digits to arbitrary precision.

Quickly calculate Euler constant's digits to arbitrary precision.

Quickly calculate φ constant's digits to arbitrary precision.

Quickly calculate factorials.

Quickly create a triangluar array of binomial coefficients.

Quickly create a matrix with random elements.

Quickly create a unit matrix with ones along the diagonal.

Quickly find the transpose of a matrix.

Quickly find the inverse of a matrix.

Quickly calculate the determinant of a matrix.

Quickly find the sum of two or more matrices.

Find the difference of two or more matrices.

Quickly find the product of matrices.

Quickly draw a Hilbert space-filling curve.

Quickly draw a Heighway triangle fractal.

Quickly draw a Harter-Heighway space-filling dragon fractal.

Quickly draw a Davis-Knuth dragon fractal.

Quickly draw a triple dragon fractal.

Quickly draw a quaddragon fractal.

Quickly draw a hexdragon curve.

Quickly draw a Peano space-filling fractal.

Quickly draw a Moore space-filling curve.

Quickly draw a Peano-Gosper space-filling curve.

Quickly draw a Sierpinski arrowhead fractal curve.

Quickly draw a Sierpinski sieve fractal.

Quickly draw a Sierpinski closed plane fractal curve.

Quickly draw a Sierpinski carpet fractal.

Quickly draw a Sierpinski maze fractal.

Quickly draw a Sierpinski square fractal.

Quickly draw a Sierpinski pentaflake fractal.

Quickly draw a Sierpinski hexaflake fractal.

Quickly draw a Sierpinski n-gon fractal.

Quickly draw a Koch island fractal curve.

Quickly draw a Koch antisnowflake fractal.

Quickly draw a Koch triangle fractal.

Quickly draw a Koch n-gon fractal.

Quickly draw a quadratic Koch flake fractal.

Quickly draw a Cesaro fractal.

Quickly draw a Cesaro n-gon fractal.

Quickly draw a triflake fractal.

Quickly draw a quadric cross fractal.

Quickly draw a self-similar Levy C fractal curve.

Quickly draw a Vicsek snowflake fractal.

Quickly draw a T-square fractal.

Quickly draw a Cantor set fractal.

Quickly draw an asymmetric Cantor set fractal.

Quickly draw a generalized Cantor set fractal.

Quickly draw an ε-Cantor set fractal.

Quickly draw a Cantor dust fractal.

Quickly draw a Pythagoras tree fractal.

Quickly draw a Fibonacci word fractal.

Quickly draw an H-tree fractal.

Quickly draw a V-tree fractal.

Quickly generate a Morton Z-order fractal curve.

Coming soon
These math tools are on the way

Find n-th e Digit

Calculate the n-th digit of Euler's number.

Find n-th Golden Ratio Digit

Calculate the n-th digit of Golden Ratio.

Find n-th Pi Digit

Calculate the n-th digit of pi constant.

Decode a Look-and-say Sequence

Perform the inverse operation on a look-and-say sequence.

Generate Bell Number Sequence

Create a list of Bell numbers.

Generate Carmichael Number Sequence

Create a list of Charmichel numbers.

Generate Catalan Number Sequence

Create a list of Catalan numbers.

Generate Composite Number Sequence

Create a list of composite numbers.

Generate Secant Number Sequence

Create a list of secant numbers.

Generate Golomb Number Sequence

Create a list of Golomb-Silverman numbers.

Generate Euler's Totient Number Sequence

Create a list of Euler's phi numbers.

Generate Juggler Number Sequence

Create a list of juggler numbers.

Generate Lucky Number Sequence

Create a list of lucky numbers.

Generate Motzkin Number Sequence

Create a list of motzkin numbers.

Generate Padovan Number Sequence

Create a list of Padovan numbers.

Generate Pseudoperfect Number Sequence

Create a list of semiperfect numbers.

Generate Ulam Number Sequence

Create a list of Ulam numbers.

Generate Weird Number Sequence

Create a list of weird numbers.

Generate Superperfect Number Sequence

Create a list of superperfect numbers.

Partition a Number

Find all partitions of the given integer.

Generate Partition Number Sequence

Create a list of Partition function numbers.

Generate Arithmetic Progression

Create an arithmetic sequence of numbers.

Generate Geometric Progression

Create a geometric sequence of numbers.

Generate Natural Number Sequence

Create a list of natural numbers.

Generate Powers of Two

Create a list of numbers of powers of two.

Generate Powers of Ten

Create a list of numbers of powers of ten.

Multiply a Matrix by a Scalar

Multiply all matrix elements by a number.

Check if a Matrix is Singular

Determine if a matrix is degenerate.

Find the Co-factor Matrix

Given a matrix, find its cofactor matrix.

Find the Adjugate Matrix

Given a matrix, find its adjunct.

LU Factor a Matrix

Decompose a matrix into LU factors.

Find Matrix Eigenvalues

Find eigenvalues of a matrix.

Prettify a Matrix

Beautify a matrix by neatly aligning all its columns.

Reformat a Matrix

Convert matrix in one format to another format.

Draw a Fibonacci Spiral

Generate a Fibonacci spiral curve.

Draw Fibonacci Rectangles

Generate a drawing of Fibonacci rectangles.

Draw a Fibonacci Seed Head

Generate a Fibonacci flower head.

Draw a Padovan Fractal

Generate a Padovan equiliteral triangles fractal.

Draw a Apollonian Gasket

Generate an Apollonian gasket fractal.

Draw a Mandelbrot Fractal

Generate a Mandelbrot fractal.

Draw a Julia Fractal

Generate a Julia fractal.

Draw a Rauzy Fractal

Generate a Rauzy fractal.

Draw Blancmange Fractal Curve

Generate a Blancmange fractal.

Draw Weierstrass Function

Generate a Weierstrass fractal.

Draw Minkowski Question-mark Curve

Generate a Minkowski Question-mark fractal.

Draw Thomae's Function

Generate a Thomae's function (also known as popcorn or raindrop function).

Draw Dirichlet's Function

Generate a Dirichlet's function.

Convert Words to Numbers

Convert numbers as English text to actual digits.

Convert Numbers to Words

Convert numbers to written English text.

Convert Decimal Notation to Scientific Notation

Convert numbers written in decimal form to scientific form.

Convert Scientific Notation to Decimal Notation

Convert numbers written in scientific form to decimal form.

Round Numbers Up

Apply ceil operation to numbers.

Round Numbers Down

Apply floor operation to numbers.

Subscribe!
Never miss an update

Cool!

Notifications
We'll let you know when we add this tool

Cool!