you can hit randomize and get vector fields to implement in hou all day
Archived post by goldfarb
Archived post by eetu
@CoskuTurhan you might want to check this if it gives you any ideas dailyhip.wordpress.com/2017/01/26/firefly-tree/
it does something similar
Attachments in this post:
http://fx-td.com/houdiniandchill/wp-content/uploads/discord/20192409/17/19/wiretree.jpg
Archived post by Mark
it might not be the most efficient way, but iw as able to do it using l systems and a find shortest path – convert curveu to worldspace, apply parallel transport, and rewrap the wires using one of my weaving setups.
i basically made sure the l system was branching in only 2 directions each generation and just hand selected a group right after the first branch haha
Attachments in this post:
http://fx-td.com/houdiniandchill/wp-content/uploads/discord/20191109/17/19/MF_Branch_Wrap_v01.hip
Archived post by TOADSTORM
@mstarktv I just wrote a quick blogpost describing all the environment bullshit, let me know if it’s helpful! www.toadstorm.com/blog/?p=678
Archived post by Ambrosiussen
How xyzdist works :
It uses a Bounding Volume Hierarchy (BVH) data structure, which consists of a tree of boxes. At the top, there’s effectively a bounding box containing everything, at each level, each box splits into 4 (hopefully) smaller boxes, and at the bottom, there’s a box for each primitive, (multiple for some primitives).
First, VEX has to build and cache the BVH. Then, it traverses the tree, visiting boxes that are close to the query point, finding the closest points on primitives in those boxes, and then visiting boxes that are a bit farther, until the closest point in a box is farther than the closest point found so far, and then it exits.
As for individual primitives, it varies, but for a triangle, the BVH caches the triangle’s normal, so if a line on the query point in the direction of the normal intersects the triangle, that’s the closest point on the triangle, and if not, it projects the query point onto each edge to find the closest there, and if those are all out of bounds, it finds the closest corner position to the query point, and that’s the closest point on a triangle.
Thought it’s quite interesting. Above is from the Dev, Neil D
Archived post by mestela
i’m sure this is beneath everyone here, but i wrote up some notes on getting detailed (sorta) smoke sims: www.tokeru.com/cgwiki/index.php?title=SmokeDetailed
Archived post by profbetis
for anyone interested in the ASCII tool, have fun
supported generously by @xcaseyx
Attachments in this post:
http://fx-td.com/houdiniandchill/wp-content/uploads/discord/20193109/09/19/kw_ascii.hdalc
http://fx-td.com/houdiniandchill/wp-content/uploads/discord/20193109/09/19/kw_ascii.hiplc
Archived post by flight404
jurajtomori.wordpress.com/2018/01/15/houdini-tip-faster-saving-of-scenes-on-network-drives/
Maybe something useful there @Sacha Wech
Archived post by jake rice
@dchow @CoskuTurhan “`Hello Jake, There are two phases to cooking a DOP frame: the network pass and the solve pass. Former takes care of setting parameters and building the sequence of operators that are to act on the objects; the solve pass then actually invokes these operators. The issue is that substepping triggered by the Gas Substep solver is done as part of the solve pass, while the Switch Solver gets its switch value set during the network pass. To perform its solve, Gas Substep DOP basically determines how many substeps to take and calls its sequence of input operators that number of times. So when the Switch Solver is reached, it uses the switch value that was evaluated at the network pass. In other words, the value of that parameter does not get refreshed for each of your substeps.
You can get the behaviour you want by disabling Override with Default and using the data specified in Switch Value Name. This data will have to be modified to account for your frame number logic, which can be done fairly easily with a Script Solver. Note that this works because the parameter value is static (name of the data to use), but the actual data stored gets evaluated every time the node goes to perform its solve. “`