Skip to content

Measurement System

Overview

The wedding band builder uses a measurement system grounded in real world millimeter dimensions. All 3D geometry -- ring profiles, diamond models, and engraving paths -- is authored in millimeters, typically exported from Rhino .3dm files. A rendering scale factor (rootScale = 0.1) is applied to the 3D scene for visual purposes, but all measurement calculations operate in the original millimeter coordinate space.

This document covers how each measurement type works, what units are available, and how conversions between units are performed.

User-Facing Guide

For a higher-level overview of measurements aimed at end users (how to read ring sizes, understand diamond carats, and interpret the price breakdown), see the Ring Measurements Guide.


Ring Dimensions (Width and Thickness)

How It Works

Ring width and thickness are controlled through multiplier sliders rather than absolute millimeter inputs. Each ring profile has a raw bounding-box dimension measured from the imported geometry:

  • Raw width -- the horizontal span of the profile cross section in mm
  • Raw height -- the vertical span (thickness) of the profile cross section in mm

The slider value is a multiplier on these raw dimensions:

actualMm = rawDimension x multiplier

Slider Ranges

DimensionMultiplier minMultiplier maxExample (4mm raw profile)
Width0.5x2.0x2mm -- 8mm
Thickness0.5x1.5x2mm -- 6mm

WARNING

Width and thickness sliders apply multipliers (0.5x to 2.0x) to the profile's base dimensions. A multiplier of 1.5x on a profile with a 3mm base width gives 4.5mm, but the same 1.5x on a different profile with a 4mm base width gives 6mm. If building custom UI, convert to actual millimeters before displaying to users.

UI Display

The tape ruler slider shows actual millimeter values at the min and max ends, computed from the raw profile dimensions and the multiplier range. The current value is displayed as the actual mm measurement.


Ring Size

How It Works

Ring size is stored internally as the inner radius in millimeters. The sizing slider operates on inner diameter (radius x 2) and snaps to standard jeweler reference values.

When a ring size changes in a multi-band configuration, matchBaseHeight() is called to keep all bands aligned at their base edges.

Supported Sizing Systems

The UI provides a toggle between three international sizing systems:

SystemRangeDiameter display unit
US3 -- 13 (half sizes)Inner diameter in inches
EU44 -- 69Inner diameter in mm
UKF -- ZInner diameter in mm

Default ring size: radius of ~10mm (approximately US size 10).

Display Format

Each size is shown as: [size label] . [inner diameter]

  • US example: 7 . 0.68 in
  • EU example: 54 . 17.3 mm
  • UK example: N1/2 . 17.3 mm

US sizes display the inner diameter in inches (diameter mm / 25.4), while EU and UK sizes display it in millimeters.


Size Conversion Reference

The following table maps between all three sizing systems. Inner radius is the value stored internally; inner diameter is what the user sees.

US SizeEU SizeUK SizeInner Radius (mm)Inner Diameter (mm)
344F7.0214.04
3.545G7.2214.44
447H7.4314.86
4.548I7.6415.28
549J1/27.8515.70
5.550K8.0516.10
652L1/28.2616.52
6.553M8.4616.92
754N1/28.6717.34
7.556O8.8717.74
857P1/29.1018.20
8.558Q9.2718.54
959R1/29.4518.90
9.561S9.6819.36
1062T1/29.9219.84
10.564U1/210.1320.26
1165V1/210.3420.68
11.566W10.5421.08
1267X1/210.7421.48
12.568Y10.9521.90
1369Z11.1622.32

Diamond Stone Size

How It Works

Diamond size is controlled through a multiplier on a base reference diameter. The base diamond model (diamond_single.glb) has a bounding-box diameter of 0.616mm at stoneSize = 1.

diameterMm = 0.616 x stoneSize

Slider Range

MultiplierDiameter (mm)
0.5x (min)0.31mm
1.0x0.616mm
3.0x (max)1.85mm

Display Units

The UI provides a toggle between two unit systems:

Millimeters -- Shows the actual computed diameter:

diameterMm = 0.616 x stoneSize

Carats -- Approximated using a round brilliant formula:

carats = diameterMm^3 x 0.00366

TIP

The carat formula (diameter³ × 0.00366) is a standard round brilliant approximation accurate to ±5%. For certified stones, use the actual carat weight from your supplier rather than this computed value.

This cubic approximation models the relationship between a round brilliant diamond's diameter and its carat weight. It has been verified against standard gemological reference charts:

Diameter (mm)Computed caratsStandard reference
4.0~0.23 ct0.25 ct
5.0~0.46 ct0.50 ct
6.5~1.00 ct1.00 ct
8.0~1.88 ct2.00 ct

Price Calculation

How It Works

Ring pricing is computed from the physical volume of metal, using a three-step process based on Pappus's centroid theorem.

Step 1: Volume (Pappus's Theorem)

The ring is a solid of revolution. Its volume is computed as:

volumeMm3 = crossSectionArea x 2pi x radius

Where:

  • crossSectionArea is the area of the ring's profile cross section in mm squared
  • radius is the ring's inner radius in mm

This is exact for any profile shape revolved around a central axis.

Step 2: Metal Weight

Volume is converted to weight using the metal's density:

volumeCm3 = volumeMm3 / 1000
weightGrams = volumeCm3 x densityGcm3

The default density is 15.5 g/cm cubed, which corresponds to 18K gold. Different metals use different densities (e.g., platinum is approximately 21.4 g/cm cubed).

Step 3: Price

priceUsd = weightGrams x pricePerGram

The default price per gram is $97/gram. This value is configurable and can be adjusted per metal type.

Weight Units

The pricing service supports three weight units for price input:

UnitGrams per unit
Gram1.0
Ounce28.3495
Troy ounce31.1035

When a price is specified per ounce or per troy ounce, it is internally converted to price-per-gram before the final calculation.


Coordinate System Notes

  • All geometry is authored in millimeters in the source CAD files (Rhino .3dm)
  • Diamond models share the same mm coordinate space as ring profiles
  • A rootScale = 0.1 is applied at the scene level for rendering, but this does not affect any measurement or pricing calculations
  • Profile dimensions are measured from the geometry's axis-aligned bounding box
  • The cross section area used for pricing is computed from the actual profile polygon, not the bounding box