Sorcar - Procedural modeling in Blender using Node Editor

Hello @aachman98 again, some more questions

  1. How do I enable and disable proportional editing?
  2. It gives me an error when I select two vertices manually and merge them at last. Is it that the select manually node does not record the order of the selection? What selection node should I use then?
  3. Is physical simulation possible in Sorcar? Like cloth simulation?

Get/Set Variable nodes almost done. Tried out a simple logic to print Fibonacci series:

The first section is to print 0 & 1.
Begin & end loop nodes are next.
Last section is the following logic:

temp = b
b = a+b
a = temp
print(b)

Thanks for the updates; I’ll look into the callbacks during rendering.

Haven’t made a node yet. Adding it to the list…

Thanks for bringing this to my attention. “Select Manually” node doesn’t store the order of selection yet.

A big fat NO :laughing:
I can make a node that simply adds cloth dynamics to an object and lets you edit the existing parameters, but simulating the object and storing the data would be very difficult. Plus, if you intend to use realtime update, then the mesh will regenerated at every frame resetting the sim every time.

4 Likes

I have created a new selection node, and I think it can be useful for many people. It consists in selecting the vertices according to the amount of vertices with direct connection to it.

Here is a sample video:

Greetings.

5 Likes

And here a CityGrid Generator made thanks to that node in collab with @ofuscado ^^


12 Likes

Sorcar v3.1.3 released

Changelog:

  • Added “For-Each Component Loop” nodes
  • Added “Get/Set Variable” nodes
  • Added “To Sphere” transform node
  • Added “Select Vertices by Connections” selection node (Thanks to @ofuscado)
  • Fixed issue with reset() attribute
  • Improved “For” & “For-Each” loop nodes
  • Improved “Select Manually” node

@putr_corps I absolutely LOVE the city generator! :heart_eyes:
Is it possible to add bevel to more buildings like the ones in the upper section of the second pic? Adding windows, doors, or other facade would probably be easy once you get hold of the side faces using “Select by Normal” node.

8 Likes

@aachman98 It failed checking update in 2.82 daily build, I updated it in 2.81 and copy and paste the content to2.82 manually, just want to let you know.

1 Like

I also could not update from the auto update function in addon preferences and had to do it the old fashioned manual way.

If you are using Windows, then this might be it:

Can you please run Blender using cmd and post the logs?

