---
title: "KCL Standard Library"
excerpt: "Documentation for the KCL standard library for the Zoo Design Studio."
layout: manual
---

## Table of Contents

### Functions

* [**std**](/docs/kcl-std/modules/std)
  * [`appearance`](/docs/kcl-std/appearance)
  * [`assert`](/docs/kcl-std/assert)
  * [`assertIs`](/docs/kcl-std/assertIs)
  * [`clone`](/docs/kcl-std/functions/std-clone)
  * [`helix`](/docs/kcl-std/functions/std-helix)
  * [`offsetPlane`](/docs/kcl-std/functions/std-offsetPlane)
  * [`patternLinear2d`](/docs/kcl-std/patternLinear2d)
* [**std::array**](/docs/kcl-std/modules/std-array)
  * [`map`](/docs/kcl-std/functions/std-array-map)
  * [`pop`](/docs/kcl-std/functions/std-array-pop)
  * [`push`](/docs/kcl-std/functions/std-array-push)
  * [`reduce`](/docs/kcl-std/functions/std-array-reduce)
* [**std::math**](/docs/kcl-std/modules/std-math)
  * [`abs`](/docs/kcl-std/functions/std-math-abs)
  * [`acos`](/docs/kcl-std/functions/std-math-acos)
  * [`asin`](/docs/kcl-std/functions/std-math-asin)
  * [`atan`](/docs/kcl-std/functions/std-math-atan)
  * [`atan2`](/docs/kcl-std/functions/std-math-atan2)
  * [`ceil`](/docs/kcl-std/functions/std-math-ceil)
  * [`cos`](/docs/kcl-std/functions/std-math-cos)
  * [`floor`](/docs/kcl-std/functions/std-math-floor)
  * [`legAngX`](/docs/kcl-std/functions/std-math-legAngX)
  * [`legAngY`](/docs/kcl-std/functions/std-math-legAngY)
  * [`legLen`](/docs/kcl-std/functions/std-math-legLen)
  * [`ln`](/docs/kcl-std/functions/std-math-ln)
  * [`log`](/docs/kcl-std/functions/std-math-log)
  * [`log10`](/docs/kcl-std/functions/std-math-log10)
  * [`log2`](/docs/kcl-std/functions/std-math-log2)
  * [`max`](/docs/kcl-std/functions/std-math-max)
  * [`min`](/docs/kcl-std/functions/std-math-min)
  * [`polar`](/docs/kcl-std/functions/std-math-polar)
  * [`pow`](/docs/kcl-std/functions/std-math-pow)
  * [`rem`](/docs/kcl-std/functions/std-math-rem)
  * [`round`](/docs/kcl-std/functions/std-math-round)
  * [`sin`](/docs/kcl-std/functions/std-math-sin)
  * [`sqrt`](/docs/kcl-std/functions/std-math-sqrt)
  * [`tan`](/docs/kcl-std/functions/std-math-tan)
* [**std::sketch**](/docs/kcl-std/modules/std-sketch)
  * [`angledLine`](/docs/kcl-std/angledLine)
  * [`angledLineThatIntersects`](/docs/kcl-std/angledLineThatIntersects)
  * [`arc`](/docs/kcl-std/arc)
  * [`bezierCurve`](/docs/kcl-std/bezierCurve)
  * [`circle`](/docs/kcl-std/functions/std-sketch-circle)
  * [`circleThreePoint`](/docs/kcl-std/circleThreePoint)
  * [`close`](/docs/kcl-std/close)
  * [`extrude`](/docs/kcl-std/extrude)
  * [`getCommonEdge`](/docs/kcl-std/getCommonEdge)
  * [`getNextAdjacentEdge`](/docs/kcl-std/getNextAdjacentEdge)
  * [`getOppositeEdge`](/docs/kcl-std/getOppositeEdge)
  * [`getPreviousAdjacentEdge`](/docs/kcl-std/getPreviousAdjacentEdge)
  * [`involuteCircular`](/docs/kcl-std/involuteCircular)
  * [`lastSegX`](/docs/kcl-std/lastSegX)
  * [`lastSegY`](/docs/kcl-std/lastSegY)
  * [`line`](/docs/kcl-std/line)
  * [`loft`](/docs/kcl-std/loft)
  * [`patternCircular2d`](/docs/kcl-std/patternCircular2d)
  * [`patternTransform2d`](/docs/kcl-std/functions/std-sketch-patternTransform2d)
  * [`polygon`](/docs/kcl-std/polygon)
  * [`profileStart`](/docs/kcl-std/profileStart)
  * [`profileStartX`](/docs/kcl-std/profileStartX)
  * [`profileStartY`](/docs/kcl-std/profileStartY)
  * [`revolve`](/docs/kcl-std/functions/std-sketch-revolve)
  * [`segAng`](/docs/kcl-std/segAng)
  * [`segEnd`](/docs/kcl-std/segEnd)
  * [`segEndX`](/docs/kcl-std/segEndX)
  * [`segEndY`](/docs/kcl-std/segEndY)
  * [`segLen`](/docs/kcl-std/segLen)
  * [`segStart`](/docs/kcl-std/segStart)
  * [`segStartX`](/docs/kcl-std/segStartX)
  * [`segStartY`](/docs/kcl-std/segStartY)
  * [`startProfile`](/docs/kcl-std/startProfile)
  * [`startSketchOn`](/docs/kcl-std/startSketchOn)
  * [`subtract2d`](/docs/kcl-std/subtract2d)
  * [`sweep`](/docs/kcl-std/sweep)
  * [`tangentToEnd`](/docs/kcl-std/tangentToEnd)
  * [`tangentialArc`](/docs/kcl-std/tangentialArc)
  * [`xLine`](/docs/kcl-std/xLine)
  * [`yLine`](/docs/kcl-std/yLine)
