@jedateach The biggest thing I can say about that plugin is I haven’t had time to finish porting it yet! :) The basic idea, however, is code to interface with the viewer (elements to host annotations and event handling) combined with a generic interface for annotations. Annotations get event callbacks and can query the “host” for info needed to render themselves, and are self-contained objects that can really be anything. That’s the basics. On top of that, the code I’m porting has “modes" like create, edit, etc. which help dictate the sequence of callback calls to annotation objects and annotations can decide how to render themselves (for example, grapples in edit mode). That portion is a bit opinionated (shaped for the medical imaging work it’s used on) so my biggest delay has been thinking about how to abstract that out a bit to make sure it’s flexible for other uses. That’s a quick overview.