Node Editor Tutorial Series in production

Published: Feb. 6, 2019, 6:30 p.m.   #Python #Tools #GameDev #PyQt5 #Node Editor


When I was working on my rendering engine and some tools for gamedev and VFX in 2017, I've decided to create tutorials about making tools and publish them on YouTube. I was using Python and PyQt5 heavily and had an interesting idea of creating some foundation for node editor tool. Maybe even in future to create material node editor for generating glsl shaders? #toomuchwork laugh #toolittletime crying...

Anyways, I think it can be really beneficial for bunch of people out there, who are struggling with raising their programming skills to a bit higher level. Therefore we will have a look at common intermediate programmer tasks like serialization, refactoring, maintaining library and architecture.

This christmas I spent with editing all the videos and making few new ones. And I can gladly say, that I've got everything what I need to finish it really soon.

Currently, I'm working on last parts of the tutorials and that's going to be the Calculator Node Editor Example. This demo application will be guiding us in the finish with refactoring our code to be reusable for different projects which may come in the future.

About the series

This series focuses on creating your own Node Editor using PyQt5 in Python. We will start pretty straightforward by slowly getting the main features like background, nodes, edges and sockets. From that, we will slowly get to more intermediate topics like serialization for saving and loading, undo & redo. Also some time we will spend on bugfixing, debugging and ways how to test our code. Our code will end up refactored into a python package so we can use our code for multiple projects and examples. Node Editor tutorial series will finish with implementation of a simple calculator as a proof of concept that our package is written with solid and reusable architecture.

Tutorials overview:

00 - Requirements
01 - View, Scene, Grid Background
02 - Adding Items to GraphicsView
03 - Scene Navigation
04 - Architecture planning, Scene Implementation
05 - Implementing Node
06 - Node Content, Styles
07 - Sockets
08 - Edges
09 - Positioning Edges, Debugging
10 - Finishing Edges, Socket Variation
11 - Dragging Edge
12 - Finishing Dragging Edge
13 - Selecting Items
14 - Deleting Items
15 - Cutting Edges
16 - Serialization, Saving Scene
17 - Deserialization, Loading Scene
18 - Undo & Redo #1 Introduction
19 - Undo & Redo #2 History Stack
20 - Undo & Redo #3 History Stamps
21 - Node Editor Window
22 - Clipboard Code Blockout
23 - Clipboard Serialization
24 - Bugfixing Crashes, Missing Edge
25 - File Has Changed Dialog
26 - Socket with Multiple Edges
27 - Setting up Package, Tests & Documentation
28 - Calculator Example

BlenderFreak is a Django powered website about Blender, game engines and a bit of programming which also serves as portfolio presentation.

Pavel Křupala currently works as Technical Artist in the game industry and has huge passion for CG, especially Blender.

Cookies disclaimer

I agree Our site saves small pieces of text information (cookies) on your device in order to deliver better content and for statistical purposes. You can disable the usage of cookies by changing the settings of your browser. By browsing our website without changing the browser settings you grant us permission to store that information on your device.