The creation of this project was done in 4 phases.
Phase 1) I created a Web Audio API JavaScript library called
Scream to handle all the synthesis, effects and sequencing. I also created a Web Midi API JavaScript library called Mizzy that handled MIDI input in Chrome. Mizzy also looped back the user's computer keyboard in case they weren't using a Web Midi-enabled browser, allowing for 'keyjazz' playback. The two libraries work together to make fully functional Web Audio-based synthesizers.
Phase 2) I coded a barebones synthesizer sampler using Scream that mimicked the behaviour of the VSS-30.
Phase 3) I modelled the VSS-3D in Blender and created the textures in Affinity Designer.
Phase 4) I put it into a Threejs scene and added a few UI enhancements not present in the original.