Compare the current morph vector state against alternate actor eras to analyze how lighting direction, tint, and eye contour sculpt persona visual identity.
In the Actor Persona Studio, cinematic appearance is modeled through five continuous controls: lighting contrast, shadow depth, tint temperature, eye contour, and grain. Adjusting temperature recalculates skin channels dynamically: red scales with point eight times temperature, green with point two, and blue with minus point eight. Meanwhile, the twenty-eight histogram bins derive from sine curves weighted by shadow depth in the lower third and lighting contrast in the upper third. Selecting an era preset or shifting sliders re-evaluates aesthetic classifications in real time, updating the vector metrics and exportable persona map.
How does the canvas translate slider inputs into procedural portrait modifications and era classifications?
This interactive darkroom uses Fabric.js vector shapes to illustrate stylized cinematic lighting and persona changes. Rather than running a neural facial morph or sampling raw pixel luminance from the canvas, the application executes procedural linear transformations on shape properties: skin RGB channels are shifted proportionally by the tint temperature, eye contour stroke widths and lip fills scale with makeup intensity, and a synthetic 28-bin histogram is generated from a mathematical sine function weighted by shadow and contrast parameters.
The luminance distribution graph is an illustrative sine-curve formula rather than a physical photometric read of canvas pixels. Persona era labels ('Gothic Noir', 'Bright Youth', 'Editorial Glam') and dynamic range percentages are rule-based heuristic thresholds in JavaScript rather than calibrated cinematic studio metrics.
Select the 'Bright Youth' era preset chip. The tool resets lighting contrast to 0.90, shadow depth to 0.20, tint temperature to 30, makeup to 0.20, and grain to 0.05. The Dominant Aesthetic readout changes to 'Bright Youth', the skin tone shifts warmer toward rgb(248, 193, 126), and the lower bins of the synthetic histogram decrease as the shadow depth modifier drops from 0.70 to 0.20.
When the tint temperature slider is adjusted, the script updates the face rectangle fill using linear RGB shifts: red = min(255, max(100, 224 + temp * 0.8)), green = min(255, max(100, 187 + temp * 0.2)), and blue = min(255, max(100, 150 - temp * 0.8)). Shadow depth directly modulates the opacity of an overlapping black rounded rectangle, while makeup intensity scales eye ellipse radii, contour stroke width, and lip red saturation.
The 28-column histogram is populated by calculating bin heights from sin(i / 28 * π) * 60. For normalized bins below 0.3, the height is boosted by shadow * 40; for bins above 0.7, it is augmented by (contrast - 1.0) * 35. Because the bars reflect this trigonometric function rather than canvas image data, it serves as a visual indicator of input weights rather than true photographic exposure.