world's simplest math tool

Free online Pythagoras tree fractal generator. Just press a button and you'll get a Pythagoras fractal. There are no ads, popups or nonsense, just an awesome Pythagorean tree generator. Press a button – get a tree. Created by math nerds from team Browserling.

This tool draws the Pythagoras tree fractal. The Pythagoras tree is created as follows – take a rectangle (or a square), then adjacent to its top side draw two more rectangles at an angle so that the sides of all three rectangles form a right-angled triangle. If this triangle is isosceles, then the tree will grow symmetrically in both directions. If the triangle's base angles are different, then the Pythagorean tree will be tilted to the side of the smallest angle. In this tool, you can set the tilt angle and see how the Pythagorean tree evolves with each step of the iteration. You can apply a gradient color the branches, add a contour line around each box, and set the background gradient. You can also set the distance that the tree will be drawn from the frame. Additionally, you can generate several different tree types – coniferous tree type, semi-coniferous tree type, alternating, and a random tree. Once you have generated the tree that you like, you can resize it to your desired dimensions by entering width and height in pixels. Mathabulous!

Click to try

This example generates a symmetric Pythagoras tree using twelve generations. It uses a square as the base figure. The outlines of recursively drawn squares are not visible here because it's set to zero. The fractal uses four colors to define two gradients. The first gradient is applied to the background and uses tolopea to black colors. The second is a smooth transition in the tree growth direction from a dodger-blue to spring-green color. Notice that as the branches twist, overlap and intersect, this fractal starts to look very similar to the Levy C curve.

Angle of rotation at each

level stays the same.

level stays the same.

At each level, the rotation angle

increases or decreases so that

it reaches 45 degrees in the last iteration.

increases or decreases so that

it reaches 45 degrees in the last iteration.

Size of each rectangle is chosen

arbitrarily.

arbitrarily.

How many times to recursively

draw tree branches?

draw tree branches?

Tree width.

Tree height.

Base rectangle width.

Base rectangle height.

Angle of rotation of the left

rectangle.

rectangle.

Tree branches outline thickness.

Space between the frame and

the Pythagoras tree.

the Pythagoras tree.

Starting direction of movement.

Tree background from color.

Tree background to color.

Rectangles fill from color.

Rectangles fill to color.

Color of the contour of the

rectangles.

rectangles.

In this example, we set the width of the initial rectangle to 100 pixels and height to 400 pixels. This base figure has a ratio of 4:1 and as a result, we grow a Pythagorean tree that's thin and tall. The rotation angle is 40 degrees, which makes the tree tilt to the right. We use an indigo to jaguar color gradient for the background and yellow to chartreuse color gradient from the Pythagoras tree, drawing it from the trunk to twigs.

Angle of rotation at each

level stays the same.

level stays the same.

At each level, the rotation angle

increases or decreases so that

it reaches 45 degrees in the last iteration.

increases or decreases so that

it reaches 45 degrees in the last iteration.

Size of each rectangle is chosen

arbitrarily.

arbitrarily.

How many times to recursively

draw tree branches?

draw tree branches?

Tree width.

Tree height.

Base rectangle width.

Base rectangle height.

Angle of rotation of the left

rectangle.

rectangle.

Tree branches outline thickness.

Space between the frame and

the Pythagoras tree.

the Pythagoras tree.

Starting direction of movement.

Tree background from color.

Tree background to color.

Rectangles fill from color.

Rectangles fill to color.

Color of the contour of the

rectangles.

rectangles.

In this example, we draw a coniferous Pythagoras tree, with individual segment gradient. In this type of tree, the angle of rotation alternates at every level. On the first level, the left square rotates 60 degrees, and on the second level, the right square rotates 60 degrees, and so on. We set the rectangular shape of the image (800x1000px) and generate 15 iterations, without using a border around squares.

Left and right rectangles change

rotation angle at each level.

rotation angle at each level.

At each level, the rotation angle

increases or decreases so that

it reaches 45 degrees in the last iteration.

increases or decreases so that

it reaches 45 degrees in the last iteration.

Size of each rectangle is chosen

arbitrarily.

arbitrarily.

How many times to recursively

draw tree branches?

draw tree branches?

Tree width.

Tree height.

Base rectangle width.

Base rectangle height.

Angle of rotation of the left

rectangle.

rectangle.

Tree branches outline thickness.

Space between the frame and

the Pythagoras tree.

the Pythagoras tree.

Starting direction of movement.

Tree background from color.

