Aesthetix
Rhopoint Aesthetix is a modular dual-camera–based sensor that captures detailed images of a surface under controlled lighting and derives a wide range of appearance metrics from them: gloss, haze, sparkle, scratches, texture, waviness, defects and more. It connects to the host PC over USB and is exposed to Elements Hub through the device class aesthetix.
For the network-attached inline variant see Aesthetix Inline. Both variants share most of this guide, but the inline variant supports a reduced metric set and a single calibration type — the per-feature notes below call this out where it matters.
Workflow Summary
- Initialize lifecycle services
- Start a scan with
deviceClass: aesthetix - Connect to the discovered device
- Calibrate (white → black → height) before the first measurement of the session
- Trigger measurements with the metric groups your workflow needs
- Disconnect and shut down
Connect Parameters
Aesthetix devices accept no operation parameters on POST /v1/devices. Only the deviceIdentifier is required.
Calibration
The Aesthetix exposes three calibration types via the calibration endpoints:
calibrationKey |
Purpose | Parameters |
|---|---|---|
white |
Reflectance + visual contrast reference, using the white standard | reflectance (0–1), visualContrast (0–1) |
black |
Black specular and aspecular reference, using the black standard | gloss (GU) |
height |
Height reference, using the texture standard | height (µm) |
The Aesthetix Inline variant only exposes black. See Calibration for the recommended order, the physical setup for each target, and troubleshooting tips.
Available Measurements
The Aesthetix exposes one measurement trigger, measure, executed via `POST /v1/devices/{deviceId}/measurement-triggers`. Which metrics it actually computes is selected through the metricGroupKeys parameter — pass an array of the keys below:
| Metric group key | What it produces | Notes |
|---|---|---|
gloss |
Gloss value, visual gloss, gloss ROI, 3D gloss plot | Requires valid black calibration |
fastGloss |
Faster, lower-fidelity gloss value | |
haze |
Haze C, contrast haze, log-haze, MC-DOI, visual haze indoors/outside, haze ROIs | |
visualContrast |
Visual contrast value | Requires valid white calibration |
visualGloss |
Visual gloss value | Requires valid white/black calibration |
visualHaze |
Visual haze value | |
contrastHaze |
Contrast haze value | |
sparkle |
Sparkle density, graininess, RGB, visibility / area / brightness / hue arrays, sparkle albedo image, 7 LED sparkle images, 7 LED sparkle overlays | |
scratchLinear |
Scratch length, visibility, count, area, area-mean and length-mean for linear scratches; scratch image; horizontal and vertical overlays | |
scratchRadial |
Same metrics as scratchLinear but for radial scratches |
|
cell |
Cell number, amplitude, size, std-dev, max/min, hill size, fill factor, texture R/Rc/Rv/Rh, roughness, watershed metrics, cell overlay, 3D texture plot | |
roughness |
Surface roughness | |
grit |
Grit metric | |
waviness |
Waviness, PCI waviness, tension, waviness image | |
pciWaviness |
PCI waviness value (subset of waviness) |
|
tension |
Tension value (subset of waviness) |
|
bloom |
Bloom metric | |
crossCut |
Cross-cut class (ASTM, ISO), percent, image, full overlay, found overlay | Requires the cross-cut module |
sharpness |
Sharpness metric | |
spot |
Spot image | |
shadeImages |
Six LED shade images | No metric values — image stack only |
surface |
Surface RGB mean, surface image (cropped) |
The metricGroupKeys parameter accepts a list of these keys; pass only the groups you actually need. Each additional group adds processing time on the device side.
Measurement Parameters
In addition to metricGroupKeys, the measure trigger accepts:
| Parameter | Type | Description |
|---|---|---|
metricGroupKeys |
EnumArray | Selects which metric groups participate in the measurement. See table above. |
includeAttachments |
Boolean | Whether to include attachments such as images in the result. Defaults to true. |
imageFormat |
String | Image encoding inside the container: image/png (default), image/jpeg, or image/x-raw. See Measurement Image Formats. |
Available Commands
Beyond measurements and calibrations, the Aesthetix exposes one command via the commands endpoint:
| Command identifier | Purpose | Parameters |
|---|---|---|
updateCalibrationValues |
Update the stored calibration target values without performing a full calibration. Useful when only the target values for a known good calibration have changed. | glossCalibrationTarget, visualContrastCalibrationTarget, … (see GET /commands) |
Image Output
Device images embedded in a measurement container — surface, sparkle, scratch, cross-cut, cell, waviness, spot, shade — are PNG-encoded by default. Use the imageFormat parameter to request JPEG (smaller) or raw bytes (uncropped originals straight from the device kernel). See Measurement Image Formats for the binary layout of image/x-raw and parsing examples in C++.
Mock Variant
For development and CI without physical hardware, the hub offers the device class aesthetix-mock. It exposes the same endpoints and parameter shapes but does not return real images or metric values. See Mock Devices.