                    (float z-near) (float z-far))))
 
 (defn point
+  "Draws a point, a coordinate in space at the dimension of one
+  pixel. The first parameter is the horizontal value for the point,
+  the second value is the vertical value for the point, and the
+  optional third value is the depth value. Drawing this shape in 3D
+  using the z parameter requires the P3D or OPENGL parameter in
+  combination with size as shown in the above example."
   ([x y] (.point *applet* (float x)(float y)))
   ([x y z] (.point *applet* (float x) (float y) (float z))))
 
 (defn point-light
+  "Adds a point light. Lights need to be included in the draw() to
+  remain persistent in a looping program. Placing them in the setup()
+  of a looping program will cause them to only have an effect the
+  first time through the loop. The affect of the r, g, and b
+  parameters is determined by the current color mode. The x, y, and z
+  parameters set the position of the light"
   [r g b x y z]
-  (.pointLight *applet* r g b x y z))
-
-(defn pop-matrix [] (.popMatrix *applet*))
+  (.pointLight *applet* (float r) (float g) (float b) (float x) (float y) (float z)))
+
+(defn pop-matrix
+  "Pops the current transformation matrix off the matrix
+  stack. Understanding pushing and popping requires understanding the
+  concept of a matrix stack. The push-matrix fn saves the current
+  coordinate system to the stack and pop-matrix restores the prior
+  coordinate system. push-matrix and pop-matrix are used in conjuction
+  with the other transformation methods and may be embedded to control
+  the scope of the transformations."
+  []
+  (.popMatrix *applet*))
 
 (defn pow
   "Facilitates exponential expressions. The pow() function is an

  (.curveTightness *applet* (float ti)))

(defn curve-vertex
  ([x y] (.curveVertex *applet* (float x) (float y)))
  ([x y z] (.curveVertex *applet* (float x) (float y) (float z))))


  ([[r g b] [x y z] [nx ny nz] angle concentration]
     (.spotLight *applet* r g b x y z nx ny nz angle concentration)))

(defn sq
  "Squares a number (multiplies a number by itself). The result is
  always a positive number, as multiplying two negative numbers always
  yields a positive result. For example, -1 * -1 = 1."
  [a]
  (PApplet/sq (float a)))

(defn sqrt
  "Calculates the square root of a number. The square root of a number
  is always positive, even though there may be a valid negative
  root. The square root s of number a is such that (= a (* s s)) . It
  is the opposite of squaring."
  [a]
  (PApplet/sqrt (float a)))

;; $$start
;; $$status
