Which tool to use to build a Client-side simulation and visualisation with interactivity from the user


I am very new to the area of interactive visualisations for the browser.

Here is what I want to build:
A figure that has two plots, on the left a scatter plot with some points on it and on the right another plot that is linked with the points in a scatter plot. I wish that users can drag points or add new points and see the effect on the plot on the right. I would also wish that there is a play button and when a user press play something is happening on one of the plots that needs to be calculated online with the chosen points by the user.

This seems the type of thing holoviews is doing great. But in the end I want all this interactivity to work all in the client-side

Here are my questions:
I have read about D3, bokeh and holoviews. My understanding is that holoviews is built on top of bokeh and bokeh on top of D3. Which tool should I use? given that the end product is pure HTML CSS JS (I never want python to be called on a server. everything should work on the client-side).

Thank you so much for all the help

See here for a version of my question:

Bokeh is not built on D3; it is built on its own custom JS called BokehJS.

Panel+HoloViews makes it easy to do this sort of thing if you have a Python server available, but it will take a lot of custom JS to hook such an app together so that it will work without Python. I suspect that it would be conceptually easier to do this as a pure Bokeh app, given that you won’t be able to make use of most of the benefits of Panel or HoloViews.

I’m not a D3 user, but it’s possible that D3 all by itself could do this; no idea whether D3 or Bokeh itself would be a better choice.