Pleochroma GitHub
Reference

How Pleochroma compares

Where it sits next to the established faceting and gem-rendering tools, and what it already does better.

1The landscape

Faceting software splits into three jobs that different programs solve to different depths: authoring cutting instructions a human will actually cut on a faceting machine, rendering what the finished stone will look like, and analysing how well the cut performs as the stone is tilted. Pleochroma is one program that does all three.

GemCAD
Robert Strickland's faceting-design program: the long-standing reference for authoring cutting instructions. Its .asc text export is the closest thing this field has to an interchange format, and .gem is its own binary save format. Strickland retired in 2023 and released GemCAD and GemRay free of charge — free to use, but not open source.
GemRay
The ray-tracing companion to GemCAD: it renders a design, plots its brightness against tilt and can search the pavilion and crown angles for the best weighted brightness, but it cannot author designs itself. Its own documentation is unusually explicit about its limits — it does not model birefringence, dichroism or polarized light, and follows three color rays rather than a spectrum.
Gem Cut Studio
A Windows faceting-design application, separate from GemCAD, with its own .gcs project format that stores a solved design (facets already closed into polygons) rather than a schedule to be solved.
Gem Diagram
A browser-based faceting designer — nothing to install — that reads .gem, .asc and .gcs, and renders in solid, realistic and ray-path modes. Subscription-priced.
DiamCalc
OctoNus's cut-analysis and visualisation package, aimed at diamond grading and appraisal — parametric cut styles and proportions rather than an index-wheel schedule. OctoNus states that sales of DiamCalc and DiamCalc Pro are discontinued.

2Feature matrix

READ THIS FIRST

The Pleochroma column is checked against this repository's own source. Every other cell was read out of that tool's own vendor page or user manual on 2026-09-21, and the cells marked ?, plus the rough-planning row, were checked again against those sources on 2026-09-30 — the sources are listed below. A ✗ means the documentation either states the limitation outright or describes the mechanism closely enough to settle it; where a manual is simply silent, the cell says ? and this page asserts nothing either way. Nothing here is a benchmark, no version numbers are implied, and software moves — corrections are welcome as issues. Pleochroma is not affiliated with, endorsed by, or derived from any of these programs.

✓ yes · ✗ no · ? not verified by this page. Compiled from each tool's own documentation, read 2026-09-21 and 2026-09-30 — see sources.
  Pleochroma GemCAD GemRay Gem Cut Studio Gem Diagram DiamCalc
Authoring
Authors cutting instructions (angle, index, mast) ✓✓✗✓✓✗ parametric cuts
Positions facets by meet point rather than by a typed depth ✓✓✗✓✗ angle + auto-distance✓ Cut Designer: 3-pt facets
Automatic search over angles against an optical objective ✓ cancellable, keeps the meets✗ manual, via ray paths✓ Nelder–Mead, pavilion and crown scale✗ manual optimizer✗ yield search, not angle✓ Pro: cut proportions
Preform support ✓✓✗✓ preform tier?✓ Cut Designer: Custom Preform
Manufacturability checks (vanishing facets, gear quantization) ✓✓ cut-off facet dialog, gear rounding error✗✓ gear re-map report??
Plans cuts from a block of rough (yield, placement in the rough) ✓ block/cylinder/pebble/OBJ mesh with cuts, as many stones as fit or up to a set number, up to 99 designs mixed✗ by hand: L/W, Vol./W³✗ optical merit only✗ single-design yield calculator✓ one design, orientation search✗ by hand: weight, locked limits
Rendering
Separate fixed-tap Ray-Traced engine✓ CPU/GPU; fixed-index approximation?????
Produces a physically-based image of the cut stone ✓✗ ray paths only✓✓✓✓
Refractive index evaluated per wavelength ✓ 8 channels/path✗✗ 3 colors✗ 3 colors✓ dispersion value✓ chromatic dispersion
Polarization tracked through every interface (Stokes–Mueller) ✓✗✗ stated✗??
Birefringence, uniaxial and biaxial, with walk-off ✓✗✗ stated✗??
Direction-dependent (pleochroic) absorption ✓✗✗ stated✗ “in the future”✓ Alexandrite only, 3-axis?
Volumetric inclusions / haze ✓✗?✓ Clarity: distance-based haze?✓ Pro: inclusion defocus
GPU compute path, verified against the CPU reference ✓ separate checks for Path-Traced and Ray-Traced✗✗ multicore CPU✗? WebGL2 shader; check not stated? HDR engine on GPU; check not stated
Renders split across machines on a local network ✓ mTLS 1.3; both engines, protocol 29✗????
Analysis
Brilliance / windowing / extinction figures ✓✗✓✓✓ windowing check + Ray Studio✓ ASET, Ideal-Scope
Performance swept across tilt angle, not a single pose ✓ 181 pts × 4 azimuths, video export✗✓ brightness vs. tilt✓ Tilt Performance?✓ DETAS: tilt sweep
Searchable library of designs ✓ SQLite, built in✓ via Datavue II✗✓ via Datavue✗ “no preset library yet”✓ via DataVue2
Cut grade / appraisal report ✗✗✗✗✗ stats only, no grade✓
Practicalities
Source available under an open licence ✓ MIT✗ free since 2023✗ free since 2023✗✗ subscription✗ sales discontinued
Runs natively on Linux ✓✗ Windows✗ Windows✗ Windows, Mac✓ browser✗ Windows
Runs in a browser ✓ editor, diagram, Path-Traced and Ray-Traced CPU/GPU; no library✗✗✗✓✗

