That's really cool! I am working on a diagramming editor and I wondered if I could expand the use cases to include knowledge organization. The challenge is mainly to display a lot of data on a canvas and don't kill the CPU/GPU in the process. How do you handle displaying that much information at once?
It is indeed hard to optimize it; I haven't fully utilized the potential myself. For now I have an object pool which allows me to create only one instance of a canvas element. Kotlin also allows me to use coroutines easily, also (potentially) have access to GPU/CPU since this is a desktop app.
Another thing I tried (still in backlog) is dynamic quality reducer for images and PDFs - sort of like a game engine rendering where zooming out will reduce quality of images.
What are you writing your app on? Electron?