Quantcast
Channel: General Development – Blender Developers Blog
Viewing all articles
Browse latest Browse all 170

The Next Big Step: Grease Pencil 3.0

$
0
0

In 2008, Joshua Leung implemented annotations in Blender directly in the 3D Viewport, he called this feature: Grease Pencil.

Credits Virgilio Vasconcelos
Grease Pencil as annotation tool in its first iteration. Credit: Virgilio Vasconcelos

The first version of Grease Pencil was designed to be a simple annotation tool with basic color settings and animation capabilities. But the community that formed around Grease Pencil had bigger plans and started to use it for things he did not anticipate.

Fast forward to 2019, when Grease Pencil became its own object type and a dedicated workspace for 2D animation as part of the Blender 2.8 project. This version was a major overhaul and had many new features, better performance, and new render engine. The main developers working on it were Antonio Vázquez and Clément Foucault, together with the artists Daniel Martínez Lara and Matias Mendiola.

2D Animation Workspace in Blender 2.80
2D Animation Workspace in Blender 2.80

Today, Grease Pencil has grown even more. It is used by small and big studios around the world. Movies like “Unicorn Wars” have been fully animated with it.

And while many aspects of the tool have immensely improved over time, the core data-structures of Grease Pencil have remained the same for about 15 years. We are now facing the limitations of its initial design – introducing: Grease Pencil 3.0.


What is Grease Pencil 3.0?

“Grease Pencil 3.0” is a full rewrite of the current implementation, aiming to lay a solid foundation for the next 10+ years.

The goals of the project are as follows:

  • Improve performance and memory usage with large amounts of data (e.g. frames, strokes, points).
  • Improve the architecture and API for future development.
  • Open the door for new features and tools.

The new implementation is based on the same back-end as the new hair curves, designed with multi-threading in mind, allowing for the support of Geometry Nodes, capable of handling much more data, and written in a modern C++ style.

The Timeline

  • February 2023: Development began in a separate branch.
  • May 2023: An experimental option will be available in early Blender 4.0 alpha builds for community testing.
  • June – October 2023: With the help of other contributors, the team hopes to get the bulk of the refactor done.
  • November 2023: Blender 4.0 released with Grease Pencil 3.0 fully replacing the old system.

The Team

  • Grease Pencil core team:
    • Daniel Martínez Lara, Antonio Vázquez, Matias Mendiola.
    • Falk David, hired by the Blender Foundation to work full-time on the project.
    • Amélie Fondevilla, developer at Les Fées Spéciales, will join development efforts for ~2 months during summer 2023.
  • Module contributors.
  • You! Or anyone who wants to help out (see “Contributing” below).

What to Expect in Blender 4.0

The main focus will be to have feature parity with the old system, rather than adding new features. It is mostly a big refactor. That being said, the team is planning a few new things to look out for.

Layer Groups

The ability to group layers is part of the redesign of the new data-structure.

Layer Groups allow the user to easily group multiple layers, collapse them in the tree, control visibility, editability, onion skinning, and more. Layer Groups can also be color coded.

Mock-up of the layer groups UI
Mock-up of the layer groups UI

Reworked Timeline

The new data-structure allows for features like frames having a start and an end as well as instancing a drawing (even on different layers). Instanced drawings share the drawings data (e.g. changing one will change the other).

Mock-up of the reworked timeline
Mock-up of the reworked timeline

Grease Pencil layers now render the keyframes as boxes to indicate the amount of time the drawing is held for. Instanced keyframes are shown in a darker shade.

Python API changes

With this implementation, the team expects the Python API for Grease Pencil to break in Blender 4.0. That being said, we will try to make sure the same functionality is there, so that any script can be adapted to work with Grease Pencil 3.0. There will be documentation on this in the coming months.


After Blender 4.0

Once the first milestone is in place and validated by the community, the focus can shift to improving and expanding the Grease Pencil feature set.

At the end of 2022, the Grease Pencil module conducted a survey to figure out what the community (hobbyists and professionals alike) wanted the most. The results showed us that our plans are well aligned with what people expect to have in Grease Pencil.

Here is an (incomplete) list of things on our radar:

  • Booleans for fills (boolean eraser, fill brush)
  • More (and better) textured brushes
  • Geometry Nodes integration
  • Grease Pencil assets
  • UI improvements

Contributing

The team is happy to help anyone who would want to contribute to the project. If you have any questions, head on over to the main communication channel on blender.chat (#grease-pencil-module). There are also bi-weekly module meetings that anyone who wants to contribute can join. You can find the meeting notes and when the next meeting is happening here.

There is a list of tasks that can be worked on by anyone. They can be found on the Grease Pencil workboard in the “Community Tasks” column. These are specifically tasks that have a low barrier of entry. If you like to work on any of these, reach out in the chat.

Thank you!

Support the Future of Blender

Join the Development Fund and support Blender Foundation to work on core Blender development.


Viewing all articles
Browse latest Browse all 170

Trending Articles