3Interoperability

This part is entirely verifiable, and it is the practical answer to "can I keep using what I already have?". Everything below lives in crates/pleochroma-formats.

FormatOriginPleochroma readsPleochroma writesNotes
.asc GemCAD text export ✓ ✓ Cutting instructions: angle, mast and index positions, per-facet names, plus meet instructions. The field's de facto interchange format, verified against a real-world corpus of 5,759 files: Windows-1252 files, both line endings, GemCAD's culet convention (angle 0 with a negative distance) and names bound to their index are all read and written back as GemCAD does. A concave tier is written as two footnotes and a tier relation as its current angle.
.gcs Gem Cut Studio ✓ ✓ experimental Plain-text XML holding a solved design — every tier already carries its facets as closed polygons. Read per the file description in the Gem Cut Studio 1.1 user's manual; the conventions the manual leaves open were measured on 59 real files and checked field by field against the 56 that have an .asc sibling for the same design. The writer solves each facet's polygon from the facet planes and reads back correctly here, but has not yet been checked in Gem Cut Studio itself, and chiral designs are untested.
.gem GemCAD native save ✓ ✗ Binary, with no published specification. The geometry is now decoded from the binary: every facet plane, tier, name and cutting note, plus gear, symmetry, refractive index, headings and footnotes. Verified against a corpus of 254 files, all of which decode byte-exactly end to end; where a design also exists as an .asc, every tier's angle, mast and index set matches it. An embedded CAM preform is read but not converted.
.psdd Pleochroma design file ✓ ✓ Self-contained: every tier with its angle (or the relation it follows), index set, name, note and authored target, the concave tiers with their tool lines, plus the preform, material, schedule metadata and edit history, in one file with no .asc beside it. Plain text in TOML syntax, with a versioned header; a file from a newer version is refused with a message instead of being misread. A file is written as format version 2 only when it has concave tiers, as version 3 only when a tier has a relation and as version 4 only when its rough is a planned piece from the Rough planner; every other file is unchanged. The file also carries what cannot be worked out again from the geometry: descriptive metadata (title, designer, source, notes, tags, licence, dates and an id) and attachments (a PDF, the original .gem or .asc, a diagram image), each attachment stored byte for byte with its size and checksum. Derived values (ratios, volume, facet counts, the angle table, previews and tilt curves) are not stored; an importer recomputes them. The web app keeps the metadata and attachments of a file it opens and writes them back unchanged, with a new modification time.

The .gcs and .gem readers exist because real designs are published in those formats with no .asc counterpart. The desktop editor imports both into its library and opens both directly, converting them to .asc cutting instructions. The .gem layout is clean-room reverse-engineering from a file corpus; both readers are documented in the source with what is confirmed, what is inferred, and what is still open.

4Scope, and where it is today

The goal is a complete gemstone faceting suite: author a design, solve it, optimise it, see what it will look like cut in a given material (34 built into the shared catalogue — see Materials), and export something a cutter can work from — one program, one data model, no round trip through a second tool.

Concretely, the editor covers: a new design starts from a template gallery (five shape families, four round variants and teaching designs, and a blank design) or a step-by-step guided walkthrough that highlights the relevant panel at each stage, with 90 short tutorials for the individual functions; Solve and the angle-search Optimize pass both run off the UI thread and can be cancelled mid-search — a real checkpoint the search itself observes, not just a UI dismissal — rather than blocking the editor until a multi-minute run finishes; and the exported cutting sheet reports mast in millimetres once a girdle diameter is set, a yield/weight-loss figure against the preform, and a per-tier cheater (azimuth) offset column when a tier actually carries one.

