Skip to content

Repository files navigation

GCS Viewer

tests latest release

Look at a faceted gem design without opening the program that cut it.

⬇ Download GCSViewer.exe — Windows, nothing to install. Double-click a .gcs or .gem file and the stone is on screen: three shaded views and the cutting instructions.

If you open designs all day, take the folder build from the releases page instead — it starts in a third of the time (427 ms against 1,534 ms), because the single file unpacks itself into %TEMP% on every launch.

the demo stone in the viewer — table and side views beside a 3/4 view being turned on both axes, above the cutting instructions

docs/demo.gcs, opened in the viewer. The third panel is live: drag to turn the stone, arrow keys to tip it.

Why

Faceting design files are geometry, not pictures, so a folder of them is a folder you cannot see — and finding one stone means opening candidates in a design program one at a time. This makes them behave like photos: double-click one, arrow through the folder, close it.

About Gem Cut Studio

Gem Cut Studio, by Rej Poirier, is design software for faceted gemstones — "gem design, in real-time", in its own words. You work in the terms a faceter actually cuts to — tiers, angles, index gear — and see the finished stone rendered as you go, so a design can be judged on screen before anything is ground against a lap. Its designs are the .gcs files this viewer opens, and the tier / angle / index table under the renders is the same vocabulary as its cutting-sequence panel.

GCS Viewer is an independent tool. It is not affiliated with Gem Cut Studio or GemCad, it only reads their files, and it never modifies what it opens.

What it shows

Three orthographic, flat-shaded panels, tinted with the material colour stored in the file:

Panel View
Table (top) straight down the optic axis
Side the girdle profile
3/4 view angled — drag to turn it, arrow keys to tip it

Below them the cutting sequence — tier, angle, index list and the instruction the file carries — grouped into Pavilion and Crown.

Angle, section and index list are derived from the geometry rather than read from the file, so they appear even for designs that store no instructions. Index positions come from each facet normal against the gear in the file (96 by default): a normal at 22.5° on a 96 gear is index 06.

A panel with nothing facing it says so, which is not always a fault — a preform has no crown yet, so there is genuinely nothing to draw from above.

Rendering is deliberately flat and matte: a painter's algorithm with back-face culling, one fixed light and a specular highlight. No refraction, no dispersion. Flat shading shows the facets, and a meet that does not meet stays visible instead of disappearing into a sparkle.

Formats

.gcs Gemcut Studio XML. Facets, tiers, instructions, material colour.
.gem GemCad binary — reverse-engineered, no published spec.

The .gem reader recovers the title and the designer's notes from a trailing block of length-prefixed strings, and prints them along the foot of the sheet, since that is often all a .gem says about itself. Face normals are recomputed with Newell's method, because the stored ones cannot be relied on.

There is no .asc support, by design.

Controls

Key Does
← → previous / next design in the folder, wrapping, in Explorer's sort order
drag turn the 3/4 view left and right
↑ ↓ tip the 3/4 view up and down
I show / hide the instructions table
G grayscale
L tier labels
S save the sheet as a PNG next to the design
R reset the 3/4 angle
Esc / Q close

Files it cannot read are skipped while arrowing, rather than stopping the walk.

Install

GCSViewer.exe needs nothing installed — no Python, no numpy, no Pillow.

  1. Put it somewhere permanent, e.g. C:\Tools\GCSViewer\.

  2. Register it, from that folder:

    powershell -ExecutionPolicy Bypass -File .\Install-GcsViewer.ps1

That also gives .gcs and .gem files a gem icon instead of Explorer's blank page, and adds a Start Menu entry which asks for a design when launched without one.

Make it the default

Windows lets only you set a default handler, not the program itself — the setting is hash-protected so that applications cannot claim file types behind your back.

Right-click a .gcs file → Open withChoose another appGCS ViewerAlways, and repeat once on a .gem file. If Always is greyed out, select the app first; if GCS Viewer is not listed, scroll to the bottom for Choose an app on your PC and browse to GCSViewer.exe.

Gem Cut Studio stays available on both types through Open with.

If double-click shows the picker and choosing the viewer does nothing, re-run Install-GcsViewer.ps1 — versions 1.0.19 to 1.0.25 registered the file type without a default action, and re-running repairs it.

To check the registration without opening dialogs:

powershell -ExecutionPolicy Bypass -File .\scripts\Show-OpenWithList.ps1

It prints what Windows would offer for both extensions, whether a double-click resolves to a program that exists, and any stale entries left behind by apps that were moved or uninstalled.

If you move the install, re-run the installer from the new location. Any default you explicitly set has to be picked again, because Windows ties a saved choice to the app as it was registered when you chose it.

INSTALL.md is the version to hand to somebody else.

Run from source

This is how to use it on Mac or Linux. The download is a Windows executable, but the program is plain Python and runs anywhere numpy, Pillow and tkinter do. There is no double-click integration off Windows, so you pass the design on the command line; everything else — the three views, the cutting table, the keys — is the same.

pip install -r requirements.txt
python  gcs_viewer.py "stone.gcs"              # the window
python  gcs_viewer.py "stone.gcs" --save       # write stone_views.png beside it
python  gcs_viewer.py "stone.gcs" --save out.png --gray --no-labels
python  gcs_viewer.py --selftest report.txt    # prove a build works
python  gcs_viewer.py --version                # which build is this

On Windows use pythonw for the window, so no console appears behind it.

A defaulted output name is never overwritten — save the same design twice and the second lands beside the first as stone_views (1).png. A name you give explicitly is used as given.

Those three libraries are the only dependencies — no matplotlib, no scipy. Developed on Python 3.12; CI runs the suite on 3.10, 3.12 and 3.13, on Windows and Linux.

Set GCS_VIEWER_NO_GUI=1 to make errors print to stderr instead of opening a message box, so an unattended script cannot stall on a dialog.

Developing

Tests, the verification tooling and the constraints on changing the parsing API: DEVELOPING.md.

History

CHANGELOG.md — what changed in each release and why.

License

MIT — see LICENSE.

About

View Gemcut Studio .gcs and GemCad .gem faceting designs straight from Windows Explorer - three shaded views plus the cutting instructions.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages