Basic UI implementation inspired by dat.GUI