Congrats on getting selected \(^_^)/ Looking forward to meet new people who’d be joining here and be a part of another awesome summer. Happy contributing everyone!
Hi everyone, My name is Saurabh. I am a final year Computer Science and Engineering undergraduate. Apart from being a programmer/ software developer, I like to do graphic designing and video editing and currently trying to learn animation in my free time. I came across Synfig while I was searching for software to learn animation and now as a developer would love to contribute to Synfig.
I went through the idea page and like the idea related to the “improvement of the speed of Synfig export to files and rendering speed”. It would be very kind if someone could guide me on how to get started with this particular project.
Hi guys!
@SaurabhS first you need to build synfig from sources. You can read about this here:
https://synfig-docs-dev.readthedocs.io/en/latest/building/Preparing%20Environment.html
https://synfig-docs-dev.readthedocs.io/en/latest/building/Building%20using%20Autotools.html
https://synfig-docs-dev.readthedocs.io/en/latest/building/Building%20using%20CMake.html
(You can use autotools or CMake build system there is no difference here. If you will choose CMake, do not forget to add -DCMAKE_BUILD_TYPE=Release
for release build)
I also want to point out that Linux is the only suitable OS for this idea, because we still don’t have MSVC support, so no performance analyzing tools is available for Windows or MacOS. (At least I don’t know about it).
After that, you can try to open some examples from synfig-core/examples
folder and check some of them which is have slow loading times or rendering speed.
Hello Everyone ! Myself Dhairya and I am pursuing my BTech in Computer science. I am an open source enthusiast and I love contributing to it. I’ve been contributing to synfig recently but then I shifted to make some personal projects and also to learn new technologies.
I would love to work on the project “Move ETL library code to synfig-core” . Kindly guide me a little bit and help me get started with this project so that I can start contributing to this as soon as possible.
Would love to spend my summer contributing to open source with synfig
Happy Learning
Thanks and Regards🙏
Hi, @dhairya_bahl, nice to see you here!
@riya1606 @dhairya_bahl
A little information about where to start:
First step in this issue is just open synfig/ETL/ETL
folder, and try to understand (or maybe document for yourself) what every file in this folder is needed for? For example: where _rect.h
is used? (You can use context-search for this in any IDE). Is it used only in synfig-core
or it is used by both synfig-core
and synfig-studio
? etc.
The main idea here is not just copy files from ETL
to core
and fix CMakeLists.txt/autotools files.
The main idea is to switch to standard primitives (classes/functions) when you doing this migration.
ETL
is analogous to the STL/std C++ library and was written before they became the standard. So for the new developer is a little complicated to understand why we use smart_ptr
and did not use std::shared_ptr
or std::unique_ptr
.
For example, when I was analyzing smart_ptr
class from ETL, I started by looking for the classes that use it. And I found synfig-core/src/synfig/smartfile.h
. If you check it, you will see what this is a good start point for this idea. This class is very simple, but you should decide: can smart_ptr
be switched to std::shared_ptr
or std::unique_ptr
, or smart_ptr
class have some unique features and should be ported as is?
I also want to point out that there may not be a perfect solution for some classes. Some of them can be switched to std
, others will need to be left as they are.
P.S. Also feel free to suggest your own ideas if you are interested in them.
7.4. Project Proposals.
…
3. Project Proposals may, but are not required to, be for Projects on an Organization’s Ideas List.
@AnishG @ankit @rodolforg and other developers - if you are available as mentors please post here, or PM me please.
@ice0
Thanks for explaining the whole idea in detail. I will start with understanding the smart_ptr file itself and will slowly look into other files as well.
@riya1606
Feel free to ping me if you also want to work on the same issue. Will discuss it together
Already Excited for this
Regards
Hi @ice0,
I built the Synfig using Autotools and opened some examples from synfig-core/examples
folder and noticed files like synfig-core/examples/pirates.sif
and synfig-core/examples/eye.sif
were taking time to load as well as render.
Now, what should be my next steps?
Greetings @ice0 ,
-
Kindly tell me where should I ask my doubts related to the project ? Will it be okay to open the issue for the same on github ? or should I ask them over here ?
-
Secondly I would like to say that I’ve requested access to video course of synfig in the form that was there in documentation. So kindly look into it also.
Thanks and Regards
Now you need to isolate the problem. Try turning some of the layers on and off and you will see which one is affecting the performance degradation.
After that you are ready to go. Save the final file somewhere, and run synfig
console tool from command line.
For example:
./synfig --fps 50 -t null ~/test/radial_blur.sifz
where:
-t null
- use null target (just to remove unnecessary format conversion)
--fps 50
- frames per seconds. Use this value like for
loop to increase number of the renderings. This will allow you to improve quality of perf
recording.
~/test/radial_blur.sifz
- path to your test file.
Write data using perf
tool:
sudo perf record -g ./synfig --fps 50 -t null ~/test/radial_blur.sifz
after that you can check perf report using:
perf report -g -G
P.S. Please read about the perf
tool and perf flags.
Can I apply for GSoC as a student? I had pointed out a bug on Github twice and I am interested in this field although I dont actually have any coding experience yet.
Hello @vaibhavds You can definitely try applying for GSoC this year but I would highly recommend you to get familiar with the synfig codebase first and try to understand how code is actually working ? On what tech stack it works ? and also give a try to solve some good-first-issues to get familiar with the codebase.
All The Best
Hello , I am Aradhana Kund from IIIT Bhubaneswar , ETC branch (2nd Year). I am willing to contribute to synfig for the Project - Move ETL library code to synfig-core. @ankit and @ice0 are the mentors of this project . Given below are my skills :
->Expertise knowledge in c++(Data Structure and Algorithms and DAA )
->Proficiency in STL(Also gathered knowledge on ETL)
->Competitive Programming(1200 AIR in Google Hash Code)
I wish to contribute to this project and willing to interact with the mentors for better ideation of the project . It would be great if I am guided on my idea for the project.Looking forward for positive response.
Hello , I am Aradhana Kund from IIIT Bhubaneswar , ETC branch (2nd Year). I am willing to contribute to synfig for the Project - Move ETL library code to synfig-core. @ankit and @ice0 are the mentors of this project . Given below are my skills :
->Expertise knowledge in c++(Data Structure and Algorithms and DAA )
->Proficiency in STL(Also gathered knowledge on ETL)
->Competitive Programming(1200 AIR in Google Hash Code)
I wish to contribute to this project and willing to interact with the mentors for better ideation of the project . It would be great if I am guided on my idea for the project.Looking forward for positive response.
Yes please count me in!!
Welcome onboard @dhairya_bahl @aradhana_kund @vaibhavds @riya1606 (and other students! sorry I am too lazy to tag everyone)
@vaibhavds You don’t need to be super experienced before contributing as long as you are willing to learn and consistent you are good to go . Just start with reading the docs, then build synfig on your machine and watch the video course to understand what synfig actually is !
Welcome onboard @aradhana_kund. Glad to see you interested! My response is same for you as well. Just start with reading the docs, then build synfig on your machine and watch the video course to understand what synfig actually is! After that, you can start working on good first issues.
As I can see I am late for the party and @ice0 have already answered most of the things, still
I highly recommend that you guys read student’s guideline
It’s not exhaustive however I will keep adding points as I recall them. Feel free to reach me here on the forum.
@ankit Thank You for sharing all the guidelines related to GSoC . Looking forward to contribute more to synfig .
Regards