-------------REGISTER SORCAR-------------
SORCAR: IMPORT OP: ScExecuteNode
SORCAR: IMPORT OP: ScSaveSelection
SORCAR: IMPORT SOCKET: ScNodeSocketArray
SORCAR: IMPORT SOCKET: ScNodeSocketArrayPlaceholder
SORCAR: IMPORT SOCKET: ScNodeSocketBool
SORCAR: IMPORT SOCKET: ScNodeSocketInfo
SORCAR: IMPORT SOCKET: ScNodeSocketNumber
SORCAR: IMPORT SOCKET: ScNodeSocketObject
SORCAR: IMPORT SOCKET: ScNodeSocketSelectionType
SORCAR: IMPORT SOCKET: ScNodeSocketString
SORCAR: IMPORT SOCKET: ScNodeSocketUniversal
SORCAR: IMPORT SOCKET: ScNodeSocketVector
SORCAR: IMPORT NODE: Arrays: ScAddArray
SORCAR: IMPORT NODE: Arrays: ScAddElement
SORCAR: IMPORT NODE: Arrays: ScClearArray
SORCAR: IMPORT NODE: Arrays: ScCountElement
SORCAR: IMPORT NODE: Arrays: ScGetElement
SORCAR: IMPORT NODE: Arrays: ScMakeArray
SORCAR: IMPORT NODE: Arrays: ScPopElement
SORCAR: IMPORT NODE: Arrays: ScRemoveElement
SORCAR: IMPORT NODE: Arrays: ScReverseArray
SORCAR: IMPORT NODE: Arrays: ScSearchElement
SORCAR: IMPORT NODE: Component Operators: ScAddEdgeFace
SORCAR: IMPORT NODE: Component Operators: ScAverageNormals
SORCAR: IMPORT NODE: Component Operators: ScBeautifyFill
SORCAR: IMPORT NODE: Component Operators: ScBevel
SORCAR: IMPORT NODE: Component Operators: ScBisect
SORCAR: IMPORT NODE: Component Operators: ScBridgeEdgeLoops
SORCAR: IMPORT NODE: Component Operators: ScConnectVertices
SORCAR: IMPORT NODE: Component Operators: ScConvexHull
SORCAR: IMPORT NODE: Component Operators: ScDecimate
SORCAR: IMPORT NODE: Component Operators: ScDuplicateComponent
SORCAR: IMPORT NODE: Component Operators: ScExtrude
SORCAR: IMPORT NODE: Component Operators: ScExtrudeEdges
SORCAR: IMPORT NODE: Component Operators: ScExtrudeFaces
SORCAR: IMPORT NODE: Component Operators: ScExtrudeRegion
SORCAR: IMPORT NODE: Component Operators: ScExtrudeVertices
SORCAR: IMPORT NODE: Component Operators: ScFillEdgeLoop
SORCAR: IMPORT NODE: Component Operators: ScFillGrid
SORCAR: IMPORT NODE: Component Operators: ScFillHoles
SORCAR: IMPORT NODE: Component Operators: ScFlatten
SORCAR: IMPORT NODE: Component Operators: ScFlipNormals
SORCAR: IMPORT NODE: Component Operators: ScInset
SORCAR: IMPORT NODE: Component Operators: ScIntersect
SORCAR: IMPORT NODE: Component Operators: ScIntersectBoolean
SORCAR: IMPORT NODE: Component Operators: ScLoopCut
SORCAR: IMPORT NODE: Component Operators: ScMakeNormalsConsistent
SORCAR: IMPORT NODE: Component Operators: ScMaterial
SORCAR: IMPORT NODE: Component Operators: ScMerge
SORCAR: IMPORT NODE: Component Operators: ScMergeNormals
SORCAR: IMPORT NODE: Component Operators: ScOffsetEdgeLoops
SORCAR: IMPORT NODE: Component Operators: ScPointNormals
SORCAR: IMPORT NODE: Component Operators: ScPoke
SORCAR: IMPORT NODE: Component Operators: ScQuadrangulate
SORCAR: IMPORT NODE: Component Operators: ScRemoveDoubles
SORCAR: IMPORT NODE: Component Operators: ScRip
SORCAR: IMPORT NODE: Component Operators: ScRipEdge
SORCAR: IMPORT NODE: Component Operators: ScRotateEdge
SORCAR: IMPORT NODE: Component Operators: ScScrew
SORCAR: IMPORT NODE: Component Operators: ScSeparate
SORCAR: IMPORT NODE: Component Operators: ScSolidify
SORCAR: IMPORT NODE: Component Operators: ScSpin
SORCAR: IMPORT NODE: Component Operators: ScSplit
SORCAR: IMPORT NODE: Component Operators: ScSubdivide
SORCAR: IMPORT NODE: Component Operators: ScSubdivideEdgeRing
SORCAR: IMPORT NODE: Component Operators: ScSymmetrize
SORCAR: IMPORT NODE: Component Operators: ScSymmetrySnap
SORCAR: IMPORT NODE: Component Operators: ScTriangulate
SORCAR: IMPORT NODE: Component Operators: ScUnsubdivide
SORCAR: IMPORT NODE: Component Operators: ScUvProject
SORCAR: IMPORT NODE: Component Operators: ScUvSmartProject
SORCAR: IMPORT NODE: Component Operators: ScUvUnwrap
SORCAR: IMPORT NODE: Component Operators: ScVertexGroup
SORCAR: IMPORT NODE: Component Operators: ScWireframe
SORCAR: IMPORT NODE: Constants: ScBool
SORCAR: IMPORT NODE: Constants: ScNumber
SORCAR: IMPORT NODE: Constants: ScSelectionType
SORCAR: IMPORT NODE: Constants: ScString
SORCAR: IMPORT NODE: Constants: ScVector
SORCAR: IMPORT NODE: Deletion: ScDelete
SORCAR: IMPORT NODE: Deletion: ScDeleteEdgeLoop
SORCAR: IMPORT NODE: Deletion: ScDeleteLoose
SORCAR: IMPORT NODE: Deletion: ScDissolve
SORCAR: IMPORT NODE: Deletion: ScDissolveDegenerate
SORCAR: IMPORT NODE: Deletion: ScDissolveEdges
SORCAR: IMPORT NODE: Deletion: ScDissolveFaces
SORCAR: IMPORT NODE: Deletion: ScDissolveLimited
SORCAR: IMPORT NODE: Deletion: ScDissolveVertices
SORCAR: IMPORT NODE: Deletion: ScEdgeCollapse
SORCAR: IMPORT NODE: Flow Control: ScBeginForEachComponentLoop
SORCAR: IMPORT NODE: Flow Control: ScBeginForEachLoop
SORCAR: IMPORT NODE: Flow Control: ScBeginForLoop
SORCAR: IMPORT NODE: Flow Control: ScBranch
SORCAR: IMPORT NODE: Flow Control: ScEndForEachComponentLoop
SORCAR: IMPORT NODE: Flow Control: ScEndForEachLoop
SORCAR: IMPORT NODE: Flow Control: ScEndForLoop
SORCAR: IMPORT NODE: Inputs: ScCircle
SORCAR: IMPORT NODE: Inputs: ScCone
SORCAR: IMPORT NODE: Inputs: ScCube
SORCAR: IMPORT NODE: Inputs: ScCustomObject
SORCAR: IMPORT NODE: Inputs: ScCylinder
SORCAR: IMPORT NODE: Inputs: ScGrid
SORCAR: IMPORT NODE: Inputs: ScIcoSphere
SORCAR: IMPORT NODE: Inputs: ScImportFbx
SORCAR: IMPORT NODE: Inputs: ScMonkey
SORCAR: IMPORT NODE: Inputs: ScPlane
SORCAR: IMPORT NODE: Inputs: ScTorus
SORCAR: IMPORT NODE: Inputs: ScUvSphere
SORCAR: IMPORT NODE: Modifiers: ScArrayMod
SORCAR: IMPORT NODE: Modifiers: ScBevelMod
SORCAR: IMPORT NODE: Modifiers: ScBooleanMod
SORCAR: IMPORT NODE: Modifiers: ScBuildMod
SORCAR: IMPORT NODE: Modifiers: ScCastMod
SORCAR: IMPORT NODE: Modifiers: ScCorrectiveSmoothnessMod
SORCAR: IMPORT NODE: Modifiers: ScCurveMod
SORCAR: IMPORT NODE: Modifiers: ScDecimateMod
SORCAR: IMPORT NODE: Modifiers: ScDisplaceMod
SORCAR: IMPORT NODE: Modifiers: ScEdgeSplitMod
SORCAR: IMPORT NODE: Modifiers: ScHookMod
SORCAR: IMPORT NODE: Modifiers: ScLaplacianSmoothMod
SORCAR: IMPORT NODE: Modifiers: ScMirrorMod
SORCAR: IMPORT NODE: Modifiers: ScRemeshMod
SORCAR: IMPORT NODE: Modifiers: ScScrewMod
SORCAR: IMPORT NODE: Modifiers: ScSimpleDeformMod
SORCAR: IMPORT NODE: Modifiers: ScSkinMod
SORCAR: IMPORT NODE: Modifiers: ScSmoothMod
SORCAR: IMPORT NODE: Modifiers: ScSolidifyMod
SORCAR: IMPORT NODE: Modifiers: ScSubsurfMod
SORCAR: IMPORT NODE: Modifiers: ScTriangulateMod
SORCAR: IMPORT NODE: Modifiers: ScWaveMod
SORCAR: IMPORT NODE: Modifiers: ScWireframeMod
SORCAR: IMPORT NODE: Noise: ScCell
SORCAR: IMPORT NODE: Noise: ScCellVector
SORCAR: IMPORT NODE: Noise: ScFractal
SORCAR: IMPORT NODE: Noise: ScHeteroTerrain
SORCAR: IMPORT NODE: Noise: ScHybridMultiFractal
SORCAR: IMPORT NODE: Noise: ScMultiFractal
SORCAR: IMPORT NODE: Noise: ScNoise
SORCAR: IMPORT NODE: Noise: ScNoiseVector
SORCAR: IMPORT NODE: Noise: ScRidgedMultiFractal
SORCAR: IMPORT NODE: Noise: ScTurbulence
SORCAR: IMPORT NODE: Noise: ScTurbulenceVector
SORCAR: IMPORT NODE: Noise: ScVariableLacunarity
SORCAR: IMPORT NODE: Noise: ScVoronoi
SORCAR: IMPORT NODE: Object Operators: ScDrawMode
SORCAR: IMPORT NODE: Object Operators: ScDuplicateObject
SORCAR: IMPORT NODE: Object Operators: ScExportFbx
SORCAR: IMPORT NODE: Object Operators: ScFindNearest
SORCAR: IMPORT NODE: Object Operators: ScMakeLinks
SORCAR: IMPORT NODE: Object Operators: ScMergeObjects
SORCAR: IMPORT NODE: Object Operators: ScOrigin
SORCAR: IMPORT NODE: Object Operators: ScOverlap
SORCAR: IMPORT NODE: Object Operators: ScRaycast
SORCAR: IMPORT NODE: Object Operators: ScScatter
SORCAR: IMPORT NODE: Object Operators: ScShading
SORCAR: IMPORT NODE: Selection: ScSelectAll
SORCAR: IMPORT NODE: Selection: ScSelectAlternateFaces
SORCAR: IMPORT NODE: Selection: ScSelectAxis
SORCAR: IMPORT NODE: Selection: ScSelectByIndex
SORCAR: IMPORT NODE: Selection: ScSelectByLocation
SORCAR: IMPORT NODE: Selection: ScSelectByMaterial
SORCAR: IMPORT NODE: Selection: ScSelectByNormal
SORCAR: IMPORT NODE: Selection: ScSelectByVertexGroup
SORCAR: IMPORT NODE: Selection: ScSelectFaceBySides
SORCAR: IMPORT NODE: Selection: ScSelectInteriorFaces
SORCAR: IMPORT NODE: Selection: ScSelectLess
SORCAR: IMPORT NODE: Selection: ScSelectLinked
SORCAR: IMPORT NODE: Selection: ScSelectLinkedFacesFlat
SORCAR: IMPORT NODE: Selection: ScSelectLinkedPick
SORCAR: IMPORT NODE: Selection: ScSelectLoop
SORCAR: IMPORT NODE: Selection: ScSelectLoopRegion
SORCAR: IMPORT NODE: Selection: ScSelectLoose
SORCAR: IMPORT NODE: Selection: ScSelectManually
SORCAR: IMPORT NODE: Selection: ScSelectMirror
SORCAR: IMPORT NODE: Selection: ScSelectMore
SORCAR: IMPORT NODE: Selection: ScSelectMultiLoop
SORCAR: IMPORT NODE: Selection: ScSelectNextItem
SORCAR: IMPORT NODE: Selection: ScSelectNonManifold
SORCAR: IMPORT NODE: Selection: ScSelectNth
SORCAR: IMPORT NODE: Selection: ScSelectPrevItem
SORCAR: IMPORT NODE: Selection: ScSelectRandom
SORCAR: IMPORT NODE: Selection: ScSelectRegionBoundary
SORCAR: IMPORT NODE: Selection: ScSelectSharpEdges
SORCAR: IMPORT NODE: Selection: ScSelectShortestPath
SORCAR: IMPORT NODE: Selection: ScSelectShortestPathPick
SORCAR: IMPORT NODE: Selection: ScSelectSimilar
SORCAR: IMPORT NODE: Selection: ScSelectSimilarRegion
SORCAR: IMPORT NODE: Selection: ScSelectUngrouped
SORCAR: IMPORT NODE: Selection: ScSelectVerticesByConnections
SORCAR: IMPORT NODE: Settings: ScCursor
SORCAR: IMPORT NODE: Settings: ScPivotPoint
SORCAR: IMPORT NODE: Settings: ScSetSelectionMode
SORCAR: IMPORT NODE: Settings: ScTransformOrientation
SORCAR: IMPORT NODE: Transform: ScApplyTransform
SORCAR: IMPORT NODE: Transform: ScCopyTransform
SORCAR: IMPORT NODE: Transform: ScCreateOrientation
SORCAR: IMPORT NODE: Transform: ScRandomizeTransform
SORCAR: IMPORT NODE: Transform: ScSetTransform
SORCAR: IMPORT NODE: Transform: ScToSphere
SORCAR: IMPORT NODE: Transform: ScTransform
SORCAR: IMPORT NODE: Utilities: ScAppendString
SORCAR: IMPORT NODE: Utilities: ScBooleanOp
SORCAR: IMPORT NODE: Utilities: ScBreakVector
SORCAR: IMPORT NODE: Utilities: ScClamp
SORCAR: IMPORT NODE: Utilities: ScComparisonOp
SORCAR: IMPORT NODE: Utilities: ScComponentInfo
SORCAR: IMPORT NODE: Utilities: ScCustomPythonScript
SORCAR: IMPORT NODE: Utilities: ScGetVariable
SORCAR: IMPORT NODE: Utilities: ScMapRange
SORCAR: IMPORT NODE: Utilities: ScMaterialParameter
SORCAR: IMPORT NODE: Utilities: ScMathsOp
SORCAR: IMPORT NODE: Utilities: ScObjectInfo
SORCAR: IMPORT NODE: Utilities: ScPrint
SORCAR: IMPORT NODE: Utilities: ScSceneInfo
SORCAR: IMPORT NODE: Utilities: ScSetVariable
SORCAR: IMPORT NODE: Utilities: ScTrigoOp
SORCAR: IMPORT NODE: Utilities: ScVectorOp
sorcar updater verbose is enabled
sorcar Updater: Read in JSON settings from file
SORCAR: REGISTERED: 2 operators, 10 sockets & 205 nodes (13 categories)

