|
1 | | -# Sorcar (formerly ProcGenMod) |
2 | | -Procedural modeling in Blender using Node Editor (Latest version: v2.0.5) |
3 | | - |
| 1 | +# Sorcar |
4 | 2 |
|
5 | | -Introduction Video: https://www.youtube.com/watch?v=nKEeGVtGdlk (outdated)</br> |
6 | | -Tutorials & Feature showcase: https://www.youtube.com/playlist?list=PLZiIC3gdS_O7nCm1-xpWbZmTQWeL5c6KV</br> |
7 | | -(old system v1 tutorials: https://www.youtube.com/playlist?list=PLZiIC3gdS_O4bXF1cN6T68coTcOUzZOjW)</br> |
| 3 | +Procedural modeling in Blender using Node Editor |
8 | 4 |
|
9 | | -BlenderArtist thread: https://blenderartists.org/t/procgenmod-procedural-modeling-in-blender-using-node-editor/1156769</br> |
10 | | -Progress tracker (Trello): https://trello.com/b/aKIFRoTh |
| 5 | + |
| 6 | +<!-- [](http://www.youtube.com/watch?v=VIDEO_ID "Sorcar v3") --> |
| 7 | +<!-- </br>Github: <https://github.com/aachman98/Sorcar> --> |
| 8 | +</br>BlenderArtist Thread: <https://blenderartists.org/t/sorcar-procedural-modeling-in-blender-using-node-editor/1156769> |
| 9 | +</br>Intro & Tutorials: <https://www.youtube.com/playlist?list=PLZiIC3gdS_O7nCm1-xpWbZmTQWeL5c6KV> |
| 10 | +<!-- </br>Itch: <> --> |
| 11 | +<!-- </br>Gumroad: <> --> |
| 12 | +</br>Trello (Project Tracker): <https://trello.com/b/aKIFRoTh/sorcar> |
11 | 13 |
|
12 | 14 | ## About |
13 | | -Sorcar (formerly ProcGenMod) 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 workflow easier and fast. Most of the nodes are blender internal operations (bpy.ops.mesh) 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. |
14 | 15 |
|
15 | | -## Instructions |
16 | | -1. Download the zip file and install it as a Blender addon (User preferences -> Install addon from file...) |
| 16 | +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**. |
17 | 17 |
|
18 | | -_NOTE: Built and tested only for Blender 2.79b_ |
| 18 | +## Release & Instructions |
19 | 19 |
|
20 | | -2. Open Node Editor (__Do not__ remove the 3D viewport as it is required by some operations like extrude, transform, ...) |
21 | | -3. Navigate to "Sorcar" node tree and create a new one |
22 | | -4. (Optional) Search for "Realtime Mesh Update" operator (search hotkey: Spacebar) and run it to enable active node preview. Now selecting any node will change the mesh accordingly. |
| 20 | +<!-- Latest Release (v3.1.0): <https://github.com> --> |
| 21 | +</br>*Requirement: Blender 2.80 or later* |
23 | 22 |
|
24 | | -_NOTE: Re-run the operator if encountered any error/exception. To stop realtime preview, press "ESC"._ |
| 23 | +1. Download the zip file and install it as a Blender addon (Edit -> Preferences... -> Add-ons-> Install...) |
| 24 | +2. Open Sorcar Node Editor (**Do not** remove the 3D viewport as it is required by some operations like extrude, transform, ...) |
| 25 | +3. Click on the + button to create a new tree |
| 26 | +4. Press Shift+A to open the nodes menu. Alternatively, navigate through tabs on the Right panel in the node editor |
| 27 | +5. Select the desired node and press "Set Preview" |
25 | 28 |
|
26 | | -5. Press Shift+A to open the nodes menu. Alternatively, navigate through tabs on the left panel in the node editor |
27 | | -6. Add a "Refresh Mesh" node (from the Output category) and select it to display an option to refresh geometry (for cases when not using realtime preview). |
| 29 | +*Open blender using a command prompt to view logs and errors, if encountered.* |
28 | 30 |
|
29 | | -Open blender using a command prompt to view degub logs and errors, if encountered. |
| 31 | +## Features |
30 | 32 |
|
31 | | -## Contributors |
32 | | -Mark Andrianov (@SevenNeumann) - Icons for Sorcar & layout design for main menu |
| 33 | +| | | |
| 34 | +| --- | --- | |
| 35 | +|  | <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> | |
| 36 | +| <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> |  | |
| 37 | +|  | <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> | |
| 38 | +| <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> |  | |
| 39 | +|  | <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> | |
| 40 | +| <p style="text-align: right; padding-right: 16px;"><strong>170+ 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, selection & transform tools, modifiers and component level operators.</p> |  | |
| 41 | + |
| 42 | +- Simplified node sockets with internal data conversion for the convenience of users. |
| 43 | +- Colour-coded nodes (preview, error, invalid inputs etc.) for easier debugging. |
| 44 | +- Multi-level heirarchy & auto-registration of classes for easy development of custom nodes in any category (existing or new). |
| 45 | + |
| 46 | +and more...! |
| 47 | + |
| 48 | +## Nodes |
| 49 | + |
| 50 | +| | | |
| 51 | +| --- | --- | |
| 52 | +|  | **Inputs** </br> Primitive Meshes (Cube, Cylinder, Sphere, ...), Import FBX, Custom Object from the scene | |
| 53 | +|  | **Transform** </br> Set/Add/Randomize transform (Edit/Object mode), Apply transform, Create custom orientation| |
| 54 | +|  | **Selection** </br> Manual, invert/toggle, loops, random, similar components or by their property (location, index, normal, material, ...) | |
| 55 | +|  | **Deletion** </br> Delete/Dissolve selected components (or loops) | |
| 56 | +| | | |
| 57 | +|  | **Component Operators** </br> Bevel, Decimate, Extrude, Fill, Inset, Loop Cut, Merge, Offset Loop, Poke, Screw, Spin, Subdivide, UV Map | |
| 58 | +|  | **Object Operators** </br> Duplicate, Raycast/Overlap, Merge, Scatter, Shading, Viewport Draw Mode | |
| 59 | +|  | **Modifiers** </br> Array, Bevel, Boolean, Build, Cast, Curve, Decimate, Remesh, Skin, Solidify, Subsurf, Wave, Wireframe | |
| 60 | +| | | |
| 61 | +|  | **Constants** </br> Number (Float/Int/Angle/Random), Bool, Vector, String | |
| 62 | +|  | **Utilities** </br> Array, String/Bool/Vector ops, Maths, Clamp, Map, Trigonometry, Scene/Component/Object Info, Custom Python Script | |
| 63 | +|  | **Flow Control** </br> For loop, For-Each loop, If-Else Branch | |
| 64 | +|  | **Settings** </br> Cursor Transform, Edit Mode, Pivot Point, Transform Orientation | |
| 65 | + |
| 66 | +## Upcoming Feature |
| 67 | + |
| 68 | +1. Update addon using CGCookie Addon Updater module (<https://github.com/CGCookie/blender-addon-updater)> |
| 69 | +2. Improve loop nodes: Add more options to control in each pass |
| 70 | +3. Curve nodes: Edit spline properties, convert to mesh |
| 71 | +4. More array operations: Add/append, remove, push/pop, find, count |
| 72 | +5. Named variables: Get/set values of custom variables, accessible across node trees |
| 73 | + |
| 74 | +## Future |
| 75 | + |
| 76 | +1. Node Groups: Collapse big node networks into a single node with custom inputs & outputs |
| 77 | +2. Complete integration to dependency graph |
| 78 | +3. Debugging tools: Watch/track values of node parameters |
| 79 | +4. Node-Viewport link: Create nodes automatically in editor based on actions in 3D viewport |
| 80 | + |
| 81 | +## Showcase |
| 82 | + |
| 83 | + |
| 84 | + |
0 commit comments