CAM Outlines
The Centerpoint–Angle Method (CAM) is a powerful, geometric approach to faceting design that simplifies the creation of complex gemstone cuts by focusing on the relationships between facets rather than just their absolute positions. Instead of relying solely on trial-and-error meetpoint sequences, CAM allows you to define a "centerpoint" (a specific vertex where multiple facets meet) and then calculate the precise angle required for a new tier of facets to meet perfectly at that point. By mathematically linking the index (rotational position) and angle of a facet to a target intersection, CAM ensures exact symmetry and perfect meetpoints, making it an essential logic for designing precision cuts efficiently.
ProFacet exposes CAM-friendly helpers as System Functions so you can sketch a girdle in a single line and refine the angles later. The following outlines are ready today:
- Round — a fast circular preform via
Round. - Oval — an elliptical outline via
Oval. - Rectangle — the straight rectangle via
Rect. - Truncated rectangle — available through
RectTr. - Truncated square — available through
SquareTr. - Double-truncated rectangle — available through
RectDblTr. - Truncated triangle — available through
TriTr. - Shield — mirrored triangular shield via
Shield. - Cushioned truncated square — available through
SquareCushTr. - Cushioned truncated triangle — available through
TriCushTr. - Cushioned truncated pentagon — available through
PentCushTr. - TriCurved — curved trilliant via
TriCurved.
Round System Function
Round blocks in a simple circular preform when you need a neutral starting outline. Set the pavilion angle for the lower tier and pick a sym count that evenly divides your lap gear—higher numbers create finer girdle segmentation.
This round System Function is included for 'completeness', round shapes don't really need CAM. :)
name = "CAM Round"
gear = 96
Round(43, 8)
{{#fsl id="cam-round-bottom" side="pavilion" size="small" theme="formal" caption="CAM round viewed from the pavilion"}} name = "CAM Round" gear = 96 size = 1.0
Round(43, 8) {{/fsl}}
Oval System Function
Oval walks an elliptical girdle by tracing one quadrant at a time. Use angle to control how deeply the ellipse drops, lwr for the length-to-width ratio, and segmentsPerQuad to set how smooth each quadrant is. Stick with gears divisible by four so the quarter marks line up.
name = "CAM Oval"
gear = 96
Oval(42, 1.35, 6)
{{#fsl id="cam-oval-bottom" side="pavilion" size="large" theme="formal" caption="CAM oval viewed from the pavilion"}} name = "CAM Oval" gear = 96 size = 1.0
Oval(42, 1.35, 6) {{/fsl}}
Rectangle
name = "CAM Rectangle"
gear = 96
Rect(1.6, 45)
{{#fsl id="cam-rectangle-bottom" side="pavilion" size="small" theme="formal" caption="CAM rectangle viewed from the pavilion"}} name = "CAM Rectangle" gear = 96 size = 1.0
Rect(1.6, 45) {{/fsl}}
Truncated rectangle System Function
Use RectTr for a truncated rectangle: pick a length-to-width ratio, the pavilion angle for the long face, and an optional truncation ratio for the corners.
name = "CAM Truncated Rectangle"
gear = 96
RectTr(1.6, 45, 0.30, 5)
{{#fsl id="cam-truncated-rectangle-bottom" side="pavilion" size="small" theme="formal" caption="CAM truncated rectangle viewed from the pavilion"}} name = "CAM Truncated Rectangle" gear = 96 size = 1.0
RectTr(1.6, 45, 0.30, 5) {{/fsl}}
The System Function generates the shallow preform (tiers PF1–PF3) and a finished girdle loop (G1–G3). Tweak truncation toward 0.0 for squarer corners or up toward 1.0 for aggressive chamfers. offset is optional and rotates the corner facets if you want the corners aligned to a different index.
Truncated square System Function
SquareTr mirrors the same control scheme on 4-fold symmetry. It cuts four identical long facets, then trims each corner using the truncation ratio.
name = "CAM Truncated Square"
gear = 96
SquareTr(45, 0.35)
{{#fsl id="cam-truncated-square-bottom" side="pavilion" size="large" theme="formal" caption="CAM truncated square viewed from the pavilion"}} name = "CAM Truncated Square" gear = 96 size = 1.0
SquareTr(45, 0.35) {{/fsl}}
Because the System Function expects a gear divisible by four it runs cleanly on 64-, 80-, 96-, or 120-tooth index gears.
Cushioned truncated square System Function
SquareCushTr builds a softened square outline by offsetting the four primary girdle facets and trimming the corners with a controllable ratio. Use cushion to steer the amount of cushioning, set the pavilion angle for those primary facets, and dial truncation between 0.0 (sharp corners) and about 1.0.
name = "CAM Cushioned Square"
gear = 96
SquareCushTr(2, 45, 0.40)
{{#fsl id="cam-square-cushion-bottom" side="pavilion" size="large" theme="formal" caption="CAM cushioned truncated square viewed from the pavilion"}} name = "CAM Cushioned Square" gear = 96 size = 1.0
SquareCushTr(2, 45, 0.40) {{/fsl}}
The System Function mirrors the pavilion cuts using xx4 symmetry so the cushion stays balanced even if you rotate the starting index. Lower offset keeps the flats on the 0 index; bump it higher to align the flats with any pre-existing tier. Use the girdle percentage or follow-up tiers to stretch the outline without rewriting the function call.
Double-truncated rectangle System Function
name = "CAM Double Trunc Rect"
gear = 96
RectDblTr(1.6, 45, 0.60, 0.50)
{{#fsl id="cam-double-trunc-rect-bottom" side="pavilion" size="large" theme="formal" caption="CAM double-truncated rectangle viewed from the pavilion"}} name = "CAM Double Trunc Rect" gear = 96 size = 1.0
RectDblTr(1.6, 45, 0.60, 0.5) {{/fsl}}
Both truncation settings must stay non-negative, and lwr must be greater than zero—violations now fail fast during interpretation instead of collapsing the girdle geometry.
Truncated triangle System Function
TriTr blocks in a three-fold outline with controllable corner trims. Pass the truncation (between 0.0 for sharp points and roughly 1.5) and the pavilion angle for the primary girdle facets. The System Function assumes a standard 0.7 girdle radius and uses mp(...) so the corners stay aligned.
name = "CAM Truncated Triangle"
gear = 96
TriTr(0.35, 44)
{{#fsl id="cam-truncated-triangle-bottom" side="pavilion" size="large" theme="formal" caption="CAM truncated triangle viewed from the pavilion"}} name = "CAM Truncated Triangle" gear = 96 size = 1.0
TriTr(0.35, 44) {{/fsl}}
Shield System Function
Shield lays in a mirrored threefold outline that reads like a shield or kite while still honoring CAM leveling. It fixes the base at index 6 and expects a gear divisible by six so each mirrored pair lands cleanly.
name = "CAM Shield"
gear = 96
Shield(44)
{{#fsl id="cam-shield-bottom" side="pavilion" size="large" theme="formal" caption="CAM shield viewed from the pavilion"}} name = "CAM Shield" gear = 96 size = 1.0
Shield(44) {{/fsl}}
Dial the pavilion angle to stretch or tighten the lobes—lower values soften the top shoulders, while steeper angles pull the outline toward a pointed kite.
Cushioned truncated triangle System Function
TriCushTr mirrors the same workflow but lets you offset the long side by tweaking the optional cushion index. Use it when you need a slightly rounded triangle that still lands on three repeatable meetpoints. The System Function shares the same truncation and angle controls as TriTr, so you can swap between the two without rewriting your design.
name = "CAM Cushioned Triangle"
gear = 96
TriCushTr(0.30, 44, 2)
{{#fsl id="cam-cushion-triangle-bottom" side="pavilion" size="large" theme="formal" caption="CAM cushioned truncated triangle viewed from the pavilion"}} name = "CAM Cushioned Triangle" gear = 96 size = 1.0
TriCushTr(0.30, 44, 2) {{/fsl}}
Cushioned truncated pentagon System Function
name = "CAM Cushioned Pentagon"
gear = 80
PentCushTr(1, 33, 0.3)
{{#fsl id="cam-cushion-pentagon-bottom" side="pavilion" size="large" theme="formal" caption="CAM cushioned truncated pentagon viewed from the pavilion"}} name = "CAM Cushioned Pentagon" gear = 80 size = 1.0 PentCushTr(1, 33, 0.3) {{/fsl}}
TriCurved System Function
TriCurved creates a Trilliant cut curved by amounts c1 and c2.
name = "CAM TriCurved"
gear = 96
TriCurved(45, 2, 4)
{{#fsl id="cam-tricurved-bottom" side="pavilion" size="large" theme="formal" caption="CAM TriCurved viewed from the pavilion"}} name = "CAM TriCurved" gear = 96 size = 1.0
TriCurved(45, 2, 4) {{/fsl}}