-
Notifications
You must be signed in to change notification settings - Fork 5
Expand file tree
/
Copy pathsamples.html
More file actions
171 lines (162 loc) · 7.27 KB
/
Copy pathsamples.html
File metadata and controls
171 lines (162 loc) · 7.27 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
<!doctype html>
<!--
Copyright (c) 2026 Glenn Wilton, O2 Creative Limited
Released under the MIT License (see ./LICENSE).
-->
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>jsColorEngine · Samples</title>
<link rel="stylesheet" href="styles.css">
</head>
<body>
<header class="topbar">
<div class="topbar-head">
<div class="brand">
<span class="brand-mark">jsColorEngine</span>
<span class="brand-tag">samples</span>
</div>
<nav class="nav" aria-label="Site">
<a href="index.html">Home</a>
<a href="samples.html" class="is-active">Samples</a>
<a href="bench/">Bench</a>
</nav>
</div>
<nav class="nav nav--secondary" aria-label="Sample demos">
<a href="samples.html" class="is-active">Samples</a>
<a href="live-video-softproof.html">Live Video</a>
<a href="softproof.html">Soft Proof</a>
<a href="softproof-vs-lcms.html">jsCE vs lcms</a>
<a href="lut-cmyk-to-rgb.html">CMYK → RGB LUT</a>
<a href="lut-tiff-builder.html">LUT TIFF Builder</a>
<a href="colour-calculator.html">Colour Calculator</a>
</nav>
</header>
<main>
<section class="card">
<h2>jsColorEngine — browser samples</h2>
<p class="lead">
Runnable demos of the <a href="https://github.com/glennwilton/jsColorEngine">jsColorEngine</a>
ICC colour management library. Every demo is zero-build vanilla JS
driven by the small
<a href="ICCImage.md"><code>ICCImage</code></a> helper module.
</p>
<p class="muted">
Engine: MPL-2.0 · Samples: MIT
(<a href="LICENSE">LICENSE</a>) ·
Live: <a href="https://www.o2creative.co.nz/jscolorengine/samples/">o2creative.co.nz/jscolorengine</a> ·
Source: <a href="https://github.com/glennwilton/jsColorEngine">GitHub</a>
</p>
</section>
<section class="card" id="demos">
<h2>Demos</h2>
<div class="info-grid" style="margin-top:12px">
<a href="live-video-softproof.html" class="info-cell" style="text-decoration:none">
<span class="lbl">Ready</span>
<span class="val" style="color:var(--accent)">Live Video Soft Proof</span>
<span class="muted" style="margin-top:4px">
Real-time video colour management. Every frame decoded and
soft-proofed through a pre-built 3D CLUT — pure JS and WASM, no workers. 40+ fps on 720p. The “you
can’t do that in JS” demo.
</span>
</a>
<a href="softproof.html" class="info-cell" style="text-decoration:none">
<span class="lbl">Ready</span>
<span class="val" style="color:var(--accent)">Soft Proof</span>
<span class="muted" style="margin-top:4px">
sRGB → CMYK soft proof + C/M/Y/K plate previews.
Uses <code>toProof</code>, <code>toSeparation</code>,
<code>renderChannelAs</code>.
</span>
</a>
<a href="softproof-vs-lcms.html" class="info-cell" style="text-decoration:none">
<span class="lbl">Ready</span>
<span class="val" style="color:var(--accent)">jsCE vs lcms</span>
<span class="muted" style="margin-top:4px">
Pixel-diff comparison between jsColorEngine and lcms-wasm.
Accuracy + speed in one view, with amplified diff slider.
</span>
</a>
<a href="lut-cmyk-to-rgb.html" class="info-cell" style="text-decoration:none">
<span class="lbl">Ready</span>
<span class="val" style="color:var(--accent)">CMYK → RGB via LUT</span>
<span class="muted" style="margin-top:4px">
Real-world LUT workflow: build once with profiles, ship JSON,
run anywhere. Builds two CMYK→RGB LUTs (jsCE + lcms),
serialises to JSON, rebuilds Transforms from the JSON,
shows the three-way comparison + ΔP table.
Demonstrates emulation mode (jsCE kernel + lcms math).
</span>
</a>
<a href="lut-tiff-builder.html" class="info-cell" style="text-decoration:none">
<span class="lbl">New — v1.4.4</span>
<span class="val" style="color:var(--accent)">LUT TIFF Builder</span>
<span class="muted" style="margin-top:4px">
Generate identity LUT TIFFs for visual editing in Photoshop, Affinity,
or GIMP. Edit in your colour-managed editor, save as TIFF, reimport as
a portable LUT JSON. Captures any CMS transform — profile conversions,
tone curves, CMYK separations. Supports 1D Gray, 3D RGB, 4D CMYK.
</span>
</a>
<a href="colour-calculator.html" class="info-cell" style="text-decoration:none">
<span class="lbl">Ready</span>
<span class="val" style="color:var(--accent)">Colour Calculator</span>
<span class="muted" style="margin-top:4px">
ICC-aware space converter — Lab, XYZ, RGB, CMYK.
Uses the <strong>object pipeline</strong>
(<code>transform.transform(colorObj)</code>) and
<code>convert.Lab2XYZ()</code> / <code>XYZ2Lab()</code>.
Real press profiles for CMYK. Round-trip ΔE readout.
</span>
</a>
<div class="info-cell">
<span class="lbl">Planned</span>
<span class="val" style="color:var(--text-muted)">Intent Comparison</span>
<span class="muted" style="margin-top:4px">
Side-by-side perceptual / relative / saturation / absolute
through the same proof profile.
</span>
</div>
</div>
</section>
<section class="card">
<h2>Running locally</h2>
<p class="lead">
The engine ships a UMD bundle at
<code>browser/jsColorEngineWeb.js</code>. Build it once, then
start the dev server:
</p>
<pre><code>npm run browser # build the UMD bundle
npm run serve # start dev server on :8080 (samples + bench)</code></pre>
<p class="lead" style="margin-top:12px">
Then open
<a href="http://localhost:8080/samples/">the landing page</a>
or <a href="http://localhost:8080/samples/samples.html">/samples/samples.html</a> for the demo index. The bench is at
<a href="http://localhost:8080/samples/bench/">/samples/bench/</a>.
</p>
</section>
<section class="card">
<h2>ICCImage helper</h2>
<p class="lead">
All demos share a small immutable image wrapper:
<a href="iccimage.js"><code>iccimage.js</code></a>.
It handles the “load image → transform → display”
plumbing so each demo stays under ~100 lines.
</p>
<p class="lead">
Full API reference:
<a href="ICCImage.md"><code>ICCImage.md</code></a>
</p>
</section>
</main>
<footer class="footer">
<span>© 2026 Glenn Wilton, O2 Creative Limited · <a href="LICENSE">MIT License</a></span>
<span>
<a href="https://github.com/glennwilton/jsColorEngine">GitHub</a>
·
<a href="bench/">Bench</a>
</span>
</footer>
</body>
</html>