# \[GSoC 2020\] Google Summer of Code 2020

**URL:** https://forums.synfig.org/t/gsoc-2020-google-summer-of-code-2020/10545
**Category:** Development
**Tags:** gsoc2020
**Created:** [January 16, 2020, 2:50pm UTC](https://forums.synfig.org/t/gsoc-2020-google-summer-of-code-2020/10545 "2020-01-16T14:50:52Z")
**Posts on this page:** 20
**Page:** 1

<div class="post-metadata">

### Author: ![KonstantinDmitriev](https://forums.synfig.org/user_avatar/forums.synfig.org/konstantindmitriev/32/3_2.png) [@KonstantinDmitriev](https://forums.synfig.org/u/KonstantinDmitriev)
#### Post date: [January 16, 2020, 2:50pm UTC](https://forums.synfig.org/t/gsoc-2020-google-summer-of-code-2020/10545/1 "2020-01-16T14:50:53Z")

</div>

Hi everyone! We decided to apply for Google Summer of Code program this year again. ^\_\_\_^

The organization application period is open now and it will close on Wednesday, February 5th. - [Google Summer of Code 2020 is now open for mentor organization applications! | Google Open Source Blog](https://opensource.googleblog.com/2020/01/google-summer-of-code-2020-is-now-open.html)

Now it is time to prepare all necessary docs for application.

This year I am volunteer to participate as an Admin. I can also act as Backup Mentor, if such need arise. 🙂

Questions we should answer first:

- **Who is willing to participate as mentor?** It would be nice if you provide a project ideas that you are willing to mentor. If you have potential student who can carry the project - please mention that too.
- **Who can help with preparing application docs?** We have docs for previous year here - [Google Summer of Code 2019 — Synfig developers docs documentation](https://synfig-docs-dev.readthedocs.io/en/latest/gsoc/2019.html). Most information can be copied.
- **Help to discuss ideas for student’s projects.** See list from previous year - [Ideas List — Synfig developers docs documentation](https://synfig-docs-dev.readthedocs.io/en/latest/gsoc/2019/ideas.html#projects-ideas).  
Remember that we can accept idea only if there are someone who is willing to mentor it. In any case, post your crazy ideas in this thread and get fellow devs interested. 🙂
- **Prepare list of simple issues to test skills of aspiring students.** We need to examine list of existing issues in our tracker and mark some of them with “good-first-issue”, “help-wanted” and “Easy” labels. Adding simple issues is also appreciated.

[@devs](https://forums.synfig.org/groups/devs)

 ![GSoC-Vertical](https://forums.synfig.org/uploads/default/original/2X/0/0444502193275794ef4157cd70d2df7d14981305.png)

---

<div class="post-metadata">

### Author: ![ice0](https://forums.synfig.org/user_avatar/forums.synfig.org/ice0/32/4612_2.png) [@ice0](https://forums.synfig.org/u/ice0)
#### Post date: [January 17, 2020, 7:53am UTC](https://forums.synfig.org/t/gsoc-2020-google-summer-of-code-2020/10545/2 "2020-01-17T07:53:43Z")

</div>

Hi, guys!

Here are my ideas for GSOC 2020.

**CMake**

1. Change the layout of the builded files inside the cmake-build directory:  
a) Create a subfolder with assembly type (Debug / Release)  
b) Inside it, create a folder tree that matches the structure that Synfig expects (bin / etc / lib / share);
2. Finish the **make\_images** cmake target. Because the paths will already coincide with what Synfig expects, then everything should be works fine. As for now this target fails because Synfig can’t load needed libraries (for that step we will use the SYNFIG\_ROOT\_DIR environment variabe as a temporarily hack);
3. Fix algorithms for searching libraries in Synfig, relative to the called binary, and remove the SYNFIG\_ROOT\_DIR hack in step 3 (as for now part of Synfig paths is hardcoded so this part needs to be rewritten);
4. Add the ability to disable any optional module or all of them, this will allow building on Debian systems (there is a problem with libmng on Debian-based systems). Also maybe add a custom CMake search for libmng?;
5. Try to build Synfig using vcpkg ([https://github.com/microsoft/vcpkg](https://github.com/microsoft/vcpkg)) - they do not have some libraries which Synfig depends, but after disabling all the optional dependencies, maybe this will be enough for us. In case something critical is missing - add issue with a request to add missing library. This will allow us to build Synfig using MSVC on Windows;
6. Start implementing CPack to prepare .deb and .nsis files.

P.S. I will update this post later.

---

<div class="post-metadata">

### Author: ![KonstantinDmitriev](https://forums.synfig.org/user_avatar/forums.synfig.org/konstantindmitriev/32/3_2.png) [@KonstantinDmitriev](https://forums.synfig.org/u/KonstantinDmitriev)
#### Post date: [January 17, 2020, 4:16pm UTC](https://forums.synfig.org/t/gsoc-2020-google-summer-of-code-2020/10545/3 "2020-01-17T16:16:44Z")

</div>

@ice0 That’s cool! I like the fact that there is a specific plan on CMake improvements project. And also it’s starts with some short tasks, so incoming students can proof their skills before the actual coding period starts.

BTW, that reminds me about one more item for our TODO list.  
We need to prepare for incoming flow of aspiring students - make a collection of simple/good-first issues, so they can start diving into Synfig code. 🙂

Links:

- [https://github.com/synfig/synfig/issues?q=is%3Aopen+is%3Aissue+label%3A"good+first+issue"](https://github.com/synfig/synfig/issues?q=is%3Aopen+is%3Aissue+label%3A%22good+first+issue%22)
- [https://github.com/synfig/synfig/issues?q=is%3Aopen+is%3Aissue+label%3AEasy](https://github.com/synfig/synfig/issues?q=is%3Aopen+is%3Aissue+label%3AEasy)
- [https://github.com/synfig/synfig/issues?q=is%3Aopen+is%3Aissue+label%3A"help+wanted"](https://github.com/synfig/synfig/issues?q=is%3Aopen+is%3Aissue+label%3A%22help+wanted%22)

@ice0, I guess first items from your plan can be submitted as “good-first-issue” in bugtracker. ^\_\_\_^

---

<div class="post-metadata">

### Author: ![AnishG](https://forums.synfig.org/user_avatar/forums.synfig.org/anishg/32/4428_2.png) [@AnishG](https://forums.synfig.org/u/AnishG)
#### Post date: [January 21, 2020, 11:35am UTC](https://forums.synfig.org/t/gsoc-2020-google-summer-of-code-2020/10545/4 "2020-01-21T11:35:54Z")

</div>

Hello everyone,

After a discussion with @KonstantinDmitriev, we have decided to extend the Lottie export project which was my GSoC project last year.  
Here I am sharing of what is expected from you to implement in this project this year[Will keep on updating this, keep an eye]

- Export outlines without variable widths (that way we get native Lottie outlines and will make animation playback much faster)

- Export of following layers (Will need proof of the existence of the following layers)
  - Advanced outline layer
  - Gradients
  - Duplicate layer
  - Bones (Add support for handling group transformations)
  - Text Layer
  - Blur Layer
  - Motion blur layer
  - Radial blur layer
  - Color correct layer
  - Luma key layer
  - Curve warp layer
  - Noise distort layer
  - Spherize layer
  - Twirl layer
  - Bevel layer
  - Stroboscope layer
  - Julia set layer
  - Mandelbrot set layer
  - Shade layer

- Add animation to the addition/deletion of bline points
- Use winding (in adobe AE) instead of masks to generate all the shape layers, this way we will be able to support **even/odd** winding.
- Implement the remaining convert methods: [Convert - Synfig Animation Studio](https://wiki.synfig.org/Convert)

> [@KonstantinDmitriev](#):
>
> We need to prepare for incoming flow of aspiring students - make a collection of simple/good-first issues

I will be adding some issues related to Lottie in the bugtracker.  
Here is one of them:

- [[Lottie exporter] Convert methods not working with radius of simple circle layer · Issue #1101 · synfig/synfig · GitHub](https://github.com/synfig/synfig/issues/1101)

P.S. You can refer to the information regarding Lottie project here  
[https://github.com/synfig/synfig/pull/756](https://github.com/synfig/synfig/pull/756)

---

<div class="post-metadata">

### Author: ![Jedi18](https://forums.synfig.org/letter_avatar_proxy/v4/letter/j/58956e/32.png) [@Jedi18](https://forums.synfig.org/u/Jedi18)
#### Post date: [January 23, 2020, 6:02pm UTC](https://forums.synfig.org/t/gsoc-2020-google-summer-of-code-2020/10545/5 "2020-01-23T18:02:53Z")

</div>

Hi everyone, I’m student hoping to participate in gsoc this year.

I was reading [the code structure](https://synfig-docs-dev.readthedocs.io/en/latest/common/structure.html) and it said the opengl rendering is as of now broken. How much of it is broken? Are there parts in the opengl renderer that have not been implemented?

If so, could it be viable project idea for gsoc?

---

<div class="post-metadata">

### Author: ![UltGamer007](https://forums.synfig.org/letter_avatar_proxy/v4/letter/u/71c47a/32.png) [@UltGamer007](https://forums.synfig.org/u/UltGamer007)
#### Post date: [January 26, 2020, 3:26am UTC](https://forums.synfig.org/t/gsoc-2020-google-summer-of-code-2020/10545/6 "2020-01-26T03:26:01Z")

</div>

I am a student hoping to participate in GSOC in 2020, so what do you guys as developers suggest for things i can contribute right now to synfig, so as to increase my chances of getting selected by your organisation.

---

<div class="post-metadata">

### Author: ![ice0](https://forums.synfig.org/user_avatar/forums.synfig.org/ice0/32/4612_2.png) [@ice0](https://forums.synfig.org/u/ice0)
#### Post date: [January 27, 2020, 11:51am UTC](https://forums.synfig.org/t/gsoc-2020-google-summer-of-code-2020/10545/7 "2020-01-27T11:51:46Z")

</div>

@UltGamer007 You can look for issues by this tags. I will add more issues a bit later.

> [@KonstantinDmitriev](#):
>
> Links:
> 
> - [https://github.com/synfig/synfig/issues?q=is%3Aopen+is%3Aissue+label%3A"good+first+issue"](https://github.com/synfig/synfig/issues?q=is%3Aopen+is%3Aissue+label%3A%22good+first+issue%22)
> - [https://github.com/synfig/synfig/issues?q=is%3Aopen+is%3Aissue+label%3AEasy](https://github.com/synfig/synfig/issues?q=is%3Aopen+is%3Aissue+label%3AEasy)
> - [https://github.com/synfig/synfig/issues?q=is%3Aopen+is%3Aissue+label%3A"help+wanted"](https://github.com/synfig/synfig/issues?q=is%3Aopen+is%3Aissue+label%3A%22help+wanted%22)

---

<div class="post-metadata">

### Author: ![KonstantinDmitriev](https://forums.synfig.org/user_avatar/forums.synfig.org/konstantindmitriev/32/3_2.png) [@KonstantinDmitriev](https://forums.synfig.org/u/KonstantinDmitriev)
#### Post date: [January 27, 2020, 3:15pm UTC](https://forums.synfig.org/t/gsoc-2020-google-summer-of-code-2020/10545/8 "2020-01-27T15:15:27Z")

</div>

> [@Jedi18](#):
>
> I was reading [the code structure](https://synfig-docs-dev.readthedocs.io/en/latest/common/structure.html) and it said the opengl rendering is as of now broken. How much of it is broken? Are there parts in the opengl renderer that have not been implemented?
> 
> If so, could it be viable project idea for gsoc?

Hi @Jedi18! Thank you for your interest! Right now we have rewriting of software renderer in progress, so it is a bit early to do OpenGL fixing/developmentю

---

<div class="post-metadata">

### Author: ![KonstantinDmitriev](https://forums.synfig.org/user_avatar/forums.synfig.org/konstantindmitriev/32/3_2.png) [@KonstantinDmitriev](https://forums.synfig.org/u/KonstantinDmitriev)
#### Post date: [January 27, 2020, 3:16pm UTC](https://forums.synfig.org/t/gsoc-2020-google-summer-of-code-2020/10545/9 "2020-01-27T15:16:28Z")

</div>

BTW, I still waiting for help with this -

> [@KonstantinDmitriev](#):
>
> **Who can help with preparing application docs?** We have docs for previous year here - [https://synfig-docs-dev.readthedocs.io/en/latest/gsoc/2019.html](https://synfig-docs-dev.readthedocs.io/en/latest/gsoc/2019.html). Most information can be copied.

The deadline (February 5th) is approaching.

---

<div class="post-metadata">

### Author: ![AnishG](https://forums.synfig.org/user_avatar/forums.synfig.org/anishg/32/4428_2.png) [@AnishG](https://forums.synfig.org/u/AnishG)
#### Post date: [January 28, 2020, 8:27am UTC](https://forums.synfig.org/t/gsoc-2020-google-summer-of-code-2020/10545/10 "2020-01-28T08:27:43Z")

</div>

I will create a PR to synfig docs regarding the same.

---

<div class="post-metadata">

### Author: ![KonstantinDmitriev](https://forums.synfig.org/user_avatar/forums.synfig.org/konstantindmitriev/32/3_2.png) [@KonstantinDmitriev](https://forums.synfig.org/u/KonstantinDmitriev)
#### Post date: [January 28, 2020, 9:10am UTC](https://forums.synfig.org/t/gsoc-2020-google-summer-of-code-2020/10545/11 "2020-01-28T09:10:05Z")

</div>

@AnishG Thank you! 🙂

---

<div class="post-metadata">

### Author: ![rodolforg](https://forums.synfig.org/letter_avatar_proxy/v4/letter/r/c68b51/32.png) [@rodolforg](https://forums.synfig.org/u/rodolforg)
#### Post date: [January 31, 2020, 12:52am UTC](https://forums.synfig.org/t/gsoc-2020-google-summer-of-code-2020/10545/12 "2020-01-31T00:52:50Z")

</div>

What about:

- convert [deprecated Gtk::Main](https://github.com/GNOME/gtkmm/commit/e8fa79e2f5ddde06a8dc85af7bc4e7769a56daa9) to Gtk::Application (since 2012)
- get rid of [deprecated](https://github.com/GNOME/gtkmm/commit/f21173fb19be67dd54bbac55f0d373e71effc11b) Gtk::StockId (since before 2013)
- convert [deprecated](https://github.com/GNOME/gtkmm/commit/8aec4abb76a3552b56161977259267eca1478b96) Gtk::Action to Gio::Action (since 2016)
- convert/get rid of [deprecated](https://github.com/GNOME/gtkmm/commit/703ed58490eedd704c9f888e8a18efbd58da8549) Gtk::UIManager to Gtk::Builder (since 2013)
- a python/ruby/lua interactive console for plugin coding/testing : it can be used for synfig document handling and;or GUI-related. It would be an alternative to call python binary.

---

<div class="post-metadata">

### Author: ![AnishG](https://forums.synfig.org/user_avatar/forums.synfig.org/anishg/32/4428_2.png) [@AnishG](https://forums.synfig.org/u/AnishG)
#### Post date: [February 1, 2020, 10:58am UTC](https://forums.synfig.org/t/gsoc-2020-google-summer-of-code-2020/10545/13 "2020-02-01T10:58:56Z")

</div>

As the deadline for submitting the GSoC org application is closing in, I guess we should submit the project ideas as a P.R. here: [https://github.com/synfig/synfig-docs-dev/blob/master/docs/gsoc/2020/ideas.rst](https://github.com/synfig/synfig-docs-dev/blob/master/docs/gsoc/2020/ideas.rst)

ping @ice0, @rodolforg

Also @KonstantinDmitriev, could you look into project ideas and check what all needs to be updated because most of the ideas are from the previous year.

---

<div class="post-metadata">

### Author: ![KonstantinDmitriev](https://forums.synfig.org/user_avatar/forums.synfig.org/konstantindmitriev/32/3_2.png) [@KonstantinDmitriev](https://forums.synfig.org/u/KonstantinDmitriev)
#### Post date: [February 3, 2020, 2:39pm UTC](https://forums.synfig.org/t/gsoc-2020-google-summer-of-code-2020/10545/14 "2020-02-03T14:39:23Z")

</div>

> [@rodolforg](#):
>
> a python/ruby/lua interactive console for plugin coding/testing : it can be used for synfig document handling and;or GUI-related. It would be an alternative to call python binary.

I think this is great addition, but I am afraid this could be too big task to be handled in 3 months (I think we should carefully plan API here, taking in account examples how this done in other products - Blender, Krita, GIMP, and commercial ones).

> [@rodolforg](#):
>
> - convert [deprecated Gtk::Main](https://github.com/GNOME/gtkmm/commit/e8fa79e2f5ddde06a8dc85af7bc4e7769a56daa9) to Gtk::Application (since 2012)
> - get rid of [deprecated](https://github.com/GNOME/gtkmm/commit/f21173fb19be67dd54bbac55f0d373e71effc11b) Gtk::StockId (since before 2013)
> - convert [deprecated](https://github.com/GNOME/gtkmm/commit/8aec4abb76a3552b56161977259267eca1478b96) Gtk::Action to Gio::Action (since 2016)
> - convert/get rid of [deprecated](https://github.com/GNOME/gtkmm/commit/703ed58490eedd704c9f888e8a18efbd58da8549) Gtk::UIManager to Gtk::Builder (since 2013)

I like this, but leaving the final decision about this to @ice0.

---

<div class="post-metadata">

### Author: ![rodolforg](https://forums.synfig.org/letter_avatar_proxy/v4/letter/r/c68b51/32.png) [@rodolforg](https://forums.synfig.org/u/rodolforg)
#### Post date: [February 3, 2020, 10:17pm UTC](https://forums.synfig.org/t/gsoc-2020-google-summer-of-code-2020/10545/15 "2020-02-03T22:17:25Z")

</div>

> [@KonstantinDmitriev](#):
>
> I think this is great addition, but I am afraid this could be too big task to be handled in 3 months (I think we should carefully plan API here, taking in account examples how this done in other products - Blender, Krita, GIMP, and commercial ones).

Synfigapp is already an API. Maybe restrict the plugin approach to execute synfigapp::Actions? It would be just a matter to “port” a simplified version of basic data structures (layer, canvas, params, keyframe, valuebase).

With [SWIG](http://www.swig.org/), it relatively easy to build the bridge C++ ↔ Python/Lua.

---

<div class="post-metadata">

### Author: ![rodolforg](https://forums.synfig.org/letter_avatar_proxy/v4/letter/r/c68b51/32.png) [@rodolforg](https://forums.synfig.org/u/rodolforg)
#### Post date: [February 4, 2020, 1:27am UTC](https://forums.synfig.org/t/gsoc-2020-google-summer-of-code-2020/10545/16 "2020-02-04T01:27:51Z")

</div>

Another alternative is to implement frame-by-frame animation “tools”, such as improving Switch layer handling.  
Example:

- “Auto-switch” tool:

- “Manual switch” tool:

This was suggested by Ricardo Graça, a professional animator that previously used Synfig a lot, but now switched to Blender for 2D animations… He gave me a few more ideas, but I’m still talking to him to better understanding.  
[https://br.linkedin.com/in/rico-graca](https://br.linkedin.com/in/rico-graca)

> **[ricolandia.com](https://www.ricolandia.com)**
>
> Portfólio e trajetória de Ricardo Graça.

---

<div class="post-metadata">

### Author: ![KonstantinDmitriev](https://forums.synfig.org/user_avatar/forums.synfig.org/konstantindmitriev/32/3_2.png) [@KonstantinDmitriev](https://forums.synfig.org/u/KonstantinDmitriev)
#### Post date: [February 4, 2020, 7:12am UTC](https://forums.synfig.org/t/gsoc-2020-google-summer-of-code-2020/10545/17 "2020-02-04T07:12:29Z")

</div>

> [@rodolforg](#):
>
> Synfigapp is already an API.

That’s true.

> [@rodolforg](#):
>
> Maybe restrict the plugin approach to execute synfigapp::Actions? It would be just a matter to “port” a simplified version of basic data structures (layer, canvas, params, keyframe, valuebase).

Yes, that could be a way to go. If we select this idea, then we will need someone who is willing to [mentor](https://google.github.io/gsocguides/mentor/) this project (in case if there will be a good student for it). 🙂

---

<div class="post-metadata">

### Author: ![KonstantinDmitriev](https://forums.synfig.org/user_avatar/forums.synfig.org/konstantindmitriev/32/3_2.png) [@KonstantinDmitriev](https://forums.synfig.org/u/KonstantinDmitriev)
#### Post date: [February 4, 2020, 7:35am UTC](https://forums.synfig.org/t/gsoc-2020-google-summer-of-code-2020/10545/18 "2020-02-04T07:35:18Z")

</div>

I have reviewed and filled in our GSoC application - [https://synfig-docs-dev.readthedocs.io/en/latest/gsoc/2020/application.html](https://synfig-docs-dev.readthedocs.io/en/latest/gsoc/2020/application.html)

Looking forward to your PRs for Ideas List! 🙂 - [https://synfig-docs-dev.readthedocs.io/en/latest/gsoc/2020/ideas.html](https://synfig-docs-dev.readthedocs.io/en/latest/gsoc/2020/ideas.html)

---

<div class="post-metadata">

### Author: ![KonstantinDmitriev](https://forums.synfig.org/user_avatar/forums.synfig.org/konstantindmitriev/32/3_2.png) [@KonstantinDmitriev](https://forums.synfig.org/u/KonstantinDmitriev)
#### Post date: [February 4, 2020, 7:43am UTC](https://forums.synfig.org/t/gsoc-2020-google-summer-of-code-2020/10545/19 "2020-02-04T07:43:22Z")

</div>

@AnishG I suggest to formulate the Lottie improvement idea a bit differently - how about this “Add support for exporting Skeletons to Lottie”. That makes the project more focused and easier to understand. And I think adding a skeleton export is already a big task. The addition of other layers could be a part of it, or part of proof-of-skill tasks for aspiring students. 🙂

---

<div class="post-metadata">

### Author: ![KonstantinDmitriev](https://forums.synfig.org/user_avatar/forums.synfig.org/konstantindmitriev/32/3_2.png) [@KonstantinDmitriev](https://forums.synfig.org/u/KonstantinDmitriev)
#### Post date: [February 4, 2020, 7:46am UTC](https://forums.synfig.org/t/gsoc-2020-google-summer-of-code-2020/10545/20 "2020-02-04T07:46:30Z")

</div>

@ice0 Looking forward to see your CMake project in ideas list 🙂

[Next page](https://forums.synfig.org/t/gsoc-2020-google-summer-of-code-2020/10545.md?page=2)
