Library / SDK
mrachinskiy/jewelcraft avatar
mrachinskiy/jewelcraft

JewelCraft: a jewelry design toolkit built as a Blender add-on

Blender add-on for jewelry design

606 stars78 forksPythonGPL-3.0

At a glance

What is it?
JewelCraft is a Python add-on for Blender that covers the parts of jewelry design a general modeller does not, from gems, prongs and cutters to distance management, alloy weights, a color coded gem map and a design report.
Who is it for?
JewelCraft is the right tool for a jewelry designer or model maker who works inside Blender and needs parametric gems, prong and cutter components, gemstone spacing and an alloy weight estimate rather than hand built meshes, and it fits a studio that wants its add-on in several languages. It is the wrong tool for a manufacturing engineer who needs production ready CAD, for a designer outside Blender, and for a commercial product that cannot carry GPL-3.0 obligations.
Can I use it commercially?
Yes, with conditions. GPL-3.0 is a copyleft licence: if you distribute software that includes it, you must release that software's source code under the same licence. Running it internally without distributing it does not trigger that obligation.
Is it still maintained?
Yes. The repository last received commits 35 days ago.
What is it written in?
Mainly Python, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on October 23, 2026, and from our analysis. They are not legal advice.

Editorial analysis

A jewelry toolkit that lives inside Blender

JewelCraft is described as a jewelry design toolkit add-on for Blender, written in Python, and the repository topics say the same thing in two words, blender-addon and jewelry. It is not a renderer, not a CAD program and not a plugin for a jewelry specific application. It is a set of tools that a person uses inside Blender, which already has the modelling, the shading and the rendering.

That framing tells you what kind of user it is for. A person who models a piece of jewelry in Blender already has the hard part covered, the shape of the metal, the surface finish, the lighting and the picture. What a general modeller lacks is the vocabulary of the trade: a gemstone is not a sphere, a prong is not a bent cylinder, and the two have a relationship that has to be measured in millimetres, not eyeballed.

The feature list is the answer to that. You create and customise gems, prongs and cutters. You manage the distances between gems to create a compact setting. You calculate weight in a variety of precious alloys. You generate a color coded gem map and you present summary information about your design.

So the add-on is closer to a domain specific layer than to a modelling tool. It gives you the components and the measurements that a jeweller would specify, and leaves the geometry to Blender.

Five capabilities that map onto a real jewelry workflow

Each feature in the list corresponds to a step in the design process rather than to a type of object, which is a good sign about how the add-on is built.

Creating and customising gems, prongs and cutters covers the parts of a piece that repeat. In a real setting the same stone shape appears many times with different sizes, and the prong that holds it has to match the girdle, so having parametric components for the three of them is the difference between copying and modelling.

Managing distances between gems is the other half of that. A compact setting means the stones are placed as close as the cut allows, and getting there by eye produces a piece that looks crowded. The distance management is a spacing problem, and the add-on treats it as one.

Weight calculation in a variety of precious alloys is a different kind of feature. It answers a question a jeweller asks before anything else, which is what the metal weighs, and the answer depends on density and volume rather than on the mesh. It is an estimate for a design, not a substitute for a weighed sample.

The color coded gem map and the design report are both about communication. A gem map shows which stone goes where at a glance, and a report summarises the design, which is what you send to a setter or a client. Both exist so that the model can be handed to someone else.

Installation is a drag and drop, and the link carries the version constraint

The installation section of the readme is short, and unusual for a Blender add-on. The primary method is to drag and drop a link into Blender, with the alternative being to download the zip file and drag that into Blender instead. There is no pip install, no build step and no addon directory editing described.

The link itself is informative, because it is a query string rather than a plain file URL. It points at the release artefact for v3.0.0, a file named jewelcraft-3.0.0.zip, and it carries two parameters. One names the repository manifest, an extensions.json file served from the project pages, which is how Blender's extension system discovers add-ons. The other is blender_version_min set to 4.5.0, which is the minimum Blender version the add-on declares.

That single number tells you the deployment target. The add-on is written against a recent Blender, and the version check travels with the download link, so an installation attempt on an older Blender fails early rather than half working.

For a first run, the practical sequence is to drag the link into Blender, enable the add-on, and create a piece from scratch rather than opening an existing file, since the component library is where the add-on's value shows and the asset manager is the first thing to try.

Translations are treated as part of the product

The readme lists eight languages with completion percentages, and the distribution is revealing. English, Russian and Traditional Chinese are at 100 percent, Spanish is at 87, Simplified Chinese at 81, French at 75, Arabic at 74 and Italian at 64. The add-on invites contributors to fill in the gaps.

The contribution instructions are specific about the tooling and the conventions. A dedicated .po editor such as Poedit is advised, and the .po file for a given language is picked from the localization folder inside the add-on. To create a new translation you use File and then New from POT/PO file, and to complete an existing one you use File and then Open, choosing the file for the specific language. Completed translations are submitted back through the issue tracker rather than through a pull request.

Three conventions are called out, and they are the kind of detail that decides whether a translation reads naturally. Property names and button titles use Title Case in English, so a translator follows the rule Blender itself uses. Empty braces are preserved, because they are placeholders for additional information and they do not appear in the interface. And context matters: Base, in the context of materials, means Base Metal, which means non precious metal, and must not be translated as basis or foundation.

That level of care about a non English interface is a signal about who uses the tool.

The repository layout and the Python toolchain

The top level of the repository is small, which fits an add-on. There is a source directory, a tests directory, a tools directory, a pyproject.toml, a licence, a readme and a .github directory. The tests directory is the notable one, because a Blender add-on is hard to test and having one at all says the project tries.

The Python configuration lives in pyproject.toml and it is entirely about tooling, with no build system section, which is consistent with a project that is packaged as a zip rather than distributed on an index.

toml
[tool.ruff]
target-version = "py311"
line-length = 120

[tool.ruff.format]
line-ending = "lf"
quote-style = "double"

Ruff handles both linting and formatting, targeting Python 3.11, with a line length of 120, LF line endings and double quotes. The import sorting is configured separately, and the lint ignore list is short and deliberate.

toml
[tool.ruff.lint.isort]
lines-after-imports = 2

[tool.ruff.lint]
ignore = ["E741", "RUF012", "DTZ011", "PLW1510"]

Two spaces after the import block, and four specific rules turned off. Reading a config like this tells you more about the project than a readme badge does: a fixed style, a modern Python floor, and a handful of warnings that the author has decided to live with rather than restructure code for.

Where JewelCraft is the wrong tool

Four boundaries are clear from what the project does and does not do.

The first is manufacturing. A design report and a color coded gem map are communication artefacts, and the weight calculation is an estimate based on alloy densities and the volume of your model. None of that is a production drawing, a tolerance spec or a manufacturable file, and a piece that looks right in a render is not necessarily a piece that can be cast. A jeweller still has to check the model against their bench process.

The second is the platform. Everything happens in Blender, and the download link declares a minimum Blender version of 4.5.0. A studio whose CAD pipeline lives elsewhere gains nothing from this add-on except a modelling convenience.

The third is the licence. JewelCraft is released under GPL-3.0, which is the strongest copyleft in common use. A studio using it internally for its own designs is in the clear, but distributing a tool that incorporates the add-on, or selling a product built around it, brings obligations that a permissive licence would not. This is not legal advice, and a company with a policy on licences should have its counsel look at it.

The fourth is the shape of the releases. The version numbers carry the Blender version they target, with a release named for Blender 4.2.0 in the 2.18 line, so an upgrade is often an upgrade of the add-on together with an upgrade of Blender, and both have to land at once.

Version 3.0.x and what an upgrade involves

The release history shows a major version landing in the middle of 2026. Version 2.18.1-blender4.2.0 was published on 2026-05-06 as a hotfix for the design report and the gem map, v3.0.0 followed on 2026-07-14 as JewelCraft 3, and v3.0.1 arrived on 2026-08-23 with translations and compatibility work. The last push to the repository was on 2026-09-18, and the repository is not archived.

The pattern of the names is the interesting part. A major release, then a patch release whose subject is translations and compatibility, and before that a hotfix targeted at two specific features, the design report and the gem map. Those are the parts of the add-on that touch the user's data, so they are the parts most likely to break when Blender changes underneath them.

The upgrade decision for a studio is therefore about Blender, first. If your team is on an older Blender, the 3.0 line is not available to you because of the version floor in the download link, and the 2.18 line is the practical choice. If you are on a current Blender, the 3.0 line is where the translation work and the compatibility fixes have landed, and staying on 2.18 means running an add-on that predates a year of changes to the host application.

For an open source project, the two numbers to watch are the last push date and the age of the release you are running, and for this one they are 2026-09-18 and the 3.0.1 build from August 2026.

Editorial conclusion

JewelCraft is the right tool for a jewelry designer or model maker who works inside Blender and needs parametric gems, prong and cutter components, gemstone spacing and an alloy weight estimate rather than hand built meshes, and it fits a studio that wants its add-on in several languages. It is the wrong tool for a manufacturing engineer who needs production ready CAD, for a designer outside Blender, and for a commercial product that cannot carry GPL-3.0 obligations. Before adopting, open the design report for one finished piece and check the numbers against your own process, confirm the Blender version your machine runs matches the minimum in the download link, and read the release notes between 2.18 and 3.0.

Frequently asked questions

What is JewelCraft and what does it do in Blender?

JewelCraft is a jewelry design toolkit add-on for Blender written in Python. You can create and customise gems, prongs and cutters, organise components in an asset manager, manage distances between gems for a compact setting, calculate weight in a variety of precious alloys, generate a color coded gem map and present a summary of the design.

How do I install JewelCraft?

You drag and drop the download link into Blender, or download the zip file and drag that into Blender instead. The link points at the v3.0.0 release artefact and carries a blender_version_min value of 4.5.0 along with a reference to the extensions.json repository manifest.

Which languages is JewelCraft available in?

English, Russian and Traditional Chinese are complete, with Spanish at 87 percent, Simplified Chinese at 81 percent, French at 75 percent, Arabic at 74 percent and Italian at 64 percent. Translations are edited with a dedicated .po editor such as Poedit using the .po files in the add-on localization folder, then submitted through the issue tracker.

What licence does JewelCraft use?

JewelCraft is released under the GPL-3.0 licence, with the licence file at the root of the repository. That is a strong copyleft licence, so anyone considering shipping the add-on inside a commercial product should review the obligations first.

How is the JewelCraft source code organised?

The repository is small, with a source directory, a tests directory, a tools directory, a pyproject.toml and a .github directory. The Python configuration is entirely about tooling: Ruff handles linting and formatting with a target of Python 3.11, a line length of 120, LF line endings and double quotes, with a separate import sorting rule and a short ignore list.

Official sources

  1. Issues
  2. License: GPL-3.0
  3. mrachinskiy/jewelcraft on GitHub
  4. README
  5. Releases
Add this badge to your README

If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.

Add this badge to your README

markdown
[![Hysen Labs](https://hysenlabs.com/badge/mrachinskiy-jewelcraft.svg)](https://hysenlabs.com/projects/mrachinskiy-jewelcraft)

Was this useful?