- 2019 – ongoing
- In collaboration with: DoubleTake Ventures
- Platforms: Desktop(all), Mobile(all)
- Browsers: Chrome, Firefox, Safari, Edge
- WebGL 1.0 and WebGL 2.0
Jewelutions is and end-to-end platform for personalised jewelry. It’s a B2B service and product which allows existing jewelry shops to integrate and extend their business with personalised items.
For this project I handled multiple separate components starting from a basic jewelry CAD, though a realtime web designer which allows it’s personalisation, to the data required for actual production of the piece.
Automated CAD Processing
The platform allows for basically any jewelry design to be personalized with the designer. Because, jewelry shops typically digitize their models as NURBS we need to process them in order to be usable in the web. For this purpose I developed some Rhinocerous 3D scripts which handle the processing of the CADs and outputs several pieces of data.
The video above shows how a NURBS model gets processed by the script, separated into parts which the designer understands and turned into a triangle mesh. Additionally to generating the polygonal mesh, proper UVs are computed for the engravable surfaces and also several vector image files are computed which are also used by both the designer and the production process.
Automated Blender Processing
For particular jewelry models or accessories I also implemented a blender script which bakes the ambient occlusion into a texture and exports the entire model as an .FBX
Automated GLTF format generation
We chose to use the GLTF standard for all our models when importing them into the web designer. Because we wanted the models to be as small as possible, we’re also using Draco compressed binary gltf formats (.glb). The .FBX generated by the Rhino script (or Blender script depending on the type of model), gets converted using the FBX2glTF command line tool.
After all of the steps above have been executed we finally have gltfs ready to be consumed by the web designer. Here is a video showing some of the features of the designer
For the designer I handled everything regarding the realtime rendering as well as the Engraving Engine which generates correct data for jewelry personalisation. I did not take part in UI developement.
This component handles personalisation data generation for both the web designer as well as the production process. It is built as a cross-environment typescript library which is able to run in the browser as well as on Node.js.
The engraving engine handles the generation of raster image data which is used by the web designer to display the engravings on the pendant in realtime, as well as the generation of vector image data which is used by the laser engraving machines to produce the pieces. Additionally the engraving engine needs to handle accurate real world dimensions, margins as well as polygon intersection testing since the user should never be allowed to personalise a piece which is not produceable.
At the moment of this writting, Jewelutions allows pendants to be personalised and produced. However, due to the modular and automated nature of the platform, other types jewelry pieces can be added.
Platform clients are also offered a backoffice (I did not take part in it’s developement) where they can take advantage of the automations available by organizing their jewelry collections, managing jewelry models, adding engraving options, etc.