1- How can I make the hotspots interactive? For example, "onOver" event, the hotspot will change from "image1.png" to "image2.png".

At the moment we have no samples to demonstrate this and we have to study the best way to update the hotspots texture at runtime for the over and out states. This feature is on our roadmap and we know that this is very important for interactions. For now we focused a lot to have hotspots that displays properly in 3D space. I know that you can access the THREE.Mesh in javascript and change the material property. There is no way to do this trough the json configuration for now.In javascript we can imagine something like this :

3- Is it possible to show a "modal" window when the hotspot is clicked? If yes, please tell me how?

First of all you have to include you modal window system in your web page and declare a function that will open it in javascript. ForgeJS does not provide a modal window system, you have to use your own or an external library of your choice.

The framework handles the WebVR if you are on a WebVR compatible browser. but you have to add a user interface (like a button) to switch WebVR on/off.

The plugin WebVRButton that is on the 'hotspots-actions' example will do the job. In its current version the button will display no matter what. In the next release the button will only display if your browser is WebVR compatible.