thx! it was a mix of hashmaps and arrays to represent the positions + orientations of the individual pieces, updating the state of the data structures as the users rotates the faces, and using the raycaster in three.js to detect click and drag location/direction on the cube. i’m considering implementing a solver, though not sure yet