diff --git a/content/kcl-test-outputs/serial_test_example_fn_std-gdt-profileLine0.png b/content/kcl-test-outputs/serial_test_example_fn_std-gdt-profileLine0.png
new file mode 100644
index 00000000..c7e5cc05
Binary files /dev/null and b/content/kcl-test-outputs/serial_test_example_fn_std-gdt-profileLine0.png differ
diff --git a/content/kcl-test-outputs/serial_test_example_fn_std-gdt-profileLine1.png b/content/kcl-test-outputs/serial_test_example_fn_std-gdt-profileLine1.png
new file mode 100644
index 00000000..3677730d
Binary files /dev/null and b/content/kcl-test-outputs/serial_test_example_fn_std-gdt-profileLine1.png differ
diff --git a/content/kcl-test-outputs/serial_test_example_fn_std-gdt-profileSurface0.png b/content/kcl-test-outputs/serial_test_example_fn_std-gdt-profileSurface0.png
new file mode 100644
index 00000000..c47adac9
Binary files /dev/null and b/content/kcl-test-outputs/serial_test_example_fn_std-gdt-profileSurface0.png differ
diff --git a/content/pages/docs/kcl-std/functions/std-gdt-profileLine.md b/content/pages/docs/kcl-std/functions/std-gdt-profileLine.md
new file mode 100644
index 00000000..0ed1fc19
--- /dev/null
+++ b/content/pages/docs/kcl-std/functions/std-gdt-profileLine.md
@@ -0,0 +1,102 @@
+---
+title: "gdt::profileLine"
+subtitle: "Function in std::gdt"
+excerpt: "GD&T profile-of-a-line annotation specifying how much edges may deviate from their ideal shape."
+layout: manual
+---
+
+GD&T profile-of-a-line annotation specifying how much edges may deviate from their ideal shape.
+
+```kcl
+gdt::profileLine(
+ edges: [Edge; 1+],
+ tolerance: number(Length),
+ datums?: [string; 1+],
+ precision?: number(_),
+ framePosition?: Point2d,
+ framePlane?: Plane,
+ leaderScale?: number(_),
+ fontSize?: number(Length),
+): [GdtAnnotation; 1+]
+```
+
+This is part of model-based definition (MBD).
+
+Profile of a line is a two-dimensional tolerance zone for a cross-section or edge-like profile.
+
+### Arguments
+
+| Name | Type | Description | Required |
+|----------|------|-------------|----------|
+| `edges` | [[`Edge`](/docs/kcl-std/types/std-types-Edge); 1+] | The edges to be annotated. | Yes |
+| `tolerance` | [`number(Length)`](/docs/kcl-std/types/std-types-number) | The amount of deviation from an ideal profile that is acceptable. | Yes |
+| `datums` | [[`string`](/docs/kcl-std/types/std-types-string); 1+] | The datum references to display in the feature control frame. Supports up to primary, secondary, and tertiary datums. | No |
+| `precision` | [`number(_)`](/docs/kcl-std/types/std-types-number) | The number of decimal places to display. The default is `3`. Must be greater than or equal to `0` and less than or equal to `9`. | No |
+| `framePosition` | [`Point2d`](/docs/kcl-std/types/std-types-Point2d) | The position of the feature control frame relative to the leader arrow. The default is `[100mm, 100mm]`. | No |
+| `framePlane` | [`Plane`](/docs/kcl-std/types/std-types-Plane) | The plane in which to display the feature control frame. The default is `XY`. Other standard planes like `XZ` and `YZ` can also be used. The frame may be displayed in a plane parallel to the given plane. | No |
+| `leaderScale` | [`number(_)`](/docs/kcl-std/types/std-types-number) | Visual scale of the leader dot. The default is `1.0`, which maps to the calibrated normal dot size. The value is normalized against `fontSize` so the dot stays consistent as text size changes. Must be greater than `0`. | No |
+| `fontSize` | [`number(Length)`](/docs/kcl-std/types/std-types-number) | The model-space height to use for annotation text. The default is `10mm`. Explicit units are supported; bare numbers use the file's default length unit. This changes the scene size, not the internal raster texture quality. | No |
+
+### Returns
+
+[[`GdtAnnotation`](/docs/kcl-std/types/std-types-GdtAnnotation); 1+]
+
+
+### Examples
+
+```kcl
+startSketchOn(XY)
+ |> startProfile(at = [0, 0])
+ |> line(end = [10, 0], tag = $side1)
+ |> line(end = [0, 10], tag = $side2)
+ |> line(end = [-10, 0])
+ |> line(end = [0, -10])
+ |> close()
+ |> extrude(length = 5, tagEnd = $top)
+
+profileEdge = getCommonEdge(faces = [side1, top])
+
+gdt::profileLine(
+ edges = [profileEdge],
+ tolerance = 0.1mm,
+ datums = ["A"],
+ framePosition = [10mm, 20mm],
+ framePlane = XZ,
+)
+
+```
+
+
+
+
+```kcl
+blockProfile = sketch(on = XY) {
+ edge1 = line(start = [var 0mm, var 0mm], end = [var 10mm, var 0mm])
+ edge2 = line(start = [var 10mm, var 0mm], end = [var 10mm, var 6mm])
+ edge3 = line(start = [var 10mm, var 6mm], end = [var 0mm, var 6mm])
+ edge4 = line(start = [var 0mm, var 6mm], end = [var 0mm, var 0mm])
+ coincident([edge1.end, edge2.start])
+ coincident([edge2.end, edge3.start])
+ coincident([edge3.end, edge4.start])
+ coincident([edge4.end, edge1.start])
+ horizontal(edge1)
+ vertical(edge2)
+ horizontal(edge3)
+ vertical(edge4)
+}
+
+block = extrude(region(point = [5mm, 3mm], sketch = blockProfile), length = 4mm, tagEnd = $top)
+profileEdge = getCommonEdge(faces = [block.sketch.tags.edge1, top])
+gdt::profileLine(
+ edges = [profileEdge],
+ tolerance = 0.05mm,
+ framePosition = [12mm, 8mm],
+ framePlane = XZ,
+)
+
+```
+
+
+
+
+
diff --git a/content/pages/docs/kcl-std/functions/std-gdt-profileSurface.md b/content/pages/docs/kcl-std/functions/std-gdt-profileSurface.md
new file mode 100644
index 00000000..b70a4501
--- /dev/null
+++ b/content/pages/docs/kcl-std/functions/std-gdt-profileSurface.md
@@ -0,0 +1,65 @@
+---
+title: "gdt::profileSurface"
+subtitle: "Function in std::gdt"
+excerpt: "GD&T profile-of-a-surface annotation specifying how much faces may deviate from their ideal shape."
+layout: manual
+---
+
+GD&T profile-of-a-surface annotation specifying how much faces may deviate from their ideal shape.
+
+```kcl
+gdt::profileSurface(
+ faces: [TaggedFace; 1+],
+ tolerance: number(Length),
+ datums?: [string; 1+],
+ precision?: number(_),
+ framePosition?: Point2d,
+ framePlane?: Plane,
+ leaderScale?: number(_),
+ fontSize?: number(Length),
+): [GdtAnnotation; 1+]
+```
+
+This is part of model-based definition (MBD).
+
+Profile of a surface is a three-dimensional tolerance zone that applies across the whole annotated surface.
+
+### Arguments
+
+| Name | Type | Description | Required |
+|----------|------|-------------|----------|
+| `faces` | [[`TaggedFace`](/docs/kcl-std/types/std-types-TaggedFace); 1+] | The faces to be annotated. | Yes |
+| `tolerance` | [`number(Length)`](/docs/kcl-std/types/std-types-number) | The amount of deviation from an ideal profile that is acceptable. | Yes |
+| `datums` | [[`string`](/docs/kcl-std/types/std-types-string); 1+] | The datum references to display in the feature control frame. Supports up to primary, secondary, and tertiary datums. | No |
+| `precision` | [`number(_)`](/docs/kcl-std/types/std-types-number) | The number of decimal places to display. The default is `3`. Must be greater than or equal to `0` and less than or equal to `9`. | No |
+| `framePosition` | [`Point2d`](/docs/kcl-std/types/std-types-Point2d) | The position of the feature control frame relative to the leader arrow. The default is `[100mm, 100mm]`. | No |
+| `framePlane` | [`Plane`](/docs/kcl-std/types/std-types-Plane) | The plane in which to display the feature control frame. The default is `XY`. Other standard planes like `XZ` and `YZ` can also be used. The frame may be displayed in a plane parallel to the given plane. | No |
+| `leaderScale` | [`number(_)`](/docs/kcl-std/types/std-types-number) | Visual scale of the leader dot. The default is `1.0`, which maps to the calibrated normal dot size. The value is normalized against `fontSize` so the dot stays consistent as text size changes. Must be greater than `0`. | No |
+| `fontSize` | [`number(Length)`](/docs/kcl-std/types/std-types-number) | The model-space height to use for annotation text. The default is `10mm`. Explicit units are supported; bare numbers use the file's default length unit. This changes the scene size, not the internal raster texture quality. | No |
+
+### Returns
+
+[[`GdtAnnotation`](/docs/kcl-std/types/std-types-GdtAnnotation); 1+]
+
+
+### Examples
+
+```kcl
+cylinderSketch = sketch(on = XY) {
+ perimeter = circle(start = [var 5mm, var 0mm], center = [var 0mm, var 0mm])
+}
+
+cylinder = extrude(region(point = cylinderSketch.perimeter.center, sketch = cylinderSketch), length = 10mm, tagEnd = $top)
+gdt::profileSurface(
+ faces = [top],
+ tolerance = 0.05mm,
+ framePosition = [12mm, 8mm],
+ framePlane = XZ,
+)
+
+```
+
+
+
+
+
diff --git a/content/pages/docs/kcl-std/modules/std-gdt.md b/content/pages/docs/kcl-std/modules/std-gdt.md
index 36c35e1d..2ea10b49 100644
--- a/content/pages/docs/kcl-std/modules/std-gdt.md
+++ b/content/pages/docs/kcl-std/modules/std-gdt.md
@@ -24,6 +24,8 @@ Functions for working with geometric dimensioning and tolerancing (GD&T). This c
* [`gdt::perpendicularity`](/docs/kcl-std/functions/std-gdt-perpendicularity)
* [`gdt::position`](/docs/kcl-std/functions/std-gdt-position)
* [`gdt::profile`](/docs/kcl-std/functions/std-gdt-profile)
+* [`gdt::profileLine`](/docs/kcl-std/functions/std-gdt-profileLine)
+* [`gdt::profileSurface`](/docs/kcl-std/functions/std-gdt-profileSurface)
* [`gdt::runout`](/docs/kcl-std/functions/std-gdt-runout)
* [`gdt::straightness`](/docs/kcl-std/functions/std-gdt-straightness)
* [`gdt::symmetry`](/docs/kcl-std/functions/std-gdt-symmetry)
diff --git a/content/pages/docs/zoo-design-studio/features/documentation/gdt-annotations-mbd/angularity/index.mdx b/content/pages/docs/zoo-design-studio/features/documentation/gdt-annotations-mbd/angularity/index.mdx
new file mode 100644
index 00000000..78830066
--- /dev/null
+++ b/content/pages/docs/zoo-design-studio/features/documentation/gdt-annotations-mbd/angularity/index.mdx
@@ -0,0 +1,73 @@
+---
+title: Angularity
+excerpt: Angularity GD&T annotation workflows in Zoo Design Studio.
+sidebarPosition: 6
+---
+
+Angularity controls how close selected faces or edges stay to a specified basic angle relative to a
+datum. Use it for bent tabs, angled pads, ramps, and mating surfaces that must hold an orientation
+other than parallel or perpendicular.
+
+
+
+## Faces Or Edges
+
+Select the face or edge whose angled orientation should be controlled. Choose the geometry that
+directly represents the manufactured feature being inspected.
+
+## Tolerance
+
+Set the allowed angularity zone size in the current unit system. The value defines the width of the
+tolerance zone shown in the feature control frame. It is a length, not a plus-or-minus angle.
+
+## Datums
+
+Add the datum label or labels that define the reference orientation. Angularity normally needs at
+least one datum to make the angled relationship meaningful.
+
+## Precision
+
+Choose how many decimal places to display for the tolerance value.
+
+## Frame Position
+
+Place the feature control frame near the controlled feature while keeping it clear of the model
+outline.
+
+## Frame Plane
+
+Choose the display plane for the annotation. Use `XY`, `XZ`, or `YZ` to keep the frame legible in
+the intended view.
+
+## Leader Scale
+
+Adjust the visual scale of the leader dot.
+
+## Font Size
+
+Set the model-space height of the annotation text.
+
+## Are you interested in code?
+
+Zoo Design Studio writes KCL behind the scenes. An Angularity annotation uses `gdt::angularity`
+with selected faces or edges, a tolerance, and datum references. The basic angle comes from the
+model geometry or drawing definition.
+
+```kcl
+gdt::angularity(
+ faces = [angledFace],
+ tolerance = 0.1mm,
+ datums = ["A"],
+ precision = 2,
+ framePosition = [12mm, 8mm],
+ framePlane = XZ,
+)
+```
+
+Want to find out more about the `gdt::angularity` function?
+[Check it out](/docs/kcl-std/functions/std-gdt-angularity) in our KCL docs.
diff --git a/content/pages/docs/zoo-design-studio/features/documentation/gdt-annotations-mbd/annotation/index.mdx b/content/pages/docs/zoo-design-studio/features/documentation/gdt-annotations-mbd/annotation/index.mdx
index cb36d49c..b21f22ad 100644
--- a/content/pages/docs/zoo-design-studio/features/documentation/gdt-annotations-mbd/annotation/index.mdx
+++ b/content/pages/docs/zoo-design-studio/features/documentation/gdt-annotations-mbd/annotation/index.mdx
@@ -1,7 +1,7 @@
---
title: Annotation
excerpt: General GD&T annotation workflows in Zoo Design Studio.
-sidebarPosition: 7
+sidebarPosition: 8
---
Annotation attaches general model-based manufacturing notes to selected faces or edges. Use it for
diff --git a/content/pages/docs/zoo-design-studio/features/documentation/gdt-annotations-mbd/circularity/index.mdx b/content/pages/docs/zoo-design-studio/features/documentation/gdt-annotations-mbd/circularity/index.mdx
new file mode 100644
index 00000000..58d3f4aa
--- /dev/null
+++ b/content/pages/docs/zoo-design-studio/features/documentation/gdt-annotations-mbd/circularity/index.mdx
@@ -0,0 +1,67 @@
+---
+title: Circularity
+excerpt: Circularity GD&T annotation workflows in Zoo Design Studio.
+sidebarPosition: 9
+---
+
+Circularity controls how closely a round edge or round face follows a perfect circle. Use it for
+turned diameters, bores, pins, cones, and other features of revolution where each cross-section must
+stay round without referencing a datum.
+
+
+
+## Faces Or Edges
+
+Select a circular edge or a round face. Edges are useful when the requirement applies to a specific
+rim or cross-section. Faces are useful when the requirement applies along a cylindrical or conical
+surface.
+
+## Tolerance
+
+Set the allowed roundness variation in the current unit system. The circularity tolerance zone is
+defined by two concentric circles whose radii differ by the tolerance value.
+
+## Precision
+
+Choose how many decimal places to display for the tolerance value.
+
+## Frame Position
+
+Place the feature control frame near the selected round feature while keeping it readable.
+
+## Frame Plane
+
+Choose the display plane for the annotation. Use `XY`, `XZ`, or `YZ` to keep the frame facing the
+intended view.
+
+## Leader Scale
+
+Adjust the visual scale of the leader dot.
+
+## Font Size
+
+Set the model-space height of the annotation text.
+
+## Are you interested in code?
+
+Zoo Design Studio writes KCL behind the scenes. A Circularity annotation uses `gdt::circularity`
+with selected faces or edges and a tolerance. Circularity is a form tolerance, so it does not use
+datums.
+
+```kcl
+gdt::circularity(
+ edges = [roundEdge],
+ tolerance = 0.05mm,
+ precision = 2,
+ framePosition = [12mm, 8mm],
+ framePlane = XZ,
+)
+```
+
+Want to find out more about the `gdt::circularity` function?
+[Check it out](/docs/kcl-std/functions/std-gdt-circularity) in our KCL docs.
diff --git a/content/pages/docs/zoo-design-studio/features/documentation/gdt-annotations-mbd/concentricity/index.mdx b/content/pages/docs/zoo-design-studio/features/documentation/gdt-annotations-mbd/concentricity/index.mdx
new file mode 100644
index 00000000..85ea435b
--- /dev/null
+++ b/content/pages/docs/zoo-design-studio/features/documentation/gdt-annotations-mbd/concentricity/index.mdx
@@ -0,0 +1,71 @@
+---
+title: Concentricity
+excerpt: Concentricity GD&T annotation workflows in Zoo Design Studio.
+sidebarPosition: 14
+---
+
+Concentricity controls how closely the derived median axis of a round feature aligns with a datum
+axis. Use it when coaxial alignment matters for rotating parts, nested diameters, precision bores,
+or shafts where mass distribution around a common axis is important.
+
+
+
+## Faces Or Edges
+
+Select the round face or circular edge whose median axis should be controlled. Choose the geometry
+that represents the manufactured feature being inspected.
+
+## Tolerance
+
+Set the diameter of the cylindrical tolerance zone in the current unit system.
+
+## Datums
+
+Add the datum label or labels that define the reference axis. Concentricity requires at least one
+datum reference.
+
+## Precision
+
+Choose how many decimal places to display for the tolerance value.
+
+## Frame Position
+
+Place the feature control frame near the controlled round feature while keeping it clear of other
+callouts.
+
+## Frame Plane
+
+Choose the display plane for the annotation. Use the plane that keeps the frame legible in the
+inspection or documentation view.
+
+## Leader Scale
+
+Adjust the visual scale of the leader dot.
+
+## Font Size
+
+Set the model-space height of the annotation text.
+
+## Are you interested in code?
+
+Zoo Design Studio writes KCL behind the scenes. A Concentricity annotation uses
+`gdt::concentricity` with selected faces or edges, a tolerance, and datum references.
+
+```kcl
+gdt::concentricity(
+ faces = [controlledCylinder],
+ tolerance = 0.05mm,
+ datums = ["A"],
+ precision = 2,
+ framePosition = [12mm, 8mm],
+ framePlane = XZ,
+)
+```
+
+Want to find out more about the `gdt::concentricity` function?
+[Check it out](/docs/kcl-std/functions/std-gdt-concentricity) in our KCL docs.
diff --git a/content/pages/docs/zoo-design-studio/features/documentation/gdt-annotations-mbd/cylindricity/index.mdx b/content/pages/docs/zoo-design-studio/features/documentation/gdt-annotations-mbd/cylindricity/index.mdx
new file mode 100644
index 00000000..ee17a971
--- /dev/null
+++ b/content/pages/docs/zoo-design-studio/features/documentation/gdt-annotations-mbd/cylindricity/index.mdx
@@ -0,0 +1,66 @@
+---
+title: Cylindricity
+excerpt: Cylindricity GD&T annotation workflows in Zoo Design Studio.
+sidebarPosition: 11
+---
+
+Cylindricity controls how closely a cylindrical feature conforms to an ideal cylinder. Use it for
+shafts, pins, bores, sleeves, and turned surfaces where roundness, straightness, and taper need to
+be controlled together without referencing a datum.
+
+
+
+## Faces Or Edges
+
+Select a cylindrical face when the whole surface must fit within the cylindrical tolerance zone. You
+can also select a circular edge when the requirement applies to a specific rim or section.
+
+## Tolerance
+
+Set the allowed deviation from a perfect cylinder in the current unit system. The tolerance zone is
+between two coaxial cylinders whose radii differ by the tolerance value.
+
+## Precision
+
+Choose how many decimal places to display for the tolerance value.
+
+## Frame Position
+
+Place the feature control frame near the selected cylindrical feature while keeping it readable.
+
+## Frame Plane
+
+Choose the display plane for the annotation. Use `XY`, `XZ`, or `YZ` to keep the frame facing the
+intended view.
+
+## Leader Scale
+
+Adjust the visual scale of the leader dot.
+
+## Font Size
+
+Set the model-space height of the annotation text.
+
+## Are you interested in code?
+
+Zoo Design Studio writes KCL behind the scenes. A Cylindricity annotation uses `gdt::cylindricity`
+with selected faces or edges and a tolerance. Cylindricity is a form tolerance, so it does not use
+datums.
+
+```kcl
+gdt::cylindricity(
+ faces = [shaftFace],
+ tolerance = 0.02mm,
+ precision = 2,
+ framePosition = [12mm, 8mm],
+ framePlane = XZ,
+)
+```
+
+Want to find out more about the `gdt::cylindricity` function?
+[Check it out](/docs/kcl-std/functions/std-gdt-cylindricity) in our KCL docs.
diff --git a/content/pages/docs/zoo-design-studio/features/documentation/gdt-annotations-mbd/distance/index.mdx b/content/pages/docs/zoo-design-studio/features/documentation/gdt-annotations-mbd/distance/index.mdx
index bea840c7..8599d76b 100644
--- a/content/pages/docs/zoo-design-studio/features/documentation/gdt-annotations-mbd/distance/index.mdx
+++ b/content/pages/docs/zoo-design-studio/features/documentation/gdt-annotations-mbd/distance/index.mdx
@@ -1,7 +1,7 @@
---
title: Distance
excerpt: Distance GD&T annotation workflows in Zoo Design Studio.
-sidebarPosition: 6
+sidebarPosition: 7
---
Distance captures a dimensional tolerance for an edge length or for spacing between selected faces
diff --git a/content/pages/docs/zoo-design-studio/features/documentation/gdt-annotations-mbd/index.mdx b/content/pages/docs/zoo-design-studio/features/documentation/gdt-annotations-mbd/index.mdx
index 124bee28..ad88aa6c 100644
--- a/content/pages/docs/zoo-design-studio/features/documentation/gdt-annotations-mbd/index.mdx
+++ b/content/pages/docs/zoo-design-studio/features/documentation/gdt-annotations-mbd/index.mdx
@@ -7,16 +7,32 @@ sidebarPosition: 0
GD&T Annotations (MBD) let you define geometric tolerances and datum references directly on the 3D
model as part of a model-based definition workflow.
-Start with [Flatness](/docs/zoo-design-studio/features/documentation/gdt-annotations-mbd/flatness)
-and [Datum](/docs/zoo-design-studio/features/documentation/gdt-annotations-mbd/datum) to establish
-basic form control and reference geometry. Then use
-[Profile](/docs/zoo-design-studio/features/documentation/gdt-annotations-mbd/profile),
-[Position](/docs/zoo-design-studio/features/documentation/gdt-annotations-mbd/position),
-[Perpendicularity](/docs/zoo-design-studio/features/documentation/gdt-annotations-mbd/perpendicularity),
-[Parallelism](/docs/zoo-design-studio/features/documentation/gdt-annotations-mbd/parallelism),
-[Distance](/docs/zoo-design-studio/features/documentation/gdt-annotations-mbd/distance), and
-[Annotation](/docs/zoo-design-studio/features/documentation/gdt-annotations-mbd/annotation)
-to attach the rest of the shipped MBD callouts to model geometry.
+Start with [Datum](/docs/zoo-design-studio/features/documentation/gdt-annotations-mbd/datum) to
+establish reference geometry. Then choose the GD&T control that matches the inspection requirement:
+
+- Form controls:
+ [Circularity](/docs/zoo-design-studio/features/documentation/gdt-annotations-mbd/circularity),
+ [Cylindricity](/docs/zoo-design-studio/features/documentation/gdt-annotations-mbd/cylindricity),
+ [Flatness](/docs/zoo-design-studio/features/documentation/gdt-annotations-mbd/flatness),
+ and [Straightness](/docs/zoo-design-studio/features/documentation/gdt-annotations-mbd/straightness)
+- Profile controls:
+ [Profile](/docs/zoo-design-studio/features/documentation/gdt-annotations-mbd/profile),
+ [Profile Line](/docs/zoo-design-studio/features/documentation/gdt-annotations-mbd/profile-line),
+ and
+ [Profile Surface](/docs/zoo-design-studio/features/documentation/gdt-annotations-mbd/profile-surface)
+- Orientation controls:
+ [Angularity](/docs/zoo-design-studio/features/documentation/gdt-annotations-mbd/angularity),
+ [Parallelism](/docs/zoo-design-studio/features/documentation/gdt-annotations-mbd/parallelism),
+ and
+ [Perpendicularity](/docs/zoo-design-studio/features/documentation/gdt-annotations-mbd/perpendicularity)
+- Location and runout controls:
+ [Concentricity](/docs/zoo-design-studio/features/documentation/gdt-annotations-mbd/concentricity),
+ [Position](/docs/zoo-design-studio/features/documentation/gdt-annotations-mbd/position),
+ [Runout](/docs/zoo-design-studio/features/documentation/gdt-annotations-mbd/runout),
+ and [Symmetry](/docs/zoo-design-studio/features/documentation/gdt-annotations-mbd/symmetry)
+- Other model-based definition callouts:
+ [Annotation](/docs/zoo-design-studio/features/documentation/gdt-annotations-mbd/annotation)
+ and [Distance](/docs/zoo-design-studio/features/documentation/gdt-annotations-mbd/distance)
## Are you interested in code?
@@ -26,7 +42,10 @@ standard library.
```kcl
gdt::datum(face = datumFace, name = "A")
gdt::flatness(faces = [mountingFace], tolerance = 0.05mm)
+gdt::circularity(edges = [roundEdge], tolerance = 0.05mm)
+gdt::profileSurface(faces = [contouredFace], tolerance = 0.1mm, datums = ["A"])
gdt::position(faces = [holeFace], tolerance = 0.08mm, datums = ["A"])
+gdt::angularity(faces = [controlledSurface], tolerance = 0.1mm, datums = ["A"])
```
Want to find out more about the `gdt` module? [Check it out](/docs/kcl-std/modules/std-gdt) in our
diff --git a/content/pages/docs/zoo-design-studio/features/documentation/gdt-annotations-mbd/profile-line/index.mdx b/content/pages/docs/zoo-design-studio/features/documentation/gdt-annotations-mbd/profile-line/index.mdx
new file mode 100644
index 00000000..788a3418
--- /dev/null
+++ b/content/pages/docs/zoo-design-studio/features/documentation/gdt-annotations-mbd/profile-line/index.mdx
@@ -0,0 +1,71 @@
+---
+title: Profile Line
+excerpt: Profile line GD&T annotation workflows in Zoo Design Studio.
+sidebarPosition: 12
+---
+
+Profile Line controls how far selected edge geometry may deviate from its ideal two-dimensional
+profile. Use it for cross-sections, outlines, curved edges, and contour boundaries that need a
+tolerance zone following the intended shape.
+
+
+
+## Edges
+
+Select one or more edges to control. Profile Line applies to edge geometry, so choose the outline,
+curve, or section whose shape tolerance should travel with the model.
+
+## Tolerance
+
+Set the allowed deviation from the ideal profile in the current unit system.
+
+## Datums
+
+Add datum references when the profile tolerance should be evaluated relative to a datum reference
+frame. Leave datums empty when the profile controls only form.
+
+## Precision
+
+Choose how many decimal places to display in the annotation.
+
+## Frame Position
+
+Place the feature control frame relative to the leader arrow. Move it far enough from the selected
+edge that the annotation stays readable.
+
+## Frame Plane
+
+Choose the plane used to display the annotation frame. Use `XY`, `XZ`, or `YZ` when you need the
+callout to face a predictable viewing direction.
+
+## Leader Scale
+
+Adjust the visual size of the leader dot.
+
+## Font Size
+
+Set the model-space height of the annotation text.
+
+## Are you interested in code?
+
+Zoo Design Studio writes KCL behind the scenes. A Profile Line annotation uses `gdt::profileLine`
+with one or more selected edges, a tolerance, and optional datum references.
+
+```kcl
+gdt::profileLine(
+ edges = [profileEdge],
+ tolerance = 0.1mm,
+ datums = ["A"],
+ precision = 2,
+ framePosition = [12mm, 8mm],
+ framePlane = XZ,
+)
+```
+
+Want to find out more about the `gdt::profileLine` function?
+[Check it out](/docs/kcl-std/functions/std-gdt-profileLine) in our KCL docs.
diff --git a/content/pages/docs/zoo-design-studio/features/documentation/gdt-annotations-mbd/profile-surface/index.mdx b/content/pages/docs/zoo-design-studio/features/documentation/gdt-annotations-mbd/profile-surface/index.mdx
new file mode 100644
index 00000000..c8e8354e
--- /dev/null
+++ b/content/pages/docs/zoo-design-studio/features/documentation/gdt-annotations-mbd/profile-surface/index.mdx
@@ -0,0 +1,71 @@
+---
+title: Profile Surface
+excerpt: Profile surface GD&T annotation workflows in Zoo Design Studio.
+sidebarPosition: 13
+---
+
+Profile Surface controls how far selected faces may deviate from their ideal three-dimensional
+surface. Use it for contoured surfaces, molded faces, aerodynamic surfaces, castings, and other
+features where the whole surface shape matters.
+
+
+
+## Faces
+
+Select one or more faces to control. Profile Surface applies across the selected surface area, not
+just a single boundary edge.
+
+## Tolerance
+
+Set the allowed deviation from the ideal surface in the current unit system.
+
+## Datums
+
+Add datum references when the surface profile should also control orientation or location relative
+to a datum reference frame. Leave datums empty when the profile controls only form.
+
+## Precision
+
+Choose how many decimal places to display in the annotation.
+
+## Frame Position
+
+Place the feature control frame relative to the leader arrow. Keep the frame clear of dense model
+details so it remains readable.
+
+## Frame Plane
+
+Choose the display plane for the feature control frame. Use the plane that keeps the annotation
+facing the viewer in your documentation or inspection workflow.
+
+## Leader Scale
+
+Adjust the visual size of the leader dot.
+
+## Font Size
+
+Set the model-space height of the annotation text.
+
+## Are you interested in code?
+
+Zoo Design Studio writes KCL behind the scenes. A Profile Surface annotation uses
+`gdt::profileSurface` with one or more selected faces, a tolerance, and optional datum references.
+
+```kcl
+gdt::profileSurface(
+ faces = [controlledSurface],
+ tolerance = 0.05mm,
+ datums = ["A"],
+ precision = 2,
+ framePosition = [12mm, 8mm],
+ framePlane = XZ,
+)
+```
+
+Want to find out more about the `gdt::profileSurface` function?
+[Check it out](/docs/kcl-std/functions/std-gdt-profileSurface) in our KCL docs.
diff --git a/content/pages/docs/zoo-design-studio/features/documentation/gdt-annotations-mbd/runout/index.mdx b/content/pages/docs/zoo-design-studio/features/documentation/gdt-annotations-mbd/runout/index.mdx
new file mode 100644
index 00000000..b13bbdb9
--- /dev/null
+++ b/content/pages/docs/zoo-design-studio/features/documentation/gdt-annotations-mbd/runout/index.mdx
@@ -0,0 +1,71 @@
+---
+title: Runout
+excerpt: Runout GD&T annotation workflows in Zoo Design Studio.
+sidebarPosition: 16
+---
+
+Runout controls how much a round feature may vary as it rotates around a datum axis. Use it for
+shafts, shoulders, bearing seats, pulleys, and other rotating features where circular variation
+relative to an axis affects fit, vibration, or sealing.
+
+
+
+## Faces Or Edges
+
+Select a round face or circular edge that should be controlled during rotation about the datum
+axis.
+
+## Tolerance
+
+Set the allowed circular runout in the current unit system.
+
+## Datums
+
+Add the datum label or labels that define the rotation axis. Runout requires at least one datum
+reference.
+
+## Precision
+
+Choose how many decimal places to display for the tolerance value.
+
+## Frame Position
+
+Place the feature control frame near the selected round feature while keeping it clear of other
+annotations.
+
+## Frame Plane
+
+Choose the display plane for the annotation. Use the plane that keeps the callout readable in the
+view where runout will be reviewed.
+
+## Leader Scale
+
+Adjust the visual scale of the leader dot.
+
+## Font Size
+
+Set the model-space height of the annotation text.
+
+## Are you interested in code?
+
+Zoo Design Studio writes KCL behind the scenes. A Runout annotation uses `gdt::runout` with
+selected faces or edges, a tolerance, and datum references.
+
+```kcl
+gdt::runout(
+ edges = [shoulderEdge],
+ tolerance = 0.2mm,
+ datums = ["A"],
+ precision = 1,
+ framePosition = [12mm, 8mm],
+ framePlane = XZ,
+)
+```
+
+Want to find out more about the `gdt::runout` function?
+[Check it out](/docs/kcl-std/functions/std-gdt-runout) in our KCL docs.
diff --git a/content/pages/docs/zoo-design-studio/features/documentation/gdt-annotations-mbd/straightness/index.mdx b/content/pages/docs/zoo-design-studio/features/documentation/gdt-annotations-mbd/straightness/index.mdx
new file mode 100644
index 00000000..b54317c6
--- /dev/null
+++ b/content/pages/docs/zoo-design-studio/features/documentation/gdt-annotations-mbd/straightness/index.mdx
@@ -0,0 +1,66 @@
+---
+title: Straightness
+excerpt: Straightness GD&T annotation workflows in Zoo Design Studio.
+sidebarPosition: 10
+---
+
+Straightness controls how closely a selected edge or line element follows a perfect straight line.
+Use it for guide rails, edges, slots, shaft elements, and other features where waviness or bowing
+must be limited without referencing a datum.
+
+
+
+## Faces Or Edges
+
+Select the edge whose straightness should be controlled. You can also select a face when the visible
+face element represents the straight feature being inspected.
+
+## Tolerance
+
+Set the allowed straightness variation in the current unit system. The tolerance zone is bounded by
+parallel lines separated by the tolerance value.
+
+## Precision
+
+Choose how many decimal places to display for the tolerance value.
+
+## Frame Position
+
+Place the feature control frame near the selected edge while keeping it readable.
+
+## Frame Plane
+
+Choose the display plane for the annotation. Use `XY`, `XZ`, or `YZ` to keep the frame facing the
+intended view.
+
+## Leader Scale
+
+Adjust the visual scale of the leader dot.
+
+## Font Size
+
+Set the model-space height of the annotation text.
+
+## Are you interested in code?
+
+Zoo Design Studio writes KCL behind the scenes. A Straightness annotation uses `gdt::straightness`
+with selected faces or edges and a tolerance. Straightness is a form tolerance, so it does not use
+datums.
+
+```kcl
+gdt::straightness(
+ edges = [sideEdge],
+ tolerance = 0.05mm,
+ precision = 2,
+ framePosition = [12mm, 8mm],
+ framePlane = XZ,
+)
+```
+
+Want to find out more about the `gdt::straightness` function?
+[Check it out](/docs/kcl-std/functions/std-gdt-straightness) in our KCL docs.
diff --git a/content/pages/docs/zoo-design-studio/features/documentation/gdt-annotations-mbd/symmetry/index.mdx b/content/pages/docs/zoo-design-studio/features/documentation/gdt-annotations-mbd/symmetry/index.mdx
new file mode 100644
index 00000000..deed91c6
--- /dev/null
+++ b/content/pages/docs/zoo-design-studio/features/documentation/gdt-annotations-mbd/symmetry/index.mdx
@@ -0,0 +1,71 @@
+---
+title: Symmetry
+excerpt: Symmetry GD&T annotation workflows in Zoo Design Studio.
+sidebarPosition: 15
+---
+
+Symmetry controls how closely a feature's derived median plane aligns with a datum center plane. Use
+it when opposing surfaces must remain balanced around a datum plane, such as centered grooves,
+slots, tabs, or features where mass distribution matters.
+
+
+
+## Faces Or Edges
+
+Select the face or edge whose median plane should be controlled. Choose the geometry that represents
+the feature of size being inspected.
+
+## Tolerance
+
+Set the total width of the symmetry tolerance zone in the current unit system.
+
+## Datums
+
+Add the datum label or labels that define the center plane. Symmetry requires at least one datum
+reference.
+
+## Precision
+
+Choose how many decimal places to display for the tolerance value.
+
+## Frame Position
+
+Place the feature control frame near the controlled feature while keeping it clear of other
+callouts.
+
+## Frame Plane
+
+Choose the display plane for the annotation. Use the plane that keeps the callout readable in the
+view where symmetry will be reviewed.
+
+## Leader Scale
+
+Adjust the visual scale of the leader dot.
+
+## Font Size
+
+Set the model-space height of the annotation text.
+
+## Are you interested in code?
+
+Zoo Design Studio writes KCL behind the scenes. A Symmetry annotation uses `gdt::symmetry` with
+selected faces or edges, a tolerance, and datum references.
+
+```kcl
+gdt::symmetry(
+ faces = [centeredFeature],
+ tolerance = 0.2mm,
+ datums = ["A"],
+ precision = 2,
+ framePosition = [12mm, 8mm],
+ framePlane = XZ,
+)
+```
+
+Want to find out more about the `gdt::symmetry` function?
+[Check it out](/docs/kcl-std/functions/std-gdt-symmetry) in our KCL docs.
diff --git a/content/pages/docs/zoo-design-studio/features/workspace/command-bar.mdx b/content/pages/docs/zoo-design-studio/features/workspace/command-bar.mdx
index fb623a7c..77ca3f2f 100644
--- a/content/pages/docs/zoo-design-studio/features/workspace/command-bar.mdx
+++ b/content/pages/docs/zoo-design-studio/features/workspace/command-bar.mdx
@@ -224,6 +224,8 @@ Parameters:
**GDT Datum:** Define datum reference features. See [Datum](/docs/zoo-design-studio/features/documentation/gdt-annotations-mbd/datum/) for parameters.
+**GDT Angularity:** Annotate angled orientation tolerance relative to datum references. See [Angularity](/docs/zoo-design-studio/features/documentation/gdt-annotations-mbd/angularity/) for parameters.
+
#### Appearance and Visualization
**Appearance:** Set material properties (color, metalness, roughness, opacity). See [Appearance](/docs/zoo-design-studio/features/workspace/appearance) for parameters.