Tree background to color.

Rectangles fill from color.

Rectangles fill to color.

Color of the contour of the

rectangles.

rectangles.

This example draws a semi-coniferous type of tree. This type alternates the rotation angle every two levels. On the first and second levels, the left square rotates by 50 degrees, and on the third and fourth by 90-50 = 40 degrees. The angles change up to the 11th iteration level this way. We fill the tree with a gradient from the roots to leaves and draw a limeade color line around branches.

Left and right rectangles change

rotation angle every two levels.

rotation angle every two levels.

increases or decreases so that

it reaches 45 degrees in the last iteration.

Size of each rectangle is chosen

arbitrarily.

arbitrarily.

How many times to recursively

draw tree branches?

draw tree branches?

Tree width.

Tree height.

Base rectangle width.

Base rectangle height.

Angle of rotation of the left

rectangle.

rectangle.

Tree branches outline thickness.

Space between the frame and

the Pythagoras tree.

the Pythagoras tree.

Starting direction of movement.

Tree background from color.

Tree background to color.

Rectangles fill from color.

Rectangles fill to color.

Color of the contour of the

rectangles.

rectangles.

In this example, we generate a tree that looks very realistic, like you see in nature. This is achieved by selecting the semi-coniferous tree type option (where alpha and beta angles swap every two levels), setting the alpha angle to 34 degrees (beta is automatically set to 56 degrees), and using a non-square base rectangle. The height of each rectangle is 3 times greater than its width. This aspect ratio makes this Pythagoras tree look very realistic and all branches bend very smoothly. We also chose to use a gradient only for the background here and draw 14 iterative levels.

Left and right rectangles change

rotation angle every two levels.

rotation angle every two levels.

increases or decreases so that

it reaches 45 degrees in the last iteration.

Size of each rectangle is chosen

arbitrarily.

arbitrarily.

How many times to recursively

draw tree branches?

draw tree branches?

Tree width.

Tree height.

Base rectangle width.

Base rectangle height.

Angle of rotation of the left

rectangle.

rectangle.

Tree branches outline thickness.

Space between the frame and

the Pythagoras tree.

the Pythagoras tree.

Starting direction of movement.

Tree background from color.

Tree background to color.

Rectangles fill from color.

Rectangles fill to color.

Color of the contour of the

rectangles.

rectangles.

This example draws an alternating type of tree. In this case, every pair of squares exchange base corner angles. Here we set the rotation angle to 58 degrees, which then turns to 32 degrees for the next pair of squares, then to 58 again, then 32, and so on. Also, in this example, we're using an interesting combination of colors for the tree – we don't use gradients and set the same color for the background and squares, and another for the contour. As a result, we get a transparent-looking tree.

Left and right rectangles change

rotation angle every time.

rotation angle every time.

increases or decreases so that

it reaches 45 degrees in the last iteration.

Size of each rectangle is chosen

arbitrarily.

arbitrarily.

How many times to recursively

draw tree branches?

draw tree branches?

Tree width.

Tree height.

Base rectangle width.

Base rectangle height.

Angle of rotation of the left

rectangle.

rectangle.

Tree branches outline thickness.

Space between the frame and

the Pythagoras tree.

the Pythagoras tree.

Starting direction of movement.

Tree background from color.

Tree background to color.

Rectangles fill from color.

Rectangles fill to color.

Color of the contour of the

rectangles.

rectangles.

Believe or not, this is also a Pythagorean tree. You've got to agree that it has a very unusual appearance. The reason it's so weird is that the width of each rectangle is 5 times greater than its height. It's drawn using the alternating-angles method with the initial rotation angle of 50 degrees. It uses white fill color for all rectangles, Monza to flirt color gradient for the background and dark red color for the contour.

Left and right rectangles change

rotation angle every time.

rotation angle every time.

increases or decreases so that

it reaches 45 degrees in the last iteration.

Size of each rectangle is chosen

arbitrarily.

arbitrarily.

How many times to recursively

draw tree branches?

draw tree branches?

Tree width.

Tree height.

Base rectangle width.

Base rectangle height.

Angle of rotation of the left

rectangle.

rectangle.

Tree branches outline thickness.

Space between the frame and

the Pythagoras tree.

the Pythagoras tree.

Starting direction of movement.

Tree background from color.

Tree background to color.

Rectangles fill from color.

Rectangles fill to color.

Color of the contour of the

rectangles.

rectangles.

In this example, we introduce some randomness in our Pythagoras trees. This example generates a Pythagoras tree that uses a random angle for every tree level. Note that one angle is randomly selected for every recursion level and it doesn't change on that level. For example, on the fifth level all triangles will have the same angle but fourth and sixth levels will have different angles. Every time you click on the example, you'll get something new because of randomization. Also, you can just press the Draw a Pythagoras Tree button to get a new, random Pythagoras tree.

Random rotation angle is selected

for each level.

for each level.

increases or decreases so that

it reaches 45 degrees in the last iteration.

Size of each rectangle is chosen

arbitrarily.

arbitrarily.

How many times to recursively

draw tree branches?

draw tree branches?

Tree width.

Tree height.

Base rectangle width.

Base rectangle height.

Angle of rotation of the left

rectangle.

rectangle.

Tree branches outline thickness.

Space between the frame and

the Pythagoras tree.

the Pythagoras tree.

Starting direction of movement.

Tree background from color.

Tree background to color.

Rectangles fill from color.

Rectangles fill to color.

Color of the contour of the

rectangles.

rectangles.

This example uses a different tree randomization method. Here the rotation angles are randomly selected for each pair of squares. The branches each time tilt in different directions, creating a chaotic tree shape. An interesting feature of this tree is its disappearance at the tips. As we've set only the lower color of the tree's gradient, its upper part becomes transparent, and only the white outline shows the shape of twigs and twiglets.

Random rotation angle is selected

for all rectangles.

for all rectangles.

increases or decreases so that

it reaches 45 degrees in the last iteration.

Size of each rectangle is chosen

arbitrarily.

arbitrarily.

How many times to recursively

draw tree branches?

draw tree branches?

Tree width.

Tree height.

Base rectangle width.

Base rectangle height.

Angle of rotation of the left

rectangle.

rectangle.

Tree branches outline thickness.

Space between the frame and

the Pythagoras tree.

the Pythagoras tree.

Starting direction of movement.

Tree background from color.

Tree background to color.

Rectangles fill from color.

Rectangles fill to color.

Color of the contour of the

rectangles.

rectangles.

This example uses the additional symmetrize function. This function gradually increases (or decreases) the angle to 45°. In our example, the tree starts at 10° and we generate 10 iterations of the tree. To achieve symmetry this angle has to be increased to 45°. To do it, at every iteration the angle increases by 3.5°. We can quickly calculate that by generating 10 levels we get 3.5° × 10 = 35° plus the initial 10° makes it 45°.

Left and right rectangles change

rotation angle at each level.

rotation angle at each level.

increases or decreases so that

it reaches 45 degrees in the last iteration.

Size of each rectangle is chosen

arbitrarily.

arbitrarily.

How many times to recursively

draw tree branches?

draw tree branches?

Tree width.

Tree height.

Base rectangle width.

Base rectangle height.

Angle of rotation of the left

rectangle.

rectangle.

Tree branches outline thickness.

Space between the frame and

the Pythagoras tree.

the Pythagoras tree.

Starting direction of movement.

Tree background from color.

Tree background to color.

Rectangles fill from color.

Rectangles fill to color.

Color of the contour of the

rectangles.

rectangles.

In this example, the angle of rotation of the left square is 30 degrees and the right is 60 degrees. As a result, left and right squares have different sizes and the whole tree is tilted to the left side. We also stretched the image horizontally by setting its size to 700x600px and set a black outline for squares with a thickness of 2px.

Angle of rotation at each

level stays the same.

level stays the same.

increases or decreases so that

it reaches 45 degrees in the last iteration.

Size of each rectangle is chosen

arbitrarily.

arbitrarily.

How many times to recursively

draw tree branches?

draw tree branches?

Tree width.

Tree height.

Base rectangle width.

Base rectangle height.

Angle of rotation of the left

rectangle.

rectangle.

Tree branches outline thickness.

Space between the frame and

the Pythagoras tree.

the Pythagoras tree.

Starting direction of movement.

Tree background from color.

Tree background to color.

Rectangles fill from color.

Rectangles fill to color.

Color of the contour of the

rectangles.

rectangles.

