Fabric Engine – Point Distribution

For my first exercise with Fabric Engine I am playing around with point distribution. The objective of this exercise is to achieve the following goals:

1. Utilize KL within the Fabric Canvas application.
2. Utilize the parallel processing capabilities(PEX).
3. Gather and Randomize points from a source geometry.
4. Random percentage subtraction of points.
5. Point subtraction based a on secondary geometry.
6. Distribute based on texture map as input.*
7. Deform the plane using some sort of procedural method place the points.*
8. Utilize a texture map as input for how the plane is deformed.*

*still in progress

Source and Scene File on GitHub

(This is my first try using Fabric Engine, therefore I’m sure following functions could be more optimized.)

I started from a source geometry, this could be any mesh. For this example, I’m using simple plane, then using a Turbulize node to procedurally deform the source plane.

TurbulizedPlane

 

Taking advantage of KL language, I created a function that gets the points from the source plane and makes randomization. See the code.

rand_scatter

 

The result of this function is a list of translate info, which could be use to scatter point, or a secondary geometry to scatter.

scatter

 

Here are some results after adjusting the attributes:

rotatopn

uniformScale

scale

 

Simple function to remove percentage of the points:

remove_point

 

Here is the function to remove the points that are intersecting with another mesh.

geo_intersect

 

My first impression is that Fabric Engine has a lot to offer. I found the learning curve a little bit steep but once you have a base understanding the limit is your imagination.