Sorcar - Procedural modeling in Blender using Node Editor

Added a detailed guide on how to create nodes from scratch:

Tried to explain every line in the simplest manner. Hopefully it is understandable :smile:

8 Likes

It’s great ! Today I open Sorcar folder using VS code to view code, and I translate every node to chinese using BLT_Translation.exe , this make it easy to view each node and update. Then I’ll view the SC code and learn.

You can also follow @enzyme69 on Twitter:
https://twitter.com/search?q=%40jimmygunawanapp%20%23Sorcar&src=typed_query

He has created a lot of amazing procedural content and posted them there, apart from the very informative Youtube videos.
Or simply search for #Sorcar tag and you’ll find numerous examples. I can’t help but say, you people are AWESOME! :heart_eyes:

Look at @Benny_G’s examples too: https://twitter.com/search?q=%40BennyGovaerts%20%23nodes&src=typed_query
(Uses Sverchok a lot, but the approach is what’s important)

EDIT: This also: https://www.youtube.com/watch?v=WX1ozKXZ_7w

And I’m yet to find @putr_corps’s hidden stash of Sorcar-generated models on Twitter :rofl:

Anyways, close to wrapping up another release before the decade ends. A very happy new year everyone!
#itsallprocedural

4 Likes

wow! I discovered a new world. It like a gift.Thank you and thank these people. :smiling_face_with_three_hearts:

v3.1.4 released

Changelog:

  • Added “Voxel Remesh” object operator node (Blender 2.81+)
  • 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

Instancing example:


Will integrate this in Scatter node to make it more convenient to use.

Happy new year!
-PA

8 Likes

I added a bool to most of the input objects to show whether it was added at the world origin,my code look not advance, which might be used for binding bone on hard surfaces in the future.

1 Like

Simple use-case for instancing

Idea from: https://twitter.com/jimmygunawanapp/status/1211815179073179652

4 Likes

2 new nodes on the road @aachman98 !!! First one is Point Scatter, it generates a “”“Point Cloud”“” based on Volume or Faces(In fact is only an object with a “Vert Cloud” :sweat_smile:).

And the second one… Voronoi Fracture! (Slow af…) dont go over 200-400 chunks!!! (thanks to @ofuscado for his help/support :smiling_face_with_three_hearts: )

PD: Select by Area and Select by Thickness have a couple of problems right now, When we can solve them, we will do the pull request.

Happy new year!!!

8 Likes

These additions are amazing! It is starting to feel like a full featured procedural modeling workflow.

One question I have regarding CustomObject is there a way to hide original?

5 Likes

Hi @aachman98 with 3.1.4 I’m still getting an immediate crash on render with the realtime option selected.

Is no one else getting this crash?

Could this crash be caused by another Addon conflicting with Sorcar?

The crash is consistent on both Mac and PC here on 2.81a.

Thanks

Hey, I’ve been coming to this thread for some time now - I’m curious, if I want to learn to MODEL with Sorcar - how do I learn? Are there Youtube videos or something (like, recommended BY you, Punya? :slight_smile: )? Other than that, what?

Btw, you should check out this project, looks to me, EXTREMELY cool! :slight_smile: :

http://structuresynth.sourceforge.net/

1 Like

I LOVE IT!! :heart_eyes: Here we come, Houdini :stuck_out_tongue_winking_eye:
Anyways, the performance is going to be the next big issue…
I haven’t used Sverchok or Houdini as extensively so I have no idea if it’s slower or…MUCH slower. Using bmesh ops internally might help though.

Eagerly waiting…! I’ll finish the curve ops and few of the bugs side-by-side.

Working on it, along with the object deletion issue.

That too is a known bug. The problem is that “bpy.context” doesn’t return the original scene when you render using an extended window (F12), meaning the nodetree can no longer access the active object. The chance of another addon conflicting with Sorcar is very less now, given the improved code base of v3.

I mentioned a few on an earlier post: Sorcar - Procedural modeling in Blender using Node Editor - #484 by aachman98
Apart from that, you can look at the Getting Started page on Sorcar Wiki (recently updated).

Grammar-based modeling is also quite interesting. Maybe we can inculcate it in Sorcar in the future.

5 Likes

Do you consider using cython or ctypes to increase performance? I think nested loops are one of the things that cost python the most.

2 Likes

Thank you @aachman98 for the reply. I’m relatively new to Blender so please forgive this noob question but is there a way to render out a Sorcar animation that uses the scene info node that doesn’t cause a crash please?

Thank you.

Simple loops are quite slow as well :confused: (100+ iterations take at least a second). I have never used cython before, but if it enables me to simply write c/c++ code, without adding an extra layer of parsing, then I’ll look into it. I have a feeling that I would soon be reading Blender’s code base to integrate all this without using the API :laughing:

Not yet. I never had animation in mind while designing the architecture (you’ve got AnimationNodes for that!)
But if you want, you can try out this workflow:

  1. Add “Export FBX” node at the end of your node network
  2. Connect the “Current Frame” value to the “Name” input (or append it to some other string beforehand)
  3. Let the animation play through all the required frames (might take a while)
  4. Open a new scene in Blender, place the camera wherever you want and save it in the same folder (delete the object if you’ve imported one of the FBXs for reference)
  5. Write a simple script (loop) to render out one frame after importing an object in the saved blend file. You probably don’t even need to open Blender GUI. See this for more info: https://docs.blender.org/manual/en/latest/advanced/command_line/arguments.html

There’s no shortage of issues in this though :sweat_smile:, and a lot of things can go wrong. Anyways, I’ll notify once the rendering issue gets resolved.

3 Likes

Used Raycast node to determine the topology of the terrain and translate the edge extrusion accordingly:

File: sc3_terrain_raycast.blend (1.3 MB)
(Using v3.1.4)

2 Likes

Small test with point scatter + voronoi fracture and materials.

4 Likes

That would bring it in the realms of City Engine for procedural content like cities, buildings, blocks. It would be amazing

2 Likes

@aachman98 You might want to take a look at this thread:

I also tried to learn cython and this is my repository if you want to take a look:

3 Likes