Home

Awesome

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

and more...!

Nodes

sc_inputsInputs </br> Primitive Meshes (Cube, Cylinder, Sphere, ...), Empty Object, Import FBX, Custom Object from the scene, Create Object using arrays of Vertices, Edges & Faces
sc_curvesCurves </br> Custom Curve from the scene, Text, Import SVG, Geometry/Shape/Spline Properties, Mesh-Curve or Curve-Mesh Conversion
sc_transformTransform </br> Set/Add/Randomize transform (Edit/Object mode), Apply/Copy transform in world/local axes, Create custom orientation
sc_selectionSelection </br> Manual, invert/toggle, loops, random, similar components or by their property (location, index, normal, material, ...)
sc_deletionDeletion </br> Delete/Dissolve selected components (or loops)
sc_component_operatorsComponent 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_operatorsObject Operators </br> Duplicate, Raycast/Overlap, Merge, Scatter, Set/Clear Parent, Voxel/QuadriFlow Remesh, Shading, Viewport Draw Mode
sc_modifiersModifiers </br> Array, Bevel, Boolean, Build, Cast, Curve, Decimate, Remesh, Shrinkwrap, Skin, Solidify, Subsurf, Wave, Weighted Normal, Wireframe
sc_constantsConstants </br> Number (Float/Int/Angle/Random), Bool, Vector, String, Selection Type (Face/Vert/Edge)
sc_arraysArrays </br> Create/Append Arrays, Add/Remove elements, Reverse, Search, Clear, Count, Get
sc_noiseNoise </br> Cell (Vector/Float), Fractal, Multi-Fractal, Hetero-Terrain, Ridged, Turbulence (Vector/Float), Variable Lacunarity, Voronoi
sc_utilitiesUtilities </br> String/Bool/Vector ops, Maths, Clamp, Map, Trigonometry, Get/Set Variables, Node-Groups, Scene/Component/Object Info, Custom Python Script
sc_flow_controlFlow Control </br> For loop, For-Each loop (Array/Components), If-Else Branch
sc_settingsSettings </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

v3.2.0

v3.1.6

v3.1.5

v3.1.4

v3.1.3

v3.1.2

v3.1.1

v3.1.0

Contributors

And the amazing BlenderArtists community!