1 Like

The error it shows me is “URL error, check internet connection”

That is fine, but what happens when you click on Update and try to install the latest version?

The error it shows me is “URL error, check internet connection”
[WinError 10035] A non-blocking socket operation could bot be completed immediately
In the cmd: URL error, check internet connection [WinError 10035] A non-blocking socket operation could not be completed immediately
master branch found, no releases {‘name’: ‘Master’, ‘zipball_url’: ‘https://api.github.com/repos/aachman98/Sorcar/zipball/master’}
sorcar: Wrote out updater JSON settings to file, with the contents:
{‘last_check’: ‘2019-12-22 00:57:59.100543’, ‘backup_date’: ‘December-21-2019’, ‘update_ready’: False, ‘ignore’: False, ‘just_restored’: False, ‘just_updated’: False, ‘version_text’: {}}
sorcar BG thread: Finished checking for update, doing callback

1 Like

The URL in the log is working fine (clicked on it and it prompted me to download the file).

Is this of any use? I don’t think anything got solved in that issue…

1 Like

Never mind, I can update that manually.

Precisely the situation I tried to avoid :laughing:
Anyways, I’ll look into the error once I switch to windows.

1 Like

Added “Empty” node in the last commit. Not that important, but this will help in keeping track of values like vector in 3D space:

Also demonstrated the “Raytrace” node because I’m not sure if I mentioned it before :rofl:
I remember a post asking about line collision with faces, but it totally slipped from my mind. Anyways, it has been in the addon since v3.1.0 along with “Find Nearest” node (similar concept). Hoping to see a good use-case!

4 Likes

hmmmm… would be possible to use raycast in any way to do the following?
I want to select the faces that , if I cast a ray from its normal, hit or doesnt hit another face in a certain distance or raylength. I want this to know what walls hit another wall to scatter windows efficiently and to create another cool rules to the buildings. :stuck_out_tongue:
Its a very very specific use case, I know :sweat_smile:

Oh, and yes, I can setup bevel in every corner of the city thanks to the Select Vertex by Connections node made by @ofuscado :slight_smile:
image

5 Likes

Failed to update. Here’s why:

Staging update

Preparing staging folder for download:

 /usr/local/Blender/blender-2.81/Blender.app/Contents/Resources/2.81/scripts/addons/sorcar/sorcar_updater/update_staging

Backing up current addon folder

Backup destination path: /usr/local/Blender/blender-2.81/Blender.app/Contents/Resources/2.81/scripts/addons/sorcar/sorcar_updater/backup

sorcar: Wrote out updater JSON settings to file, with the contents:

{'last_check': '2019-12-22 17:28:44.613444', 'backup_date': 'December-22-2019', 'update_ready': True, 'ignore': False, 'just_restored': False, 'just_updated': False, 'version_text': {'link': 'https://api.github.com/repos/aachman98/Sorcar/zipball/v3.1.3', 'version': (3, 1, 3)}}

Now retrieving the new source zip

Starting download update zip

Successfully downloaded update zip

Source folder cleared and recreated

Error occurred while making extract dir:

[Errno 17] File exists: '/usr/local/Blender/blender-2.81/Blender.app/Contents/Resources/2.81/scripts/addons/sorcar/sorcar_updater/source'

Updater returned -1, error occurred

Mac Os X, Blender 2.81
HTH

1 Like

Oh, by the way, @ofuscado and me have almost managed to figure out how to select by distance from normal, or by thickness if you prefer, by adapting the code of 3d print toolbox, an addon with really interesting features, and one of them is checking the thickness. So if we reverse the direction of the ray… ta da! select the faces that are close to each other


It still has some bugs but it’s on the right track.

And as a Christmas present, I’ve made another very, very useful node, Select by Area(code adapted from here: https://blender.stackexchange.com/questions/111357/python-select-faces-of-a-certain-size).
It needs a little cleaning too, but I hope to be able to do a pull request tomorrow:

P.D: @vinnyvicious I still remember the Window Generator, but with the new versions its a bit messed up, I’ll try to replicate it in the version 3.1.3 / 3.1.4.

Happy Christmas @aachman98 ! :smiling_face_with_three_hearts:

6 Likes

Implemented a raycast for scene objects node:

The original raycast node is renamed to “Raycast (Object)”

5 Likes