Konstantin's weekly report #3

Hello, this is me with another weekly report!

This week Ivan started implementing support for the packed file format in Synfig. The idea is to have new compressed file format, which (besides the main sif file) can hold images and other linked file inside. This is particulary useful for transferring animation file together with all related files, but it’s not only that.

The thing is that I want to have frame-by-frame animation in Synfig. Of course, we all do. If we talk about bitmap frame-by-frame animation, then obviously we need to store those files somewhere and the best would be if they will reside in the single project file. So, implementing support for packed file format is an essential groundwork thing.

Initially we decided to go with the zip format as the container. Much like the same, as the OpenRaster (ora) and LibreOffice do. Ivan is also investigated possibility to use custom format, and even wrote a whole bunch of code for that, but at the end we decided to go with a simpler solution and use zip. Though, if we will need more format features, there is always a possibility to ressurect the code and go with the custom way.

At the moment Ivan finishes the basic framework for reading and writing zip files. You can track the progress by watching his repository (by this moment some code is not yet pushed to the repo, though). By the way, some interesting implementation detail to share - packed files will support version control (i.e. you will be easily roll-back to your previous saving points within the same file).

Talking about me, this week I’ve spend a lot of time fighting with locales issue on OSX and finally got it fixed.

Finally, I’ve also put some efforts into polishing the Windows build of Synfig. To be more preciese - I’ve started migration from outdated MinGW to the brand-new MinGW-w64 toolchain. Unfortunately, I didn’t managed to get it compile Synfig correctly in my Cygwin environment. Looks like something is broken there. So I’ve migrated back to Fedora’s cross-compile environment (which is also uses MinGW-w64) and continued my experiments there.

As result, I’ve managed to compile 64-bit Windows version of Synfig. It’s still needs some minor polishing, though. Will upload the testing version as soon as I get it packaged with installer. Watch this thread for updates.

Meanwhile, Carlos is finishing the feature, which allows to assign default interpolation for any parameter of the layer individually (see this feature request). I have started this feature in April (just before my visit to LGM), but later got busy with other tasks and Carlos stepped in to finish it. The implementation of this feature requires changing the way how the layer parameters are stored internally. It’s quite a tedious work, but luckily it’s near completion now.

Thanks for the hard work.

packing all project recourses into a single file sounds good,but one thing I am considering is the file size, when we are talking about frame by frame animation and even more, audio etc…

the toonboom 's animate pro software uses project folder to host all resources. Will check other animation applications.

Versioning control is absolutely amazing. Many I ask more description of it, what is the backend, git or it is optional. How to expose this feature to end users?

This is truly amazing.

Regarding to the feature of parameter interpolation that I’m finishing, once concluded it needs one further but needed small modification.
First the icons used and where are they placed could be modified. I would need feedback on this rom the good designer people

Second, one the feature is implemented it should be used! Apart of the user option of decide to any individual parameter about of its interpolation or if it is not animatable the program can have default values to the certain parameters of some layers. For example, currently, the blend mode of Composite layer (and all its derivatives) is Static (non animatable) by default. Same happen to the interpolation type of the import image layer. But sure users would like that certain parameters of determined layers, has a default interpolation or to be static by default. So I would need some feedback on this from you, the users.

That is.


hi, I have already prepared a set of icons which match the current style of parameters panel one, I wish I was one of the good designers :slight_smile:

I will pull ,build master tree and fine-tune the icons accordingly. And post screenshot for you.

so far so quick … !

Why would one want bitmap frame by frame animation in a vector animation program? I mean, let’s say 24 frames per second, even if you animate on two’s that would still be a lot of bitmaps, in 32 bit color at a ratio of full HD which is roughly 300 dpi. (Even more if you want to zoom in.) That’s lots of data to handle and I like the speed of the current windows version, lol. The idea of a new packed file format is great. Eager to test the 64 bit windows build :smiley:

Animating on top of video is one use for this. If you have the video stored as a PNG sequence, you can animate on top of it using Synfig and keep the whole project together.

According to our concept, user should be able to choose which files should be packed and which remain external.
Flash uses container file for all its data.
Anyway, we considered to have different backends - if you can save to container, then you can save into folder almost the same way. But I prefer container for now.

The version control feature naturally comes from the specifics of zip file structure and our approach for quickly saving file (changes appended at the end of zip archive). The same approach used in Flash for quick saving, but they don’t use this for versioning!
Exposing feature: User will be able to choose version to load or drop versions by re-saving file. Also, I guess, there will be suggestion to drop versions if file grows too big (or too many versions).

For animatic.
And of course for making awesome pieces like this. :slight_smile:

Which one do you prefer? I did add the default one to the mockup, but we can just simply use the undefined interpolation type icon for it.

Good work!

I like the color ones (B) - they are easier to recognize.
But placement is better at (A).
I prefer to have no icon for undefined interpolation type.

I agree with all three points.

The grey icons look like they are disabled but the coloured icons look like they are in effect now.

As “default interpolation” is the usual state, you don’t need an icon - the icons are only useful to warn us of an unusual state.

How about this implementation:

and the demo movie

I’ve already put interpolation/static icons into separate column -

I think they will be fine there.


btw, your screenshot remains me to recall the idea of building a special icon set for dark themes.