Skip to content

Commit ba33985

Browse files
authored
Add the GSoC project "Brush tool" (#120)
1 parent 4739dfc commit ba33985

1 file changed

Lines changed: 16 additions & 22 deletions

File tree

docs/gsoc/2025/ideas.rst

Lines changed: 16 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -87,39 +87,33 @@ Synfig is quite a huge application. Most likely this app would start with only v
8787
**Expected size of project:** 350 hours
8888

8989

90-
91-
92-
93-
94-
Plugin manager dialog (175 or 350 hrs)
95-
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
90+
Brush tool (175hrs)
91+
~~~~~~~~~~~~~~~~~~~
9692

9793
**Description:**
98-
A dialog for management of Synfig Studio plugins and Synfig modules.
99-
The dialog would show the currently supported plugin/module metadata and allow user to:
100-
101-
- uninstall it
102-
- open its folder in the default OS file manager
103-
- install a plugin from a zip package already stored in local machine
104-
- maybe browse/download from a (future) online plugin repository (maybe a dedicated service or a special session from Synfig forums or even a git server)
10594

106-
**Expected outcome:**
95+
Synfig is primarily designed for vector-based animation, but it also supports the use of raster images within animations.
96+
However, the current functionality only allows for the use of raster images imported from external files (usually BMP, JPG or PNG), limiting users from drawing directly within the application.
97+
The goal of this project is to implement the missing Brush tool for raster drawing, allowing users to draw raster content directly in the app.
98+
An early attempt to implement this feature, called 'Brush,' exists, but it is entirely nonfunctional. Users are unable to make even a single stroke with the tool.
10799

108-
**175 hours**
100+
**Where to begin:**
109101

110-
- Users could easily list, install and uninstall plugins and modules they downloaded from Internet.
102+
1. Look for the code of how tools are implemented in Synfig. As they are coded as a finite state machine, the correspondent files are name as state_
103+
2. `synfigapp` is responsible for handling the interface between the graphical user interface (GUI) and the underlying core engine of Synfig (which handles the animation and rendering processes).
104+
There are some synfigapp::Actions trying to implement it, as in synfig-studio/src/synfigapp/actions/layerpaint.h
111105

112-
**350 hours**
106+
**Expected outcome**
113107

114-
- Plugin repository
108+
A working tool that allows users to freely hand-draw their artwork, which can then be animated within Synfig, with undo/redo functionality while drawing and features like brush selection, coloring options, and erasing.
115109

116-
**Difficulty:** Easy/Medium
110+
**Difficulty:** Medium/High
117111

118-
**Skills required/preferred:** C++, gtkmm
112+
**Skills required/preferred:** C++, gtkmm, 2D-drawing
119113

120-
**Possible mentor(s):** `Rodolfo Ribeiro Gomes <https://github.com/rodolforg>`_, `Mohamed Adhamc <https://github.com/mohamedAdhamc>`_
114+
**Possible mentor(s):** `Rodolfo Ribeiro Gomes <https://github.com/rodolforg>`_ , `Mohamed Adham <https://github.com/mohamedAdhamc>`_
121115

122-
**Expected size of project:** 175 or 350 hours
116+
**Expected size of project:** 175 hours
123117

124118
Propose a Project
125119
------------------

0 commit comments

Comments
 (0)