Python Resources

Updated on Feb 5 2022

Python Resources

Deborah R. Fowler



File creation to supplement Exercise 2 dailies - preparing 3D shapes

Posted on April 23 2022

I created geometry for two simple objects, but what about 3D objects? This presents some interesting considerations.

The easiest way to create this would be to simply render the object with a constant shader applied and save the image to be used in the trace node.



Surprisingly this was not the first solution I thought of - what if I did not want to use the trace node?

I first tried using a combination of ray, boolean and vdb volumes with volume mix. However the method I ended up getting the best results (besides trace) was a ray combined with an attribute transfer and a proxy curve and alternatively a point wrangle with the same attribute transfer proxy curve method (shown below). The inspiration to use this kind of approach came from a forum post https://www.sidefx.com/forum/topic/21257/?page=1#post-99464 which projects a circle or sphere onto geo. I have simplified this approach and added a proxy curve to get more accurate results than a simple convex hull.




The two approaches shown are described below: ray, transfer, proxy

ray can be used to project geometry onto another surface. Here I use a minimum distance to flatten my geo. (shown from an angle to see that it is flattened)



Next I take a proxy curve that is quickly drawn around the general shape and resample and use an attribtransfer to transfer point information.



The result of the attribute transfer is shown below



This is then resample to reduce and even out the points



Ready to write out as described here.


The other method was similar, however I simply used a point wrangle and grabbed the points within a z region to start. That is why the back fin is missing.
I adjusted the profile curve interactively to get the best shape approximation.



There are many other ways to approach this - these are just a few. The simplest is the trace.