mastodon-sc / mastodon

Mastodon – a large-scale tracking and track-editing framework for large, multi-view images.
BSD 2-Clause "Simplified" License
69 stars 20 forks source link

Facilitate Custom File Formats - Required For Mastodon-Git Project #329

Closed maarzt closed 1 month ago

maarzt commented 1 month ago

The "Mastodon-Git" plugin aims to efficiently store Mastodon datasets inside a git repository. Unfortunately git performs very poorly when processing a history of large binary files as produced by the default Mastodon file format. Mastodon-Git therefor implements a customized Mastodon file format that can very efficiently be processed with git.

Two classes in the Mastodon core need to be public in order for mastodon-git to implement this custom file format that can still benefit from mastodon core features:

(Mastodon-git currently has its own copies of the ProjectLoader and ProjectSaver classes. In the long term it would be amazing if we could add a plugin API into mastodon core. That supports the implementation of custom file formats. Or at least make the ProjectLoader and -Saver more reusable. However in the short term it would be great if the ModelSerializer and MamutViewStateXMLSerialization were public. This would allow us the further experiment with the mastodon-git file format, without the need to use a customized mastodon.jar file.)

tinevez commented 1 month ago

Hello. Let's do this. Your comments are very helpful. Maybe we should keep track of them in a github project if we revise the IO. I feel like Mastodon could be very useful as a viewer / editor for other tracking tools. A good extensible IO will be required if we are to go this way.