1
0 Comments

Development Process of 3nh Color Software Suite


Preface

As a software development engineer at 3nh (ThreeNH Technology), I have participated in the R&D of the company’s core color measurement software family, including CQCS3, SQCX, SQC8, SQCT, SDQC, and PeColor. These applications serve as the data center, analysis hub, and production bridge for 3nh’s colorimeters, spectrophotometers, densitometers, and matching instruments. Below I elaborate on the full-cycle development methodology, technical architecture, functional design, and industry-oriented customization of these software products.


1. Overall Development Framework & Technical Foundation

All software follows a unified R&D system to ensure compatibility, stability, and maintainability.

1.1 Development Environment & Languages

Main development languages: C# / C++

C# for Windows desktop UI, rapid development, database operations, and report generation.

C++ for core color algorithms, high-speed spectral calculation, and hardware communication.

IDE: Visual Studio

Database: SQLite / Access / SQL Server Compact (lightweight, no extra deployment required)

Chart & report: .NET Framework, DevExpress, custom GDI+ drawing components

Communication protocol: Custom serial / USB HID / Bluetooth communication protocols adapted to 3nh hardware

1.2 Core Algorithm Module

All software shares a unified underlying color algorithm library, including:

CIE color space conversion (Lab, LCH, XYZ, Yxy, RGB, HSV)

Color difference formulas (ΔEab, ΔE94, ΔE00, ΔEcmc)

Spectral data processing (reflectance, transmittance, K/S value)

Industry-specific parameters (density, brightness factor, metamerism index, etc.)

Statistical analysis: mean, standard deviation, CP/CPK, trend charts

1.3 Project Management & Process

Agile development: 2–4 week sprints

Requirement source: hardware R&D, customer feedback, industry standards (CIE, ISO, GB, ASTM)

V-model testing: unit test → module test → integration test → hardware joint test → customer validation

Multi-language support: Chinese / English (global market oriented)



Development of Each Software in Detail


CQCS3 – Color Quality Control System

Positioning: Entry-level general color management software for portable colorimeters.

Development Process

Requirement Analysis

Match low-cost portable models (NR110, NR200, NH300, etc.). Users need basic color difference judgment, data storage, and simple reports without complex functions.

Architecture Design

Lightweight single-layer architecture:


UI layer: simple operation panel

Logic layer: color difference calculation, data saving

Hardware layer: serial/USB read real-time color data


Core Function Development


Real-time display of Lab, LCH, ΔE

Qualified / unqualified judgment with color warning

Sample and standard color comparison

Data record: save, delete, export Excel/TXT

Print simple test reports

Support parameter calibration of the instrument

Optimization

Reduce memory usage, support low-configuration Windows PCs, fast startup, stable communication.


CQCS3 Color Quality Management System


System Requirements

Operating System: Windows 2000, Windows Me, Windows XP, Windows Vista, Windows 7

Processor: 500 MHz or faster

RAM: 256 MB or more

Hard Disk Space: Minimum 10 MB for installation and operation

CQCS3 Overview

CQCS3 connects to colorimeters via a USB cable, allowing a PC to control the colorimeter. It not only retains all original functions of the colorimeter but also extends its capabilities. The system supports color difference analysis, cumulative color difference analysis, color sample database management, chromaticity index analysis, simulated object color display, printing, and other functions, making it an effective tool for color quality control.

Main Functions

Perform color difference measurement and analysis: obtain measurement data of standard samples and test samples, calculate color differences, determine pass/fail status, display intuitive color difference deviation charts, provide quantitative data analysis, and render color simulations of standard and test samples.

Provide cumulative color difference analysis: select multiple test sample values measured under the same standard sample, generate color simulation comparison charts and color difference distribution maps, helping users analyze color difference trends and better grasp color variation patterns of products.

Measure chromaticity, whiteness, yellowness, and color fastness.

Import and export data between CQCS3 and the colorimeter; exported data can be saved as Excel files. Manually create new standard samples and write them to the instrument.

Search in the color sample library: store color data of required samples and retrieve records to find the best-matching color entries.



SQCX – Universal Spectral Color Management Software


Positioning: Mid-to-high-end general software for full series spectrophotometers.

Development Process

Requirement Analysis

Support full-spectrum data, multi-mode comparison, batch analysis, enterprise-level data management, compatible with nearly 50 hardware models.

Architecture Upgrade

Modular layered architecture:


Hardware adaptation layer (unified driver interface)

Spectral data parsing layer

Color algorithm engine

Business logic layer

UI & report layer

Key Development Content


Full spectral curve drawing and export

Multiple color difference standards switching

Batch measurement & statistical analysis (average, max, min, std dev)

Custom report templates

Data export to CSV, Excel, PDF

User rights, project management, historical data traceability


Compatibility Development

