When the combined input’s value is changed programmatically, it doesn’t transfer to each of the sub-inputs. See how Inputs.form does it with a setter: https://github.com/observablehq/inputs/blob/main/src/form.js#L25
or maybe you could base the combined input on Inputs.form? For a start:
viewof rotate = Inputs.form([Inputs.range([-180, 180]), Inputs.range([-90, 90]), Inputs.range([-180, 180]) ])