This example turns on the randomize rectangle sizes function. It does the obvious thing – the size of each rectangle gets randomized. Note that only the height can be randomized because the width is automatically computed so that every pair of rectangles formed a right triangle. In our case, the height is a random number from 1 to 200 (because we set the base rectangle's height to 200). This example is similar to the first example where we're drawing a regular Pythagorean tree with a base angle of 45 degrees but symmetry is lost here because of height randomization.

Angle of rotation at each

level stays the same.

level stays the same.

increases or decreases so that

it reaches 45 degrees in the last iteration.

Size of each rectangle is chosen

arbitrarily.

arbitrarily.

How many times to recursively

draw tree branches?

draw tree branches?

Tree width.

Tree height.

Base rectangle width.

Base rectangle height.

Angle of rotation of the left

rectangle.

rectangle.

Tree branches outline thickness.

Space between the frame and

the Pythagoras tree.

the Pythagoras tree.

Starting direction of movement.

Tree background from color.

Tree background to color.

Rectangles fill from color.

Rectangles fill to color.

Color of the contour of the

rectangles.

rectangles.

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://onlinetools.com/math/generate-pythagoras-tree?width=600&height=600&base-width=100&base-height=100&iterations=12&gradient-in-tree-direction=true&background-from-color=%2523110152&background-to-color=black&fill-from-color=%25231395ff&fill-to-color=%252303ff5b&line-segment-color=&line-width=&padding=10&angle=45&direction=up®ular-tree=true&symmetrize-tree=false&randomize-rectangle-sizes=false

Didn't find the tool you were looking for? Let us know what tool we are missing and we'll build it!

L-system Generator

Quickly visualize rules of an Lindenmayer rewrite system.

Generate Prime Numbers

Quickly generate a list of primes.

Generate Fibonacci Numbers

Quickly generate a list of Fibonacci numbers.

Generate Negafibonacci Numbers

Quickly generate a list of extended, negative Fibonacci numbers.

Generate Fibonacci Primes

Quickly generate a list of Fibonacci primes.

Generate Fibonacci Words

Quickly generate a list of Fibonacci words.

Generate Tribonacci Words

Quickly generate a list of Tribonacci words.

Generate Lucas Numbers

Quickly generate a list of Lucas numbers.

Generate Negalucas Numbers

Quickly generate a list of extended, negative Lucas numbers.

Generate Lucas Primes

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

Generate Abundant Number Sequence

Quickly create a list of excessive numbers.

Generate Deficient Number Sequence

Quickly create a list of deficient numbers.

Generate Perfect Numbers

Quickly generate a list of perfect numbers.

Generate Almost Perfect Numbers

Quickly create a list of slightly defective numbers.

Generate Random Numbers

Quickly generate random numbers.

Generate Look-and-say Sequence

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

Generate Prouhet-Thue-Morse Sequence

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

Generate Paperfolding Sequence

Quickly create a list of dragon curve sequence values.

Generate Kolakoski Sequence

Quickly create a list of Oldenburger-Kolakoski sequence values.

Generate Gijswijt's Sequence

Quickly create a list of Gijswijt sequence values.

Generate Rudin-Shapiro Sequence

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

Generate Baum-Sweet Sequence

Quickly create a list of Baum-Sweet sequence values.

Generate Moser-de Bruijn Sequence

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

Generate Even Numbers

Quickly generate a list of even numbers.

Generate Odd Numbers

Quickly generate a list of odd numbers.

Find All Divisors of a Number

Quickly find all factors of the given integer.

Find Prime Factors

Quickly decompose integers into their prime factors.

Test if a Number is a Prime

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

Test if a Number is Fibonacci

Quickly check if the given number is a Fibonacci number

Generate Pi Digits

Quickly generate π constant's digits to arbitrary precision.

Generate e Digits

Quickly calculate Euler constant's digits to arbitrary precision.

Generate Golden Ratio Digits

Quickly calculate φ constant's digits to arbitrary precision.

Calculate a Factorial

Quickly calculate factorials.

Generate Pascal's Triangle

Quickly create a triangluar array of binomial coefficients.

Generate Random Matrices

Quickly create a matrix with random elements.

Generate an Identity Matrix

Quickly create a unit matrix with ones along the diagonal.

Transpose a Matrix

Quickly find the transpose of a matrix.

Invert a Matrix

Quickly find the inverse of a matrix.

Find the Determinant of a Matrix

Quickly calculate the determinant of a matrix.

Add Matrices

Quickly find the sum of two or more matrices.

Subtract Matrices

Find the difference of two or more matrices.

Multiply Matrices

Quickly find the product of matrices.

Generate a Hilbert Curve

Quickly draw a Hilbert space-filling curve.

Generate a Heighway Triangle

Quickly draw a Heighway triangle fractal.

Generate a Dragon Curve

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

Generate a Twindragon Curve

Quickly draw a Davis-Knuth dragon fractal.

Generate a Terdragon Curve

Quickly draw a triple dragon fractal.

Generate a Quaddragon Curve

Quickly draw a quaddragon fractal.

Generate a Hexadragon Fractal

Quickly draw a hexdragon curve.

Generate a Peano Curve

Quickly draw a Peano space-filling fractal.

Generate a Moore Curve

Quickly draw a Moore space-filling curve.

Generate a Gosper Curve

Quickly draw a Peano-Gosper space-filling curve.

Generate a Sierpinski Arrowhead Curve

Quickly draw a Sierpinski arrowhead fractal curve.

Generate a Sierpinski Triangle

Quickly draw a Sierpinski sieve fractal.

Generate a Sierpinski Curve

Quickly draw a Sierpinski closed plane fractal curve.

Generate a Sierpinski Carpet

Quickly draw a Sierpinski carpet fractal.

Generate a Sierpinski Maze

Quickly draw a Sierpinski maze fractal.

Generate a Sierpinski Square

Quickly draw a Sierpinski square fractal.

Generate a Sierpinski Pentagon

Quickly draw a Sierpinski pentaflake fractal.

Generate a Sierpinski Hexagon

Quickly draw a Sierpinski hexaflake fractal.

Generate a Sierpinski Polyflake

Quickly draw a Sierpinski n-gon fractal.

Generate a Koch Star

Quickly draw a Koch island fractal curve.

Generate a Koch Anti-snowflake

Quickly draw a Koch antisnowflake fractal.

Generate a Koch Triangle

Quickly draw a Koch triangle fractal.

Generate a Koch Polyflake

Quickly draw a Koch n-gon fractal.

Generate a Quadratic Koch Island

Quickly draw a quadratic Koch flake fractal.

Generate a Cesaro Fractal

Quickly draw a Cesaro fractal.

Generate a Cesaro Polyflake

Quickly draw a Cesaro n-gon fractal.

Generate a Triflake Curve

Quickly draw a triflake fractal.

Generate a Quadratic Cross Fractal

Quickly draw a quadric cross fractal.

Generate a Levy C Curve

Quickly draw a self-similar Levy C fractal curve.

Generate a Vicsek Fractal

Quickly draw a Vicsek snowflake fractal.

Generate a T-square Fractal

Quickly draw a T-square fractal.

Generate a Cantor Set

Quickly draw a Cantor set fractal.

Generate an Asymmetric Cantor Set

Quickly draw an asymmetric Cantor set fractal.

Generate a Generalized Cantor Set

Quickly draw a generalized Cantor set fractal.

Generate a Smith-Volterra-Cantor Set

Quickly draw an ε-Cantor set fractal.

Generate a Cantor Dust Fractal

Quickly draw a Cantor dust fractal.

Generate a Pythagoras Tree Fractal

Quickly draw a Pythagoras tree fractal.

Generate a Fibonacci Word Fractal

Quickly draw a Fibonacci word fractal.

Generate an H-Fractal

Quickly draw an H-tree fractal.

Generate a V-tree Fractal

Quickly draw a V-tree fractal.

Generate a Z-Order Curve

Quickly generate a Morton Z-order fractal curve.

Created with love by

51K

@browserling

51K

@browserling

We're Browserling — a friendly and fun cross-browser testing company powered by alien technology. At Browserling we love to make people's lives easier, so we created this collection of math tools. Unlike many other math tools that require advanced math knowledge, we made our tools as simple as possible. All tools have the same user interface and they are enjoyed by millions of users every month. Our math tools are actually powered by our web developer tools that we created over the last couple of years. Check them out!

These math tools are on the way!

Clock-walk Digits

Walk a number digit-by-digit following the clock hour hand.

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.

Generate P-adic Expansions

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.

Generate Padovan Number Sequence

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.

Find the Adjugate 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).

Find Scalar Quadruple Product

Calculate the scalar quadruple product of four vectors.

Find Vector Quadruple Product

Calculate the vector product of four vectors.

Mix Vectors

Mix the components of multiple vectors.

Join Vectors

Concatenate two or more vectors.

Add 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.

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.

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 an Addition Table

Draw an n×m addition 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.

Subscribe to our updates. We'll let you know when we release new tools, features, and organize online workshops.

Enter your email here

Click to reveal a secret

Secret message

If you love our tools, then we love you, too! Use coupon code MATHLING to get a discount for our premium plans.