your best bet could be physics since positioning them otherwise will most likely look a bit static.
this demo uses cannon-es, also deals with responsiveness (resizing the window). it’s react, you’d need to go through cannons docs to figure out how to do it in vanilla, but it’s not that hard.
