Node Editor in Python Tutorial Series

Published: Jan. 20, 2019, 12:55 a.m.   #Python #Tools #GameDev #PyQt5 #Node Editor

 

Go to List of all tutorials below → 

 

Hi!

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.

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:

Calculator Example

  • 28 - Calculator Example: Introduction
  • 29 - Calculator Example: Refactoring Window, Actions, Menus
  • 30 - Calculator Example: Creating MDI SubWindow
  • 31 - Calculator Example: Refactoring Styles + Bonus: Dark Skin
  • 32 - Calculator Example: Refactoring Open, Save, Save As
  • 33 - Calculator Example: Finishing Refactoring Save and Save As
  • 34 - Calculator Example: Updating Edit Menu
  • 35 - Calculator Example: Item Selection Events
  • 36 - Calculator Example: Finishing Selection Events
  • 37 - Calculator Example: Wrapping up Refactoring
  • 38 - Calculator Example: How to Implement ListWidget with Icons
  • 39 - Calculator Example: How to Implement Drag & Drop in PyQt5
  • 40 - Calculator Example: Create Calculator Node
  • 41 - Calculator Example: Nodes Registration and Auto-Generation
  • 42 - Calculator Example: Putting Sockets on center
  • 43 - Calculator Example: Serialization of different Node classes
  • 44 - Calculator Example: Styling Nodes in Qt-Skin-Generator
  • 45 - Calculator Example: How to create Context Menu in PyQt5
  • 46 - Calculator Example: How to create Node state Flags
  • 47 - Calculator Example: How to implement Node evaluation #1
  • 48 - Calculator Example: How to implement Node evaluation #2
  • 49 - Calculator Example: How to implement Node evaluation #3
  • 50 - How to implement Hover effect in PyQt5
  • 51 - How to create node directly from edge
  • 52 - Documentation & Conclusion

 

More info

All of the links to code and other stuff will be in description for each video. I'll try my best to publish videos one by one as soon as possible, so if you want to be notified about the new ones, subscribe to my youtube channel. If you get stuck or miss something I didn't explain properly, leave a comment. I'll try to reply to the comments on youtube as soon as possible.

You can also check FAQ for the tutorial series here.

 

 

 

BlenderFreak.com

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.