# \[GSoC 2025\] Brush Tool Project

**URL:** https://forums.synfig.org/t/gsoc-2025-brush-tool-project/16478
**Category:** Development
**Tags:** gsoc2025
**Created:** [May 9, 2025, 5:50pm UTC](https://forums.synfig.org/t/gsoc-2025-brush-tool-project/16478 "2025-05-09T17:50:54Z")
**Posts on this page:** 11
**Page:** 2

<div class="post-metadata">

### Author: ![Mdcreation](https://forums.synfig.org/letter_avatar_proxy/v4/letter/m/82dd89/32.png) [@Mdcreation](https://forums.synfig.org/u/Mdcreation)
#### Post date: [July 19, 2025, 6:29am UTC](https://forums.synfig.org/t/gsoc-2025-brush-tool-project/16478/21 "2025-07-19T06:29:46Z")

</div>

Definitely I also want vector brushes

---

<div class="post-metadata">

### Author: ![Khemardi](https://forums.synfig.org/user_avatar/forums.synfig.org/khemardi/32/8668_2.png) [@Khemardi](https://forums.synfig.org/u/Khemardi)
#### Post date: [July 21, 2025, 10:09pm UTC](https://forums.synfig.org/t/gsoc-2025-brush-tool-project/16478/22 "2025-07-21T22:09:22Z")

</div>

Will we be able to keyframe those drawings to do frame-by-frame animation? Also at some point in the future I’ll be switching to Linux or have a standalone PC dedicated to Linux, but for now I’m using Windows, so I also want to make sure that this will be ported to the Windows version of Linux ?

---

<div class="post-metadata">

### Author: ![Abdelhadi\_Wael](https://forums.synfig.org/letter_avatar_proxy/v4/letter/a/d9b06d/32.png) [@Abdelhadi\_Wael](https://forums.synfig.org/u/Abdelhadi_Wael)
#### Post date: [July 22, 2025, 4:48am UTC](https://forums.synfig.org/t/gsoc-2025-brush-tool-project/16478/23 "2025-07-22T04:48:24Z")

</div>

> [@Khemardi](#):
>
> Will we be able to keyframe those drawings to do frame-by-frame animation?

yes

> [@Khemardi](#):
>
> so I also want to make sure that this will be ported to the Windows version

yes the project is still in progress but once it’s finished and hopefully merged, it will be available in both the Linux and Windows versions like other tools

---

<div class="post-metadata">

### Author: ![Abdelhadi\_Wael](https://forums.synfig.org/letter_avatar_proxy/v4/letter/a/d9b06d/32.png) [@Abdelhadi\_Wael](https://forums.synfig.org/u/Abdelhadi_Wael)
#### Post date: [July 22, 2025, 6:15am UTC](https://forums.synfig.org/t/gsoc-2025-brush-tool-project/16478/24 "2025-07-22T06:15:15Z")

</div>

### Weekly Progress Update: Week 5 (16 - 22 July)

**Implemented Undo Mode 1 (Surface Saving):**  
This mode works by saving the entire image data before each stroke and restoring it during undo. This means image data is stored for every single stroke.

**Advantages:**

- Very fast and reliable.

**Disadvantages:**

- High memory usage:  
Memory Usage = Number of strokes × image size

---

<div class="post-metadata">

### Author: ![Khemardi](https://forums.synfig.org/user_avatar/forums.synfig.org/khemardi/32/8668_2.png) [@Khemardi](https://forums.synfig.org/u/Khemardi)
#### Post date: [July 25, 2025, 11:08pm UTC](https://forums.synfig.org/t/gsoc-2025-brush-tool-project/16478/25 "2025-07-25T23:08:27Z")

</div>

Keep up the great work. I think with this in place we can also retire the Sketch Tool completely or… I just had a thought; we could just make this the actual Sketch Tool, instead of it being a completely new tool.

---

<div class="post-metadata">

### Author: ![Abdelhadi\_Wael](https://forums.synfig.org/letter_avatar_proxy/v4/letter/a/d9b06d/32.png) [@Abdelhadi\_Wael](https://forums.synfig.org/u/Abdelhadi_Wael)
#### Post date: [August 14, 2025, 1:13pm UTC](https://forums.synfig.org/t/gsoc-2025-brush-tool-project/16478/26 "2025-08-14T13:13:08Z")

</div>

**Progress Update**

**Implemented Redraw Mode**  
This is the second undo mode. Instead of saving the entire image for each stroke, this mode works by saving only the stroke data itself (points, used brush settings). When you undo, it clears the layer and redraws all the previous strokes from the saved data.

**Advantages:**

- Low memory usage: It only stores stroke data, not large bitmap data.

**Disadvantages:**

- Slower performance: Can become slow with a large number of strokes, as it needs to re-render everything on each undo action.

**Implemented Checkpointing Mode**  
This third mode is a hybrid approach that balances memory usage and performance. It works by automatically saving a full snapshot of the image (a “checkpoint”) every ‘N’ strokes. To undo, it reverts to the last checkpoint and then redraws only the few strokes made since then.

**Advantages:**

- Balanced performance and memory: It’s faster than the Redraw mode and uses less memory than saving the surface after every single stroke.

---

<div class="post-metadata">

### Author: ![MGFP](https://forums.synfig.org/user_avatar/forums.synfig.org/mgfp/32/8278_2.png) [@MGFP](https://forums.synfig.org/u/MGFP)
#### Post date: [August 14, 2025, 5:14pm UTC](https://forums.synfig.org/t/gsoc-2025-brush-tool-project/16478/27 "2025-08-14T17:14:54Z")

</div>

I thought of the same thing.

---

<div class="post-metadata">

### Author: ![Abdelhadi\_Wael](https://forums.synfig.org/letter_avatar_proxy/v4/letter/a/d9b06d/32.png) [@Abdelhadi\_Wael](https://forums.synfig.org/u/Abdelhadi_Wael)
#### Post date: [August 25, 2025, 10:06pm UTC](https://forums.synfig.org/t/gsoc-2025-brush-tool-project/16478/28 "2025-08-25T22:06:46Z")

</div>

**Progress Update**  
implemented the Brush Profile Editor, which lets you view and control brush settings such as opacity, radius, hardness, and more. This was the third and final project goal — so we’ve now achieved all the project goals 🎉 😄.

What remains now is mostly the code reviews. I’ll also be working on the documentation and doing more testing.

---

<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: [August 25, 2025, 11:55pm UTC](https://forums.synfig.org/t/gsoc-2025-brush-tool-project/16478/29 "2025-08-25T23:55:03Z")

</div>

Fantastic 🙂 Is there any pressure sensitivity?

Artists, please test it and give us some opinions to let us check what is doable yet in this project scope and timespan 😉

---

<div class="post-metadata">

### Author: ![Abdelhadi\_Wael](https://forums.synfig.org/letter_avatar_proxy/v4/letter/a/d9b06d/32.png) [@Abdelhadi\_Wael](https://forums.synfig.org/u/Abdelhadi_Wael)
#### Post date: [August 26, 2025, 12:52am UTC](https://forums.synfig.org/t/gsoc-2025-brush-tool-project/16478/30 "2025-08-26T00:52:44Z")

</div>

> [@rodolforg](#):
>
> Is there any pressure sensitivity?

yes, pressure sensitivity is working

---

<div class="post-metadata">

### Author: ![Khemardi](https://forums.synfig.org/user_avatar/forums.synfig.org/khemardi/32/8668_2.png) [@Khemardi](https://forums.synfig.org/u/Khemardi)
#### Post date: [August 26, 2025, 5:56am UTC](https://forums.synfig.org/t/gsoc-2025-brush-tool-project/16478/31 "2025-08-26T05:56:33Z")

</div>

🥲 I’m so proud. They grow up so fast. Seems like it was just yesterday when the idea was presented, and now look how far it’s come. 😭 🥳

[Previous page](https://forums.synfig.org/t/gsoc-2025-brush-tool-project/16478.md?page=1)
