Procedural modeling in Blender using Node Editor
BlenderArtist Thread: https://blenderartists.org/t/sorcar-procedural-modeling-in-blender-using-node-editor/1156769
Intro & Tutorials: https://www.youtube.com/playlist?list=PLZiIC3gdS_O7nCm1-xpWbZmTQWeL5c6KV
Trello (Project Tracker): https://trello.com/b/aKIFRoTh/sorcar
Documentation: https://github.com/aachman98/Sorcar/wiki
Sorcar is a procedural modeling node-based system which utilises Blender and its Python API to create a visual programming environment for artists and developers. Heavily inspired by Side-FX Houdini, it presents a node editor with a variety of modular nodes to make the modelling workflow easier and fast. Most of the nodes are blender internal operations (bpy.ops.mesh/object) which also makes it easier for frequent blender users to manipulate geometry. It helps the users to quickly create 3D models and control node parameters to generate limitless variations in a non-destructive manner. It also provides the users to view and edit mesh on any stage of the node network independently, with realtime updates.
Latest Release (v3.1.6)
Requirement: Blender 2.80 or later
- Download the zip file and install it as a Blender addon (Edit -> Preferences... -> Add-ons-> Install...)
- Open Sorcar Node Editor (Do not remove the 3D viewport as it is required by some operations like extrude, transform, ...)
- Click on the + button to create a new tree
- Press Shift+A to open the nodes menu. Alternatively, navigate through tabs on the Right panel in the node editor
- Select the desired node and press "Set Preview"
Open blender using a command prompt to view logs and errors, if encountered.
- Simplified node sockets with internal data conversion for the convenience of users.
- Colour-coded nodes (preview, error, invalid inputs etc.) for easier debugging.
- Multi-level heirarchy & auto-registration of classes for easy development of custom nodes in any category (existing or new).
and more...!
- Export nodes as python code
- Send to UE4/Unity (live-link)
- Object constraint nodes
- Point scatter & voronoi fracture nodes
- Node Groups: Collapse big node networks into a single node with custom inputs & outputs
- Complete integration to dependency graph
- Debugging tools: Watch/track values of node parameters
- Node-Viewport link: Create nodes automatically in editor based on actions in 3D viewport
- Added "Set Dimensions" & "Set Object Name" object operator nodes
- Added "Add ..." input nodes to append primitive object geometry to current object
- Added "set_preview" method in nodetree class
- Added curve ops base class & "Curve Shape/Geometry/Spline Properties" nodes
- Improved "Object Info" node to output object's name, dimensions and bounding box vertices
- Improved "Component Info" node to output face area
- Renamed input nodes to "Create ..." (added prefix)
- Renamed "update_ext" nodetree method to "set_value"
- Fixed "remove_object" helper function
- Fixed vertex group selection & component operator nodes
- Fixed "get_override" helper method to search for correct window/area/region
- Added keymap support to quickly execute selected node (Key: 'E')
- Added new "Curve" category & socket to handle objects with curve data
- Added method for modifying node parameter externally (automatically re-evaluates nodetree)
- Added "Import SVG" & "Text" curve input nodes
- Added "Convert to Mesh" & "Convert to Curve" nodes
- Added "Create Object" input node
- Added "QuadriFlow Remesh" object operator node
- Added "Warp" & "Randomize Vertices" transform nodes
- Added Weld, Lattice, Shrinkwrap & Weighted Normal modifier nodes
- Added "Proportional Editing" & "Snap" settings node
- Added "Clear Parent", "Get Parent", & "Get Children" object operator nodes
- Improved "Scatter" node to support instanced scattering
- Improved "Maths Operation" node to include more operations & better menu layout
- Improved "Parent" node to include option to set the inverse parent correction
- Improved "Skin Modifier" node to allow skin resize for selected vertices
- Renamed transform nodes to "World/Local Transform"
- Fixed issue with Crease, Edge-Slide, Skin-Resize local transform
- Fixed custom object/curve nodes to hide original object
- Fixed issue with rerouting socket connections
- Fixed transform nodes to use snapping & proportional editing settings
- Fixed object deletion helper method to remove orphaned data
- Fixed "Select Nth" node parameter minimum value
- Added "Voxel Remesh" object operator node
- Added "Raycast (Scene)" utility node (renamed "Raycast" to "Raycast (Object)")
- Added "Instancing" & "Parent" object operator nodes
- Added "Empty" and "Single Vertex" input nodes
- Added "Hide/Unhide Component" and "Mark Component" nodes
- Fixed "Element" output pin type of "Begin For-Each Loop" node
- Fixed issue with addon activation
- Fixed int conversion in "Shortest Path" selection nodes
- Added "For-Each Component Loop" nodes
- Added "Get/Set Variable" nodes
- Added "To Sphere" transform node
- Added "Select Vertices by Connections" selection node
- Fixed issue with reset() attribute
- Improved "For" & "For-Each" loop nodes
- Improved "Select Manually" node
- Added noise nodes (cell, fractal, voronoi, ...) in a new category "Noise"
- Added array operation nodes (add, remove, search, ...) in a new category "Arrays"
- Added "Material Parameter" node
- Renamed "Edit Mode" node to "Set Selection Mode"
- Moved "Get Element" & "Make Array" node to "Arrays" category
- Added selection type input socket in "Set Selection Mode" node
- Added custom overridable method for socket layout drawing
- Removed redundant sorcar_updater folder (also added in gitignore)
- Added addon updator by CGCookie
- Fixed issue with realtime update checkbox in "Scene Info" node
- New socket type: Selection Type
- Ability to change selection type directly though selection nodes
- Added issue templates for bug report & feature request
- Support for Blender 2.8
- New architecture for data flow node executions
- Improved socket types and node hierarchy
- Internal data conversions
- @tomoaki-e33 (Tomoaki Nakano) - Active Developer (#107, #110, #111)
- @devilvalley (袁腾鹏) - Bug fix in "Select Nth" selection node (#106)
- @CORPSE-SYS - Active Developer (#83, #96)
- @zebus3d - Active Developer (#88, #90, #104)
- @CGCookie (CG Cookie) - Addon updater (Github)
- @8176135 - Individual edit mode type in selection nodes using a new socket (#80)
- @huiyao8761380 (TangHui) - Documentation Maintainer
- @Megalomaniak (Felix Kütt) - Documentation Structuring
- @kichristensen (Kim Christensen) - Port Sorcar (v2) to Blender 2.80 (#54)
- @SevenNeumann (Mark) - Icons for Sorcar & layout design for main menu (#46)
And the amazing BlenderArtists community!