SkillAgentSearch skills...

Sorcar

Procedural modeling in Blender using Node Editor

Install / Use

/learn @aachman98/Sorcar
About this skill

Quality Score

0/100

Supported Platforms

Universal

README

Sorcar

Procedural modeling in Blender using Node Editor

sc_cover

<!-- [![sc_](http://img.youtube.com/vi/VIDEO_ID/0.jpg)](http://www.youtube.com/watch?v=VIDEO_ID "Sorcar v3") -->

</br>BlenderArtist Thread: https://blenderartists.org/t/sorcar-procedural-modeling-in-blender-using-node-editor/1156769 </br>Intro & Tutorials: https://www.youtube.com/playlist?list=PLZiIC3gdS_O7nCm1-xpWbZmTQWeL5c6KV </br>Trello (Project Tracker): https://trello.com/b/aKIFRoTh/sorcar </br>Documentation: https://github.com/aachman98/Sorcar/wiki

About

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.

Release & Instructions

Latest Release (v3.2.1) </br>Requirement: Blender 2.81 or later

  1. Download the zip file and install it as a Blender addon (Edit -> Preferences... -> Add-ons -> Install...)
  2. Open Sorcar Node Editor (Do not remove the 3D viewport as it is required by some operations like extrude, transform, ...)
  3. Click on the + button to create a new tree
  4. Press Shift+A to open the nodes menu. Alternatively, navigate through tabs on the Right panel in the node editor
  5. Select the desired node and press "Set Preview"

Open blender using a command prompt to view logs and errors, if encountered.

Features

| | | | --- | --- | | sc_visual_programming | <p style="text-align: left; padding-left: 16px;"><strong>VISUAL PROGRAMMING</strong><br /><em>Don't like programming?</em></p> <hr style="padding-left: 16px;" /> <p style="text-align: left; padding-left: 16px;">Construct geometries using custom algorithms, maths or generate patterns without writing a single line of code!</p> | | <p style="text-align: right; padding-right: 16px;"><strong>NON-DESTRUCTIVE WORKFLOW</strong><br /><em>Want to change cylinder vertices after bevel?</em></p> <hr style="padding-right: 16px;" /> <p style="text-align: right; padding-right: 16px;">Edit node parameters at any point without the fear of losing mesh data. Also apply same procedural operations to different objects easily.</p> | sc_non_destructive | | sc_realtime_updates | <p style="text-align: left; padding-left: 16px;"><strong>REAL-TIME UPDATES</strong><br /><em>Quick as the wind...</em></p> <hr style="padding-left: 16px;" /> <p style="text-align: left; padding-left: 16px;">Drive a parameter using current frame value (or manually change it) and see the mesh update in viewport.</p> | | <p style="text-align: right; padding-right: 16px;"><strong>ITERATE & RANDOMIZE</strong><br /><em>Need multiple extrusions of random amount?</em></p> <hr style="padding-right: 16px;" /> <p style="text-align: right; padding-right: 16px;">Generate variations in mesh by using seed-controlled pseudorandom numbers. Use loops to handle repeatitive operations with same level of randomness.</p> | sc_iterate_randomize | | sc_automation | <p style="text-align: left; padding-left: 16px;"><strong>AUTOMATION</strong><br /><em>Modify, Save, Repeat...</em></p> <hr style="padding-left: 16px;" /> <p style="text-align: left; padding-left: 16px;">Use frame number to drive seed value and batch export the meshes in different files.</p> | | <p style="text-align: right; padding-right: 16px;"><strong>250+ NODES</strong><br /><em>At your service!</em></p> <hr style="padding-right: 16px;" /> <p style="text-align: right; padding-right: 16px;">A growing list of functions available as nodes (operators & scene settings) including custom inputs, curve/mesh conversion, selection & transform tools, modifiers and component level operators.</p> | sc_nodes |

  • Node-Groups to collapse big node networks into a single node with custom inputs & outputs
  • 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...!

Nodes

| | | | --- | --- | | sc_inputs | Inputs </br> Primitive Meshes (Cube, Cylinder, Sphere, ...), Empty Object, Import FBX, Custom Object from the scene, Create Object using arrays of Vertices, Edges & Faces | | sc_curves | Curves </br> Custom Curve from the scene, Text, Import SVG, Geometry/Shape/Spline Properties, Mesh-Curve or Curve-Mesh Conversion | | | | | sc_transform | Transform </br> Set/Add/Randomize transform (Edit/Object mode), Apply/Copy transform in world/local axes, Create custom orientation| | sc_selection | Selection </br> Manual, invert/toggle, loops, random, similar components or by their property (location, index, normal, material, ...) | | sc_deletion | Deletion </br> Delete/Dissolve selected components (or loops) | | | | | sc_component_operators | Component Operators </br> Bevel, Decimate, Extrude, Fill, Inset, Loop Cut, Merge, Offset Loop, Poke, Screw, Spin, Subdivide, UV Map, Assign material or vertex groups | | sc_object_operators | Object Operators </br> Duplicate, Raycast/Overlap, Merge, Scatter, Set/Clear Parent, Voxel/QuadriFlow Remesh, Shading, Viewport Draw Mode | | sc_modifiers | Modifiers </br> Array, Bevel, Boolean, Build, Cast, Curve, Decimate, Remesh, Shrinkwrap, Skin, Solidify, Subsurf, Wave, Weighted Normal, Wireframe | | | | | sc_constants | Constants </br> Number (Float/Int/Angle/Random), Bool, Vector, String, Selection Type (Face/Vert/Edge) | | sc_arrays | Arrays </br> Create/Append Arrays, Add/Remove elements, Reverse, Search, Clear, Count, Get | | | | | sc_noise | Noise </br> Cell (Vector/Float), Fractal, Multi-Fractal, Hetero-Terrain, Ridged, Turbulence (Vector/Float), Variable Lacunarity, Voronoi | | | | | sc_utilities | Utilities </br> String/Bool/Vector ops, Maths, Clamp, Map, Trigonometry, Get/Set Variables, Node-Groups, Scene/Component/Object Info, Custom Python Script | | sc_flow_control | Flow Control </br> For loop, For-Each loop (Array/Components), If-Else Branch | | sc_settings | Settings </br> Cursor Transform, Edit Mode, Pivot Point, Snapping, Proportional Editing, Transform Orientation |

Upcoming Feature

  1. Export nodes as python code
  2. Send to UE4/Unity (live-link)
  3. Point scatter & voronoi fracture nodes
  4. Debugging tools: Watch/track values of node parameters

Future

  1. Complete integration with Blender's internal dependency graph
  2. Node-Viewport link: Create nodes automatically in editor based on actions in 3D viewport
  3. Landscape (noise/masking/erosion) and Foliage (grass/bush/trees) nodes

Showcase

sc_logo sc_showcase

Changelog

v3.2.1

  • Added support for object registration & unregistration on each evaluation (handled by nodetree instead of individual nodes)
  • Added custom variables in "Custom Python Script" node: _C (bpy context), _D (bpy data), _O (bpy ops), _S (context scene), _N (self node), _NT (self nodetree), _VAR (nodetree variables), _IN (input socket data)
  • Added "Select by Index Array" selection node
  • Added "Default" input socket in "Get Variable" node to set value if variable not initialised
  • Added "Hide Original" bool input prop in "Scatter" node
  • Added "Clear Variables" nodetree property in "Properties" UI panel to clear data on re-evaluation
  • Added "Clear Preview" operator (shortcut: Alt+E) to c

Related Skills

View on GitHub
GitHub Stars1.2k
CategoryDevelopment
Updated13d ago
Forks115

Languages

Python

Security Score

100/100

Audited on Mar 6, 2026

No findings