My 2022(/2) resolutions

I’m writing here just to not forget my coding goals:

Code cleanup: easier maintenance for the future

  1. move ETL to synfig-core (WIP #2686 #2699 #2704 #2705 #2706 #2707 #2709 #2708 #2711 #2713#2715 #2718 #2733 #2735 #2773 #2710 #2791 -more to be done-)
  2. create os::pipe (WIP #2491 ← waiting for testing on Windows and MacOS and code review)
  3. port synfig studio to Gtk 3.18 without deprecated API (WIP)
  4. port remaining layers to Cobra Renderer engine (WIP 2362 #2551 #2562 -more to be done-)

Precious features: do not curse Synfig that much when starting to learning it

  1. create Tool Selection
  2. create dialog to let user fix missing files (WIP #2472 ← missing review -more to be done-)

Add-ons: making it easier for new contributors

  1. provide support for (real) Synfig Studio modules
  2. provide Python & Lua API for modules/plugins scripting

Why not?

  1. copy and paste not only layers, but also value nodes and values; and not only in-app

Dreams: because we don’t have enough time or patience

  1. fix or change skeleton code…
  2. bring OpenGL back (Vulkan would be more than a dream…)
  3. Make Brush tool work
  4. Make it available on Android

Never: because I don’t have any idea how to do it

  1. Allow canvas instancing that would allow to override parameters, current time and include more layers, without affecting other instances
  2. Boolean operation on (any) shapes

I have to say this sounds really interesting :), would probably be difficult in the sense that it would take a long time, but if that’s ever started I’d be totally down to help with it.

Directly on Android it seems difficult, unless…

It would be easier to develop directly a specific app which would handle .sif files instead.
And better on a tablet than on a phone, with a Bluetooth mouse, because of usability, ouch…

This is more realistic and would make miracles!
I did some tests on my side with pybind11, starting from studio::App class but no matter what I tried it failed.
The type of the singleton returned by the Instance() is not the same type as the private App() constructor… :crazy_face:
We definitely need scripting features…

Yes. My (future) intention is to use libsynfig and libsynfigapp with a new Android GUI app.
Tablets, of course. Phone would be too much limited IMO.

I already did some successful tests a year ago, with SWIG, that allow us to provide multiple languages, if wanted. But I prefer to cleanup some stuff before doing it, in order to provide an API relatively stable.


So maybe we could use Qt for the Android version.

Something else that could be nice is to provide an OSC compability once the api would be available.
This could permit to use a phone or a tablet as a provider of touch control for the parameters in Synfig.
There are configurable GUI possibilities with OpenStageControl for example or even with external input with PureData.
One click on a layer/parameter and a slider, color selector, switch appearing on the companion phone/tablet.

Also instead of using right-click and a cascade of sub-menus, a circular menu in the style of Fly-Pie could be more intuitive for productivity.

Yes, I am a dreamer :stuck_out_tongue:

1 Like

I’m not a fan of Qt. It’s a Java wanna be (in API/code style) aaand I always fear that happens what recently happened with Java.
Anyway, if someone wants to, good for Synfig users :slight_smile:

If we have a UI/UX designer… That’s not difficult to implement.