The editor also covers things the matrix has no row for: concave facets cut with cylinder, cone, circle, disc or sphere tools, which the renderer traces on the CPU and on the GPU (up to 128 tools) and which the metrics, the tilt curves and the optimizer score on the carved stone; frosted facets, which render in previews, the live view, exports and render jobs and which the tilt curves score as frosted (the live metrics, the optimizer and Compare still treat every facet as polished); tier angles that follow relations such as =P1 - 2; a cutting mode that shows the instructions one step per page; and pleochroma-cli, a command-line tool that runs the solver, optimizer, retarget gate and angle sweep on one design or on several, without a window, and prints deterministic text, JSON or CSV. None of the other tools' pages was read for these, so this page asserts nothing about whether they have them.

Yield planning goes beyond the single-design preform figure. The Rough planner takes a block, cylinder or pebble of rough, modelled with flat edge, corner and face cuts, or an OBJ mesh of a scanned or irregular rough, and, from either the library filter or the whole library, ranks up to 10 layouts by total carats, as many stones as fit (or up to a number you set) and up to 99 designs mixed: a single stone is fitted exactly with its real outline in any orientation, and several stones get a sawing plan (slabs, then bars, then pieces, over all 6 cut orders). It is an estimate for clean, inclusion-free rough after your kerf and allowance: it plans around the notches and hollows of a closed mesh and places no stone in air, and it keeps stones clear of the inclusions you add to a mesh rough but knows nothing of any others, and it is desktop-only for now. The one other rough planner in the matrix is Gem Diagram's, which its documentation describes as an orientation search that starts from one loaded design and reports yield and finished weight for each orientation; it does not describe choosing among designs or stone counts.

5Why the optics depth matters

Most of the rendering rows above are the same argument in different forms. A gemstone is one of the few subjects where an RGB renderer's approximations are visible rather than academic: dispersion is the whole point of the object, the material is anisotropic, absorption depends on the direction light travelled through the crystal, and total internal reflection introduces phase shifts that a polarization-free tracer simply discards. Pleochroma’s Path-Traced engine evaluates the refractive index per wavelength from Sellmeier and Cauchy fits, carries Stokes vectors through Mueller matrices at every interface, splits ordinary and extraordinary rays with genuine Poynting walk-off, and applies absorption per direction — and then checks its own GPU port of all that against the CPU reference with a tiered equivalence harness.

The question that usually follows is why not simply render the stone in a general 3D package — Blender/Cycles, LuxCoreRender and the rest. They will light a gemstone mesh beautifully, but they have no notion of cutting instructions, an index wheel or a meet point, and they carry a single refractive index per material rather than a dispersion curve, so their dispersion model differs. Pleochroma’s lightweight Ray-Traced option likewise uses fixed indices. The faceting tools above have the opposite problem: they know exactly what a tier is, and their renderers follow three color rays.

Whether that depth is worth it depends on what you are doing. For laying out a schedule and getting it cut, an established authoring tool plus a quick preview is a perfectly sound workflow. The case for Pleochroma is when you want to see what a cut will actually look like in a specific material before committing rough to it — the six-material figure in the renders section of the overview is one design in six materials — or when you want the source of the thing making that claim.

6Sources

Every non-Pleochroma cell in section 2 was taken from the tool's own vendor page or user manual, read on 2026-09-21; the rough-planning row and the re-check of every ? cell used the sources below again on 2026-09-30, and the entries added then are marked. Where a manual is silent on a capability this page records ? rather than inferring absence, except where the document explicitly states a limitation.

Ray-Traced and Path-Traced

Pleochroma offers both a spectral Path-Traced engine and a lightweight Ray-Traced engine. The spectral, polarization and birefringence claims in the matrix concern Path-Traced. Question marks in the Ray-Traced row mean that an equivalent mode has not been checked for that tool.

Ray-Traced is a deterministic approximation: one d-line index, or three fixed indices with Fire, RGB absorption tint and 1/4/8/16 AA taps. It finishes at the tap count without denoising. It omits polarization, birefringent doubling, scattering, zoning and edge rounding. Path-Traced retains the spectral model. Optical metrics, tilt sweeps and diagnostics keep their separate analytic tracer.