51K

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 math nerds from team Browserling.
announcement check out our new project!
We just created something new for all science fans – SCIURLS – a neat science news aggragator. Check it out!
Grammar 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 Options
Curve width.
Curve height.
How many iterations to perform?
Angle of rotation.
Starting direction of movement.
Thickness of a curve.
Colors
Background color.
Curve color.

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
These options will be used automatically if you select this example.
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.
Starting direction of movement.
Thickness of a curve.
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
These options will be used automatically if you select this example.
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.
Starting direction of movement.
Thickness of a curve.
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
These options will be used automatically if you select this example.
Draw these symbols.
Skip these symbols.
Starting axiom.
Rewrite rule 1.
Curve width.
Curve height.
How many iterations to perform?
Angle of rotation.
Starting direction of movement.
Thickness of a curve.
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
These options will be used automatically if you select this example.
Draw these symbols.
Skip these symbols.
Starting axiom.
Rewrite rule 1.
Curve width.
Curve height.
How many iterations to perform?
Angle of rotation.
Starting direction of movement.
Thickness of a curve.
Background color.
Curve color.
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
These options will be used automatically if you select this example.
Draw these symbols.
Skip these symbols.
Starting axiom.
Rewrite rule 1.
Curve width.
Curve height.
How many iterations to perform?
Angle of rotation.
Starting direction of movement.
Thickness of a curve.
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
These options will be used automatically if you select this example.
Draw these symbols.
Skip these symbols.
Starting axiom.
Rewrite rule 1.
Curve width.
Curve height.
How many iterations to perform?
Angle of rotation.
Starting direction of movement.
Thickness of a curve.
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
These options will be used automatically if you select this example.
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.
Starting direction of movement.
Thickness of a curve.
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
These options will be used automatically if you select this example.
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.
Starting direction of movement.
Thickness of a curve.
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
These options will be used automatically if you select this example.
Draw these symbols.
Skip these symbols.
Starting axiom.
Rewrite rule 1.
Curve width.
Curve height.
How many iterations to perform?
Angle of rotation.
Starting direction of movement.
Thickness of a curve.
Background color.
Curve color.
Draw a Moore Fractal
In this example, we generate the Moore curve on a 200x200 pixel canvas. We tell the generator to run for 3 iterations and use dark-slate-gray and beige colors for the background and the curve. (Credit: Maurizio Butti.)
Required options
These options will be used automatically if you select this example.
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.
Starting direction of movement.
Thickness of a curve.
Background color.
Curve color.
Rounded Peano Curve
This example draws the rounded rhombus form of the Peano fractal. Here the rotation angle between the curve fragments is 45 degrees and the fractal is printed on a background with dimensions 300-by-300. (Credit: Maurizio Butti.)
Required options
These options will be used automatically if you select this example.
Draw these symbols.
Skip these symbols.
Starting axiom.
Rewrite rule 1.
Curve width.
Curve height.
How many iterations to perform?
Angle of rotation.
Starting direction of movement.
Thickness of a curve.
Background color.
Curve color.
Peano Curve at 22.5 Degrees
This example also draws the rounded rhombus form of the Peano fractal, however, the angle of rotation in this curve is 22.5 degrees. This makes the curve much smoother. (Credit: Maurizio Butti.)
Required options
These options will be used automatically if you select this example.
Draw these symbols.
Skip these symbols.
Starting axiom.
Rewrite rule 1.
Rewrite rule 2.
Rewrite rule 3.
Curve width.
Curve height.
How many iterations to perform?
Angle of rotation.
Starting direction of movement.
Thickness of a curve.
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!
All math tools
Didn't find the tool you were looking for? Let us know what tool we are missing and we'll build it!
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 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
Plot a Function
Draw graphs of mathematical functions.
Draw a LaTeX Formula
Create an image from a LaTeX expression.
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.
Calculate e Digit Sum
Find the sum of e digits.
Calculate Golden Ratio Digit Sum
Find the sum of Golden Ratio digits.
Calculate Pi Digit Sum
Find the sum of pi digits.
Generate Champernowne Digits
Generate Champernowne constant's digits.
Generate Supergolden Ratio Digits
Generate supergolden ratio constant's digits.
Find n-th Champernowne Digit
Calculate the n-th digit of Champernowne constant.
Decode a Look-and-say Sequence
Perform the inverse operation on a look-and-say sequence.
Calculate p-adic expansions of arbitrary numbers.
Generate Pandigital Number Sequence
Create a list of pandigital numbers.
Generate Stanley Number Sequence
Create a list of Stanley numbers.
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 Triangular Number Sequence
Create a list of triangle 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.
Create a list of Padovan numbers.
Generate Narayana's Cow Sequence
Create a list of Narayana's cow 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.
Continue a Number Sequence
Find a pattern in a number sequence and extend it.
Partition a Number
Find all partitions of the given integer.
Generate Tribonacci Numbers
Create a list of Tribonacci numbers.
Generate Tetranacci Numbers
Create a list of Tetranacci numbers.
Generate Pentanacci Numbers
Create a list of Pentanacci numbers.
Generate n-nacci Numbers
Create a list of higher order Fibonacci numbers.
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 Polynomial Progression
Create a polynomial 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.
Sort a Matrix
Sort matrix rows or columns.
Clamp a Matrix
Set an allowed range for all matrix values.
Randomize a Matrix
Shuffle all elements of a matrix.
Delete Matrix Rows
Delete one or more rows of the given matrix.
Delete Matrix Columns
Delete one or more columns of the given matrix.
Replace Matrix Elements
Replace certain matrix elements with other values.
Set Matrix Determinant
Create a matrix with the given determinant.
Create a Rotation Matrix
Create a rotation matrix from the given angle.
Decode a Rotation Matrix
Find the angle from the given rotation matrix.
Generate a Custom Matrix
Generate a matrix with specific properties and elements.
Generate a Dense Matrix
Generate a matrix with very few zero elements.
Generate a Sparse Matrix
Generate a matrix with very few non-zero elements.
Generate a Singular Matrix
Generate a degenerate matrix with a zero determinant.
Generate a Zeros Matrix
Generate a matrix with all 0's as elements.
Generate a Ones Matrix
Generate a matrix with all 0's as elements.
Generate a Binary Matrix
Generate a matrix with 0's and 1's as elements.
Generate a Square Matrix
Generate a matrix with n rows and n columns (n×n matrix).
Generate a Symmetric Matrix
Generate a matrix with symmetric elements along the diagonal.
Generate a Triangular Matrix
Generate an upper-triangular or lower-triangular matrix.
Generate a Diagonal Matrix
Generate a matrix with elements placed only on the diagonal.
Generate an Orthogonal Matrix
Generate a matrix with orthogonal rows and columns.
Multiply a Matrix by a Scalar
Multiply all matrix elements by a number.
Multiply a Matrix by a Vector
Multiply a matrix by a column vector.
Multiply a Vector by a Matrix
Multiply a row vector by a matrix.
Split a Matrix into Vectors
Create m or n vectors from an m×n matrix (from rows or cols).
Check if a Matrix is Singular
Determine if a matrix is degenerate.
Find Matrix Dimensions
Find the number of rows and columns of a matrix.
Find the Co-factor Matrix
Given a matrix, find its cofactor matrix.
Given a matrix, find its adjunct.
LU Factor a Matrix
Decompose a matrix into LU factors.
Find Matrix Eigenvalues
Find the eigenvalues of a matrix.
Find Matrix Trace
Find the sum of main diagonal elements of a matrix.
Find Matrix Diagonal Sum
Find the sum of all diagonals or antidiagonals of a matrix.
Find Matrix Row Sum
Find the sum of each row of a matrix.
Find Matrix Column Sum
Find the sum of each column of a matrix.
Find Matrix Element Sum
Find the sum of all matrix elements.
Find Matrix Element Product
Find the product of all matrix elements.
Prettify a Matrix
Beautify a matrix by neatly aligning all its columns.
Reformat a Matrix
Convert a matrix in one format to another format.
Visualize a Vector
Draw a 2d or 3d vector to show its magnitude and angle.
Sort a Vector
Sort vector components.
Clamp a Vector
Set the allowed range for all vector components.
Randomize a Vector
Randomize the order of vector components.
Truncate a Vector
Delete vector components.
Replace Vector Components
Replace certain vector components with other values.
Prettify a Vector
Beautify a vector and neatly align all its components.
Reformat a Vector
Convert a vector in one format to another format.
Transpose a Vector
Convert a row-vector to column-vector.
Duplicate a Vector
Create multiple copies of the same vector.
Increment a Vector
Increment vector components.
Decrement a Vector
Increment vector components.
Rotate a Vector
Rotate a vector by any angle.
Scale a Vector
Shrink or enlarge a vector by a constant factor.
Calculate Vector Angle
Find the angle that's formed between two vectors.
Set Vector Angle
Create pairs of vectors with a specific angle.
Normalize a Vector
Create a unit vector of length one from any given vector.
Generate a Random Vector
Create one or more random vectors of any length.
Generate a Custom Vector
Create custom vectors with specific components.
Generate a Dense Vector
Create a vector with very few zero components.
Generate a Sparse Vector
Create a vector with many zero components.
Generate a Null Vector
Create a vector all components equal to zero.
Generate a Ones Vector
Create a vector all components equal to one.
Generate a Unit Vector
Create one or more random vectors of length one.
Generate Opposite Vectors
Create pairs of antiparallel vectors.
Generate Parallel Vectors
Create pairs of parallel vectors.
Generate Perpendicular Vectors
Create pairs of perpendicular vectors.
Generate Orthogonal Vectors
Create pairs of orthogonal vectors.
Generate Orthonormal Vectors
Create pairs of perpendicular unit vectors of length one.
Find Vector Norm
Calculate L₁, L₂, L₃, L₄, L₅, and other vector norms.
Find Vector Length
Calculate the length of a vector.
Set Vector Length
Create vectors with a specific length.
Find Vector Dot Product
Calculate the scalar product of two vectors.
Set Vector Dot Product
Find two vectors with a specific scalar product value.
Find Vector Cross Product
Calculate the cross product of two vectors.
Set Vector Cross Product
Find two vectors with a specific cross product value.
Find Scalar Triple Product
Calculate the mixed product of three vectors.
Find Vector Triple Product
Calculate the vector triple product (back of the cab).
Calculate the scalar quadruple product of four vectors.
Calculate the vector product of four vectors.
Mix Vectors
Mix the components of multiple vectors.
Join Vectors
Concatenate two or more vectors.
Find the sum of two or more vectors.
Multiply Vectors
Multiply two or more vectors.
Multiply Vector by Constant
Multiply all vector components by a scalar value.
Find Vector Component Sum
Find the sum of all vector components.
Find Vector Component Product
Find the product of all vector components.
Find Vector Dimensions
Find the number of components in a vector.
Calculate Sine
Calculate the sine of an angle.
Visualize Sine
Draw the sine function.
Calculate Arcsine
Calculate the arcsine of an angle.
Visualize Arcsine
Draw the arcsine function.
Calculate Cosine
Calculate the cosine of an angle.
Visualize Cosine
Draw the cosine function.
Calculate Arccosine
Calculate the arccosine of an angle.
Visualize Arccosine
Draw the arccosine function.
Calculate Tangent
Calculate the tangent of an angle.
Visualize Tangent
Draw the tangent function.
Calculate Cotangent
Calculate the cotangent of an angle.
Visualize Cotangent
Draw the cotangent function.
Calculate Cosecant
Calculate the cosecant of an angle.
Visualize Cosecant
Draw the cosecant function.
Calculate Secant
Calculate the secant of an angle.
Visualize Secant
Draw the secant function.
Draw All Trigonometric Functions
Visualize all trigonometric functions at once.
Draw an Archimedean Spiral
Generate an Archimedean spiral curve.
Draw an Euler Spiral
Generate a Cornu spiral curve (polynomial spiral).
Draw a Fibonacci Spiral
Generate a Fibonacci spiral curve.
Draw a Theodorus Spiral
Generate a square root spiral.
Draw a Fermat Spiral
Generate a parabolic spiral curve.
Draw Fibonacci Rectangles
Generate a drawing of Fibonacci rectangles.
Generate a Padovan equiliteral triangles 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.
Draw a Gabriel's Horn
Draw a geometric figure with infinite surface area and finite volume.
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.
Analyze Numbers
Count how many times each number appears.
Rewrite a Number as a Sum
Create a sum that adds up to the given number.
Rewrite a Number as a Product
Create a product that multiplies up to the given number.
Generate a Multiplication Table
Draw an n×m multiplication table.
Generate a Division Table
Draw an n×m division table.
Generate a Modular Arithmetic Table
Draw an n×m modular arithmetic table for any modulus.
Draw a Pie Chart
Draw a pie chart and show relative sizes of data.
Draw a Bar Chart
Draw a bar chart and visualize data.
Draw a Column Chart
Draw a column chart and visualize data.
Draw a Line Chart
Draw a line chart and visualize data.
Draw an Area Chart
Draw an area chart and visualize data.
Visualize Percentage
Draw a chart that shows percentage.
Tile a Plane
Fill a plane by convex regular polygons.
Flip a Coin
Toss a coin and get head or tails.
Roll a Dice
Throw a dice and get a number on its side.
Generate a Maze
Draw a maze of any size and complexity.