spectro-rs 0.1.0

A high-performance Rust driver for X-Rite ColorMunki spectrometers supporting Reflective, Emissive, and Ambient modes.
Documentation

🌈 spectro-rs

Rust License: GPL v3 Crates.io

δΈ­ζ–‡ζ–‡ζ‘£ (Chinese)

spectro-rs is a high-performance Rust driver for X-Rite ColorMunki (Original/Design) spectrometers. It provides a modern, safe, and easy-to-use cross-platform interface for color measurement, display calibration, and light analysis.


✨ Features

  • πŸš€ Cross-platform: Supports Windows, macOS, and Linux.
  • πŸ“Š Multi-mode Measurement:
    • Reflective: Measure paper, prints, and materials. Includes automated dark/white calibration.
    • Emissive: Optimized emtx matrix for accurate display/monitor measurement.
    • Ambient: Measure light source spectral power distribution (SPD).
  • πŸ§ͺ Colorimetry Engine:
    • Real-time calculation of CIE XYZ, Chromaticity (x, y), and CIE Lab*.
    • Estimated CCT (Correlated Color Temperature) and Spectral Centroid.
  • 🎨 Spectral Visualization: Live ANSI color spectrum chart in your terminal.
  • 🌐 Internationalization: Built-in English and Chinese (Simplified) support.

πŸ› οΈ Getting Started

1. Prerequisites

  • Rust toolchain.
  • Windows: If the device is not detected, use Zadig to replace the driver with WinUSB.
  • Linux: Ensure you have correct udev rules for USB access.

2. Run

cargo run


πŸ“– Operational Guide

πŸ”„ Calibration

Always run Restart Calibration before critical measurements:

  1. Turn the dial to the White Dot (Position 2).
  2. The program will perform a Dark Frame (Lamp OFF) followed by White Tile (Lamp ON) calibration.

πŸ“± Monitor Mode (Emissive)

  1. Turn the dial to Measurement (Position 4).
  2. Place the device firmly against the screen.
  3. Select Measure Emissive (Monitor).

πŸ’‘ Light Source (Ambient)

  1. Turn the dial to Ambient (Position 1) (with the diffuser罩).
  2. Point toward the light source.
  3. Select Measure Ambient (Light Source).

πŸ—οΈ Technical Background

Inspired by ArgyllCMS:

  • EEPROM Logic: Replicates memory mapping for linearization polynomials and factory matrices.
  • Spectral Mapping: Transposes 128 sensor readings to 36 standard 10nm bands (380nm-730nm).

βš–οΈ License

Licensed under GNU General Public License v3.0.


🀝 Contributing

Contributions are welcome! Please open an issue for bugs or feature requests (e.g., support for i1Display Pro).