De Stijl Generator
Number of iterations:


Weight of Divisions
None Vertical Horizontal

Weight of Colors
White Red Blue Yellow Black


About De Stijl
De Stijl (The Style) was an art movement founded in the Netherlands in 1917. Its members, led by Piet Mondrian, sought to express a universal aesthetic language through the reduction of forms to their most basic elements. This was expressed in the use of primary colors, simple geometric shapes, and vertical and horizontal lines. De Stijl had a profound impact on modern art and design, influencing the development of Abstract Expressionism, Minimalism, and the Bauhaus.
Using the Applet
Each image is generated by randomly choosing division lines and colors.

When you draw a new image, the app will generate a random rectangle. The color of this rectangle will be chosen at random according to the weights chosen in the menu. To increase the likelihood a particular color appears, increase its weight. Set the weight of a color to 0 if you do not want that color to appear.

After a rectangle is drawn and colored, it may be divided into two smaller rectangles. You can choose the weights for these divisions to adjust the likelihood that a particular rectangle divided vertically, horizontally, or not at all. The weights for vertical and horizontal division should add up to at least 1.

The algorithm can be abbreviated as
	  function draw( x, y, w, h ):
		  select random color
		  draw rectangle with top left corner (x,y) of width w and height h 
		  
	  function mondrian( x, y, w, h ):
		  if ( w or h is below threshold ):
			  return
		  else 
			  choose random value from 0, 1, or 2 
			  if ( value is 0 ):
				  do nothing
			  else if ( value is 1 ):
				  neww := random value between 0 and w 
				  mondrian( x, y, nw, h )
				  mondrian( x+nw, y, w-nw, h )
			  else if ( value is 2 ):
				  newh := random value between 0 and h 
				  mondrian( x, y, w, nh )
				  mondrian( x, y+nh, w, h-nh )
		  
	  
About the Applet
This applet was created using JavaScript and the matter.js 2D rigid body physics engine library.