What Paper.js is doing in reality is using the Canvas API to draw your shapes into a canvas element.
The only thing is that it keeps your shapes in memory in case you want to update them in the future.
If you update them, Paper.js then redraws the scene into the underlying canvas.
In your case, I see 2 main possible solutions:
- still use Paper.js to help you draw things but make sure that you somehow only keep the final drawing and clear the memory (there are several possible ways to do this)
- directly use the Canvas API
, which will always be more performant since you'll remove the Paper.js layer on top of it