Write adaptation configuration files for each instrument model to ensure one software supports multiple hardware.


SQC8 – Professional Software for NS800 Series

Positioning: Dedicated high-precision color management software for NS800 / NS810 spectrophotometers.

Development Process


Requirement Analysis

Focus on printing, coating, plastic industries; need both colorimetric + densitometric functions.


Differentiated Development

Add printing-specific modules on the SQCX framework:


Density measurement (CMYK, TV, density difference)

Dot area calculation

Trapping, print contrast

Fast sampling mode for assembly line


UI Optimization

High-resolution display, real-time large digital dashboard, one-click batch test.


Stability Verification

Long-term continuous measurement test to ensure no data loss or crash.


SQCT – Traffic Sign & Safety Color Software

Positioning: Professional software for traffic sign color testing (YS45, NS808 series).

Development Process


Requirement Analysis

Comply with national standards GB 2893, GB 18833; test brightness factor, color coordinates, retro-reflection performance.



Standard Module Development

Built-in national standard color gamut rangeAutomatic judgment: whether the color meets traffic regulationsGenerate official inspection report formatBrightness factor calculation & statistics


Calibration Logic

Develop special calibration process for 45/0 optical structure instruments.


SDQC – Spectral Densitometer Software

Positioning: Dedicated software for YD5010 / YD5050 printing densitometers.

Development Process


Requirement Analysis

Professional printing inspection: density, dot, overprint, color deviation, gray balance.


Core Module Development


CMYK density measurement

Dot gain curve

Overprint rate & gray balance analysis

Printing quality evaluation report

Real-time data display for high-speed sampling


Hardware Co-debugging

Optimize high-speed data transmission to ensure real-time performance on assembly lines.


PeColor – Computer Color Matching Software

Positioning: Core production software for coatings, plastics, inks, textiles.

Development Process


Requirement Analysis

Convert measured color into paint/ink/pigment formula; support formula correction and cost optimization.


Algorithm R&D (Most Complex Part)


Establish pigment database

K/S spectral theory-based color prediction model

Least-square method to calculate optimal formula

Automatic formula correction based on actual difference

Cost ranking and alternative formulas

Function Modules


Sample measurement → target color input

Automatic formula calculation

Manual correction

Formula storage & management

Batch production records


Database Development

Support thousands of pigment types, custom base material systems.


3. General Quality Control & Release

In the later stage of development, unified testing is performed:

Long-term continuous operation stability

Communication stability with different instruments

Data accuracy compared with international standards

Compatibility under Windows 7/10/11

Multi-language switching

Installation package packaging and digital signature

Finally, release supporting documents: user manual, SDK, communication protocol, driver package.

CQCS3, SQCX, SQC8, SQCT, SDQC, PeColor Technical Architecture Diagrams and Class Diagrams



I’ll deliver standard UML class diagrams (text representation), core algorithm pseudocode, and 3-tier system architecture diagram for the entire 3nh color software suite.


1. System Architecture Diagram (3-Tier Unified Architecture)

All 6 software products share the same layered architecture.

plaintext

+---------------------------------------------+

|              Presentation Layer             |

|  (WinForms UI, Charts, Reports, Dashboard)  |

+---------------------------------------------+

          ↑ ↓ (Data Binding, Commands)

+---------------------------------------------+

|               Business Logic Layer          |

|  ColorManager, ReportEngine, BatchAnalyzer  |

|  SQCX / SQC8 / SQCT / SDQC / PeColor Logic  |

+---------------------------------------------+

          ↑ ↓ (Interface Calls)

+---------------------------------------------+

|                Data Access Layer            |

|  Instrument Driver, Spectral Parser, DB     |

+---------------------------------------------+

          ↑ ↓ (Hardware Commands)

+---------------------------------------------+

|               Hardware Layer                |

|  Colorimeter, Spectrophotometer, Densitometer |

+---------------------------------------------+


2. Unified Core Class Diagram (UML)

This is the base class structure for CQCS3, SQCX, SQC8, SQCT, SDQC.

plaintext

+------------------------------------------------+

|                 ColorMeasurement               |

+------------------------------------------------+

| - sampleLab: LabValue                          |

| - standardLab: LabValue                        |

| - deltaE: double                               |

+------------------------------------------------+

| + CalculateDeltaE(): double                    |

| + SaveToDatabase(): bool                       |

| + ExportReport(): void                         |

+------------------------------------------------+

          ↑ (Inheritance)

+-------------------+      +---------------------+

|     CQCS3         |      |     SQCX            |

+-------------------+      +---------------------+

| - BasicQC         |      | - SpectralAnalysis  |

+-------------------+      +---------------------+


          ↑ (Inheritance)

+-------------------+      +---------------------+

|     SQC8          |      |     SQCT            |

+-------------------+      +---------------------+

