Hi ani123 _,
I'm not familiar with many cases of people doing what you're asking about - using your own model, persistence and runtime, and only taking advantage of the UI and model generation components of Activiti. It isn't necessarily that difficult, but it largely depends on the specifics of what you're trying to do and how you've built your side of the application. There are specific jars that contain the majority of the Modeler logic - so it is possible to extract that, for sure.
1) In its entirety, Activiti has its own Model, Modeler, BPM logic, execution logic, and so on - Activiti is the entire package. So, of course the UI components (the editor/modeler, etc) for creating models are built with Activiti in mind no matter how extensible they are, that being said - we've embedded the Modeler into a custom application with it's own execution logic, and endpoints before, so it is possible.
2) The series of dependency jars called 'activiti-modeler-<version>-javadoc/sources' contain the program logic for the Modeler; if you look around in the source files you should be able to find the HTML for it as well.
3) The majority of the UI functionality is built with JS, Angular 1.X in particular.
Anyway, there are some endpoints you'll have to change in the Modeler so it can retrieve relevant information from your own application, and depending on how you want everything configured and how you've built your own engine, it could be hard, or really hard.
What exactly are you trying to do in the end? Could you elaborate on that a bit?