In 2008, Joshua Leung implemented annotations in Blender directly in the 3D Viewport, he called this feature: Grease Pencil.
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.
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.
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).
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
Donate to Blender by joining the Development Fund to support the Blender Foundation’s work on core development, maintenance, and new releases.
I want point animations and shape keys if I want to redesign.
MOHO can draw and start point animation immediately.
Blender needs a rig even to move it around a bit.
Weight painting is also time consuming.
+1
I agree, there is a kind of interpolation in grease pencil what is nice, but it is not intuitive (fast-to-do), In moho If I do straight line in 0 keyframe and move the points on 10 keyframe, timeline automaticly interpolate it, if I change the keyframe 10 to 7 it update it, I dont need to keep clicking in interpolate and undone it all the time.
Please include a option to exclude outlines from masking . thx !
So stoked! One thing I noticed with the current system for Grease Pencil using image textures, is that it can only apply it from left to right. It would be nice to have a feature to rotate the image texture to make it feel more organic and give variety to the stroke like in Photoshop. Also the process of locking brushes with ‘fake user’ is a bit unintuitive, it would be nice if there was something simple to click to save custom brushes.
An animated brush – like the one in Gimp/Krita will be nice. Now we can already randomize size, rotation etc. But random images as brush texture will give us a lot of opportunities.
Will there be a better erasing tool like other softwares? Instead of erasing points in strokes it would be great if we can erase the part of square or circle shape in which the eraser cursor is. I believe it could impact a lot as erasing by strokes can be a bit tedious and we won’t have freedom to erase ‘anything’ and i believe it could speed up the process as well
Yes, this is the “boolean eraser” project mentioned in the “After Blender 4.0” section.
amazing, I’m loving every novelty presented and I want blender to become more and more a tool that will help many to make their dreams come true
Please add option to color keys, inbetweens, retake drawings etc. (min 6 colors) and ability to choose flipping between the selected colors as Toonboom have. This is a very important feature and very little known and used in general.
Another thing I hope you guys will take a look at is how repeated frames are drawn in Dragonframe. Expandable square keyframes are terrific, but what would make it better is if:
A) We’re able to drag and extend it, similar to sequencer strips
B) If drawing is one more than 1 keyframe there’s a little overlay on the keyframe that specifies the number of frames. That is quite handy you don’t have to look at the frame numbers and do little calculations anymore. That sort of visual feedback makes process very comfortable.
Sounds awesome! Have to get beta for testing!
Hopefully there’s also coming viewport lock, I think that would one of the important feature related to GP.
Instanced drawings are very needed. I hope you look at ToonBoom for inspiration, they have this little box in which you can preview all drawings within layer and put them in timeline. That visual feedback is very important if we’re to work with instances, just remembering names and numbers will be tedious.
I didn’t notice the survey. I want those features for GP:
– the port of the raster-to-vector’s centerline-mode in opentoonz
– the port of the Assistant Tool in Krita
– opentoonz’s Preproduction Board-like feature
– (animated) comic-friendly features like procedural speech bubbles, realtime multi-scene compositing-aware GP editing, etc…
> the port of the raster-to-vector’s centerline-mode in opentoonz
there is a plugin for that – https://github.com/chsh2/nijiGPen/
Awesome news!
I have been using grease pencil for a couple of years now and I wouldn’t change it for anything in the world :)
The only thing missing for me is better tools for cut-out animation (there’s some add-ons and workarounds but very limited advances on that whole field)
Just imagine a dedicated workspace for cut-out a la Moho (anime studio), with rigging, edit, pose/animate and draw modes… that would make me jump fully into the Blender cult! :v
Anyways! Muchas gracias and keep up the amazing work, you crazy geniuses!
This is all really exciting stuff!
Will the future UI features lean towards the things you all did with your SPA studios tools (The convenient panels/workspace, easy screen rotation, Quick edit etc.) I know that branch gets brought up a lot but it really addressed almost all of the issues we’ve had getting our studio’s animators to feel comfortable in GP so I can’t help but ask.
Thanks for the update and for all that your team is doing!
-Only simple parenting like in Toonboom harmony and comfortable work with library/symbols like in Toonboom harmony and adobe animate/flash can make competitive software for production.
-Storypencil has a flaw that you cant squash and stretch scenes in timeline like in toonboom storyboard
-Video editing mode should be linked with compositing workspace
Hello,
This is very promising!
Will this also make it possible to have a system that is closer to what is done in drawing software standards?
I know there’s already an addon to add functionality, but it would be nice to be able to rotate the canvas and flip it (without having to activate an addon), and generally have shortcuts closer to drawing software.
Being able to view audio waves in the timeline would be handy for synchronizing animation, as would displaying the script (text) for recording sounds.
Thanks again for all your hard work on improving Blender and its Grease Pencil.
https://github.com/Pullusb/sound_waveform_display
You can use this free add-on to view waveform in timelines
Will features from the SPA branch on grease pencil be implemented? Their branch features a redone stroke processing system that makes drawing just “feel nicer” in blender, and I think many artists would appreciate it!
I am well aware of the SPA branch because I worked on it. The drawing operator specifically was done by me.
As the blog post says, features like these will be the focus after the rewrite. For now, there is no timeline for them.
Oh cool! I was not aware that you worked on it, but great job on that because it feels so nice to work with :)
Looking forward to seeing how these updates progress!
Thank you :)
These groups in the outliner is exactly what is needed for geometry management (where group have their own transforms of course and can get modifiers treatment too) but for whatever reason, this feature keep being ignored over and over.
Could you then plan to get that for both grease pencil and geo ?
Whats wrong with parenting under empties for grouping? Collections have a different use-case, you cannot have transforms with collections when an object can be placed in multiple collections. But I strongly agree with the group modifiers.
You’re thinking of object parenting, which is a basic function of any 3D program, including Blender. For ease of access, change your outliner from “viewlayer” to “scene” mode.
I know about the parenting. It’s just a dirty trick that:
-doesn’t even work with an outliner simple drag and drop. You have to press shift to make it work. For something that has to be used 1000 times a day, it’s not optimal.
-there are no empties with just no crappy icon that has to be disabled for simplifying the viewport.
-when you duplicate a hierarchy made of parents, it it’s not copying the content by default………..
-the outliner empty icon is terrible, it looks more like a slingshot than anything else.
-it doesn’t have the same features as a combined geo when it totally should (imagine managing the subd on an entire model with one click)
-to group content, you have to select children first then parent (it should be the opposite way, since there can be only one parent but multiple children possible, it makes sense to lock the parent selection first but whatever…) Then you have to go through a menu.
I repeat, grouping geometry should be done in one click. selection then shortcut, then the multiple objects are inside a new group container in the center of the world, the end.
-everything is just ultra inconvenient basically because the workflow has never been improved.
Sounds really cool! Good luck with that!
If Geometry Nodes are coming – are there chances for further reuse of 3D materials (including OSL) on GP strokes? With obvious limitations, of course, for example – no lighting, like “emission shader” is hardcoded at the end of the pipeline.
Would be cool to bake per-point data and use it in material for procedural texturing along the splines. Or have some automatic UVs for splines and reuse materials from scene. This would greatly simplify mix of 2D and 3D
There are no immediate plans for this. The grease pencil materials are intentionally kept very simple for now.
However, with Geometry Nodes coming, it would be very easy to convert grease pencil to a mesh procedurally and assign any material you want.
“it would be very easy to convert grease pencil to a mesh procedurally and assign any material you want” – wow, didn’t thought of this way. Will definitely try this possibility when it land in alpha/beta, thx!
Can I use it to develop games? Is there a corresponding interface to output to game engines?
In order to prevent spam, comments are closed 7 days after the post is published. Feel free to continue the conversation on the forums.