* [**std::solid**](/docs/kcl-std/modules/std-solid)
  * [`chamfer`](/docs/kcl-std/functions/std-solid-chamfer)
  * [`fillet`](/docs/kcl-std/functions/std-solid-fillet)
  * [`hollow`](/docs/kcl-std/functions/std-solid-hollow)
  * [`intersect`](/docs/kcl-std/intersect)
  * [`patternCircular3d`](/docs/kcl-std/patternCircular3d)
  * [`patternLinear3d`](/docs/kcl-std/patternLinear3d)
  * [`patternTransform`](/docs/kcl-std/functions/std-solid-patternTransform)
  * [`shell`](/docs/kcl-std/functions/std-solid-shell)
  * [`subtract`](/docs/kcl-std/subtract)
  * [`union`](/docs/kcl-std/union)
* [**std::transform**](/docs/kcl-std/modules/std-transform)
  * [`mirror2d`](/docs/kcl-std/functions/std-transform-mirror2d)
  * [`rotate`](/docs/kcl-std/rotate)
  * [`scale`](/docs/kcl-std/scale)
  * [`translate`](/docs/kcl-std/translate)
* [**std::units**](/docs/kcl-std/modules/std-units)
  * [`units::toCentimeters`](/docs/kcl-std/functions/std-units-toCentimeters)
  * [`units::toDegrees`](/docs/kcl-std/functions/std-units-toDegrees)
  * [`units::toFeet`](/docs/kcl-std/functions/std-units-toFeet)
  * [`units::toInches`](/docs/kcl-std/functions/std-units-toInches)
  * [`units::toMeters`](/docs/kcl-std/functions/std-units-toMeters)
  * [`units::toMillimeters`](/docs/kcl-std/functions/std-units-toMillimeters)
  * [`units::toRadians`](/docs/kcl-std/functions/std-units-toRadians)
  * [`units::toYards`](/docs/kcl-std/functions/std-units-toYards)

### Constants

* [**std**](/docs/kcl-std/modules/std)
  * [`END`](/docs/kcl-std/consts/std-END)
  * [`START`](/docs/kcl-std/consts/std-START)
  * [`X`](/docs/kcl-std/consts/std-X)
  * [`XY`](/docs/kcl-std/consts/std-XY)
  * [`XZ`](/docs/kcl-std/consts/std-XZ)
  * [`Y`](/docs/kcl-std/consts/std-Y)
  * [`YZ`](/docs/kcl-std/consts/std-YZ)
  * [`Z`](/docs/kcl-std/consts/std-Z)
* [**std::math**](/docs/kcl-std/modules/std-math)
  * [`E`](/docs/kcl-std/consts/std-math-E)
  * [`PI`](/docs/kcl-std/consts/std-math-PI)
  * [`TAU`](/docs/kcl-std/consts/std-math-TAU)
* [**std::sweep**](/docs/kcl-std/modules/std-sweep)
  * [`sweep::SKETCH_PLANE`](/docs/kcl-std/consts/std-sweep-SKETCH_PLANE)
  * [`sweep::TRAJECTORY`](/docs/kcl-std/consts/std-sweep-TRAJECTORY)
* [**std::turns**](/docs/kcl-std/modules/std-turns)
  * [`turns::HALF_TURN`](/docs/kcl-std/consts/std-turns-HALF_TURN)
  * [`turns::QUARTER_TURN`](/docs/kcl-std/consts/std-turns-QUARTER_TURN)
  * [`turns::THREE_QUARTER_TURN`](/docs/kcl-std/consts/std-turns-THREE_QUARTER_TURN)
  * [`turns::ZERO`](/docs/kcl-std/consts/std-turns-ZERO)

### Types

See also the [types overview](/docs/kcl-lang/types)

* [**Primitive types**](/docs/kcl-lang/types)
  * [`End`](/docs/kcl-lang/types#End)
  * [`ImportedGeometry`](/docs/kcl-std/types/std-types-ImportedGeometry)
  * [`Start`](/docs/kcl-lang/types#Start)
  * [`TagDeclarator`](/docs/kcl-lang/types#TagDeclarator)
  * [`TagIdentifier`](/docs/kcl-lang/types#TagIdentifier)
  * [`any`](/docs/kcl-std/types/std-types-any)
  * [`bool`](/docs/kcl-std/types/std-types-bool)
  * [`fn`](/docs/kcl-std/types/std-types-fn)
  * [`number`](/docs/kcl-std/types/std-types-number)
  * [`string`](/docs/kcl-std/types/std-types-string)
  * [`tag`](/docs/kcl-std/types/std-types-tag)
* [**std::types**](/docs/kcl-std/modules/std-types)
  * [`Axis2d`](/docs/kcl-std/types/std-types-Axis2d)
  * [`Axis3d`](/docs/kcl-std/types/std-types-Axis3d)
  * [`Edge`](/docs/kcl-std/types/std-types-Edge)
  * [`Face`](/docs/kcl-std/types/std-types-Face)
  * [`Helix`](/docs/kcl-std/types/std-types-Helix)
  * [`Plane`](/docs/kcl-std/types/std-types-Plane)
  * [`Point2d`](/docs/kcl-std/types/std-types-Point2d)
  * [`Point3d`](/docs/kcl-std/types/std-types-Point3d)
  * [`Sketch`](/docs/kcl-std/types/std-types-Sketch)
  * [`Solid`](/docs/kcl-std/types/std-types-Solid)
