When creating a new annotation, it will be a hybrid by default. Therefore, containing a skeleton and a volume tracing. I suggest to not create the volume tracing eagerly, but wait for the first volume-related user action to do the creation.
There are several advantages to this approach:
If the volume tracing wasn't created yet we know that we can:
avoid fetching null buckets for that layer (currently, we have to try fetching all data for the volume tracing even though there is no data)
support precomputed mesh files (currently, we have to assume that the mesh file is outdated due to the volume tracing)
support agglomerate mapping files better (?)
Complicated settings/decisions can be deferred to later. Currently, the user either simply clicks "Create Annotation" (which simply picks default values) or they can choose the more complicated "Create Explorative Annotation" modal (with settings, such as, with/without fallback layer). These settings are hard to revert later. Deferring the decision making to the point where the user really wants to annotate volume data would simplify the user flow in my opinion.
Disadvantages:
implementation-wise we need to be able to add the volume tracing later (a hard-refresh solution should already be available via "Convert to Hybrid", but we probably want to have a dynamic solution)
?
Context
[ ] Specific to long-running jobs (set jobsEnabled=true in application.conf)
[ ] Specific to webKnossos.org (set isDemoInstance=true in application.conf)
Detailed Description
When creating a new annotation, it will be a hybrid by default. Therefore, containing a skeleton and a volume tracing. I suggest to not create the volume tracing eagerly, but wait for the first volume-related user action to do the creation. There are several advantages to this approach:
Disadvantages:
Context
jobsEnabled=true
inapplication.conf
)isDemoInstance=true
inapplication.conf
)