# Reference

- [Shapes](/p5-python-web/reference/shapes.md): the fundamental feature of p5 is that drawing shapes is easy! 2D and 3D shapes are available
- [2D](/p5-python-web/reference/shapes/2d.md): These pages explain how to use the 2D primitives in the library
- [point()](/p5-python-web/reference/shapes/2d/point.md): Point - Draws a point with the given inputs
- [line()](/p5-python-web/reference/shapes/2d/line.md): Line - Draws a line segment with the given inputs
- [rect()](/p5-python-web/reference/shapes/2d/rect.md): Rectangle - Draws a rectangle with the given inputs
- [square()](/p5-python-web/reference/shapes/2d/square.md): Square - Draws a square with the given inputs
- [triangle()](/p5-python-web/reference/shapes/2d/triangle.md): Triangle - Draws a triangle with the given inputs
- [circle()](/p5-python-web/reference/shapes/2d/circle.md): Circle - Draws a Circle with the given inputs
- [ellipse()](/p5-python-web/reference/shapes/2d/ellipse.md): Ellipse - Draws an Ellipse with the given inputs
- [arc()](/p5-python-web/reference/shapes/2d/arc.md): Arc - Draws an Arc with the given inputs
- [quad()](/p5-python-web/reference/shapes/2d/quad.md): Quadrilateral - Draws a Quadrilateral with the given inputs
- [beginShape()](/p5-python-web/reference/shapes/2d/beginshape.md): Draws a polygon with any number of given vertices.
- [3D](/p5-python-web/reference/shapes/3d.md): These pages explain how to use the 3D primitives in the library
- [plane()](/p5-python-web/reference/shapes/3d/plane.md): Plane - Draws a flat 2D bounded surface in 3D
- [box()](/p5-python-web/reference/shapes/3d/box.md): Box - Draws a cuboid/rectangular prism
- [sphere()](/p5-python-web/reference/shapes/3d/sphere.md): Sphere - Draws a 2-sphere (sphere in 3D space)
- [cone()](/p5-python-web/reference/shapes/3d/cone.md): Cone - Draws a cone in 3D space
- [cylinder()](/p5-python-web/reference/shapes/3d/cylinder.md): Cylinder - draws a cylinder in 3D space
- [ellipsoid()](/p5-python-web/reference/shapes/3d/ellipsoid.md): Ellipsoid - Draws an ellipsoid/deformed sphere in 3D s\[ace
- [torus()](/p5-python-web/reference/shapes/3d/torus.md): Torus - Draws a Torus or Donut-like shape in 3D space
- [Controlling the environment](/p5-python-web/reference/controlling-the-environment.md): These functions control other aspects of the canvas, or the modes of various drawing functions
- [coordinateMode()](/p5-python-web/reference/controlling-the-environment/coordinatemode.md): changes where the coordinates originate from
- [rectMode()](/p5-python-web/reference/controlling-the-environment/rectmode.md): changes the way a rectangle is drawn from the inputs
- [ellipseMode()](/p5-python-web/reference/controlling-the-environment/ellipsemode.md): changes the way an ellipse is drawn from the inputs
- [frameRate()](/p5-python-web/reference/controlling-the-environment/framerate.md): changes the number of frames drawn per second
- [setup()](/p5-python-web/reference/controlling-the-environment/setup.md): Initializes the canvas
- [draw()](/p5-python-web/reference/controlling-the-environment/draw.md): Renders to the canvas repeatedly, frame by frame
- [Built-in Variables](/p5-python-web/reference/built-in-variables.md): These variables are automatically available in all p5 sketches
- [Environment](/p5-python-web/reference/built-in-variables/environment.md): These variables keep track of attributes of the p5 environment
- [Keyboard](/p5-python-web/reference/built-in-variables/keyboard.md): These built-in variables will give you information about the keyboard.
- [Mouse](/p5-python-web/reference/built-in-variables/mouse.md)
- [Built-in Functions](/p5-python-web/reference/built-in-functions.md): These functions are automatically available in any p5 sketch
- [keyIsDown()](/p5-python-web/reference/built-in-functions/keyisdown.md): Checks whether a certain key is down
- [millis()](/p5-python-web/reference/built-in-functions/millis.md): Gets system's milliseconds
- [second()](/p5-python-web/reference/built-in-functions/second.md): Gets system's second
- [minute()](/p5-python-web/reference/built-in-functions/minute.md): Gets system's minute
- [hour()](/p5-python-web/reference/built-in-functions/hour.md): Get system's hour
- [translate()](/p5-python-web/reference/built-in-functions/translate.md): Shifts the entire coordinate system by a horizontal and vertical amount
- [rotate()](/p5-python-web/reference/built-in-functions/rotate.md): Rotates the entire coordinate system around the origin
- [createSlider()](/p5-python-web/reference/built-in-functions/createslider.md): Creates a HTML Slider element
- [createGraphics()](/p5-python-web/reference/built-in-functions/creategraphics.md): Creates an additional canvas that can be overlaid on any other existing canvases
- [createVector()](/p5-python-web/reference/built-in-functions/createvector.md): Creates a 2D or 3D Geometric vector from coordinates
- [Events](/p5-python-web/reference/events.md): These functions will automatically trigger upon certain events
- [Keyboard](/p5-python-web/reference/events/keyboard.md)
- [keyPressed()](/p5-python-web/reference/events/keyboard/keyboard.md)
- [keyReleased()](/p5-python-web/reference/events/keyboard/keyboard-1.md)
- [Mouse](/p5-python-web/reference/events/mouse.md)
- [mouseMoved()](/p5-python-web/reference/events/mouse/keyboard.md)
- [mouseDragged()](/p5-python-web/reference/events/mouse/keyboard-1.md)
- [mousePressed()](/p5-python-web/reference/events/mouse/keyboard-2.md)
- [doubleClicked()](/p5-python-web/reference/events/mouse/keyboard-3.md)
- [mouseWheel()](/p5-python-web/reference/events/mouse/keyboard-4.md)
- [Text](/p5-python-web/reference/text.md): These functions control the appearance of text on the canvas
- [text()](/p5-python-web/reference/text/text.md): Displays text on canvas
- [textSize()](/p5-python-web/reference/text/textsize.md): Set size of text
- [textAlign()](/p5-python-web/reference/text/textalign.md): Set how text is aligned
- [Math](/p5-python-web/reference/math.md): These functions give access to commonly used mathematical functions
- [drawTickAxes()](/p5-python-web/reference/math/drawtickaxes.md): Draws a grid of numbered horizontal and vertical lines showing the X and Y axes of the Cartesian plane
- [random()](/p5-python-web/reference/math/random.md): Generate a random number between two values based on a uniform probability distribution
- [randomGaussian()](/p5-python-web/reference/math/randomgaussian.md): Generate a random number based on a Gaussian probablity distribution
- [dist()](/p5-python-web/reference/math/dist.md): Calculate the distance between 2 points
- [linmap()](/p5-python-web/reference/math/linmap.md): Re-maps a number from one range to another.
- [bounce()](/p5-python-web/reference/math/linmap-1.md): Returns a value that varies back and forth between 2 given limits with time. The movement is linear.
- [wave()](/p5-python-web/reference/math/linmap-2.md): Returns a value that varies back and forth between 2 given limits with time. The motion is wave-like, NOT linear.
- [Colour and Outline](/p5-python-web/reference/colour-and-outline.md): These functions control colors and outlines of shapes
- [colorMode()](/p5-python-web/reference/colour-and-outline/colormode.md): Changes how colors are specified - using (Red, Green, Blue) or (Hue, Saturation, Brightness)
- [fill()](/p5-python-web/reference/colour-and-outline/fill.md): Changes color of shape interiors
- [stroke()](/p5-python-web/reference/colour-and-outline/stroke.md): Changes color of lines or shape borders
- [strokeWeight()](/p5-python-web/reference/colour-and-outline/strokeweight.md): Changes thickness of lines
- [background()](/p5-python-web/reference/colour-and-outline/background.md): Sets the background color of the canvas
- [Images & Audio](/p5-python-web/reference/images-and-audio.md): These functions allow external images or audio to be used in p5 sketches
- [loadImage() and image()](/p5-python-web/reference/images-and-audio/loadimage-and-image.md): Loads an image into the code's assets
- [loadSound()](/p5-python-web/reference/images-and-audio/loadsound.md): Loads a sound into the code's assets
- [3D Controls](/p5-python-web/reference/3d-controls.md): These controls allow for moving or navigating a 3D canvas (WEBGL enabled)
- [orbitControl()](/p5-python-web/reference/3d-controls/orbitcontrol.md): Allows the mouse to control the 3D camera
- [translate()](/p5-python-web/reference/3d-controls/translate.md): Translates the 3D coordinate system
- [rotateZ()](/p5-python-web/reference/3d-controls/rotatez.md): Rotates in 3D around the z-axis
- [rotateX()](/p5-python-web/reference/3d-controls/rotatex.md): Rotates in 3D around the x-axis
- [rotateY()](/p5-python-web/reference/3d-controls/rotatey.md): Rotates in 3D around the y-axis
- [scale()](/p5-python-web/reference/3d-controls/scale.md): Scales Object in 3D from the Origin
