This is likely a color space issue — most color pickers are not color managed, and you’ll need to assume their data is sRGB. Something like this should fix it:
const params = { color: hemiLight.color.getHex() };
gui.addColor(params, 'color').onChange((hex) => {
hemiLight.color.setHex(hex);
});
This works because three.js assumes that hexadecimal and CSS-string colors are sRGB by default. Other methods of getting/setting a color assume the color space used for rendering (Linear sRGB), and you’d need to specify if they’re anything else.
More details: