The (de)serialisation could be skipped by simply making the plugin an interface layer between Blender and GFD Studio. This would have the advantage of having a single, canonical (de)serialisation pipeline.
Most of the Blender I/O would still be required since the data would still have to be transformed between Blender and GFD Studio structs.
This would probably work by launching GFD Studio from the plugin, and pushing / pulling data to and from Blender by issuing commands from the GFD Studio GUI. In both instances the simplest thing to do would be to thrown away the currently-active model and reconstruct it from the pushed / pulled data.
The (de)serialisation could be skipped by simply making the plugin an interface layer between Blender and GFD Studio. This would have the advantage of having a single, canonical (de)serialisation pipeline.
Most of the Blender I/O would still be required since the data would still have to be transformed between Blender and GFD Studio structs.
This would probably work by launching GFD Studio from the plugin, and pushing / pulling data to and from Blender by issuing commands from the GFD Studio GUI. In both instances the simplest thing to do would be to thrown away the currently-active model and reconstruct it from the pushed / pulled data.