An interactive digital reconstruction of a rare 17th-century Gimmel wedding ring, engineered entirely within a single fragment shader using mathematical Raymarching. No 3D models (.glb/.obj), no image textures, no external canvas assets. Features fluid kinematic unfolding mechanics, anatomical D-shape comfort-fit gold profiles, and procedural Champlevé enamel monograms rendered at a rock-solid 60 FPS across all modern mobile and desktop viewports.
No reviews yetBe the first to leave a review for SB-GIMMEL
Maker
📌
Hi Product Hunt community! 👋
I’ve always been fascinated by historical jewelry mechanics, especially the Gimmel rings of the 17th century—intricate tokens of intimacy featuring interlocking bands that pivot open to reveal hidden internal vows. When I saw modern web interpretations of high-end jewelry, I noticed everyone relied on the same formula: sculpting a heavy polygon mesh in Blender, packing it into a .glb file, and loading it via a basic Three.js wrapper.
I wanted to challenge that status quo. I wanted to see if absolute luxury could be rendered out of thin air, using nothing but pure vector equations inside a single WebGL2 fragment shader.
The biggest monster in this journey was sub-pixel aliasing. On a micro-scale, rotating gold edges and thin lines turn into a jaggy, pixelated mess. I ran a brutal gauntlet of anti-aliasing techniques to crush this noise without breaking the performance:
1. Multi-pass Supersampling (SSAA Rig) — It delivered gorgeous boundaries but quadrupled the pixel math, choking mobile GPUs.
2. Screen-Space FXAA Filters — It smoothed the edges on the fly but blurred the crisp specular highlights of the 18K gold material, destroying the premium feel.
3. My Geometric Fillet Solution — The breakthrough was native. I completely rebuilt the ring cross-section into a curved D-shape anatomy using a cosine arc distortion, expanding the physical radius of the mathematical blend fillets. By allowing the directional studio light rig to softly roll over calculated microscopic bevels rather than zero-width mathematical lines, the edge pixels stopped exploding natively. The silhouettes became flawlessly smooth at 60 FPS without a single heavy post-processing pass.
Instead of pixelated flat image textures, the hidden "S" and "B" monograms are rendered via direct procedural vector math, mimicking the authentic royal Champlevé enamel technique where the glass lacquer settles smoothly inside the solid metal matrix.
This project is a testament to what happens when you push custom interactive graphics to their absolute technological limit. I build exclusive features for websites of any complexity (создаю эксклюзивные фишки для сайтов любой сложности) to help brands stand out with unique, high-performance visual footprints. My full contact details are available right in my profile—let's create something extraordinary together.
I’d love to hear your thoughts, feedback, and hardware performance results in the comments below! Thank you for the support! ⚜️
Report
💎 Pixel perfection
The shader work here is genuinely impressive, especially keeping it at 60fps on mobile. One thing that would make this even cooler is adding a subtle two-finger rotation gesture so you can twist the ring along its own axis and inspect the monograms from different angles, right now the unfolding is great but the fixed orbit can hide details depending on how it rests.
Report
Maker
@abdurrahmay2np That is brilliant UX feedback, thank you! I completely agree that adding a native two-finger twist gesture along the ring's local axis would expose the hidden Champlevé monograms much better during the unfold state. Right now, I'm keeping the mouse/touch loops lightweight to guarantee that 60fps mobile threshold, but integrating a touch-twist quaternion rotation is definitely on top of my feature roadmap. Appreciate the sharp eye! ⚜️
Report
💎 Pixel perfection
Loving the technical ambition here, a whole ring built from raymarching in a fragment shader is wild. One thing that would really sell the magic for me: let users actually try the split and reunite gesture themselves on touch or click. Right now I can't tell if the kinematic unfolding is meant to be interactive or just visual, and having that tactile moment where the two halves snap apart and back together would make the piece feel alive instead of a passive showcase.
Report
Maker
@sadkmfhj Thank you! It actually is fully interactive—you can tap or click anywhere on the viewport canvas to trigger the split and watch the rings snap apart and together! The kinematic unfold loops are completely driven by the touch matrix to create that exact tactile jewelry mechanism feel you described. Give it a quick single tap or click to see the Gimmel action unfold. Thanks for the awesome feedback! ⚜️
Report
💎 Pixel perfection
the fact that this is a whole wedding ring built from math with no models or textures is genuinely wild, and it runs smoothly on my phone. the little unfolding animation when you tap is such a satisfying detail.
Report
Maker
@balkabakib78558 Thank you so much! Transforming pure mathematical formulas into smooth gold curves and fluid kinematics was the ultimate challenge here. I really wanted it to feel tactile and immediate on mobile, so hearing that the unfolding animation feels satisfying on your phone means the world to me. Appreciate the support! ⚜️
Report
Pretty wild what a single shader can pull off here. The unfolding animation feels genuinely tactile and the procedural enamel detail is way better than I expected for something running at 60fps on my phone.
Report
Maker
@azadtekeli Thank you! Getting that procedural Champlevé enamel to render clean and crisp without heavy, blurry texture maps was a major part of the battle. I really wanted the vector details to hold their ground on a close zoom while keeping the Raymarching loop incredibly light for mobile processors. Thrilled to hear it hits that 60fps sweet spot for you! ⚜️
Report
Maker
Hey everyone!
You have a unique chance to see behind the curtain of how this ring actually evolved. I still have a backup file from the early days, and back then, the hoop was just a harsh, industrial cylinder.
To turn it into a high-jewelry masterpiece, I had to completely alter the SDF math to create a genuine Comfort Fit (D-shape) profile. By replacing a flat cross-section with a soft trigonometric cosine distortion, the gold immediately started catching those narrow, liquid-like specular lights.
Here is the exact mathematical line that did the trick inside the map function:
It natively softened the perimeter, completely killing the pixelated edges without a single heavy post-processing pass. Drop an upvote if you love clean math! ⚜️
Report
Maker
A Quick Maker’s Self-Analysis: Shaders, Luxury, and the Limits of WebGL
Now that the launch is live, I wanted to share a raw, honest technical self-analysis of SB-GIMMEL. Building this wasn't just about code—it was a battle between old-world jewelry aesthetics and raw hardware math. Here is my breakdown of what worked, what I had to rethink, and where this architecture is heading next.
1. The Architectural Wins (Why it's fantastic):
The custom comfort-fit D-shape profile is an absolute victory. Getting gold to look heavy, cast, and authentic inside a single fragment shader required matching the soft blend fillets with a fine-tuned light rig. Shifting to an un-copyable procedural approach means there are no heavy .glb meshes to download, making the load times instant and the edge smoothness infinitely sharp on close zooms.
2. The Tech Pivots (What else I considered):
The war against aliasing was brutal. I initially built a heavy Supersampling (SSAA) rig, but it choked mobile GPUs by quadrupling the canvas calculations. I also tried an FXAA lens filter pass, but screen-space edge blurs ruined the ultra-sharp, premium specular highlights of the gold material. Shifting to an analytical, geometric solution by trigonometric distortion was the ultimate breakthrough—fixing the jaggies natively without performance hits.
3. Future Roadmap (What can be improved):
If I were to take this to a commercial scale, the next step is building an automated pipeline to dynamically generate a wider range of procedural gemstone cuts (like standard brilliants or emerald step-cuts) directly through code formulas.
This build proves that pure math can evoke the exact same emotional awe as a physical masterpiece from a museum. The technical foundation is rock-solid—now it's time to scale the vision into a decentralized digital luxury boutique.
The shader work here is genuinely impressive, especially keeping it at 60fps on mobile. One thing that would make this even cooler is adding a subtle two-finger rotation gesture so you can twist the ring along its own axis and inspect the monograms from different angles, right now the unfolding is great but the fixed orbit can hide details depending on how it rests.
@abdurrahmay2np That is brilliant UX feedback, thank you! I completely agree that adding a native two-finger twist gesture along the ring's local axis would expose the hidden Champlevé monograms much better during the unfold state. Right now, I'm keeping the mouse/touch loops lightweight to guarantee that 60fps mobile threshold, but integrating a touch-twist quaternion rotation is definitely on top of my feature roadmap. Appreciate the sharp eye! ⚜️
Loving the technical ambition here, a whole ring built from raymarching in a fragment shader is wild. One thing that would really sell the magic for me: let users actually try the split and reunite gesture themselves on touch or click. Right now I can't tell if the kinematic unfolding is meant to be interactive or just visual, and having that tactile moment where the two halves snap apart and back together would make the piece feel alive instead of a passive showcase.
@sadkmfhj Thank you! It actually is fully interactive—you can tap or click anywhere on the viewport canvas to trigger the split and watch the rings snap apart and together! The kinematic unfold loops are completely driven by the touch matrix to create that exact tactile jewelry mechanism feel you described. Give it a quick single tap or click to see the Gimmel action unfold. Thanks for the awesome feedback! ⚜️
the fact that this is a whole wedding ring built from math with no models or textures is genuinely wild, and it runs smoothly on my phone. the little unfolding animation when you tap is such a satisfying detail.
@balkabakib78558 Thank you so much! Transforming pure mathematical formulas into smooth gold curves and fluid kinematics was the ultimate challenge here. I really wanted it to feel tactile and immediate on mobile, so hearing that the unfolding animation feels satisfying on your phone means the world to me. Appreciate the support! ⚜️
Pretty wild what a single shader can pull off here. The unfolding animation feels genuinely tactile and the procedural enamel detail is way better than I expected for something running at 60fps on my phone.
@azadtekeli Thank you! Getting that procedural Champlevé enamel to render clean and crisp without heavy, blurry texture maps was a major part of the battle. I really wanted the vector details to hold their ground on a close zoom while keeping the Raymarching loop incredibly light for mobile processors. Thrilled to hear it hits that 60fps sweet spot for you! ⚜️
Hey everyone!
You have a unique chance to see behind the curtain of how this ring actually evolved. I still have a backup file from the early days, and back then, the hoop was just a harsh, industrial cylinder.
To turn it into a high-jewelry masterpiece, I had to completely alter the SDF math to create a genuine Comfort Fit (D-shape) profile. By replacing a flat cross-section with a soft trigonometric cosine distortion, the gold immediately started catching those narrow, liquid-like specular lights.
Here is the exact mathematical line that did the trick inside the map function:
float curveFactor = cos(clamp(p.z / thick, -1.0, 1.0) (3.14159 0.5));
dRing -= curveFactor * 0.012;
It natively softened the perimeter, completely killing the pixelated edges without a single heavy post-processing pass. Drop an upvote if you love clean math! ⚜️
A Quick Maker’s Self-Analysis: Shaders, Luxury, and the Limits of WebGL
Now that the launch is live, I wanted to share a raw, honest technical self-analysis of SB-GIMMEL. Building this wasn't just about code—it was a battle between old-world jewelry aesthetics and raw hardware math. Here is my breakdown of what worked, what I had to rethink, and where this architecture is heading next.
1. The Architectural Wins (Why it's fantastic):
The custom comfort-fit D-shape profile is an absolute victory. Getting gold to look heavy, cast, and authentic inside a single fragment shader required matching the soft blend fillets with a fine-tuned light rig. Shifting to an un-copyable procedural approach means there are no heavy .glb meshes to download, making the load times instant and the edge smoothness infinitely sharp on close zooms.
2. The Tech Pivots (What else I considered):
The war against aliasing was brutal. I initially built a heavy Supersampling (SSAA) rig, but it choked mobile GPUs by quadrupling the canvas calculations. I also tried an FXAA lens filter pass, but screen-space edge blurs ruined the ultra-sharp, premium specular highlights of the gold material. Shifting to an analytical, geometric solution by trigonometric distortion was the ultimate breakthrough—fixing the jaggies natively without performance hits.
3. Future Roadmap (What can be improved):
If I were to take this to a commercial scale, the next step is building an automated pipeline to dynamically generate a wider range of procedural gemstone cuts (like standard brilliants or emerald step-cuts) directly through code formulas.
This build proves that pure math can evoke the exact same emotional awe as a physical masterpiece from a museum. The technical foundation is rock-solid—now it's time to scale the vision into a decentralized digital luxury boutique.