While I can't speak for my experience with babylon.js, I have had the opportunity to work with three.js and it offers great flexibility in creating and manipulating shapes on the fly based on user input.
If you are looking to "draw elements" by dynamically generating shapes or geometries, then examples like the one featured on the three.js documentation page, where a control panel is used to manipulate a CylinderGeometry() object, showcase the possibilities.
An interesting demonstration of drawing elements based on cursor input using raycasting techniques can be found on three.js's interactive raycasting example page. Additionally, there is another fascinating demo on dragging objects within the scene.
The limit to interactivity in your application lies solely with your creativity and implementation skills.