# Power Nodes Project

**URL:** <https://blenderartists.org/t/power-nodes-project/1237749>\
**Category:** Released Add-ons and Extensions\
**Tags:** add-ons, modeling, commercial\
**Created:** [June 28, 2020, 2:22pm UTC](https://blenderartists.org/t/power-nodes-project/1237749 "2020-06-28T14:22:41Z")\
**Posts on this page:** 20\
**Page:** 1

<div class="post-metadata">

**Author:** ![rpopovici](https://blenderartists.org/user_avatar/blenderartists.org/rpopovici/32/537107_2.png) [@rpopovici](https://blenderartists.org/u/rpopovici)\
**Post date:** [June 28, 2020, 2:22pm UTC](https://blenderartists.org/t/power-nodes-project/1237749/1 "2020-06-28T14:22:41Z")

</div>

**Power Nodes project**

I present to you: Power Nodes.

Official page: [www.power-nodes.com](http://www.power-nodes.com)  
Patreon: [https://www.patreon.com/radupopovici](https://www.patreon.com/radupopovici)  
Twitter: [https://twitter.com/radu\_popovic](https://twitter.com/radu_popovic)  
blender.chat: [https://blender.chat/channel/power-nodes](https://blender.chat/channel/power-nodes)  
Github: [https://github.com/rpopovici/power-nodes](https://github.com/rpopovici/power-nodes)

**Goals of this project:**

- user friendly node based modeling, animation and simulation solution, with focus on UI/UX
- interactive operators with automatic node sensing and activation
- performant operators, accelereated with GPU/CUDA cores
- declarative style operators and nodes
- uncluttered nodes interface
- node parametrization and data binding
- reusable digital assets
- fewer connection as possible
- pass-through state
- automatic conversion to and from mesh/object/curve/collection/etc when required
- generic operators based on standard ops, modifiers and bmesh already working
- live node previews
- custom python operators
- independent/autonomous operators from blender internal(affect blenders internal affairs as little as possible)

**Long term goals:**

- integration with everything nodes if possible
- complete workflows for game development
- batched processing and optimizations
- multi user support
- unity/unreal exchange
- animation/simulation integration
- and many more…

**Very long term:** 🙂

- relase as stand-alone app with other packages integration

**What works so far:**

Operations and node previews  
 ![power_nodes_demo](https://blenderartists.org/uploads/default/original/4X/b/f/c/bfc46a47f3d4560f4b3463d28ccfc23d3c6f83cc.gif)

Live edits  
 ![power_nodes_live_edit](https://blenderartists.org/uploads/default/original/4X/5/7/e/57e908c538b3b472dfc66795c0c83bfcc3e2a120.gif)

Interactive primitive  
 ![power_nodes_interactive_primitives](https://blenderartists.org/uploads/default/original/4X/7/4/0/740f49897b6c91c6b8631ad06d6f907261f92cce.gif)

Live primitive node  
 ![power_nodes_live_primitives](https://blenderartists.org/uploads/default/original/4X/7/f/d/7fdb60d0401a18ce23c385269844714c3db16cc5.gif)

This project is in early state of prototyping. When it will be ready for prime time, I will release it on blender market and gumroad. Any C&C are welcome.

---

<div class="post-metadata">

**Author:** ![rpopovici](https://blenderartists.org/user_avatar/blenderartists.org/rpopovici/32/537107_2.png) [@rpopovici](https://blenderartists.org/u/rpopovici)\
**Post date:** [June 28, 2020, 2:22pm UTC](https://blenderartists.org/t/power-nodes-project/1237749/2 "2020-06-28T14:22:57Z")

</div>

**Release notes:**

**v0.1**

- generic operators based on standard ops, modifiers and bmesh already working
- live node previews
- live primitives
- cached node output
- ops, modifiers and bmesh integration works well with some hacking, edit mode ops not working thus
- fast voxelized preview for extra large meshes

---

<div class="post-metadata">

**Author:** ![rpopovici](https://blenderartists.org/user_avatar/blenderartists.org/rpopovici/32/537107_2.png) [@rpopovici](https://blenderartists.org/u/rpopovici)\
**Post date:** [June 28, 2020, 3:42pm UTC](https://blenderartists.org/t/power-nodes-project/1237749/3 "2020-06-28T15:42:07Z")

</div>

Working nodes, so far:

**Boolean**

- with boolean fix for simple primitive meshes  
 ![power_nodes_boolean](https://blenderartists.org/uploads/default/original/4X/b/4/5/b45c713f3a6bc4e26876580a7a1d727e8a7b70fe.gif)

**Transform**  
 ![power_nodes_transform](https://blenderartists.org/uploads/default/original/4X/6/a/2/6a26a66f6a776e5663d62a0bb375e0cd3190784d.gif)

**Bevel**  
 ![power_nodes_bevel](https://blenderartists.org/uploads/default/original/4X/8/e/b/8eb498ad4c638218f16a232d7ba70c5b190472fe.gif)

**Array**  
 ![power_nodes_array](https://blenderartists.org/uploads/default/original/4X/9/1/c/91c0a0a7bdd0b67dff4ff78d2c59c9c2d822733c.gif)

**Sweep**  
 ![power_nodes_sweep](https://blenderartists.org/uploads/default/original/4X/f/7/1/f71e6d5e5731c1b0bee163d1282e22b21f88474e.gif)

**Mirror**  
 ![power_nodes_mirror](https://blenderartists.org/uploads/default/original/4X/f/2/a/f2a2c15913b899502b330487428697b31e056506.gif)

**SUBD**  
 ![power_nodes_subd](https://blenderartists.org/uploads/default/original/4X/a/6/e/a6e7f5d2c50f92b8b80f4e4f1d04a6c2b9764027.gif)

**Solidify**  
 ![power_nodes_solidify](https://blenderartists.org/uploads/default/original/4X/4/4/4/444d348dac18efb9dad20ad8463a54882bf21064.gif)

**Bisect**  
 ![power_nodes_bisect](https://blenderartists.org/uploads/default/original/4X/a/e/4/ae4647f3159e3a36714b51a20c0c8944ea82c5f1.gif)

**Copy to vert/edge/face**  
 ![power_nodes_copy](https://blenderartists.org/uploads/default/original/4X/2/2/b/22b6c8ab68d66b2e23455d8346ae26244d7aadd3.gif)

**Push/Pull**  
 ![power_nodes_push_pull](https://blenderartists.org/uploads/default/original/4X/3/9/f/39f5eca68e809cb52ba2b0d1756805145024dfd0.gif)

---

<div class="post-metadata">

**Author:** ![rpopovici](https://blenderartists.org/user_avatar/blenderartists.org/rpopovici/32/537107_2.png) [@rpopovici](https://blenderartists.org/u/rpopovici)\
**Post date:** [June 29, 2020, 3:03pm UTC](https://blenderartists.org/t/power-nodes-project/1237749/4 "2020-06-29T15:03:57Z")

</div>

First custom operator using CUDA cores: push/pull from the center of the mesh  
Benchmark:

- native code pushing 1.5M verts takes aprox 230 ms
- CUDA accelerated, 1.5M verts takes aprox 40ms
- edit mode, standard push/pull operator takes 8s, but this cannot be considered for the purpose of the benchmark since edit mode it’s heavier anyway

The benchmark takes in account data transfer from object to operator and from operator to GPU mem, and back

CUDA is 5x faster than native in this case 🙂

---

<div class="post-metadata">

**Author:** ![vitorbalbio](https://blenderartists.org/user_avatar/blenderartists.org/vitorbalbio/32/8931_2.png) [@vitorbalbio](https://blenderartists.org/u/vitorbalbio)\
**Post date:** [June 29, 2020, 4:21pm UTC](https://blenderartists.org/t/power-nodes-project/1237749/5 "2020-06-29T16:21:56Z")

</div>

Since it’s overlapping a lot the the future everything nodes features is difficult to know how much time until it be deprecated. But it’s probably the best prof of concept to “node modifiers” as a modelling workflow.

---

<div class="post-metadata">

**Author:** ![rpopovici](https://blenderartists.org/user_avatar/blenderartists.org/rpopovici/32/537107_2.png) [@rpopovici](https://blenderartists.org/u/rpopovici)\
**Post date:** [June 29, 2020, 4:57pm UTC](https://blenderartists.org/t/power-nodes-project/1237749/6 "2020-06-29T16:57:45Z")

</div>

@vitorbalbio Yes, it’s true that some of these ideas ar overlapping with ‘everything nodes’. But, we don’t know when everything nodes will be released. Think about it, they started talking about this stuff 5 years ago… Only recently everything nodes was moved from backlog to ‘long term’. I don’t even know what that means. There is no ETA for this project. It could be 6 months, or it could be 2 years from now… until you will have a first early BETA to toy with. Besides this, they are refactoring a lot of blender core right now. I don’t know exactly what is the purpose of that refactoring?!? C++?, better perf?, I don’t know. Anyway this refactoring alone will introduce an enormous number of bugs to be fixed. Don’t expect to much stability in the next two three versions.  
Also, there is the GPU accelerated problem to address. How? Is it going to work out of the box, another 2 years?. We don’t know…

My approach here is taking in consideration, from the start, the UI/UX/perf problem. In the end, this is what truly matters for the end user.

Also, worth mentioning is the fact that I intend to release an early BETA, hopefully, two months from now 🙂

---

<div class="post-metadata">

**Author:** ![vitorbalbio](https://blenderartists.org/user_avatar/blenderartists.org/vitorbalbio/32/8931_2.png) [@vitorbalbio](https://blenderartists.org/u/vitorbalbio)\
**Post date:** [June 29, 2020, 6:44pm UTC](https://blenderartists.org/t/power-nodes-project/1237749/7 "2020-06-29T18:44:43Z")

</div>

You’re probably right. Is better to have a tool now than a promise.  
Keep the good work, i will follow it closely.

---

<div class="post-metadata">

**Author:** ![const](https://blenderartists.org/letter_avatar_proxy/v4/letter/c/c2a13f/32.png) [@const](https://blenderartists.org/u/const)\
**Post date:** [June 30, 2020, 8:16am UTC](https://blenderartists.org/t/power-nodes-project/1237749/8 "2020-06-30T08:16:56Z")

</div>

Looks like a very serious attempt, I might be interested to test it as well. How does it compare to sorcar though? Should I try both?

---

<div class="post-metadata">

**Author:** ![rpopovici](https://blenderartists.org/user_avatar/blenderartists.org/rpopovici/32/537107_2.png) [@rpopovici](https://blenderartists.org/u/rpopovici)\
**Post date:** [June 30, 2020, 9:29am UTC](https://blenderartists.org/t/power-nodes-project/1237749/9 "2020-06-30T09:29:02Z")

</div>

I don’t know much about sorcar, but from the looks of it, it was designed to work with standard operators and modifiers. This approach has some limitations. You are totally bound to what blender does internally. Other than that, it looks like a very good solution. And it is also a lot more mature than my approach. What I am trying to do here is beyond blender scope. From the start I want to introduce GPU accelerated operators which are also context agnostic(you can run them from anywhere - not bound to blender internal state). Beside this, I want this solution to be extremely easy to use and interact with from the viewport. This is something I really missed in Houdini…

---

<div class="post-metadata">

**Author:** ![const](https://blenderartists.org/letter_avatar_proxy/v4/letter/c/c2a13f/32.png) [@const](https://blenderartists.org/u/const)\
**Post date:** [June 30, 2020, 3:53pm UTC](https://blenderartists.org/t/power-nodes-project/1237749/10 "2020-06-30T15:53:17Z")

</div>

Good answer, in this case this is a very good approach.

Indeed, Blender has a good set of fundamental modifiers, however the toolbox is quite limited, not to mention that half of them need to be reworked so they can become 10 times more productive and user friendly.

> eg: Bending and twisting is so troublesome to setup and use, so nobody bothers with it. While in 3DSMax you would simply change a slider, simple as that:  
> [https://knowledge.autodesk.com/support/3ds-max/learn-explore/caas/CloudHelp/cloudhelp/2015/ENU/3DSMax/files/GUID-C83CBEE2-19FE-4D19-A1F8-52EC04D89A2A-htm.html](https://knowledge.autodesk.com/support/3ds-max/learn-explore/caas/CloudHelp/cloudhelp/2015/ENU/3DSMax/files/GUID-C83CBEE2-19FE-4D19-A1F8-52EC04D89A2A-htm.html)

These exactly are serious use cases that need to be taken into consideration.

---

<div class="post-metadata">

**Author:** ![Ztreem](https://blenderartists.org/user_avatar/blenderartists.org/ztreem/32/506137_2.png) [@Ztreem](https://blenderartists.org/u/Ztreem)\
**Post date:** [June 30, 2020, 9:56pm UTC](https://blenderartists.org/t/power-nodes-project/1237749/11 "2020-06-30T21:56:20Z")

</div>

This looks very promising, love the live preview in the node editor. I will follow the progress with big interest…

---

<div class="post-metadata">

**Author:** ![Dene](https://blenderartists.org/user_avatar/blenderartists.org/dene/32/1018148_2.png) [@Dene](https://blenderartists.org/u/Dene)\
**Post date:** [June 30, 2020, 10:52pm UTC](https://blenderartists.org/t/power-nodes-project/1237749/12 "2020-06-30T22:52:58Z")

</div>

What is I’m really missing right now in animation nodes, sverchok, etc is the ability to work with rigs via nodes creating some complex structures. I want to see the whole rig with all its connections (modifiers, constraints, drivers, children, parenting) as nodes as the whole picture instead of messing with bone layers, selecting each bone to edit constraints, etc. Do you have some plans about that maybe?

---

<div class="post-metadata">

**Author:** ![rpopovici](https://blenderartists.org/user_avatar/blenderartists.org/rpopovici/32/537107_2.png) [@rpopovici](https://blenderartists.org/u/rpopovici)\
**Post date:** [July 1, 2020, 5:01am UTC](https://blenderartists.org/t/power-nodes-project/1237749/13 "2020-07-01T05:01:09Z")

</div>

Long term, yes

---

<div class="post-metadata">

**Author:** ![rpopovici](https://blenderartists.org/user_avatar/blenderartists.org/rpopovici/32/537107_2.png) [@rpopovici](https://blenderartists.org/u/rpopovici)\
**Post date:** [July 1, 2020, 12:25pm UTC](https://blenderartists.org/t/power-nodes-project/1237749/14 "2020-07-01T12:25:20Z")

</div>

3M tris live push/pull with voxelized preview, accelerated with CUDA cores  
 ![power_nodes_voxel_preview](https://blenderartists.org/uploads/default/original/4X/8/f/b/8fbb3f95544aa65eac4d18f37c7ea5b824af442a.gif)

---

<div class="post-metadata">

**Author:** ![SAIINDIA](https://blenderartists.org/user_avatar/blenderartists.org/saiindia/32/646060_2.png) [@SAIINDIA](https://blenderartists.org/u/SAIINDIA)\
**Post date:** [July 6, 2020, 10:07am UTC](https://blenderartists.org/t/power-nodes-project/1237749/15 "2020-07-06T10:07:11Z")

</div>

This looks promising. GPU accelerated.

There are already addons like Sorcar, Sverchok, Animation nodes etc. They are good but they have performance issues and it’s diffcult to work with those in combination with each other.

Did you try to contact blender foundation developpers if they are interested in this?  
Have you read function nodes and everything nodes documents by Jacques Luke?  
I feel like, if all the developers are united and stick together, they can bring a really good unified node system for the community. Some one has to lead the development.

(This is just a suggestion, I am not even a developer)

---

<div class="post-metadata">

**Author:** ![rpopovici](https://blenderartists.org/user_avatar/blenderartists.org/rpopovici/32/537107_2.png) [@rpopovici](https://blenderartists.org/u/rpopovici)\
**Post date:** [July 6, 2020, 10:50am UTC](https://blenderartists.org/t/power-nodes-project/1237749/16 "2020-07-06T10:50:41Z")

</div>

Thanks, I am aware of everything nodes and the docs made public already. My approach here is different than what they are trying to do. I am doing a top-down implementation instead of bottom-up. I am trying to focus here on high level functionaly first and then I will take care of low level optimizations and performace.  
There’s a long debate here [https://devtalk.blender.org/t/blenders-architecture-concerning-everything-nodes/9888](https://devtalk.blender.org/t/blenders-architecture-concerning-everything-nodes/9888) about this subject if you are interested in more technical details

---

<div class="post-metadata">

**Author:** ![rpopovici](https://blenderartists.org/user_avatar/blenderartists.org/rpopovici/32/537107_2.png) [@rpopovici](https://blenderartists.org/u/rpopovici)\
**Post date:** [July 7, 2020, 4:45pm UTC](https://blenderartists.org/t/power-nodes-project/1237749/17 "2020-07-07T16:45:52Z")

</div>

**Destructive extrude** with nodes - work in progress…  
 ![power_nodes_destructive_extrude](https://blenderartists.org/uploads/default/original/4X/f/f/b/ffbe18efcbbd275d09ece50914f02ab5d5f52eaa.gif)

---

<div class="post-metadata">

**Author:** ![const](https://blenderartists.org/letter_avatar_proxy/v4/letter/c/c2a13f/32.png) [@const](https://blenderartists.org/u/const)\
**Post date:** [July 7, 2020, 6:44pm UTC](https://blenderartists.org/t/power-nodes-project/1237749/18 "2020-07-07T18:44:40Z")

</div>

From what it seems you can utilize both destructive and non-destructive techniques. Is this something that Houdini does as well?

I have some idea for a workflow as well, that I do often, though I still trying to perfect it.

1. Creating a shape as extruded plane.
2. Using solidify operator to make it 3D.
3. Using smooth operator reduce hard corners (Laplacian or Corrective).
4. [x] Editing geometry ontop of the existing result

Only step [4] is the most difficult, in simple cases I would use a cage mesh operator (or lattice) though, but for finer control it does not work well. I have a test model I created that way that uses about 10 lattice modifiers stacked ontop of the other, however is really bothersome to setup. The correct solution as of now is to bake the operators of the mesh at step [3] and then proceed to [4].

---

<div class="post-metadata">

**Author:** ![rpopovici](https://blenderartists.org/user_avatar/blenderartists.org/rpopovici/32/537107_2.png) [@rpopovici](https://blenderartists.org/u/rpopovici)\
**Post date:** [July 9, 2020, 6:47pm UTC](https://blenderartists.org/t/power-nodes-project/1237749/19 "2020-07-09T18:47:00Z")

</div>

**Destructive extrude** - face mode, with automatic detection, node spawning and auto layout  
 ![power_nodes_destructive_extrude_face](https://blenderartists.org/uploads/default/original/4X/2/7/b/27bfa0e2a58886ed9ea6312b0719975379640ae0.gif)

---

<div class="post-metadata">

**Author:** ![rpopovici](https://blenderartists.org/user_avatar/blenderartists.org/rpopovici/32/537107_2.png) [@rpopovici](https://blenderartists.org/u/rpopovici)\
**Post date:** [August 19, 2020, 9:31am UTC](https://blenderartists.org/t/power-nodes-project/1237749/20 "2020-08-19T09:31:28Z")

</div>

Just an update here:

- managed to port PyCSG [https://github.com/timknip/pycsg](https://github.com/timknip/pycsg)(original work [https://evanw.github.io/csg.js/](https://evanw.github.io/csg.js/)) to my plugin.
- also created Cython, numba and C++ ports of PyCSG
- did more research on hybrid technologies. Technologies included in my research pool: NumPy, CuPy, PyTorch, Cython, numba
- the goal of this port was mainly to offer an alternative to the default boolean engine, and to allow future optimizations based on CUDA, ROCm and SVML

 ![CSG boolean](https://blenderartists.org/uploads/default/original/4X/f/8/e/f8e6d68a089d4adec20bf014812794abedbf4f8e.png)

[Next page](https://blenderartists.org/t/power-nodes-project/1237749.md?page=2)