| - DensityModule   |      | - TrafficStandard   |

+-------------------+      +---------------------+


          ↑ (Inheritance)

+-------------------+

|     SDQC          |

+-------------------+

| - PrintDensity    |

+-------------------+

PeColor Independent Class Diagram

plaintext

+------------------------------------------------+

|                 PeColorMatch                   |

+------------------------------------------------+

| - pigmentList: List<Pigment>                   |

| - formulaList: List<Formula>                   |

| - targetSpectrum: SpectrumData                 |

+------------------------------------------------+

| + TrainDatabase(): void                        |

| + PredictFormula(): Formula                    |

| + CorrectFormula(): Formula                    |

+------------------------------------------------+


+------------------------------------------------+

|                    Formula                     |

+------------------------------------------------+

| - pigmentId: int                               |

| - ratio: double                                |

| - cost: double                                 |

| - predictedLab: LabValue                       |

+------------------------------------------------+


3. Core Algorithm Pseudocode (For All Software)

3.1 CIE ΔE00 Color Difference Algorithm (Used in All Products)

plaintext

FUNCTION CalculateDeltaE00(Lab1, Lab2)

    L1, a1, b1 = Lab1

    L2, a2, b2 = Lab2


    ΔL = L2 - L1

    Δa = a2 - a1

    Δb = b2 - b1


    C1 = sqrt(a1² + b1²)

    C2 = sqrt(a2² + b2²)

    ΔC = C2 - C1


    ΔH = sqrt(Δa² + Δb² - ΔC²)


    // Weighting functions

    SL = 1

    KC = 1

    KH = 1


    deltaE = sqrt( (ΔL/SL)² + (ΔC/KC)² + (ΔH/KH)² )


    RETURN deltaE

END FUNCTION

3.2 Spectral Reflectance Calculation (SQCX, SQC8, SQCT)

plaintext

FUNCTION CalculateSpectralData(rawSensorData[])

    spectrum = []

    FOR i FROM 360 TO 780 STEP 10:

        reflectance = (rawSensorData[i] - darkCurrent[i]) / (whiteCal[i] - darkCurrent[i])

        spectrum[i] = reflectance

    NEXT

    RETURN spectrum

END FUNCTION

3.3 Printing Density Calculation (SQC8, SDQC)

plaintext

FUNCTION CalculatePrintDensity(reflectance)

    // Status T, E, I, G

    density = -log10(reflectance)

    RETURN density

END FUNCTION

3.4 Traffic Sign Color Judgment (SQCT)

plaintext

FUNCTION CheckTrafficStandard(LabValue)

    IF LabValue IN GB2893_RED_RANGE THEN

        RETURN "QUALIFIED"

    ELSE IF LabValue IN GB2893_YELLOW_RANGE THEN

        RETURN "QUALIFIED"

    ELSE

        RETURN "UNQUALIFIED"

    END IF

END FUNCTION

3.5 PeColor Automatic Matching Algorithm (Core)

plaintext

FUNCTION PredictMatchingFormula(targetLab, pigmentDatabase[])

    minError = INFINITY

    bestFormula = NULL


    // Iterate pigment combinations

    FOR EACH pigmentGroup IN pigmentDatabase:

        simulatedLab = SimulateColor(pigmentGroup)

        currentDeltaE = CalculateDeltaE00(targetLab, simulatedLab)


        IF currentDeltaE < minError:

            minError = currentDeltaE

            bestFormula = pigmentGroup


    RETURN bestFormula

END FUNCTION


FUNCTION SimulateColor(pigmentGroup[])

    // K/S theory model

    totalK = 0

    totalS = 0

    FOR EACH pigment IN pigmentGroup:

        totalK += pigment.ratio * pigment.K

        totalS += pigment.ratio * pigment.S

    NEXT

    Lab = ConvertKStoLab(totalK, totalS)

    RETURN Lab

END FUNCTION



4. Instrument Communication Protocol Pseudocode

plaintext

FUNCTION ReadColorFromInstrument()

    OpenUSBPort()

    SendCommand(CMD_MEASURE)

    WaitForResponse()

    rawData = ReadHexData()

    ParseData(rawData) → Lab / Spectrum

    ClosePort()

    RETURN LabValue

END FUNCTION


5. Software Module Dependency Map


plaintext

PeColor

   ↑

SQCX → SQC8 → SDQC

   ↑

SQCT → CQCS3


Summary


The six software products are developed based on a unified color algorithm kernel and hardware communication system, and differentiated according to hardware models, industry needs, and professional indicators. From basic color difference display (CQCS3) to enterprise-level spectral management (SQCX), printing professional applications (SQC8, SDQC), traffic standard testing (SQCT), and production-level color formulation (PeColor), they form a complete software ecology supporting 3nh's full line of color instruments.


posted toAvatar for product DIvx
DIvx