
GemSim
3D Gem Faceting Simulator
About
What's New in GemSim
1.3.56
November 7, 2026
HELP AND MANUAL - Added the standalone GemSim manual with a screenshot for every section. - Help tutorials now open externally on YouTube and no longer embed a player. - Native apps exclude the static manual; it remains available on the web. - Manual updated for mirror controls, shape thumbnails, the 4:6 Geometry layout, the new labels, and matching Clockwise with the machine’s index-gear direction. - Help/Feedback display the build version instead of the hard-coded v0.0.0. AUTHENTICATION - Sign-in and account requests now time out after 10 seconds. - Sessions expire 24 hours after sign-in, with a five-minute expiry warning. - Added session-expiry handling in AuthControl, App, and PublicViewer, plus unit tests. GEOMETRY AND MIRRORING - Added Mirror Pavilion and Mirror Crown controls. Mirroring reflects tier indices across the top index, preserves fractional indices, and keeps each facet’s polished/frosted finish. - Mirror checkboxes are session-only and are not saved in design files. Opening a design resets them, and legacy mirror flags are stripped. - Index and Rough Size now share the full row at a 4:6 ratio, with responsive wrapping, a minimum Index width, reduced Rough Size padding, and Pavilion/Crown kept on one line. - Renamed Index to Index Gear and Reverse to Clockwise, and replaced the mirror icon with a Mirror label. - Decoupled mirroring from Clockwise and open tier edits: mirror controls stay enabled, and mirroring saves any open tier edit first. LIBRARY - Added 47 gem-outline thumbnails and a ShapeSelect component to the library shape picker. - Added unit and e2e coverage for thumbnail mapping and picker behavior. VERSIONING AND NATIVE BUILDS - package.json is now the single app version source. - Vite injects the web version; Help and Feedback read it. - Android Gradle reads package.json directly and derives versionCode as major * 10000 + minor * 100 + patch. - iOS uses version:sync to update MARKETING_VERSION and CURRENT_PROJECT_VERSION, with a CI version check. - Removed the old Android version.properties generator, tag-based Android version reader, and Netlify auto-version bump. - Fixed an iOS Swift package mismatch by keeping Capacitor at 8.5.0 to match the lockfile, with a guard test. - Added gitignore entries for Android release output and local Gradle toolchain files. - Releases in this range: 1.3.53, 1.3.54, and 1.3.56. SENTRY - Added Sentry monitoring for web and Capacitor. - Added the Sentry Vite plugin, CLI, React and Capacitor packages, native initialization, source-map upload support, Cocoa pinning, documentation, and tests. BEAUTY RENDER - Fixed missing Babylon Ray import that broke beauty-render drag rotation after moving the divider. - Added panel-size observation so the renderer resizes with the divider and keeps the correct aspect ratio. - Updated render e2e tests for the current Analyze tab and added coverage for resizing and orbit drag. GCS AND ASC IMPORT - GCS index_angle values are now converted directly to gear indices for crown and pavilion tiers. - ASC pavilion indices are mirrored before normalization to match the GCS/displayed order; crown, girdle, and table indices are unchanged. - GCS tier frosting attributes are supported. - GCS per-facet frosting intensity is supported; positive values such as 0.5 mark the facet frosted. - GCS XML parsing tolerates stray leading bytes before the XML root. The attached frost_export_test.gcs now opens and P3 imports as frosted. - Added regression tests for index conversion, tier/facet frosting, and XML prefix handling. OTHER FIXES - Fixed near-coincident crown cuts disappearing at C5, with a regression fixture and e2e test. - Fixed TypeScript 5.9 Buffer typings in the print worker, print client, and PDF generator.
More





