Skip to content
This repository was archived by the owner on Jan 21, 2026. It is now read-only.

Daghis/Chromagica

Repository files navigation

Chromagica

Java CI with Gradle codecov


Chromagica is an application that collects color data from multiple layers of one color of filament on top of another. Using the points in 3D colorspace in a quadratic regression, the algorithm determines quadratic coefficients that can be used to predict how filament colors interact with any underlying color. These coefficients are stored in a central "filament database" that contains all filaments loaded.

The color data is collected from step wedge test prints where you print n colors with i 0.08mm layers. An image of a test print is then loaded into the filament database using the LoadStepWedge application.

8-color step wedge print

As an example, here are per-component coefficients for Yellow:

  • 🔴 = 0.00044𝒓² + 0.39639𝒓 + 123.71899
  • 🟢 = 0.00041𝒈² + 0.29920𝒈 + 125.12055
  • 🔵 = -0.00045𝒃² + 0.20879𝒃 + 76.19541

This means that if you have a base color of Cyan [RGB(20, 98, 197)] and add one layer of Yellow, we can compute the expected red, green, and blue component values of the resulting color as:

  • 🔴 = 132 (0.00044(20²) + 0.39639(20) + 123.71899)
  • 🟢 = 158 (0.00041(98²) + 0.29920(98) + 125.12055)
  • 🔵 = 100 (-0.00045(197²) + 0.20879(197) + 76.19541)

What this means symbolically:

  • Cyan swatch.applyLayer(Yellow swatch) = Cyan + Yellow swatch

Project Status

Code Coverage Sunburst

Code coverage "sunburst"

Released under the MIT License.

About

Chromagica automates much of the filament-color manipulation process to convert an image into a 3D-printable object using N colors from an existing palette.

Resources

License

Stars

Watchers

Forks

Contributors

Languages